{
  "errors": [],
  "warnings": [],
  "version": "3.4.1",
  "hash": "7e54def1729951e41a65",
  "publicPath": "dist/",
  "assetsByChunkName": {
    "main": "react-datum.min.js"
  },
  "assets": [
    {
      "name": "react-datum.min.js",
      "size": 165514,
      "chunks": [
        0
      ],
      "chunkNames": [
        "main"
      ]
    }
  ],
  "entrypoints": {
    "main": {
      "chunks": [
        0
      ],
      "assets": [
        "react-datum.min.js"
      ]
    }
  },
  "chunks": [
    {
      "id": 0,
      "rendered": true,
      "initial": true,
      "entry": true,
      "extraAsync": false,
      "size": 241118,
      "names": [
        "main"
      ],
      "files": [
        "react-datum.min.js"
      ],
      "hash": "c939d0803da798aa1d43",
      "parents": [],
      "modules": [
        {
          "id": 0,
          "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/lib/reactLegacy.js",
          "name": "./lib/lib/reactLegacy.js",
          "index": 4,
          "index2": 7,
          "size": 194,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/clickToEditForm.js",
          "issuerId": 17,
          "issuerName": "./lib/clickToEditForm.js",
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 2,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/datum.js",
              "module": "./lib/datums/datum.js",
              "moduleName": "./lib/datums/datum.js",
              "type": "cjs require",
              "userRequest": "../lib/reactLegacy",
              "loc": "24:10-39"
            },
            {
              "moduleId": 6,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/contextualData.js",
              "module": "./lib/contextualData.js",
              "moduleName": "./lib/contextualData.js",
              "type": "cjs require",
              "userRequest": "./lib/reactLegacy",
              "loc": "22:10-38"
            },
            {
              "moduleId": 9,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/number.js",
              "module": "./lib/datums/number.js",
              "moduleName": "./lib/datums/number.js",
              "type": "cjs require",
              "userRequest": "../lib/reactLegacy",
              "loc": "31:10-39"
            },
            {
              "moduleId": 10,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/form.js",
              "module": "./lib/form.js",
              "moduleName": "./lib/form.js",
              "type": "cjs require",
              "userRequest": "./lib/reactLegacy",
              "loc": "29:10-38"
            },
            {
              "moduleId": 11,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/text.js",
              "module": "./lib/datums/text.js",
              "moduleName": "./lib/datums/text.js",
              "type": "cjs require",
              "userRequest": "../lib/reactLegacy",
              "loc": "17:10-39"
            },
            {
              "moduleId": 17,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/clickToEditForm.js",
              "module": "./lib/clickToEditForm.js",
              "moduleName": "./lib/clickToEditForm.js",
              "type": "cjs require",
              "userRequest": "./lib/reactLegacy",
              "loc": "22:10-38"
            },
            {
              "moduleId": 22,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/collection.js",
              "module": "./lib/collection.js",
              "moduleName": "./lib/collection.js",
              "type": "cjs require",
              "userRequest": "./lib/reactLegacy",
              "loc": "19:10-38"
            },
            {
              "moduleId": 25,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/collectionStats.js",
              "module": "./lib/collectionStats.js",
              "moduleName": "./lib/collectionStats.js",
              "type": "cjs require",
              "userRequest": "./lib/reactLegacy",
              "loc": "16:10-38"
            },
            {
              "moduleId": 26,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/model.js",
              "module": "./lib/model.js",
              "moduleName": "./lib/model.js",
              "type": "cjs require",
              "userRequest": "./lib/reactLegacy",
              "loc": "18:10-38"
            },
            {
              "moduleId": 27,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/selectedModel.js",
              "module": "./lib/selectedModel.js",
              "moduleName": "./lib/selectedModel.js",
              "type": "cjs require",
              "userRequest": "./lib/reactLegacy",
              "loc": "22:10-38"
            },
            {
              "moduleId": 28,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/email.js",
              "module": "./lib/datums/email.js",
              "moduleName": "./lib/datums/email.js",
              "type": "cjs require",
              "userRequest": "../lib/reactLegacy",
              "loc": "22:10-39"
            },
            {
              "moduleId": 29,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/lazyPhoto.js",
              "module": "./lib/datums/lazyPhoto.js",
              "moduleName": "./lib/datums/lazyPhoto.js",
              "type": "cjs require",
              "userRequest": "../lib/reactLegacy",
              "loc": "22:10-39"
            },
            {
              "moduleId": 30,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/link.js",
              "module": "./lib/datums/link.js",
              "moduleName": "./lib/datums/link.js",
              "type": "cjs require",
              "userRequest": "../lib/reactLegacy",
              "loc": "17:10-39"
            },
            {
              "moduleId": 31,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/percent.js",
              "module": "./lib/datums/percent.js",
              "moduleName": "./lib/datums/percent.js",
              "type": "cjs require",
              "userRequest": "../lib/reactLegacy",
              "loc": "16:10-39"
            },
            {
              "moduleId": 32,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/label.js",
              "module": "./lib/datums/label.js",
              "moduleName": "./lib/datums/label.js",
              "type": "cjs require",
              "userRequest": "../lib/reactLegacy",
              "loc": "17:10-39"
            },
            {
              "moduleId": 33,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/wholeNumber.js",
              "module": "./lib/datums/wholeNumber.js",
              "moduleName": "./lib/datums/wholeNumber.js",
              "type": "cjs require",
              "userRequest": "../lib/reactLegacy",
              "loc": "16:10-39"
            },
            {
              "moduleId": 34,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/collectionPicker/collectionPicker.js",
              "module": "./lib/datums/collectionPicker/collectionPicker.js",
              "moduleName": "./lib/datums/collectionPicker/collectionPicker.js",
              "type": "cjs require",
              "userRequest": "../../lib/reactLegacy",
              "loc": "30:10-42"
            }
          ],
          "usedExports": true,
          "providedExports": null,
          "optimizationBailout": [],
          "depth": 3,
          "source": "'use strict';\n\n(function () {\n  var React;\n\n  React = require('react');\n\n  if (!React.PropTypes) {\n    React.PropTypes = require('prop-types');\n  }\n\n  module.exports = React;\n}).call(undefined);"
        },
        {
          "id": 1,
          "identifier": "external {\"root\":\"_\",\"commonjs2\":\"underscore\",\"commonjs\":\"underscore\",\"amd\":\"underscore\"}",
          "name": "external {\"root\":\"_\",\"commonjs2\":\"underscore\",\"commonjs\":\"underscore\",\"amd\":\"underscore\"}",
          "index": 15,
          "index2": 10,
          "size": 42,
          "cacheable": false,
          "built": false,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/clickToEditForm.js",
          "issuerId": 17,
          "issuerName": "./lib/clickToEditForm.js",
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 2,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/datum.js",
              "module": "./lib/datums/datum.js",
              "moduleName": "./lib/datums/datum.js",
              "type": "cjs require",
              "userRequest": "underscore",
              "loc": "30:6-27"
            },
            {
              "moduleId": 6,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/contextualData.js",
              "module": "./lib/contextualData.js",
              "moduleName": "./lib/contextualData.js",
              "type": "cjs require",
              "userRequest": "underscore",
              "loc": "26:6-27"
            },
            {
              "moduleId": 8,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/options.js",
              "module": "./lib/options.js",
              "moduleName": "./lib/options.js",
              "type": "cjs require",
              "userRequest": "underscore",
              "loc": "6:6-27"
            },
            {
              "moduleId": 9,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/number.js",
              "module": "./lib/datums/number.js",
              "moduleName": "./lib/datums/number.js",
              "type": "cjs require",
              "userRequest": "underscore",
              "loc": "33:6-27"
            },
            {
              "moduleId": 10,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/form.js",
              "module": "./lib/form.js",
              "moduleName": "./lib/form.js",
              "type": "cjs require",
              "userRequest": "underscore",
              "loc": "37:6-27"
            },
            {
              "moduleId": 11,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/text.js",
              "module": "./lib/datums/text.js",
              "moduleName": "./lib/datums/text.js",
              "type": "cjs require",
              "userRequest": "underscore",
              "loc": "19:6-27"
            },
            {
              "moduleId": 17,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/clickToEditForm.js",
              "module": "./lib/clickToEditForm.js",
              "moduleName": "./lib/clickToEditForm.js",
              "type": "cjs require",
              "userRequest": "underscore",
              "loc": "26:6-27"
            },
            {
              "moduleId": 22,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/collection.js",
              "module": "./lib/collection.js",
              "moduleName": "./lib/collection.js",
              "type": "cjs require",
              "userRequest": "underscore",
              "loc": "23:6-27"
            },
            {
              "moduleId": 24,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/selectable-collection/lib/selectableCollection.js",
              "module": "./node_modules/selectable-collection/lib/selectableCollection.js",
              "moduleName": "./node_modules/selectable-collection/lib/selectableCollection.js",
              "type": "cjs require",
              "userRequest": "underscore",
              "loc": "5:6-27"
            },
            {
              "moduleId": 26,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/model.js",
              "module": "./lib/model.js",
              "moduleName": "./lib/model.js",
              "type": "cjs require",
              "userRequest": "underscore",
              "loc": "22:6-27"
            },
            {
              "moduleId": 28,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/email.js",
              "module": "./lib/datums/email.js",
              "moduleName": "./lib/datums/email.js",
              "type": "cjs require",
              "userRequest": "underscore",
              "loc": "24:6-27"
            },
            {
              "moduleId": 30,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/link.js",
              "module": "./lib/datums/link.js",
              "moduleName": "./lib/datums/link.js",
              "type": "cjs require",
              "userRequest": "underscore",
              "loc": "19:6-27"
            },
            {
              "moduleId": 32,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/label.js",
              "module": "./lib/datums/label.js",
              "moduleName": "./lib/datums/label.js",
              "type": "cjs require",
              "userRequest": "underscore",
              "loc": "19:6-27"
            },
            {
              "moduleId": 34,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/collectionPicker/collectionPicker.js",
              "module": "./lib/datums/collectionPicker/collectionPicker.js",
              "moduleName": "./lib/datums/collectionPicker/collectionPicker.js",
              "type": "cjs require",
              "userRequest": "underscore",
              "loc": "34:6-27"
            },
            {
              "moduleId": 36,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/bumble-strings/lib/bumble-strings.js",
              "module": "./node_modules/bumble-strings/lib/bumble-strings.js",
              "moduleName": "./node_modules/bumble-strings/lib/bumble-strings.js",
              "type": "cjs require",
              "userRequest": "underscore",
              "loc": "5:6-27"
            }
          ],
          "usedExports": true,
          "providedExports": null,
          "optimizationBailout": [],
          "depth": 3
        },
        {
          "id": 2,
          "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/datum.js",
          "name": "./lib/datums/datum.js",
          "index": 13,
          "index2": 12,
          "size": 30204,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
          "issuerId": 15,
          "issuerName": "./index.js",
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 9,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/number.js",
              "module": "./lib/datums/number.js",
              "moduleName": "./lib/datums/number.js",
              "type": "cjs require",
              "userRequest": "./datum",
              "loc": "35:10-28"
            },
            {
              "moduleId": 10,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/form.js",
              "module": "./lib/form.js",
              "moduleName": "./lib/form.js",
              "type": "cjs require",
              "userRequest": "./datums/datum",
              "loc": "33:10-35"
            },
            {
              "moduleId": 11,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/text.js",
              "module": "./lib/datums/text.js",
              "moduleName": "./lib/datums/text.js",
              "type": "cjs require",
              "userRequest": "./datum",
              "loc": "21:10-28"
            },
            {
              "moduleId": 15,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
              "module": "./index.js",
              "moduleName": "./index.js",
              "type": "cjs require",
              "userRequest": "./lib/datums/datum",
              "loc": "14:9-38"
            },
            {
              "moduleId": 28,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/email.js",
              "module": "./lib/datums/email.js",
              "moduleName": "./lib/datums/email.js",
              "type": "cjs require",
              "userRequest": "./datum",
              "loc": "26:10-28"
            },
            {
              "moduleId": 29,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/lazyPhoto.js",
              "module": "./lib/datums/lazyPhoto.js",
              "moduleName": "./lib/datums/lazyPhoto.js",
              "type": "cjs require",
              "userRequest": "./datum",
              "loc": "24:10-28"
            },
            {
              "moduleId": 30,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/link.js",
              "module": "./lib/datums/link.js",
              "moduleName": "./lib/datums/link.js",
              "type": "cjs require",
              "userRequest": "./datum",
              "loc": "21:10-28"
            },
            {
              "moduleId": 34,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/collectionPicker/collectionPicker.js",
              "module": "./lib/datums/collectionPicker/collectionPicker.js",
              "moduleName": "./lib/datums/collectionPicker/collectionPicker.js",
              "type": "cjs require",
              "userRequest": "../datum",
              "loc": "38:10-29"
            }
          ],
          "usedExports": true,
          "providedExports": null,
          "optimizationBailout": [],
          "depth": 2,
          "source": "'use strict';\n\n(function () {\n  var Backbone,\n      Datum,\n      Options,\n      React,\n      ReactDOM,\n      _,\n      bind = function bind(fn, me) {\n    return function () {\n      return fn.apply(me, arguments);\n    };\n  },\n      extend = function extend(child, parent) {\n    for (var key in parent) {\n      if (hasProp.call(parent, key)) child[key] = parent[key];\n    }function ctor() {\n      this.constructor = child;\n    }ctor.prototype = parent.prototype;child.prototype = new ctor();child.__super__ = parent.prototype;return child;\n  },\n      hasProp = {}.hasOwnProperty;\n\n  React = require('../lib/reactLegacy');\n\n  ReactDOM = require('react-dom');\n\n  Backbone = require('backbone');\n\n  _ = require('underscore');\n\n  Options = require('../options');\n\n  module.exports = Datum = function (superClass) {\n    extend(Datum, superClass);\n\n    Datum.displayName = \"react-datum.Datum\";\n\n    Datum.propTypes = {\n      className: React.PropTypes.string,\n      model: React.PropTypes.oneOfType([React.PropTypes.instanceOf(Backbone.Model), React.PropTypes.object]),\n      attr: React.PropTypes.string,\n      label: React.PropTypes.node,\n      tooltip: React.PropTypes.string,\n      placeholder: React.PropTypes.node,\n      inputMode: React.PropTypes.oneOf(['readonly', 'edit', 'inlineEdit']),\n      getMetadata: React.PropTypes.func,\n      noPopover: React.PropTypes.bool,\n      rbOverlayProps: React.PropTypes.object,\n      setOnChange: React.PropTypes.bool,\n      setOnBlur: React.PropTypes.bool,\n      saveOnSet: React.PropTypes.bool,\n      modelSaveMethod: React.PropTypes.string,\n      modelSaveOptions: React.PropTypes.object,\n      savedIndicatorTimeout: React.PropTypes.number,\n      readonly: React.PropTypes.bool,\n      required: React.PropTypes.bool,\n      style: React.PropTypes.object,\n      asDiv: React.PropTypes.bool,\n      onChange: React.PropTypes.func,\n      value: React.PropTypes.node,\n      stateless: React.PropTypes.bool\n    };\n\n    Datum.defaultProps = {\n      setOnBlur: true,\n      setOnChange: false,\n      saveOnSet: false,\n      modelSaveMethod: 'save',\n      savedIndicatorTimeout: 5000\n    };\n\n    Datum.contextTypes = {\n      model: React.PropTypes.oneOfType([React.PropTypes.instanceOf(Backbone.Model), React.PropTypes.object]),\n      inputMode: React.PropTypes.oneOf(['readonly', 'edit', 'inlineEdit']),\n      form: React.PropTypes.object\n    };\n\n    Datum.prototype.subClassName = null;\n\n    Datum.prototype.className = 'datum';\n\n    Datum.inlineEditor = null;\n\n    Datum.prototype.validations = [];\n\n    function Datum(props) {\n      this.validateRequired = bind(this.validateRequired, this);\n      this.focus = bind(this.focus, this);\n      this.onInputRef = bind(this.onInputRef, this);\n      this.getInputComponent = bind(this.getInputComponent, this);\n      this.setValue = bind(this.setValue, this);\n      this.onInputKeyDown = bind(this.onInputKeyDown, this);\n      this.onDocumentKeydown = bind(this.onDocumentKeydown, this);\n      this.onDocumentClick = bind(this.onDocumentClick, this);\n      this.onModelSaveError = bind(this.onModelSaveError, this);\n      this.onModelSaveSuccess = bind(this.onModelSaveSuccess, this);\n      this.onBlur = bind(this.onBlur, this);\n      this.onChange = bind(this.onChange, this);\n      this.onEditClick = bind(this.onEditClick, this);\n      this.addValidations = bind(this.addValidations, this);\n      Datum.__super__.constructor.call(this, props);\n      this.initializeState();\n      this.addValidations(this.validateRequired);\n    }\n\n    Datum.prototype.initializeState = function () {\n      var ref;\n      return this.state = _.extend((ref = this.state) != null ? ref : {}, {\n        value: this.getModelValue(),\n        errors: [],\n        isDirty: false,\n        saving: false,\n        saved: null\n      });\n    };\n\n    Datum.prototype.componentWillMount = function () {};\n\n    Datum.prototype.componentDidMount = function () {\n      var modelValue, ref, ref1;\n      if ((ref = this.context) != null) {\n        if ((ref1 = ref.form) != null) {\n          if (typeof ref1.addDatum === \"function\") {\n            ref1.addDatum(this);\n          }\n        }\n      }\n      modelValue = this.getModelValue();\n      document.addEventListener('click', this.onDocumentClick);\n      return document.addEventListener('keydown', this.onDocumentKeydown);\n    };\n\n    /* !pragma coverage-skip-next */\n\n    Datum.prototype.componentWillReceiveProps = function (nextProps) {\n      var newModelValue, prevModelValue;\n      prevModelValue = this.getModelValue(this.props);\n      newModelValue = this.getModelValue(nextProps);\n      if (JSON.stringify(prevModelValue) !== JSON.stringify(newModelValue)) {\n        return this.setState({\n          value: newModelValue\n        });\n      }\n    };\n\n    /* !pragma coverage-skip-next */\n\n    Datum.prototype.componentWillUnmount = function () {\n      var ref, ref1;\n      if ((ref = this.context) != null) {\n        if ((ref1 = ref.form) != null) {\n          if (typeof ref1.removeDatum === \"function\") {\n            ref1.removeDatum(this);\n          }\n        }\n      }\n      if (this.isDirty() && this.shouldSetOnBlur()) {\n        this.setValue(this.state.value, {\n          setModelValue: true\n        });\n      }\n      document.removeEventListener('click', this.onDocumentClick);\n      return document.removeEventListener('keydown', this.onDocumentKeydown);\n    };\n\n    Datum.prototype.render = function () {\n      return this.renderDatumWrapper(function (_this) {\n        return function () {\n          if (_this.isEditing()) {\n            return _this.renderForInput();\n          } else {\n            return _this.renderForDisplay();\n          }\n        };\n      }(this));\n    };\n\n    Datum.prototype.renderDatumWrapper = function (contentFn) {\n      var wrapperProps;\n      wrapperProps = {\n        className: this.getFullClassName(),\n        'data-zattr': this.getAttr(),\n        style: this.props.style || {}\n      };\n      if (this.props.asDiv) {\n        return React.createElement(\"div\", Object.assign({}, wrapperProps), contentFn());\n      } else {\n        return React.createElement(\"span\", Object.assign({}, wrapperProps), contentFn());\n      }\n    };\n\n    Datum.prototype.renderForDisplay = function () {\n      return React.createElement(\"span\", null, this.renderLabel(), this.renderValueOrPlaceholder(), this.renderIcons());\n    };\n\n    Datum.prototype.renderLabel = function () {\n      var label, labelProps, tooltip;\n      labelProps = {};\n      tooltip = this.getPropOrMetadata('tooltip');\n      label = this.getPropOrMetadata('label') != null ? this.renderWithPopover(React.createElement(\"label\", Object.assign({}, labelProps), this.getPropOrMetadata('label')), tooltip, 'datumTooltip', 'datum-tooltip') : null;\n      return label;\n    };\n\n    /*\n      Override this method only if you need to not render the placeholder.\n     */\n\n    Datum.prototype.renderValueOrPlaceholder = function () {\n      var displayValue, placeholderValue;\n      if (this.getModelValue() != null) {\n        displayValue = this.renderValueForDisplay();\n        return this.renderWrappedDisplayValue(displayValue);\n      } else {\n        placeholderValue = this.renderPlaceholder();\n        return this.renderWrappedDisplayValue(placeholderValue);\n      }\n    };\n\n    /*\n      In most cases, this is the method you want to override in a custom datum to \n      alter the way the model attribute is displayed when inputMode='readonly'\n      \n      This method is only called if the model value is not null.\n     */\n\n    Datum.prototype.renderValueForDisplay = function () {\n      return this.getValueForDisplay();\n    };\n\n    Datum.prototype.renderWrappedDisplayValue = function (value) {\n      return React.createElement(\"span\", {\n        \"className\": \"datum-display-value\",\n        \"onClick\": this.onEditClick,\n        \"style\": this.props.style\n      }, value);\n    };\n\n    Datum.prototype.renderPlaceholder = function () {\n      var placeholder;\n      placeholder = this.getPropOrMetadata('placeholder');\n      if (placeholder == null) {\n        return null;\n      }\n      return React.createElement(\"span\", {\n        \"className\": \"placeholder\"\n      }, placeholder);\n    };\n\n    /*\n      Note that this method is not called by Datum directly.  It is \n      provided here in the Datum base class so that any Datum extensions \n      can ellipsize whatever part of their rendering neccessary and have \n      a consistent prop and method for doing so.\n     */\n\n    Datum.prototype.renderEllipsizedValue = function (value, options) {\n      var ellipsizeAt, ellipsizedValue;\n      if (options == null) {\n        options = {};\n      }\n      if (value == null) {\n        return value;\n      }\n      ellipsizeAt = this.getEllipsizeAt();\n      if (value && _.isString(value) && ellipsizeAt && value.length > ellipsizeAt) {\n        if (this.props.reverseEllipsis) {\n          ellipsizedValue = '...' + value.slice(value.length - (ellipsizeAt - 3), value.length - 1);\n        } else {\n          ellipsizedValue = value.slice(0, ellipsizeAt - 3) + '...';\n        }\n        return this.renderWithPopover(ellipsizedValue, value, 'datumEllipsizedValue', 'datum-ellipsized');\n      }\n      return value;\n    };\n\n    Datum.prototype.renderForInput = function () {\n      return React.createElement(\"span\", {\n        \"className\": \"datum-input\",\n        \"data-value\": this.getValueForInput()\n      }, this.renderLabel(), this.renderInput(), this.renderIcons());\n    };\n\n    /*\n      In most cases this is the method you want to override to alter the presentation of the datum when\n      inputMode='edit'.\n      \n      If you override this method, be sure to add @onBlur() and @onChange() to your input\n      component\n     */\n\n    Datum.prototype.renderInput = function () {\n      return React.createElement(\"input\", Object.assign({}, this.getInputComponentOptions()));\n    };\n\n    /*\n      Override / extend this method to add or alter icons presented after datum.\n      \n      Datum implementation renders the error icon if needed.\n     */\n\n    Datum.prototype.renderIcons = function () {\n      var className, errorIcon, errorIconClass, errors;\n      if (!(this.state.errors.length > 0)) {\n        return null;\n      }\n      errors = [];\n      className = \"error validation\";\n      errorIconClass = Options.get('errorIconClass');\n      errorIcon = errorIconClass != null ? React.createElement(\"i\", {\n        \"className\": errorIconClass\n      }) : '!';\n      errors = this.renderErrors();\n      return this.renderWithPopover(errorIcon, errors, 'datumInvalid', 'datum-invalid');\n    };\n\n    /*\n      Override / extend this method to control what is rendered in the error icon popup\n     */\n\n    Datum.prototype.renderErrors = function () {\n      var error, errors, i, len, ref;\n      errors = [];\n      if (this.getReactBootstrap() != null && !this.props.noPopover) {\n        ref = this.state.errors;\n        for (i = 0, len = ref.length; i < len; i++) {\n          error = ref[i];\n          errors.push(React.createElement(\"div\", null, error));\n        }\n      } else {\n        errors = this.state.errors.join('\\n');\n      }\n      return errors;\n    };\n\n    /*\n      You can use this to render a value with the standard popover treatment or \n      extend and override to effect the standard popover treatment\n     */\n\n    Datum.prototype.renderWithPopover = function (value, tooltip, popoverId, valueClass) {\n\n      /* !pragma coverage-skip-block */\n      var Rb, popover, rValue, rbOverlayProps;\n      if (tooltip == null) {\n        return value;\n      }\n      Rb = this.getReactBootstrap();\n      if (Rb != null && !this.props.noPopover) {\n        popover = React.createElement(Rb.Popover, {\n          \"id\": popoverId\n        }, tooltip);\n        rbOverlayProps = this.getRbOverlayProps(value, popoverId);\n        rValue = React.createElement(Rb.OverlayTrigger, Object.assign({\n          \"overlay\": popover\n        }, rbOverlayProps), React.createElement(\"span\", {\n          \"className\": valueClass\n        }, value));\n      } else {\n        rValue = React.createElement(\"span\", {\n          \"className\": valueClass,\n          \"title\": tooltip\n        }, value);\n      }\n      return rValue;\n    };\n\n    /*\n      Override this method to provide things like custom positioning of error popovers\n     */\n\n    Datum.prototype.getRbOverlayProps = function (value, popoverId) {\n\n      /* !pragma coverage-skip-block */\n      var ref;\n      return (ref = this.props.rbOverlayProps) != null ? ref : Options.get('RbOverlayProps');\n    };\n\n    /*\n      This method can be overriden to provide custom determination of dirty state.\n      dirty meaning, has the input value changed.  The base implementation assumes\n      that the base behavior of setting state.value to null on model.set() happens.\n     */\n\n    Datum.prototype.isDirty = function () {\n      return this.state.isDirty;\n    };\n\n    /*\n      This method is called to determine if the inputMode (prop, context) is one\n      of the editable types.  ('edit' or 'inlineEdit')\n      \n      Note that a return of true does NOT indicate that the Datum is in its \n      edit display.  If the component is an inputMode='inlineEdit', in may be\n      showing it's display presentation.  See also isEditing()\n     */\n\n    Datum.prototype.isEditable = function () {\n      var inputMode;\n      inputMode = this.getInputMode();\n      if (inputMode === \"edit\" || inputMode === \"inlineEdit\") {\n        return true;\n      }\n    };\n\n    /*\n      This method is called to determine if the Datum is displaying its input\n      presentation.\n     */\n\n    Datum.prototype.isEditing = function () {\n      var inputMode;\n      inputMode = this.getInputMode();\n      return inputMode === 'edit' || this.isInlineEdit() && this.constructor.inlineEditor === this;\n    };\n\n    Datum.prototype.isInlineEdit = function () {\n      return this.getInputMode() === 'inlineEdit';\n    };\n\n    Datum.prototype.cancelEdit = function () {\n      return this.setState({\n        errors: [],\n        value: this.getModelValue()\n      });\n    };\n\n    /*\n      When extending Datum, use @addValidations from constructor to add additional validations.\n      'required' validation is automatically added (only invalid if empty and has 'required' prop)\n      \n      For example, see [Number datum](#Number)\n      \n      You can add validations to an individual instance of any Datum extension.\n      \n      `validations` argument should be one or an array of methods that accept the (value) to\n      validate and return true if valid, false if not.\n     */\n\n    Datum.prototype.addValidations = function (validations) {\n      if (!_.isArray(validations)) {\n        validations = [validations];\n      }\n      return this.validations = this.validations.concat(validations);\n    };\n\n    Datum.prototype.getInputMode = function () {\n      if (this.props.readonly) {\n        return \"readonly\";\n      }\n      return this.props.inputMode || this.context.inputMode || \"readonly\";\n    };\n\n    Datum.prototype.getInputComponentOptions = function () {\n      var placeholder, value;\n      placeholder = this.getPropOrMetadata('placeholder') || \"\";\n      value = this.getValueForInput();\n      return {\n        type: \"text\",\n        placeholder: placeholder,\n        value: value,\n        onChange: this.onChange,\n        onBlur: this.onBlur,\n        onKeyDown: this.onInputKeyDown,\n        ref: this.onInputRef\n      };\n    };\n\n    /* \n      This method should return the value for display from the model. You \n      can extend this method in a custom Datum to coerce or manipulate just\n      the value used for display.   \n      \n      In most cases, you'll probably want to extend the Datum.renderValueForDisplay() \n      instead\n     */\n\n    Datum.prototype.getValueForDisplay = function () {\n      return this.getModelValue();\n    };\n\n    /*\n      Extend this method to coerce or intepret the value from the model\n      that is displayed when in input\n     */\n\n    Datum.prototype.getValueForInput = function () {\n      if (!this.props.stateless && this.state.value !== void 0) {\n        return this.state.value;\n      } else {\n        return this.getModelValue();\n      }\n    };\n\n    /*\n      DEPRECATED (use getValueForInput): this method returns the value in the input as seen by user\n     */\n\n    Datum.prototype.getInputValue = function () {\n      return this.state.value;\n    };\n\n    /*\n      Extend this method to change how to get the input element's value from a \n      change event.   The base class impl get's the value from event.target.value\n      by default.\n     */\n\n    Datum.prototype.getValueFromInput = function (event) {\n      var ref, ref1, ref2;\n      return (ref = (ref1 = event != null ? (ref2 = event.target) != null ? ref2.value : void 0 : void 0) != null ? ref1 : event != null ? event.value : void 0) != null ? ref : event;\n    };\n\n    /*\n      returns the Backbone Model currently associated with the datum.\n     */\n\n    Datum.prototype.getModel = function (newProps, newContext) {\n      if (newProps == null) {\n        newProps = this.props;\n      }\n      if (newContext == null) {\n        newContext = this.context;\n      }\n      return (newProps != null ? newProps.model : void 0) || (newContext != null ? newContext.model : void 0) || new Backbone.Model();\n    };\n\n    /*\n      Returns the value set via value prop or the value currently set on the model\n      \n      warning: Do not override this method to return a component element or jsx; bad things will happen.\n     */\n\n    Datum.prototype.getModelValue = function (newProps, newContext) {\n      var model, ref, ref1, value;\n      if (newProps == null) {\n        newProps = this.props;\n      }\n      if (newContext == null) {\n        newContext = this.context;\n      }\n      if (newProps.value !== void 0) {\n        return (ref = (ref1 = this.state) != null ? ref1.shadowValue : void 0) != null ? ref : newProps.value;\n      }\n      if (!(model = this.getModel(newProps, newContext))) {\n        return null;\n      }\n      value = _.isFunction(model.get) ? model.get(this.getAttr(newProps)) : model[this.getAttr(newProps)];\n      return value;\n    };\n\n    /*\n      When extending react datum, use this method to get the attribute name specified\n      to the component as props.attr.  \n      \n      You can also override this method in an extension to dynamically select the attribute\n      to get from the model.  For say an international price datum that selects a price\n      attribute based on the local currency  (not a contrived example)\n     */\n\n    Datum.prototype.getAttr = function (props) {\n      if (props == null) {\n        props = this.props;\n      }\n      return props.attr;\n    };\n\n    /*\n      Extend this method to interpret the value prior to saving for example a Percent datum\n      that the user enters a value that is 100x what gets saved to model\n      \n      options pass through to model.set()\n     */\n\n    Datum.prototype.setModelValue = function (value, options) {\n      var attr, model;\n      if (options == null) {\n        options = {};\n      }\n      if (value === void 0) {\n        value = this.getInputValue();\n        if (value === void 0) {\n          return;\n        }\n      }\n      model = this.getModel();\n      attr = this.getAttr();\n      if (model != null) {\n        if (_.isFunction(model.set)) {\n          model.set(attr, value, options);\n        } else {\n          model[attr] = value;\n        }\n        if (this.props.saveOnSet || options.saveOnset) {\n          this.saveModel();\n        }\n      }\n      if (this.props.value !== void 0) {\n        return this.setState({\n          shadowValue: value\n        });\n      }\n    };\n\n    Datum.prototype.saveModel = function () {\n      var model;\n      model = this.getModel();\n      if (model == null) {\n        return;\n      }\n      if (_.isFunction(model[this.props.modelSaveMethod])) {\n        return this.setState({\n          saving: true\n        }, function (_this) {\n          return function () {\n            return model[_this.props.modelSaveMethod]({}, _this.getModelSaveOptions());\n          };\n        }(this));\n      } else {\n        return console.error(\"Datum:setModelValue - saveOnSet true but modelSaveMethod (\" + this.props.modelSaveMethod + \") is not a function on model\");\n      }\n    };\n\n    Datum.prototype.getModelSaveOptions = function () {\n      var originalError, originalSuccess, saveOptions;\n      saveOptions = _.extend({}, this.props.modelSaveOptions);\n      originalSuccess = saveOptions.success;\n      originalError = saveOptions.error;\n      saveOptions.success = function (_this) {\n        return function (model, resp) {\n          _this.onModelSaveSuccess(model, resp);\n          return typeof originalSuccess === \"function\" ? originalSuccess(model, resp, _this) : void 0;\n        };\n      }(this);\n      saveOptions.error = function (_this) {\n        return function (model, resp) {\n          _this.onModelSaveError(model, resp);\n          return typeof originalError === \"function\" ? originalError(model, resp, _this) : void 0;\n        };\n      }(this);\n      return saveOptions;\n    };\n\n    Datum.prototype.getEllipsizeAt = function () {\n      return this.props.ellipsizeAt;\n    };\n\n    /*\n      Override / extend this method to add conditional css classes to the outer datum element\n     */\n\n    Datum.prototype.getFullClassName = function () {\n      var className, ref;\n      className = this.subClassName != null ? this.className + \" \" + this.subClassName : this.className;\n      if (this.props.required) {\n        className += \" required\";\n      }\n      if (((ref = this.state.errors) != null ? ref.length : void 0) > 0) {\n        className += \" invalid\";\n      }\n      if (this.state.saving) {\n        className += \" saving\";\n      }\n      if (this.state.saved === false) {\n        className += \" not-saved\";\n      }\n      if (this.state.saved === true) {\n        className += \" saved\";\n      }\n      if (this.props.className != null) {\n        className += \" \" + this.props.className;\n      }\n      return className;\n    };\n\n    Datum.prototype.getPropOrMetadata = function (prop) {\n      var base, ref;\n      if (this.props[prop] !== void 0) {\n        return this.props[prop];\n      }\n      return (typeof (base = this.props).getMetadata === \"function\" ? base.getMetadata(prop, this) : void 0) || ((ref = this.getModel()) != null ? typeof ref.getDatumMetadata === \"function\" ? ref.getDatumMetadata(prop, this) : void 0 : void 0) || void 0;\n    };\n\n    Datum.prototype.getReactBootstrap = function () {\n      return Options.get('ReactBootstrap') || (typeof window !== \"undefined\" && window !== null ? window.ReactBootstrap : void 0);\n    };\n\n    Datum.prototype.shouldSetOnChange = function () {\n      return this.props.setOnChange === true || this.isInlineEdit() && !this.props.setOnChange === false;\n    };\n\n    Datum.prototype.shouldSetOnBlur = function () {\n      return this.props.setOnBlur === true && !this.shouldSetOnChange() && !this.props.multi;\n    };\n\n    Datum.prototype.onEditClick = function (synthEvent) {\n      var ref;\n      if (this.inlineToEditMode()) {\n        synthEvent.stopPropagation();\n        return (ref = synthEvent.nativeEvent) != null ? typeof ref.stopImmediatePropagation === \"function\" ? ref.stopImmediatePropagation() : void 0 : void 0;\n      }\n    };\n\n    Datum.prototype.onChange = function (event, options) {\n      var value;\n      if (options == null) {\n        options = {};\n      }\n      options = _.defaults(options, {\n        silent: false,\n        event: event,\n        propsOnChangeValue: null\n      });\n      value = this.getValueFromInput(event);\n      this.setValue(value, {\n        setModelValue: this.shouldSetOnChange()\n      });\n      if (this.shouldSetOnChange()) {\n        this.inlineToDisplayMode();\n      }\n      if (this.props.onChange != null && !options.silent) {\n        return this.props.onChange(options.propsOnChangeValue || value, this, options);\n      }\n    };\n\n    Datum.prototype.onBlur = function (event) {\n      var value;\n      value = this.getInputValue();\n      if (!this.hasInputValueChanged()) {\n        return;\n      }\n      this.setValue(value, {\n        setModelValue: this.shouldSetOnBlur()\n      });\n      return this.inlineToDisplayMode();\n    };\n\n    Datum.prototype.onModelSaveSuccess = function (model, resp) {\n      this.setState({\n        saving: false,\n        saved: true\n      });\n      if (this.props.savedIndicatorTimeout != null) {\n        return _.delay(function (_this) {\n          return function () {\n            return _this.setState({\n              saved: null\n            });\n          };\n        }(this), this.props.savedIndicatorTimeout);\n      }\n    };\n\n    Datum.prototype.onModelSaveError = function (model, resp) {\n      var errors, ref, ref1;\n      errors = this.state.errors || [];\n      errors.push(\"Unable to save value. Error: \" + ((ref = (ref1 = resp.responseText) != null ? ref1 : resp.statusText) != null ? ref : resp));\n      this.setState({\n        saving: false,\n        saved: false,\n        errors: errors\n      });\n      if (this.props.savedIndicatorTimeout != null) {\n        return _.delay(function (_this) {\n          return function () {\n            return _this.setState({\n              saved: null\n            });\n          };\n        }(this), this.props.savedIndicatorTimeout);\n      }\n    };\n\n    /*\n      Extend this method to run code when the model value change is detected\n      when props are changed\n     */\n\n    Datum.prototype.onModelValueChange = function (oldModelValue, newModelValue) {\n      return this.setState({\n        value: newModelValue\n      });\n    };\n\n    Datum.prototype.onDocumentClick = function (evt) {\n      if (this.isInlineEdit() && this.isEditing() && !this.isElementOrParentOf(evt.target, ReactDOM.findDOMNode(this))) {\n        return this.inlineToDisplayMode();\n      }\n    };\n\n    Datum.prototype.onDocumentKeydown = function (evt) {\n      if (evt.keyCode === 27 && (typeof this.isInlineEdit === \"function\" ? this.isInlineEdit() : void 0) && (typeof this.isEditing === \"function\" ? this.isEditing() : void 0)) {\n        return this.inlineToDisplayMode();\n      }\n    };\n\n    Datum.prototype.isElementOrParentOf = function (elementInQuestion, parentElement) {\n      var el;\n      el = elementInQuestion;\n      while (el != null) {\n        if (el === parentElement) {\n          return true;\n        }\n        el = el.parentElement;\n      }\n      return false;\n    };\n\n    Datum.prototype.hasInputValueChanged = function () {\n      var inputValue;\n      inputValue = this.getInputValue();\n      return inputValue !== void 0 && inputValue !== this.getModelValue();\n    };\n\n    Datum.prototype.inlineToDisplayMode = function () {\n      if (!this.isInlineEdit()) {\n        return false;\n      }\n      if (this.constructor.inlineEditor === this) {\n        this.constructor.inlineEditor = null;\n        this.forceUpdate();\n      }\n      return true;\n    };\n\n    Datum.prototype.inlineToEditMode = function () {\n      if (!this.isInlineEdit()) {\n        return false;\n      }\n      if (this.constructor.inlineEditor != null) {\n        this.constructor.inlineEditor.inlineToDisplayMode();\n      }\n      this.constructor.inlineEditor = this;\n      this.forceUpdate();\n      _.defer(function (_this) {\n        return function () {\n          return _this.focus();\n        };\n      }(this));\n      return true;\n    };\n\n    Datum.prototype.onInputKeyDown = function (event) {\n      var base;\n      return typeof (base = this.props).onKeyDown === \"function\" ? base.onKeyDown(event) : void 0;\n    };\n\n    Datum.prototype.setValue = function (newValue, options) {\n      var valid;\n      if (options == null) {\n        options = {};\n      }\n      options = _.defaults(options, {\n        setModelValue: false\n      });\n      valid = this.validate(newValue);\n      if (options.setModelValue) {\n        this.setModelValue(newValue, options);\n        this.setState({\n          isDirty: false\n        });\n      } else {\n        this.setState({\n          isDirty: true\n        });\n      }\n      return this.setState({\n        value: newValue\n      });\n    };\n\n    /*\n      This method can be used to get at the inner input component if one exists, only\n      while inputMode=='edit'\n     */\n\n    Datum.prototype.getInputComponent = function () {\n      return this.inputComponent;\n    };\n\n    Datum.prototype.onInputRef = function (input) {\n      return this.inputComponent = input;\n    };\n\n    Datum.prototype.focus = function () {\n      var node;\n      if (this.getInputComponent() != null) {\n        node = ReactDOM.findDOMNode(this.getInputComponent());\n        node.focus();\n        return node.select();\n      }\n    };\n\n    /*\n      This method is called to validate the value in the input.\n      \n      Note that validations such as props.required also need to apply if the user \n      hasn't changed the input, so the default value is the coalesce of state.value\n      or model value.  state.value (see getInputValue()) is null if the user has\n      not made changes.\n     */\n\n    Datum.prototype.validate = function (value) {\n      var errors, i, len, ref, valid, validation;\n      if (value == null) {\n        value = this.getValueForInput();\n      }\n      this.setState({\n        errors: []\n      });\n      errors = [];\n      ref = this.validations;\n      for (i = 0, len = ref.length; i < len; i++) {\n        validation = ref[i];\n        valid = validation(value);\n        if (valid !== true) {\n          errors.push(valid);\n        }\n      }\n      this.setState({\n        errors: errors\n      });\n      return errors.length === 0;\n    };\n\n    Datum.prototype.validateRequired = function (value) {\n      if (!this.props.required) {\n        return true;\n      }\n      if (!(_.isNull(value) || _.isEmpty(value) || _.isUndefined(value))) {\n        return true;\n      }\n      return \"This input is required\";\n    };\n\n    /*\n      This method can be used to clear any validation or save errors manually\n     */\n\n    Datum.prototype.clearErrors = function () {\n      if (_.isArray(this.state.errors) && this.state.errors.length > 0) {\n        return this.setState({\n          errors: []\n        });\n      }\n    };\n\n    return Datum;\n  }(React.Component);\n}).call(undefined);"
        },
        {
          "id": 3,
          "identifier": "external {\"root\":\"Backbone\",\"commonjs2\":\"backbone\",\"commonjs\":\"backbone\",\"amd\":\"backbone\"}",
          "name": "external {\"root\":\"Backbone\",\"commonjs2\":\"backbone\",\"commonjs\":\"backbone\",\"amd\":\"backbone\"}",
          "index": 14,
          "index2": 9,
          "size": 42,
          "cacheable": false,
          "built": false,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/contextualData.js",
          "issuerId": 6,
          "issuerName": "./lib/contextualData.js",
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 2,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/datum.js",
              "module": "./lib/datums/datum.js",
              "moduleName": "./lib/datums/datum.js",
              "type": "cjs require",
              "userRequest": "backbone",
              "loc": "28:13-32"
            },
            {
              "moduleId": 6,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/contextualData.js",
              "module": "./lib/contextualData.js",
              "moduleName": "./lib/contextualData.js",
              "type": "cjs require",
              "userRequest": "backbone",
              "loc": "24:13-32"
            },
            {
              "moduleId": 10,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/form.js",
              "module": "./lib/form.js",
              "moduleName": "./lib/form.js",
              "type": "cjs require",
              "userRequest": "backbone",
              "loc": "35:13-32"
            },
            {
              "moduleId": 22,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/collection.js",
              "module": "./lib/collection.js",
              "moduleName": "./lib/collection.js",
              "type": "cjs require",
              "userRequest": "backbone",
              "loc": "21:13-32"
            },
            {
              "moduleId": 25,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/collectionStats.js",
              "module": "./lib/collectionStats.js",
              "moduleName": "./lib/collectionStats.js",
              "type": "cjs require",
              "userRequest": "backbone",
              "loc": "18:13-32"
            },
            {
              "moduleId": 26,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/model.js",
              "module": "./lib/model.js",
              "moduleName": "./lib/model.js",
              "type": "cjs require",
              "userRequest": "backbone",
              "loc": "20:13-32"
            },
            {
              "moduleId": 27,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/selectedModel.js",
              "module": "./lib/selectedModel.js",
              "moduleName": "./lib/selectedModel.js",
              "type": "cjs require",
              "userRequest": "backbone",
              "loc": "24:13-32"
            },
            {
              "moduleId": 34,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/collectionPicker/collectionPicker.js",
              "module": "./lib/datums/collectionPicker/collectionPicker.js",
              "moduleName": "./lib/datums/collectionPicker/collectionPicker.js",
              "type": "cjs require",
              "userRequest": "backbone",
              "loc": "32:13-32"
            }
          ],
          "usedExports": true,
          "providedExports": null,
          "optimizationBailout": [],
          "depth": 3
        },
        {
          "id": 4,
          "identifier": "external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}",
          "name": "external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}",
          "index": 5,
          "index2": 1,
          "size": 42,
          "cacheable": false,
          "built": false,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/react-select/lib/Option.js",
          "issuerId": 38,
          "issuerName": "./node_modules/react-select/lib/Option.js",
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 0,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/lib/reactLegacy.js",
              "module": "./lib/lib/reactLegacy.js",
              "moduleName": "./lib/lib/reactLegacy.js",
              "type": "cjs require",
              "userRequest": "react",
              "loc": "6:10-26"
            },
            {
              "moduleId": 12,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/react-select/dist/react-select.es.js",
              "module": "./node_modules/react-select/dist/react-select.es.js",
              "moduleName": "./node_modules/react-select/dist/react-select.es.js",
              "type": "harmony import",
              "userRequest": "react",
              "loc": "4:0-41"
            },
            {
              "moduleId": 37,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/react-input-autosize/lib/AutosizeInput.js",
              "module": "./node_modules/react-input-autosize/lib/AutosizeInput.js",
              "moduleName": "./node_modules/react-input-autosize/lib/AutosizeInput.js",
              "type": "cjs require",
              "userRequest": "react",
              "loc": "11:13-29"
            },
            {
              "moduleId": 38,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/react-select/lib/Option.js",
              "module": "./node_modules/react-select/lib/Option.js",
              "moduleName": "./node_modules/react-select/lib/Option.js",
              "type": "cjs require",
              "userRequest": "react",
              "loc": "17:13-29"
            }
          ],
          "usedExports": true,
          "providedExports": null,
          "optimizationBailout": [],
          "depth": 3
        },
        {
          "id": 5,
          "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/prop-types/index.js",
          "name": "./node_modules/prop-types/index.js",
          "index": 6,
          "index2": 6,
          "size": 956,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/react-select/lib/Option.js",
          "issuerId": 38,
          "issuerName": "./node_modules/react-select/lib/Option.js",
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 0,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/lib/reactLegacy.js",
              "module": "./lib/lib/reactLegacy.js",
              "moduleName": "./lib/lib/reactLegacy.js",
              "type": "cjs require",
              "userRequest": "prop-types",
              "loc": "9:22-43"
            },
            {
              "moduleId": 12,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/react-select/dist/react-select.es.js",
              "module": "./node_modules/react-select/dist/react-select.es.js",
              "moduleName": "./node_modules/react-select/dist/react-select.es.js",
              "type": "harmony import",
              "userRequest": "prop-types",
              "loc": "3:0-35"
            },
            {
              "moduleId": 37,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/react-input-autosize/lib/AutosizeInput.js",
              "module": "./node_modules/react-input-autosize/lib/AutosizeInput.js",
              "moduleName": "./node_modules/react-input-autosize/lib/AutosizeInput.js",
              "type": "cjs require",
              "userRequest": "prop-types",
              "loc": "15:17-38"
            },
            {
              "moduleId": 38,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/react-select/lib/Option.js",
              "module": "./node_modules/react-select/lib/Option.js",
              "moduleName": "./node_modules/react-select/lib/Option.js",
              "type": "cjs require",
              "userRequest": "prop-types",
              "loc": "13:17-38"
            }
          ],
          "usedExports": true,
          "providedExports": null,
          "optimizationBailout": [],
          "depth": 3,
          "source": "/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n  var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n    Symbol.for &&\n    Symbol.for('react.element')) ||\n    0xeac7;\n\n  var isValidElement = function(object) {\n    return typeof object === 'object' &&\n      object !== null &&\n      object.$$typeof === REACT_ELEMENT_TYPE;\n  };\n\n  // By explicitly using `prop-types` you are opting into new development behavior.\n  // http://fb.me/prop-types-in-prod\n  var throwOnDirectAccess = true;\n  module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n  // By explicitly using `prop-types` you are opting into new production behavior.\n  // http://fb.me/prop-types-in-prod\n  module.exports = require('./factoryWithThrowingShims')();\n}\n"
        },
        {
          "id": 6,
          "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/contextualData.js",
          "name": "./lib/contextualData.js",
          "index": 17,
          "index2": 15,
          "size": 6906,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
          "issuerId": 15,
          "issuerName": "./index.js",
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 15,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
              "module": "./index.js",
              "moduleName": "./index.js",
              "type": "cjs require",
              "userRequest": "./lib/contextualData",
              "loc": "6:18-49"
            },
            {
              "moduleId": 22,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/collection.js",
              "module": "./lib/collection.js",
              "moduleName": "./lib/collection.js",
              "type": "cjs require",
              "userRequest": "./contextualData",
              "loc": "27:19-46"
            },
            {
              "moduleId": 26,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/model.js",
              "module": "./lib/model.js",
              "moduleName": "./lib/model.js",
              "type": "cjs require",
              "userRequest": "./contextualData",
              "loc": "24:19-46"
            },
            {
              "moduleId": 27,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/selectedModel.js",
              "module": "./lib/selectedModel.js",
              "moduleName": "./lib/selectedModel.js",
              "type": "cjs require",
              "userRequest": "./contextualData",
              "loc": "26:19-46"
            }
          ],
          "usedExports": true,
          "providedExports": null,
          "optimizationBailout": [],
          "depth": 2,
          "source": "'use strict';\n\n(function () {\n  var Backbone,\n      ContextualData,\n      React,\n      _,\n      bind = function bind(fn, me) {\n    return function () {\n      return fn.apply(me, arguments);\n    };\n  },\n      extend = function extend(child, parent) {\n    for (var key in parent) {\n      if (hasProp.call(parent, key)) child[key] = parent[key];\n    }function ctor() {\n      this.constructor = child;\n    }ctor.prototype = parent.prototype;child.prototype = new ctor();child.__super__ = parent.prototype;return child;\n  },\n      hasProp = {}.hasOwnProperty;\n\n  React = require('./lib/reactLegacy');\n\n  Backbone = require('backbone');\n\n  _ = require('underscore');\n\n  /*\n    This is an abstract base class for contextual data components like ReactDatum.Collection \n    and ReactDatum.Model that provide a single contextual data element.\n    \n    The ReactDatum.ContextualData base class also provides the listener to model or collection\n    events and rendering of child components on changes.\n    \n    You shouldn't need to use this class directly.\n   */\n\n  module.exports = ContextualData = function (superClass) {\n    extend(ContextualData, superClass);\n\n    /*\n      This is the class of thing being placed in the context.\n        ex. `Backbone.Model` or `Backbone.Collection`\n     */\n\n    ContextualData.prototype.dataType = null;\n\n    /*\n     this is the key in @context children should use to access thing\n      ex. \"model\"\n     */\n\n    ContextualData.prototype.contextKey = null;\n\n    ContextualData.propTypes = {\n      fetch: React.PropTypes.bool,\n      fetchOptions: React.PropTypes.object,\n      placeholder: React.PropTypes.node,\n      className: React.PropTypes.string,\n      debouncedUpdate: React.PropTypes.bool,\n      debounceMs: React.PropTypes.number,\n      debug: React.PropTypes.bool,\n      style: React.PropTypes.object\n    };\n\n    ContextualData.childContextTypes = {};\n\n    ContextualData.defaultProps = {\n      fetch: false,\n      fetchOptions: {},\n      placeholder: void 0,\n      style: {},\n      debouncedUpdate: true,\n      debounceMs: 0\n    };\n\n    function ContextualData(props) {\n      this.update = bind(this.update, this);\n      this.onDataChanged = bind(this.onDataChanged, this);\n      ContextualData.__super__.constructor.call(this, props);\n      this.state = {\n        lastUpdated: null,\n        collectionOrModel: null\n      };\n      this.debouncedUpdate = this.props.debouncedUpdate ? _.debounce(this.update, this.props.debounceMs) : this.update;\n    }\n\n    ContextualData.prototype.getChildContext = function () {\n      var c;\n      c = {};\n      c[this.contextKey] = this.state.collectionOrModel;\n      return c;\n    };\n\n    ContextualData.prototype.render = function () {\n      var className;\n      className = \"contextual-data \" + this.contextKey;\n      if (this.props.className != null) {\n        className += \" \" + this.props.className;\n      }\n      return React.createElement(\"span\", {\n        \"style\": _.extend({}, this.props.style),\n        \"className\": className\n      }, this.renderContent());\n    };\n\n    ContextualData.prototype.renderContent = function () {\n      if (this.state.collectionOrModel != null || this.props.placeholder === void 0) {\n        return this.props.children;\n      }\n      return this.props.placeholder;\n    };\n\n    /* !pragma coverage-skip-next */\n\n    ContextualData.prototype.componentWillUnmount = function () {\n      return this.unbindEvents();\n    };\n\n    ContextualData.prototype.componentWillMount = function () {\n      return this.initializeCollectionOrModel();\n    };\n\n    /* !pragma coverage-skip-next */\n\n    ContextualData.prototype.componentWillReceiveProps = function (newProps) {\n      this.props = newProps;\n      return this.initializeCollectionOrModel();\n    };\n\n    /*\n      override this model to do a custom fetch method like fetchForUser or some such\n     */\n\n    ContextualData.prototype.fetchCollectionOrModel = function () {\n      return this.state.collectionOrModel.fetch(this.props.fetchOptions);\n    };\n\n    /*\n      extend this method to provide additional initialization on the \n      thing you provide.  You should probably call super\n     */\n\n    ContextualData.prototype.initializeCollectionOrModel = function () {\n      if (!this.needsReinitializing()) {\n        return;\n      }\n      this.unbindEvents();\n      this.setCollectionOrModel();\n      this.bindEvents();\n      if (this.props.fetch && this.state.collectionOrModel != null) {\n        return this.fetchCollectionOrModel();\n      }\n    };\n\n    /*\n      override this method to input from somewhere other than the context or props being passed in\n     */\n\n    ContextualData.prototype.getInputCollectionOrModel = function () {\n      return this.props[this.contextKey] || this.context[this.contextKey];\n    };\n\n    /*\n      override or extend this method to provide something other than what we recieve\n     */\n\n    ContextualData.prototype.getCollectionOrModelToProvide = function () {\n      return this.getInputCollectionOrModel();\n    };\n\n    /*\n      extend this method to provide additional tests to determine if initialization is \n      needed.  You should probably extend this method like so:\n      ```\n        return super() || this._someOtherTest()\n      ```\n     */\n\n    ContextualData.prototype.needsReinitializing = function () {\n      var collectionOrModel, truth;\n      collectionOrModel = this.getCollectionOrModelToProvide();\n      truth = this.state.collectionOrModel == null || collectionOrModel !== this._lastPropsModel;\n      this._lastPropsModel = collectionOrModel;\n      return truth;\n    };\n\n    ContextualData.prototype.setCollectionOrModel = function () {\n      var collectionOrModel;\n      collectionOrModel = this.getCollectionOrModelToProvide();\n      this.setState({\n        collectionOrModel: collectionOrModel\n      });\n      return this.state.collectionOrModel = collectionOrModel;\n    };\n\n    ContextualData.prototype.bindEvents = function () {\n      var ref;\n      return (ref = this.state.collectionOrModel) != null ? typeof ref.on === \"function\" ? ref.on('all', this.onDataChanged, this) : void 0 : void 0;\n    };\n\n    ContextualData.prototype.unbindEvents = function () {\n      var ref;\n      return (ref = this.state.collectionOrModel) != null ? typeof ref.off === \"function\" ? ref.off('all', this.onDataChanged) : void 0 : void 0;\n    };\n\n    ContextualData.prototype.onDataChanged = function () {\n      return this.debouncedUpdate();\n    };\n\n    ContextualData.prototype.update = function () {\n      if (this.props.debug) {\n        console.log(\"ContextualData: update on model\", this.state.collectionOrModel);\n      }\n      this.setState({\n        lastUpdated: Date.now(),\n        collectionOrModel: this.getCollectionOrModelToProvide()\n      });\n      if (this.props.forceUpdate) {\n        return this.forceUpdate();\n      }\n    };\n\n    return ContextualData;\n  }(React.Component);\n}).call(undefined);"
        },
        {
          "id": 7,
          "identifier": "external {\"root\":\"ReactDOM\",\"commonjs2\":\"react-dom\",\"commonjs\":\"react-dom\",\"amd\":\"react-dom\"}",
          "name": "external {\"root\":\"ReactDOM\",\"commonjs2\":\"react-dom\",\"commonjs\":\"react-dom\",\"amd\":\"react-dom\"}",
          "index": 12,
          "index2": 8,
          "size": 42,
          "cacheable": false,
          "built": false,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/form.js",
          "issuerId": 10,
          "issuerName": "./lib/form.js",
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 2,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/datum.js",
              "module": "./lib/datums/datum.js",
              "moduleName": "./lib/datums/datum.js",
              "type": "cjs require",
              "userRequest": "react-dom",
              "loc": "26:13-33"
            },
            {
              "moduleId": 10,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/form.js",
              "module": "./lib/form.js",
              "moduleName": "./lib/form.js",
              "type": "cjs require",
              "userRequest": "react-dom",
              "loc": "31:13-33"
            },
            {
              "moduleId": 12,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/react-select/dist/react-select.es.js",
              "module": "./node_modules/react-select/dist/react-select.es.js",
              "moduleName": "./node_modules/react-select/dist/react-select.es.js",
              "type": "harmony import",
              "userRequest": "react-dom",
              "loc": "5:0-40"
            }
          ],
          "usedExports": true,
          "providedExports": null,
          "optimizationBailout": [],
          "depth": 3
        },
        {
          "id": 8,
          "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/options.js",
          "name": "./lib/options.js",
          "index": 16,
          "index2": 11,
          "size": 3238,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
          "issuerId": 15,
          "issuerName": "./index.js",
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 2,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/datum.js",
              "module": "./lib/datums/datum.js",
              "moduleName": "./lib/datums/datum.js",
              "type": "cjs require",
              "userRequest": "../options",
              "loc": "32:12-33"
            },
            {
              "moduleId": 15,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
              "module": "./index.js",
              "moduleName": "./index.js",
              "type": "cjs require",
              "userRequest": "./lib/options",
              "loc": "25:11-35"
            },
            {
              "moduleId": 29,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/lazyPhoto.js",
              "module": "./lib/datums/lazyPhoto.js",
              "moduleName": "./lib/datums/lazyPhoto.js",
              "type": "cjs require",
              "userRequest": "../options",
              "loc": "26:12-33"
            }
          ],
          "usedExports": true,
          "providedExports": null,
          "optimizationBailout": [],
          "depth": 2,
          "source": "'use strict';\n\n(function () {\n  var Options, _, __options;\n\n  _ = require('underscore');\n\n  __options = {\n    ReactBootstrap: (typeof window !== \"undefined\" && window !== null ? window.ReactBootstrap : void 0) || null,\n    errorIconClass: null\n  };\n\n  /*\n    These are global options used to control various aspects\n    of ReactDatum rendering and functionality.\n  \n    Currently supported configurable options:\n  \n      ReactBootstrap: Defaults to global 'ReactBootstrap' if it exists.\n        If set this option will use ReactBootstrap for popovers such as when\n        a Datum is ellipsized and for validation errors. \n        If not set, ReactDatum will use the HTML5 title tooltips for popovers\n        \n      RbOverlayProps: \n        You can change the placement, trigger, etc used for popovers when using\n        ReactBootstrap.\n        \n      errorIconClass: default: null.  Icon css class to use for indicating \n        validation errors. If not set, a red unicode exclamation point is used.\n   */\n\n  module.exports = Options = function () {\n    function Options() {}\n\n    /*\n      These are defaulted onto whatever is provided via ReactDatum.Options.set().\n     */\n\n    Options._defaults = {\n      errorIconClass: null,\n      ReactBootstrap: null,\n      RbOverlayProps: {\n        trigger: ['hover', 'focus'],\n        placement: 'right'\n      },\n      LazyPhoto: {\n        notFoundUrl: \"http://zulily.github.io/react-datum/img/petals.png\",\n        loadingUrl: \"http://zulily.github.io/react-datum/img/blank.jpg\"\n      }\n    };\n\n    Options._options = _.extend({}, Options._defaults);\n\n    /*\n      Use to set a ReactDatum option.  Arguments can be either `(key, value)` or `({key: value, key: value})`\n        \n      Example:\n      ```\n        ReactDatum = require('react-datum')\n        \n        // use the version of react bootstrap I got somewhere \n        ReactDatum.Options.set('ReactBootstrap', loadedBootstrapLib)\n        \n        // use the fontawesome 4.5 exclamation sign icon for errors\n        ReactDatum.Options.set('errorIconClass', 'fa fa-exclamation-circle')\n      \n        // change the placement of the popover (if using ReactBootstrap)\n        ReactDatum.Options.set({RbOverlayProps: {placement: 'bottom'}})\n      ```\n     */\n\n    Options.set = function (option, value) {\n      var _options, extension, key;\n      _options = Options._options;\n      extension = {};\n      if (_.isObject(option)) {\n        extension = option;\n      } else {\n        extension[option] = value;\n      }\n      for (key in extension) {\n        value = extension[key];\n        if (this._options[key] != null && _.isObject(this._options[key]) && _.isObject(value)) {\n          _.extend(this._options[key], value);\n        } else {\n          this._options[key] = value;\n        }\n      }\n      return this._options;\n    };\n\n    /*\n      Get a previously set option or it's default if not set.  Returns full set of options if no option arg \n      is provided.\n     */\n\n    Options.get = function (option) {\n      if (option == null) {\n        option = null;\n      }\n      if (option == null) {\n        return _.extend({}, this._options);\n      }\n      return this._options[option];\n    };\n\n    return Options;\n  }();\n}).call(undefined);"
        },
        {
          "id": 9,
          "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/number.js",
          "name": "./lib/datums/number.js",
          "index": 27,
          "index2": 25,
          "size": 9120,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
          "issuerId": 15,
          "issuerName": "./index.js",
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 15,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
              "module": "./index.js",
              "moduleName": "./index.js",
              "type": "cjs require",
              "userRequest": "./lib/datums/number",
              "loc": "18:10-40"
            },
            {
              "moduleId": 31,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/percent.js",
              "module": "./lib/datums/percent.js",
              "moduleName": "./lib/datums/percent.js",
              "type": "cjs require",
              "userRequest": "./number",
              "loc": "18:11-30"
            },
            {
              "moduleId": 33,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/wholeNumber.js",
              "module": "./lib/datums/wholeNumber.js",
              "moduleName": "./lib/datums/wholeNumber.js",
              "type": "cjs require",
              "userRequest": "./number",
              "loc": "18:11-30"
            }
          ],
          "usedExports": true,
          "providedExports": null,
          "optimizationBailout": [],
          "depth": 2,
          "source": "'use strict';\n\n(function () {\n  var Datum,\n      Number,\n      ONE_BILLION,\n      ONE_MILLION,\n      ONE_THOUSAND,\n      RECOGNIZED_FORMATS,\n      React,\n      _,\n      bind = function bind(fn, me) {\n    return function () {\n      return fn.apply(me, arguments);\n    };\n  },\n      extend = function extend(child, parent) {\n    for (var key in parent) {\n      if (hasProp.call(parent, key)) child[key] = parent[key];\n    }function ctor() {\n      this.constructor = child;\n    }ctor.prototype = parent.prototype;child.prototype = new ctor();child.__super__ = parent.prototype;return child;\n  },\n      hasProp = {}.hasOwnProperty,\n      indexOf = [].indexOf || function (item) {\n    for (var i = 0, l = this.length; i < l; i++) {\n      if (i in this && this[i] === item) return i;\n    }return -1;\n  };\n\n  React = require('../lib/reactLegacy');\n\n  _ = require('underscore');\n\n  Datum = require('./datum');\n\n  ONE_BILLION = 1000000000;\n\n  ONE_MILLION = 1000000;\n\n  ONE_THOUSAND = 1000;\n\n  RECOGNIZED_FORMATS = ['abbreviate', 'money', 'comma', 'percent'];\n\n  /*\n    For real numbers.\n  \n    Only allows `/^\\-?[0-9]*\\.?[0-9]*$/` on input\n   */\n\n  module.exports = Number = function (superClass) {\n    extend(Number, superClass);\n\n    Number.displayName = \"react-datum.Number\";\n\n    Number.propTypes = _.extend({}, Datum.propTypes, {\n      format: React.PropTypes.oneOfType([React.PropTypes.array, React.PropTypes.string]),\n      decimalPlaces: React.PropTypes.number,\n      zeroFill: React.PropTypes.bool,\n      minValue: React.PropTypes.number,\n      maxValue: React.PropTypes.number\n    });\n\n    Number.defaultProps = _.extend({}, Datum.defaultProps, {\n      decimalPlaces: null,\n      zeroFill: null,\n      format: ['comma']\n    });\n\n    Number.prototype.charactersMustMatch = /^\\-?[0-9]*\\.?[0-9]*$/;\n\n    Number.getComaAddedValue = function (value) {\n      var decimal, ref, wholeNumber;\n      ref = value.toString().split('.'), wholeNumber = ref[0], decimal = ref[1];\n      value = wholeNumber.replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n      if (decimal != null) {\n        value += '.' + decimal;\n      }\n      return value;\n    };\n\n    /*\n      fail proof conversion from sting to float that will never return NaN\n     */\n\n    Number.safelyFloat = function (value) {\n      var error, floatValue;\n      if (value == null) {\n        return 0;\n      }\n      try {\n        floatValue = parseFloat(value);\n      } catch (error) {\n        console.error(\"unparseable float \" + value);\n        return 0;\n      }\n      if (_.isNaN(floatValue)) {\n        return 0;\n      } else {\n        return floatValue;\n      }\n    };\n\n    function Number(props) {\n      this.validateMax = bind(this.validateMax, this);\n      this.validateMin = bind(this.validateMin, this);\n      this.validateNumeric = bind(this.validateNumeric, this);\n      this.onChange = bind(this.onChange, this);\n      Number.__super__.constructor.apply(this, arguments);\n      this.addValidations([this.validateNumeric, this.validateMin, this.validateMax]);\n    }\n\n    Number.prototype.isAcceptableInput = function (value) {\n      return value.match(this.charactersMustMatch);\n    };\n\n    /*\n      overrides super - adds formatting\n     */\n\n    Number.prototype.renderValueForDisplay = function () {\n      var formats, modelValue, value;\n      modelValue = this.getModelValue();\n      value = parseFloat(modelValue);\n      if (_.isNaN(value)) {\n        return modelValue;\n      }\n      formats = this.getFormats();\n      if (indexOf.call(formats, 'percent') >= 0) {\n        value *= 100;\n      }\n      value = this.roundToDecimalPlaces(value, {\n        formats: formats\n      });\n      value = this.abbreviate(value, formats);\n      value = this.addCommas(value, formats);\n      value = this.monetize(value, formats);\n      if (indexOf.call(formats, 'percent') >= 0) {\n        value += \"%\";\n      }\n      return value;\n    };\n\n    Number.prototype.renderPlaceHolder = function () {\n      if (this.getPropOrMetadata('placeholder') != null) {\n        Number.__super__.renderPlaceHolder.apply(this, arguments);\n      }\n      return React.createElement(\"span\", null, \"0\");\n    };\n\n    Number.prototype.getValueForInput = function () {\n      var floatVal, value;\n      value = Number.__super__.getValueForInput.apply(this, arguments);\n      if (value != null && _.isString(value)) {\n        value = value.replace(/[\\s\\$\\,]/g, '');\n      }\n      if (value === '-' || value === '+') {\n        return value;\n      }\n      floatVal = parseFloat(value);\n      if (_.isNaN(floatVal)) {\n        return '';\n      } else {\n        return value;\n      }\n    };\n\n    Number.prototype.getFormats = function () {\n      var ref;\n      if (_.isArray(this.props.format)) {\n        return this.props.format;\n      } else {\n        return ((ref = this.props.format) != null ? ref.toString().split(' ') : void 0) || [];\n      }\n    };\n\n    Number.prototype.onChange = function (event) {\n      var inputValue;\n      inputValue = event.target.value;\n      if (this.isAcceptableInput(inputValue)) {\n        return Number.__super__.onChange.apply(this, arguments);\n      }\n    };\n\n    Number.prototype.validateNumeric = function (value) {\n      if (_.isNumber(value)) {\n        return true;\n      }\n      if (this.charactersMustMatch.test(value)) {\n        return true;\n      }\n      if (value.length > 25) {\n        value = value.slice(0, 25) + '...';\n      }\n      return \"The value must be numeric. \\\"\" + value + \"\\\" is not valid\";\n    };\n\n    Number.prototype.validateMin = function (value) {\n      var minValue;\n      minValue = this.getPropOrMetadata('minValue');\n      if (!(value != null && minValue != null)) {\n        return true;\n      }\n      if (parseFloat(value) >= parseFloat(minValue)) {\n        return true;\n      }\n      return \"The value must be greater than or equal to \" + minValue;\n    };\n\n    Number.prototype.validateMax = function (value) {\n      var maxValue;\n      maxValue = this.getPropOrMetadata('maxValue');\n      if (!(value != null && maxValue != null)) {\n        return true;\n      }\n      if (parseFloat(value) <= parseFloat(maxValue)) {\n        return true;\n      }\n      return \"The value must be less than or equal to \" + maxValue;\n    };\n\n    /*  \n      returns a string with number value input rounded to user requested props.decimalPlaces \n        and optionally zeroFilled if @props.zeroFill == true\n      note that 'money', when not 'abbreviate'd should zero fill out to two decimal places \n      unless props indicate otherwise\n     */\n\n    Number.prototype.roundToDecimalPlaces = function (value, options) {\n      if (options == null) {\n        options = {};\n      }\n      options = _.defaults(options, {\n        formats: this.getFormats(),\n        decimalPlaces: this.props.decimalPlaces,\n        zeroFill: this.props.zeroFill\n      });\n      if (indexOf.call(options.formats, 'money') >= 0) {\n        if (options.decimalPlaces == null) {\n          options.decimalPlaces = 2;\n        }\n        if (options.zeroFill == null) {\n          options.zeroFill = !(indexOf.call(options.formats, 'abbreviate') >= 0);\n        }\n      }\n      if (options.decimalPlaces != null) {\n        value = parseFloat(value).toFixed(options.decimalPlaces);\n        if (!options.zeroFill) {\n          value = parseFloat(value).toString();\n        }\n      }\n      return value;\n    };\n\n    /*  \n      returns a string with number value abbreviated and rounded to user \n      requested props.decimalPlaces\n     */\n\n    Number.prototype.abbreviate = function (value, formats) {\n      var absValue, affix, ref;\n      if (formats == null) {\n        formats = this.getFormats();\n      }\n      if (indexOf.call(formats, 'abbreviate') >= 0) {\n        value = parseFloat(value);\n        absValue = Math.abs(value);\n        ref = absValue >= ONE_BILLION ? [value / ONE_BILLION, \"B\"] : absValue >= ONE_MILLION ? [value / ONE_MILLION, \"M\"] : absValue >= ONE_THOUSAND ? [value / ONE_THOUSAND, \"K\"] : [value, \"\"], value = ref[0], affix = ref[1];\n        value = \"\" + this.roundToDecimalPlaces(value, {\n          formats: formats\n        });\n        if ((affix != null ? affix.length : void 0) > 0) {\n          value += \" \" + affix;\n        }\n      }\n      return value;\n    };\n\n    Number.prototype.addCommas = function (value, formats) {\n      if (formats == null) {\n        formats = this.getFormats();\n      }\n      if (indexOf.call(formats, 'comma') >= 0) {\n        value = Number.getComaAddedValue(value);\n      }\n      return value;\n    };\n\n    /*\n      If props.formats includes 'money', this method prepends the value\n      displayed with '$'\n      \n      Override this method to do things like create an internationalized\n      display of money value for another currency.\n     */\n\n    Number.prototype.monetize = function (value, formats) {\n      if (formats == null) {\n        formats = this.getFormats();\n      }\n      if (indexOf.call(formats, 'money') >= 0) {\n        value = \"$\" + value;\n      }\n      return value;\n    };\n\n    Number.prototype.getInputValue = function () {\n      return parseFloat(this.state.value);\n    };\n\n    return Number;\n  }(Datum);\n}).call(undefined);"
        },
        {
          "id": 10,
          "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/form.js",
          "name": "./lib/form.js",
          "index": 11,
          "index2": 13,
          "size": 12325,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
          "issuerId": 15,
          "issuerName": "./index.js",
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 15,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
              "module": "./index.js",
              "moduleName": "./index.js",
              "type": "cjs require",
              "userRequest": "./lib/form",
              "loc": "9:8-29"
            },
            {
              "moduleId": 17,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/clickToEditForm.js",
              "module": "./lib/clickToEditForm.js",
              "moduleName": "./lib/clickToEditForm.js",
              "type": "cjs require",
              "userRequest": "./form",
              "loc": "24:9-26"
            }
          ],
          "usedExports": true,
          "providedExports": null,
          "optimizationBailout": [],
          "depth": 2,
          "source": "'use strict';\n\n(function () {\n  var Backbone,\n      Datum,\n      Form,\n      React,\n      ReactDom,\n      _,\n      bind = function bind(fn, me) {\n    return function () {\n      return fn.apply(me, arguments);\n    };\n  },\n      extend = function extend(child, parent) {\n    for (var key in parent) {\n      if (hasProp.call(parent, key)) child[key] = parent[key];\n    }function ctor() {\n      this.constructor = child;\n    }ctor.prototype = parent.prototype;child.prototype = new ctor();child.__super__ = parent.prototype;return child;\n  },\n      hasProp = {}.hasOwnProperty,\n      indexOf = [].indexOf || function (item) {\n    for (var i = 0, l = this.length; i < l; i++) {\n      if (i in this && this[i] === item) return i;\n    }return -1;\n  };\n\n  React = require('./lib/reactLegacy');\n\n  ReactDom = require('react-dom');\n\n  Datum = require('./datums/datum');\n\n  Backbone = require('backbone');\n\n  _ = require('underscore');\n\n  module.exports = Form = function (superClass) {\n    extend(Form, superClass);\n\n    Form.displayName = \"react-datum.Form\";\n\n    Form.modelOrObject = function () {\n      return React.PropTypes.oneOfType([React.PropTypes.instanceOf(Backbone.Model), React.PropTypes.object]);\n    };\n\n    Form.propTypes = {\n      model: Form.modelOrObject(),\n      modelSaveMethod: React.PropTypes.string,\n      readonly: React.PropTypes.bool,\n      buttonPosition: React.PropTypes.oneOf(['top', 'bottom', 'none']),\n      className: React.PropTypes.string,\n      saveSuccessCallback: React.PropTypes.func,\n      saveErrorCallback: React.PropTypes.func\n    };\n\n    Form.defaultProps = {\n      readonly: false,\n      buttonPosition: 'bottom',\n      className: 'form',\n      modelSaveMethod: 'save'\n    };\n\n    Form.contextTypes = {\n\n      /* can also accept model instance as a prop.  prop has precendence */\n      model: Form.modelOrObject()\n    };\n\n    Form.childContextTypes = {\n      model: Form.modelOrObject(),\n      inputMode: Datum.contextTypes.inputMode,\n      form: React.PropTypes.object\n    };\n\n    Form.prototype.datumInputMode = 'edit';\n\n    function Form(props) {\n      this.onCancelClick = bind(this.onCancelClick, this);\n      this.onSaveError = bind(this.onSaveError, this);\n      this.onSaveSuccess = bind(this.onSaveSuccess, this);\n      this.onSaveClick = bind(this.onSaveClick, this);\n      this.datums = [];\n      this.state = {\n        errorMessage: null,\n        successMessage: null\n      };\n      Form.__super__.constructor.apply(this, arguments);\n    }\n\n    Form.prototype.getChildContext = function () {\n      return {\n        model: this.getModel(),\n        inputMode: this.getDatumInputMode(),\n        form: this\n      };\n    };\n\n    Form.prototype.render = function () {\n      if (this.getModel() == null) {\n        return null;\n      }\n      this._saveModelStateAtRender();\n      return React.createElement(\"div\", {\n        \"className\": \"form \" + this.datumInputMode + \" \" + this.props.className\n      }, this.renderTopButtons(), this.renderChildren(), this.renderBottomButtons(), this.renderMessages());\n    };\n\n    Form.prototype.componentDidMount = function () {\n      return this.node = ReactDom.findDOMNode(this);\n    };\n\n    /*\n      Gives the first editable datum focus\n     */\n\n    Form.prototype.focus = function () {\n      var firstEditable;\n      firstEditable = _.find(this.datums, function (d) {\n        return d.isEditable();\n      });\n      return firstEditable != null ? firstEditable.focus() : void 0;\n    };\n\n    Form.prototype.renderChildren = function () {\n      return React.createElement(\"div\", {\n        \"className\": \"form-content\"\n      }, this.props.children);\n    };\n\n    Form.prototype.renderTopButtons = function () {\n      if (this.props.buttonPosition !== 'top') {\n        return;\n      }\n      return this.renderButtonContainer({\n        addClass: \"top\"\n      });\n    };\n\n    Form.prototype.renderBottomButtons = function () {\n      if (this.props.buttonPosition !== 'bottom') {\n        return;\n      }\n      return this.renderButtonContainer({\n        addClass: \"bottom\"\n      });\n    };\n\n    Form.prototype.renderButtonContainer = function (options) {\n      var className;\n      if (options == null) {\n        options = {};\n      }\n      options = _.defaults(options, {\n        addClass: null\n      });\n      className = \"form-buttons\";\n      if (options.addClass != null) {\n        className += \" \" + options.addClass;\n      }\n      return React.createElement(\"div\", {\n        \"className\": className\n      }, this.renderButtons(options));\n    };\n\n    Form.prototype.renderButtons = function (options) {\n      return [React.createElement(\"button\", {\n        \"key\": \"save\",\n        \"ref\": \"saveButton\",\n        \"className\": 'btn btn-success',\n        \"onClick\": this.onSaveClick\n      }, \"Save\"), React.createElement(\"button\", {\n        \"key\": \"cancel\",\n        \"ref\": \"cancelButton\",\n        \"className\": 'btn',\n        \"onClick\": this.onCancelClick\n      }, \"Cancel\")];\n    };\n\n    Form.prototype.renderMessages = function () {\n      return [this.renderSuccessMessage(), this.renderErrorMessage()];\n    };\n\n    Form.prototype.renderErrorMessage = function () {\n      return this.renderMessage(this.state.errorMessage, 'error');\n    };\n\n    Form.prototype.renderSuccessMessage = function () {\n      return this.renderMessage(this.state.successMessage, 'success');\n    };\n\n    Form.prototype.renderMessage = function (message, className) {\n      var fullClassName;\n      if (message == null) {\n        return null;\n      }\n      fullClassName = \"datum-form-message-\" + className + \" \" + className;\n      return React.createElement(\"div\", {\n        \"key\": className,\n        \"className\": fullClassName\n      }, message);\n    };\n\n    /*\n      Save the changes from datums on the form to the Backbone model. \n      \n      Calls model.save after first attempting to validate() the model.  Handles \n      inconsistencies in model.validate() between versions 0.9.2 - 1.2.2 of Backbone.\n      \n      The user clicking on the save button belonging to the Form will call this Method\n      \n      The options argument is passed on to Backbone model.save()\n     */\n\n    Form.prototype.save = function (options) {\n      var model;\n      if (options == null) {\n        options = {};\n      }\n      options = _.defaults(options, {\n        validateDatums: true,\n        validateModel: true\n      });\n      this.setState({\n        errorMessage: null,\n        successMessage: null\n      });\n      model = this.getModel();\n      if (options.validateDatums && !this.validateDatums(options)) {\n        this.onSaveError(model, \"Correct errors and try again.\");\n        return;\n      }\n      if (options.validateModel && !this.validateModel(options)) {\n        this.onSaveError(model, model.validationError);\n        return;\n      }\n      return this.saveModel(options);\n    };\n\n    /*\n      Validate the datums on the form. \n      \n      returns false if any are currently invalid\n     */\n\n    Form.prototype.validateDatums = function (options) {\n      if (options == null) {\n        options = {};\n      }\n      if (this.getInvalidDatums().length > 0) {\n        this.setState({\n          errorMessage: \"Please correct errors and try again.\"\n        });\n        return false;\n      }\n      return true;\n    };\n\n    /*\n      Calls Backbone model.validate and handles inconsistencies in model.validate() \n      between versions 0.9.2 - 1.2.2 of Backbone.\n     */\n\n    Form.prototype.validateModel = function (options) {\n      var error, model;\n      if (options == null) {\n        options = {};\n      }\n      model = this.getModel();\n      if (model == null) {\n        return;\n      }\n      try {\n        if (!model.isValid()) {\n          if (model.validationError != null) {\n            return false;\n          }\n        }\n      } catch (error) {\n        null;\n      }\n      return true;\n    };\n\n    Form.prototype.preceedOriginalCallback = function (obj, attr, newCallback) {\n      var originalCallback;\n      originalCallback = obj[attr];\n      return obj[attr] = function () {\n        newCallback.apply(this, arguments);\n        return originalCallback != null ? originalCallback.apply(this, argumentsk) : void 0;\n      };\n    };\n\n    /*  \n      calls Backbone model.save and calls success and error handlers. \n      \n      You should probably call Form.save() above instead.  It will also validate the model \n      and datums.\n     */\n\n    Form.prototype.saveModel = function (options) {\n      var model, saved;\n      if (options == null) {\n        options = {};\n      }\n      model = this.getModel();\n      if (model == null) {\n        return;\n      }\n      this.preceedOriginalCallback(options, 'success', this.onSaveSuccess);\n      this.preceedOriginalCallback(options, 'error', this.onSaveError);\n      return saved = model[this.props.modelSaveMethod]({}, options);\n    };\n\n    Form.prototype.onSaveClick = function (evt) {\n      return this.save();\n    };\n\n    Form.prototype.onSaveSuccess = function (model, response, options) {\n      if (options == null) {\n        options = {};\n      }\n      this._saveModelState();\n      if (this.props.saveSuccessCallback != null && _.isFunction(this.props.saveSuccessCallback)) {\n        return this.props.saveSuccessCallback(model, response, options);\n      } else {\n        return this.setState({\n          successMessage: \"Successfully saved!\",\n          successAt: Date.now()\n        });\n      }\n    };\n\n    Form.prototype.onSaveError = function (model, response, options) {\n      if (options == null) {\n        options = {};\n      }\n      if (this.props.saveErrorCallback != null && _.isFunction(this.props.saveErrorCallback)) {\n        return this.props.saveErrorCallback(model, response, options);\n      } else {\n        response = response == null || _.isString(response) ? response : JSON.stringify(response);\n        return this.setState({\n          errorMessage: \"Unable to save. \" + response || \"Reason unknown.\"\n        });\n      }\n    };\n\n    Form.prototype.onCancelClick = function (evt) {\n      this.setState({\n        errorMessage: null,\n        successMessage: null\n      });\n      this._restoreModelState();\n      return this._resetDatums();\n    };\n\n    Form.prototype.getModel = function () {\n      return this.props.model || this.context.model;\n    };\n\n    Form.prototype.getDatumInputMode = function () {\n      if (this.props.readonly) {\n        return 'readonly';\n      } else {\n        return this.datumInputMode;\n      }\n    };\n\n    Form.prototype.getInvalidDatums = function () {\n      return _.filter(this.datums, function (d) {\n        return !d.validate();\n      });\n    };\n\n    /*\n      This method is called by the datum children when they mount\n     */\n\n    Form.prototype.addDatum = function (datumComponent) {\n      if (indexOf.call(this.datums, datumComponent) < 0) {\n        return this.datums.push(datumComponent);\n      }\n    };\n\n    /*\n      This method is called by the datum children when they unmount\n     */\n\n    Form.prototype.removeDatum = function (datumComponent) {\n      var index;\n      index = this.datums.indexOf(datumComponent);\n      if (index < 0) {\n        console.error(\"form.removeDatum called for datumComponent (\" + datumComponent.constructor.displayName + \") that we don't know about?\");\n        return;\n      }\n      return this.datums = this.datums.slice(0, index).concat(this.datums.slice(index + 1, this.datums.length));\n    };\n\n    Form.prototype._saveModelStateAtRender = function () {\n      var model;\n      model = this.getModel();\n      if (model === this._savedModel) {\n        return;\n      }\n      return this._saveModelState();\n    };\n\n    Form.prototype._saveModelState = function () {\n      this._savedModel = this.getModel();\n      return this._savedAttrs = this._savedModel.toJSON();\n    };\n\n    Form.prototype._restoreModelState = function () {\n      var model;\n      model = this.getModel();\n      if (model !== this._savedModel) {\n        return;\n      }\n      return model.set(this._savedAttrs);\n    };\n\n    Form.prototype._resetDatums = function () {\n      var datum, i, len, ref, results;\n      ref = this.datums;\n      results = [];\n      for (i = 0, len = ref.length; i < len; i++) {\n        datum = ref[i];\n        results.push(datum.cancelEdit());\n      }\n      return results;\n    };\n\n    return Form;\n  }(React.Component);\n}).call(undefined);"
        },
        {
          "id": 11,
          "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/text.js",
          "name": "./lib/datums/text.js",
          "index": 29,
          "index2": 27,
          "size": 2635,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
          "issuerId": 15,
          "issuerName": "./index.js",
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 15,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
              "module": "./index.js",
              "moduleName": "./index.js",
              "type": "cjs require",
              "userRequest": "./lib/datums/text",
              "loc": "20:8-36"
            },
            {
              "moduleId": 32,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/label.js",
              "module": "./lib/datums/label.js",
              "moduleName": "./lib/datums/label.js",
              "type": "cjs require",
              "userRequest": "./text",
              "loc": "21:9-26"
            }
          ],
          "usedExports": true,
          "providedExports": null,
          "optimizationBailout": [],
          "depth": 2,
          "source": "'use strict';\n\n(function () {\n  var Datum,\n      React,\n      Text,\n      _,\n      extend = function extend(child, parent) {\n    for (var key in parent) {\n      if (hasProp.call(parent, key)) child[key] = parent[key];\n    }function ctor() {\n      this.constructor = child;\n    }ctor.prototype = parent.prototype;child.prototype = new ctor();child.__super__ = parent.prototype;return child;\n  },\n      hasProp = {}.hasOwnProperty;\n\n  React = require('../lib/reactLegacy');\n\n  _ = require('underscore');\n\n  Datum = require('./datum');\n\n  /*\n    see ./text.md\n   */\n\n  module.exports = Text = function (superClass) {\n    extend(Text, superClass);\n\n    Text.displayName = \"react-datum.Text\";\n\n    Text.propTypes = _.extend({}, Datum.propTypes, {\n      displayAsHtml: React.PropTypes.bool,\n      ellipsizeAt: React.PropTypes.oneOfType([React.PropTypes.number, React.PropTypes.bool]),\n      reverseEllipsis: React.PropTypes.bool,\n      uniqueArrayMembers: React.PropTypes.bool\n    });\n\n    Text.defaultProps = _.extend({}, Datum.defaultProps, {\n      ellipsizeAt: 35,\n      reverseEllipsis: false\n    });\n\n    function Text() {\n      Text.__super__.constructor.apply(this, arguments);\n    }\n\n    Text.prototype.render = function () {\n      return Text.__super__.render.apply(this, arguments);\n    };\n\n    Text.prototype.renderValueForDisplay = function () {\n      var superValue, value, values;\n      superValue = Text.__super__.renderValueForDisplay.apply(this, arguments);\n      value = function () {\n        switch (false) {\n          case !_.isArray(superValue):\n            values = _.compact(_.flatten(superValue));\n            if (this.props.uniqueArrayMembers) {\n              values = _.unique(values);\n            }\n            return values.join(', ');\n          case !_.isObject(superValue):\n            return JSON.stringify(superValue);\n          default:\n            return superValue.toString();\n        }\n      }.call(this);\n      return this.renderEllipsizedValue(value);\n    };\n\n    /* \n      Extends Datum#renderWrappedDisplayValue to provide support for displayAsHtml\n      option.\n     */\n\n    Text.prototype.renderWrappedDisplayValue = function (value) {\n      if (this.props.displayAsHtml) {\n        return React.createElement(\"span\", {\n          \"className\": \"datum-display-value\",\n          \"dangerouslySetInnerHTML\": this.getMarkup(value)\n        });\n      } else {\n        return Text.__super__.renderWrappedDisplayValue.apply(this, arguments);\n      }\n    };\n\n    Text.prototype.getMarkup = function (value) {\n      return {\n        __html: value\n      };\n    };\n\n    return Text;\n  }(Datum);\n}).call(undefined);"
        },
        {
          "id": 12,
          "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/react-select/dist/react-select.es.js",
          "name": "./node_modules/react-select/dist/react-select.es.js",
          "index": 35,
          "index2": 34,
          "size": 90402,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
          "issuerId": 15,
          "issuerName": "./index.js",
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 15,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
              "module": "./index.js",
              "moduleName": "./index.js",
              "type": "cjs require",
              "userRequest": "react-select",
              "loc": "31:15-38"
            },
            {
              "moduleId": 34,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/collectionPicker/collectionPicker.js",
              "module": "./lib/datums/collectionPicker/collectionPicker.js",
              "moduleName": "./lib/datums/collectionPicker/collectionPicker.js",
              "type": "cjs require",
              "userRequest": "react-select",
              "loc": "40:11-34"
            }
          ],
          "usedExports": true,
          "providedExports": [
            "Async",
            "AsyncCreatable",
            "Creatable",
            "Value",
            "Option",
            "defaultMenuRenderer",
            "defaultArrowRenderer",
            "defaultClearRenderer",
            "defaultFilterOptions",
            "default"
          ],
          "optimizationBailout": [],
          "depth": 2,
          "source": "import AutosizeInput from 'react-input-autosize';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport { findDOMNode } from 'react-dom';\n\nvar arrowRenderer = function arrowRenderer(_ref) {\n\tvar onMouseDown = _ref.onMouseDown;\n\n\treturn React.createElement('span', {\n\t\tclassName: 'Select-arrow',\n\t\tonMouseDown: onMouseDown\n\t});\n};\n\narrowRenderer.propTypes = {\n\tonMouseDown: PropTypes.func\n};\n\nvar clearRenderer = function clearRenderer() {\n\treturn React.createElement('span', {\n\t\tclassName: 'Select-clear',\n\t\tdangerouslySetInnerHTML: { __html: '&times;' }\n\t});\n};\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\nvar trim = function trim(str) {\n  return str.replace(/^\\s+|\\s+$/g, '');\n};\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 = stripDiacritics(filterValue);\n\t}\n\n\tif (props.ignoreCase) {\n\t\tfilterValue = filterValue.toLowerCase();\n\t}\n\n\tif (props.trimFilter) {\n\t\tfilterValue = trim(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 = stripDiacritics(valueTest);\n\t\t\tif (labelTest && props.matchProp !== 'value') labelTest = stripDiacritics(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\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 = classNames(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 React.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: PropTypes.func,\n\tfocusedOption: PropTypes.object,\n\tinputValue: PropTypes.string,\n\tinstancePrefix: PropTypes.string,\n\tonFocus: PropTypes.func,\n\tonOptionRef: PropTypes.func,\n\tonSelect: PropTypes.func,\n\toptionClassName: PropTypes.string,\n\toptionComponent: PropTypes.func,\n\toptionRenderer: PropTypes.func,\n\toptions: PropTypes.array,\n\tremoveValue: PropTypes.func,\n\tselectValue: PropTypes.func,\n\tvalueArray: PropTypes.array,\n\tvalueKey: PropTypes.string\n};\n\nvar blockEvent = (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\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\nvar asyncGenerator = function () {\n  function AwaitValue(value) {\n    this.value = value;\n  }\n\n  function AsyncGenerator(gen) {\n    var front, back;\n\n    function send(key, arg) {\n      return new Promise(function (resolve, reject) {\n        var request = {\n          key: key,\n          arg: arg,\n          resolve: resolve,\n          reject: reject,\n          next: null\n        };\n\n        if (back) {\n          back = back.next = request;\n        } else {\n          front = back = request;\n          resume(key, arg);\n        }\n      });\n    }\n\n    function resume(key, arg) {\n      try {\n        var result = gen[key](arg);\n        var value = result.value;\n\n        if (value instanceof AwaitValue) {\n          Promise.resolve(value.value).then(function (arg) {\n            resume(\"next\", arg);\n          }, function (arg) {\n            resume(\"throw\", arg);\n          });\n        } else {\n          settle(result.done ? \"return\" : \"normal\", result.value);\n        }\n      } catch (err) {\n        settle(\"throw\", err);\n      }\n    }\n\n    function settle(type, value) {\n      switch (type) {\n        case \"return\":\n          front.resolve({\n            value: value,\n            done: true\n          });\n          break;\n\n        case \"throw\":\n          front.reject(value);\n          break;\n\n        default:\n          front.resolve({\n            value: value,\n            done: false\n          });\n          break;\n      }\n\n      front = front.next;\n\n      if (front) {\n        resume(front.key, front.arg);\n      } else {\n        back = null;\n      }\n    }\n\n    this._invoke = send;\n\n    if (typeof gen.return !== \"function\") {\n      this.return = undefined;\n    }\n  }\n\n  if (typeof Symbol === \"function\" && Symbol.asyncIterator) {\n    AsyncGenerator.prototype[Symbol.asyncIterator] = function () {\n      return this;\n    };\n  }\n\n  AsyncGenerator.prototype.next = function (arg) {\n    return this._invoke(\"next\", arg);\n  };\n\n  AsyncGenerator.prototype.throw = function (arg) {\n    return this._invoke(\"throw\", arg);\n  };\n\n  AsyncGenerator.prototype.return = function (arg) {\n    return this._invoke(\"return\", arg);\n  };\n\n  return {\n    wrap: function (fn) {\n      return function () {\n        return new AsyncGenerator(fn.apply(this, arguments));\n      };\n    },\n    await: function (value) {\n      return new AwaitValue(value);\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\nvar Option = function (_React$Component) {\n\tinherits(Option, _React$Component);\n\n\tfunction Option(props) {\n\t\tclassCallCheck(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\tcreateClass(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 = classNames(this.props.className, option.className);\n\n\t\t\treturn option.disabled ? React.createElement(\n\t\t\t\t'div',\n\t\t\t\t{ className: className,\n\t\t\t\t\tonMouseDown: blockEvent,\n\t\t\t\t\tonClick: blockEvent },\n\t\t\t\tthis.props.children\n\t\t\t) : React.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\treturn Option;\n}(React.Component);\n\nOption.propTypes = {\n\tchildren: PropTypes.node,\n\tclassName: PropTypes.string, // className (based on mouse position)\n\tinstancePrefix: PropTypes.string.isRequired, // unique prefix for the ids (used for aria)\n\tisDisabled: PropTypes.bool, // the option is disabled\n\tisFocused: PropTypes.bool, // the option is focused\n\tisSelected: PropTypes.bool, // the option is selected\n\tonFocus: PropTypes.func, // method to handle mouseEnter on option element\n\tonSelect: PropTypes.func, // method to handle click on option element\n\tonUnfocus: PropTypes.func, // method to handle mouseLeave on option element\n\toption: PropTypes.object.isRequired, // object that is base for that option\n\toptionIndex: PropTypes.number // index of the option, used to generate unique ids for aria\n};\n\nvar Value = function (_React$Component) {\n\tinherits(Value, _React$Component);\n\n\tfunction Value(props) {\n\t\tclassCallCheck(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\tcreateClass(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 React.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 ? React.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) : React.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 React.createElement(\n\t\t\t\t'div',\n\t\t\t\t{ className: classNames('Select-value', 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\treturn Value;\n}(React.Component);\n\nValue.propTypes = {\n\tchildren: PropTypes.node,\n\tdisabled: PropTypes.bool, // disabled prop passed to ReactSelect\n\tid: PropTypes.string, // Unique id for the value - used for aria\n\tonClick: PropTypes.func, // method to handle click on value label\n\tonRemove: PropTypes.func, // method to handle removal of the value\n\tvalue: PropTypes.object.isRequired // the option object for this value\n};\n\n/*!\n  Copyright (c) 2018 Jed Watson.\n  Licensed under the MIT License (MIT), see\n  http://jedwatson.github.io/react-select\n*/\nvar stringifyValue = function stringifyValue(value) {\n\treturn typeof value === 'string' ? value : value !== null && JSON.stringify(value) || '';\n};\n\nvar stringOrNode = PropTypes.oneOfType([PropTypes.string, PropTypes.node]);\nvar stringOrNumber = PropTypes.oneOfType([PropTypes.string, PropTypes.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\tif (props.allowCreate) {\n\t\tvar newOption = {};\n\t\tnewOption[valueKey] = value;\n\t\tnewOption[labelKey] = value;\n\t\treturn newOption;\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$1 = function (_React$Component) {\n\tinherits(Select, _React$Component);\n\n\tfunction Select(props) {\n\t\tclassCallCheck(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\tcreateClass(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 = findDOMNode(this.focused);\n\t\t\t\tvar menuNode = 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 = findDOMNode(this.focused);\n\t\t\t\tvar menuDOM = 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\tif (enabled) {\n\t\t\t\tif (!document.addEventListener && document.attachEvent) {\n\t\t\t\t\tdocument.attachEvent('ontouchstart', this.handleTouchOutside);\n\t\t\t\t} else {\n\t\t\t\t\tdocument.addEventListener('touchstart', this.handleTouchOutside);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (!document.removeEventListener && document.detachEvent) {\n\t\t\t\t\tdocument.detachEvent('ontouchstart', this.handleTouchOutside);\n\t\t\t\t} else {\n\t\t\t\t\tdocument.removeEventListener('touchstart', this.handleTouchOutside);\n\t\t\t\t}\n\t\t\t}\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});\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});\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 188:\n\t\t\t\t\t// comma , key\n\t\t\t\t\tif (this.props.allowCreate && this.props.multi) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\tthis.selectFocusedOption();\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\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\tif (this.props.allowCreate) {\n\t\t\t\t\tvalue = this.expandValue(value, this.props);\n\t\t\t\t}\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 (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} else if (this.props.allowCreate && !this.state.focusedOption) {\n\t\t\t\treturn this.selectValue(this.state.inputValue);\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 React.createElement(\n\t\t\t\t'span',\n\t\t\t\t{ className: 'Select-loading-zone', 'aria-hidden': 'true' },\n\t\t\t\tReact.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 ? React.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\tif (this.props.singleValue) {\n\t\t\t\t\treturn React.createElement(\n\t\t\t\t\t\tValueComponent,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdisabled: this.props.disabled,\n\t\t\t\t\t\t\tonClick: onClick,\n\t\t\t\t\t\t\tonRemove: this.removeValue,\n\t\t\t\t\t\t\tvalues: valueArray,\n\t\t\t\t\t\t\tdisabledOptions: this.props.disabledOptions || []\n\t\t\t\t\t\t},\n\t\t\t\t\t\tvalueArray.length\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\treturn valueArray.map(function (value, i) {\n\t\t\t\t\t\treturn React.createElement(\n\t\t\t\t\t\t\tValueComponent,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: _this5._instancePrefix + '-value-' + i,\n\t\t\t\t\t\t\t\tinstancePrefix: _this5._instancePrefix,\n\t\t\t\t\t\t\t\tdisabled: _this5.props.disabled || value.clearableValue === false,\n\t\t\t\t\t\t\t\tkey: 'value-' + i + '-' + value[_this5.props.valueKey],\n\t\t\t\t\t\t\t\tonClick: onClick,\n\t\t\t\t\t\t\t\tonRemove: _this5.removeValue,\n\t\t\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\t\t\tvalues: valueArray,\n\t\t\t\t\t\t\t\tdisabledOptions: _this5.props.disabledOptions || []\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\trenderLabel(value, i),\n\t\t\t\t\t\t\tReact.createElement(\n\t\t\t\t\t\t\t\t'span',\n\t\t\t\t\t\t\t\t{ className: 'Select-aria-only' },\n\t\t\t\t\t\t\t\t'\\xA0'\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} else if (shouldShowValue(this.state, this.props)) {\n\t\t\t\tif (isOpen) onClick = null;\n\t\t\t\treturn React.createElement(\n\t\t\t\t\tValueComponent,\n\t\t\t\t\tdefineProperty({\n\t\t\t\t\t\tdisabled: this.props.disabled,\n\t\t\t\t\t\tdisabledOptions: this.props.disabledOptions || [],\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\tvalues: valueArray\n\t\t\t\t\t}, 'disabledOptions', this.props.disabledOptions || []),\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 = classNames('Select-input', this.props.inputProps.className);\n\t\t\tvar isOpen = this.state.isOpen;\n\n\t\t\tvar ariaOwns = classNames((_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\tclassName: className,\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\n\t\t\t\tvar _ariaOwns = classNames(defineProperty({}, this._instancePrefix + '-list', isOpen));\n\t\t\t\treturn React.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 React.createElement(AutosizeInput, _extends({ id: this.props.id }, inputProps, { minWidth: '5' }));\n\t\t\t}\n\t\t\treturn React.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\tReact.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 React.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 React.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$$1(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$$1 = typeof this.props.filterOptions === 'function' ? this.props.filterOptions : filterOptions;\n\n\t\t\t\treturn filterOptions$$1(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 React.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 React.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 React.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 React.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\tReact.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 = classNames('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 = React.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 React.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\tReact.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\tReact.createElement(\n\t\t\t\t\t\t'span',\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, !this.props.multi || this.props.singleValue ? valueArray : null, focusedOption) : null\n\t\t\t);\n\t\t}\n\t}]);\n\treturn Select;\n}(React.Component);\n\nSelect$1.propTypes = {\n\t'aria-describedby': PropTypes.string, // html id(s) of element(s) that should be used to describe this input (for assistive tech)\n\t'aria-label': PropTypes.string, // aria label (for assistive tech)\n\t'aria-labelledby': PropTypes.string, // html id of an element that should be used as the label (for assistive tech)\n\tarrowRenderer: PropTypes.func, // create the drop-down caret element\n\tautoBlur: PropTypes.bool, // automatically blur the component when an option is selected\n\tautoFocus: PropTypes.bool, // autofocus the component on mount\n\tautofocus: PropTypes.bool, // deprecated; use autoFocus instead\n\tautosize: PropTypes.bool, // whether to enable autosizing or not\n\tbackspaceRemoves: PropTypes.bool, // whether backspace removes an item if there is no text input\n\tbackspaceToRemoveMessage: PropTypes.string, // message to use for screenreaders to press backspace to remove the current item - {label} is replaced with the item label\n\tclassName: PropTypes.string, // className for the outer element\n\tclearAllText: stringOrNode, // title for the \"clear\" control when multi: true\n\tclearRenderer: PropTypes.func, // create clearable x element\n\tclearValueText: stringOrNode, // title for the \"clear\" control\n\tclearable: PropTypes.bool, // should it be possible to reset value\n\tcloseOnSelect: PropTypes.bool, // whether to close the menu when a value is selected\n\tdeleteRemoves: PropTypes.bool, // whether delete removes an item if there is no text input\n\tdelimiter: PropTypes.string, // delimiter to use to join multiple values for the hidden field value\n\tdisabled: PropTypes.bool, // whether the Select is disabled or not\n\tescapeClearsValue: PropTypes.bool, // whether escape clears the value when the menu is closed\n\tfilterOption: PropTypes.func, // method to filter a single option (option, filterString)\n\tfilterOptions: PropTypes.any, // boolean to enable default filtering or function to filter the options array ([options], filterString, [values])\n\tid: PropTypes.string, // html id to set on the input element for accessibility or tests\n\tignoreAccents: PropTypes.bool, // whether to strip diacritics when filtering\n\tignoreCase: PropTypes.bool, // whether to perform case-insensitive filtering\n\tinputProps: PropTypes.object, // custom attributes for the Input\n\tinputRenderer: PropTypes.func, // returns a custom input component\n\tinstanceId: PropTypes.string, // set the components instanceId\n\tisLoading: PropTypes.bool, // whether the Select is loading externally or not (such as options being loaded)\n\tjoinValues: PropTypes.bool, // joins multiple values into a single form field with the delimiter (legacy mode)\n\tlabelKey: PropTypes.string, // path of the label value in option objects\n\tmatchPos: PropTypes.string, // (any|start) match the start or entire string when filtering\n\tmatchProp: PropTypes.string, // (any|label|value) which option property to filter on\n\tmenuBuffer: PropTypes.number, // optional buffer (in px) between the bottom of the viewport and the bottom of the menu\n\tmenuContainerStyle: PropTypes.object, // optional style to apply to the menu container\n\tmenuRenderer: PropTypes.func, // renders a custom menu with options\n\tmenuStyle: PropTypes.object, // optional style to apply to the menu\n\tmulti: PropTypes.bool, // multi-value input\n\tname: PropTypes.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: PropTypes.func, // onBlur handler: function (event) {}\n\tonBlurResetsInput: PropTypes.bool, // whether input is cleared on blur\n\tonChange: PropTypes.func, // onChange handler: function (newValue) {}\n\tonClose: PropTypes.func, // fires when the menu is closed\n\tonCloseResetsInput: PropTypes.bool, // whether input is cleared when menu is closed through the arrow\n\tonFocus: PropTypes.func, // onFocus handler: function (event) {}\n\tonInputChange: PropTypes.func, // onInputChange handler: function (inputValue) {}\n\tonInputKeyDown: PropTypes.func, // input keyDown handler: function (event) {}\n\tonMenuScrollToBottom: PropTypes.func, // fires when the menu is scrolled to the bottom; can be used to paginate options\n\tonOpen: PropTypes.func, // fires when the menu is opened\n\tonSelectResetsInput: PropTypes.bool, // whether input is cleared on select (works only for multiselect)\n\tonValueClick: PropTypes.func, // onClick handler for value labels: function (value, event) {}\n\topenOnClick: PropTypes.bool, // boolean to control opening the menu when the control is clicked\n\topenOnFocus: PropTypes.bool, // always open options menu on focus\n\toptionClassName: PropTypes.string, // additional class(es) to apply to the <Option /> elements\n\toptionComponent: PropTypes.func, // option component to render in dropdown\n\toptionRenderer: PropTypes.func, // optionRenderer: function (option) {}\n\toptions: PropTypes.array, // array of options\n\tpageSize: PropTypes.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: PropTypes.bool, // whether the selected option is removed from the dropdown on multi selects\n\trequired: PropTypes.bool, // applies HTML5 required attribute when needed\n\tresetValue: PropTypes.any, // value to use when you clear the control\n\trtl: PropTypes.bool, // set to true in order to use react-select in right-to-left direction\n\tscrollMenuIntoView: PropTypes.bool, // boolean to enable the viewport to shift so that the full menu fully visible when engaged\n\tsearchable: PropTypes.bool, // whether to enable searching feature or not\n\tsimpleValue: PropTypes.bool, // pass the value to onChange as a simple value (legacy pre 1.0 mode), defaults to false\n\tstyle: PropTypes.object, // optional style to apply to the control\n\ttabIndex: stringOrNumber, // optional tab index of the control\n\ttabSelectsValue: PropTypes.bool, // whether to treat tabbing out while focused to be value selection\n\ttrimFilter: PropTypes.bool, // whether to trim whitespace around filter value\n\tvalue: PropTypes.any, // initial field value\n\tvalueComponent: PropTypes.func, // value component to render\n\tvalueKey: PropTypes.string, // path of the label value in option objects\n\tvalueRenderer: PropTypes.func, // valueRenderer: function (option) {}\n\twrapperStyle: PropTypes.object // optional style to apply to the component wrapper\n};\n\nSelect$1.defaultProps = {\n\tarrowRenderer: arrowRenderer,\n\tautosize: true,\n\tbackspaceRemoves: true,\n\tbackspaceToRemoveMessage: 'Press backspace to remove {label}',\n\tclearable: true,\n\tclearAllText: 'Clear all',\n\tclearRenderer: clearRenderer,\n\tclearValueText: 'Clear value',\n\tcloseOnSelect: true,\n\tdeleteRemoves: true,\n\tdelimiter: ',',\n\tdisabled: false,\n\tescapeClearsValue: true,\n\tfilterOptions: filterOptions,\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: menuRenderer,\n\tmulti: false,\n\tnoResultsText: 'No results found',\n\tonBlurResetsInput: true,\n\tonCloseResetsInput: true,\n\tonSelectResetsInput: true,\n\topenOnClick: true,\n\toptionComponent: Option,\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: Value,\n\tvalueKey: 'value'\n};\n\nvar propTypes = {\n\tautoload: PropTypes.bool.isRequired, // automatically call the `loadOptions` prop on-mount; defaults to true\n\tcache: PropTypes.any, // object to use to cache results; set to null/false to disable caching\n\tchildren: PropTypes.func.isRequired, // Child function responsible for creating the inner Select component; (props: Object): PropTypes.element\n\tignoreAccents: PropTypes.bool, // strip diacritics when filtering; defaults to true\n\tignoreCase: PropTypes.bool, // perform case-insensitive filtering; defaults to true\n\tloadOptions: PropTypes.func.isRequired, // callback to load options asynchronously; (inputValue: string, callback: Function): ?Promise\n\tloadingPlaceholder: PropTypes.oneOfType([// replaces the placeholder while options are loading\n\tPropTypes.string, PropTypes.node]),\n\tmulti: PropTypes.bool, // multi-value input\n\tnoResultsText: PropTypes.oneOfType([// field noResultsText, displayed when no options come back from the server\n\tPropTypes.string, PropTypes.node]),\n\tonChange: PropTypes.func, // onChange handler: function (newValue) {}\n\tonInputChange: PropTypes.func, // optional for keeping track of what is being typed\n\toptions: PropTypes.array.isRequired, // array of options\n\tplaceholder: PropTypes.oneOfType([// field placeholder, displayed when there's no value (shared with Select)\n\tPropTypes.string, PropTypes.node]),\n\tsearchPromptText: PropTypes.oneOfType([// label to prompt for search input\n\tPropTypes.string, PropTypes.node]),\n\tvalue: PropTypes.any // initial field value\n};\n\nvar defaultCache = {};\n\nvar defaultChildren = function defaultChildren(props) {\n\treturn React.createElement(Select$1, 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\tinherits(Async, _Component);\n\n\tfunction Async(props, context) {\n\t\tclassCallCheck(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\tcreateClass(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: 'clearOptions',\n\t\tvalue: function clearOptions() {\n\t\t\tthis.setState({ options: [] });\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 = stripDiacritics(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\treturn Async;\n}(Component);\n\nAsync.propTypes = propTypes;\nAsync.defaultProps = defaultProps;\n\nvar CreatableSelect = function (_React$Component) {\n\tinherits(CreatableSelect, _React$Component);\n\n\tfunction CreatableSelect(props, context) {\n\t\tclassCallCheck(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\tcreateClass(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$$1() {\n\t\t\tvar _props2 = this.props,\n\t\t\t    filterOptions$$1 = _props2.filterOptions,\n\t\t\t    isValidNewOption = _props2.isValidNewOption,\n\t\t\t    promptTextCreator = _props2.promptTextCreator;\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$$1.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\tfilteredOptions.unshift(this._createPlaceholderOption);\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$$1(params) {\n\t\t\tvar menuRenderer$$1 = this.props.menuRenderer;\n\n\n\t\t\treturn menuRenderer$$1(_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({ keyCode: event.keyCode })) {\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\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$2;\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\treturn CreatableSelect;\n}(React.Component);\n\nvar defaultChildren$2 = function defaultChildren(props) {\n\treturn React.createElement(Select$1, 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: filterOptions,\n\tisOptionUnique: isOptionUnique,\n\tisValidNewOption: isValidNewOption,\n\tmenuRenderer: menuRenderer,\n\tnewOptionCreator: newOptionCreator,\n\tpromptTextCreator: promptTextCreator,\n\tshouldKeyDownEventCreateNewOption: shouldKeyDownEventCreateNewOption\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: PropTypes.func,\n\n\t// See Select.propTypes.filterOptions\n\tfilterOptions: PropTypes.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: PropTypes.func,\n\n\t// Determines if the current input text represents a valid option.\n\t// ({ label: string }): boolean\n\tisValidNewOption: PropTypes.func,\n\n\t// See Select.propTypes.menuRenderer\n\tmenuRenderer: PropTypes.any,\n\n\t// Factory to create new option.\n\t// ({ label: string, labelKey: string, valueKey: string }): Object\n\tnewOptionCreator: PropTypes.func,\n\n\t// input change handler: function (inputValue) {}\n\tonInputChange: PropTypes.func,\n\n\t// input keyDown handler: function (event) {}\n\tonInputKeyDown: PropTypes.func,\n\n\t// new option click handler: function (option) {}\n\tonNewOptionClick: PropTypes.func,\n\n\t// See Select.propTypes.options\n\toptions: PropTypes.array,\n\n\t// Creates prompt/placeholder option text.\n\t// (filterText: string): string\n\tpromptTextCreator: PropTypes.func,\n\n\tref: PropTypes.func,\n\n\t// Decides if a keyDown event (eg its `keyCode`) should result in the creation of a new option.\n\tshouldKeyDownEventCreateNewOption: PropTypes.func\n};\n\nvar AsyncCreatableSelect = function (_React$Component) {\n\tinherits(AsyncCreatableSelect, _React$Component);\n\n\tfunction AsyncCreatableSelect() {\n\t\tclassCallCheck(this, AsyncCreatableSelect);\n\t\treturn possibleConstructorReturn(this, (AsyncCreatableSelect.__proto__ || Object.getPrototypeOf(AsyncCreatableSelect)).apply(this, arguments));\n\t}\n\n\tcreateClass(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 React.createElement(\n\t\t\t\tAsync,\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 React.createElement(\n\t\t\t\t\t\tCreatableSelect,\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\treturn AsyncCreatableSelect;\n}(React.Component);\n\nvar defaultChildren$1 = function defaultChildren(props) {\n\treturn React.createElement(Select$1, props);\n};\n\nAsyncCreatableSelect.propTypes = {\n\tchildren: PropTypes.func.isRequired // Child function responsible for creating the inner Select component; (props: Object): PropTypes.element\n};\n\nAsyncCreatableSelect.defaultProps = {\n\tchildren: defaultChildren$1\n};\n\nSelect$1.Async = Async;\nSelect$1.AsyncCreatable = AsyncCreatableSelect;\nSelect$1.Creatable = CreatableSelect;\nSelect$1.Value = Value;\nSelect$1.Option = Option;\n\nexport { Async, AsyncCreatableSelect as AsyncCreatable, CreatableSelect as Creatable, Value, Option, menuRenderer as defaultMenuRenderer, arrowRenderer as defaultArrowRenderer, clearRenderer as defaultClearRenderer, filterOptions as defaultFilterOptions };\nexport default Select$1;\n"
        },
        {
          "id": 13,
          "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/classnames/index.js",
          "name": "./node_modules/classnames/index.js",
          "index": 37,
          "index2": 33,
          "size": 1102,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/react-select/lib/Option.js",
          "issuerId": 38,
          "issuerName": "./node_modules/react-select/lib/Option.js",
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 12,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/react-select/dist/react-select.es.js",
              "module": "./node_modules/react-select/dist/react-select.es.js",
              "moduleName": "./node_modules/react-select/dist/react-select.es.js",
              "type": "harmony import",
              "userRequest": "classnames",
              "loc": "2:0-36"
            },
            {
              "moduleId": 38,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/react-select/lib/Option.js",
              "module": "./node_modules/react-select/lib/Option.js",
              "moduleName": "./node_modules/react-select/lib/Option.js",
              "type": "cjs require",
              "userRequest": "classnames",
              "loc": "9:18-39"
            }
          ],
          "usedExports": true,
          "providedExports": null,
          "optimizationBailout": [],
          "depth": 3,
          "source": "/*!\n  Copyright (c) 2016 Jed Watson.\n  Licensed under the MIT License (MIT), see\n  http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n"
        },
        {
          "id": 14,
          "identifier": "multi ././index.js",
          "name": "multi ././index.js",
          "index": 0,
          "index2": 39,
          "size": 28,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": null,
          "issuerId": null,
          "issuerName": null,
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [],
          "usedExports": true,
          "providedExports": null,
          "optimizationBailout": [],
          "depth": 0
        },
        {
          "id": 15,
          "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
          "name": "./index.js",
          "index": 1,
          "index2": 38,
          "size": 1276,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "multi ././index.js",
          "issuerId": 14,
          "issuerName": "multi ././index.js",
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 14,
              "moduleIdentifier": "multi ././index.js",
              "module": "multi ././index.js",
              "moduleName": "multi ././index.js",
              "type": "single entry",
              "userRequest": "././index.js",
              "loc": "main:100000"
            }
          ],
          "usedExports": true,
          "providedExports": null,
          "optimizationBailout": [],
          "depth": 1,
          "source": "'use strict';\n\nvar _ReactDatum = {\n  // contextual components\n  ClickToEditForm: require('./lib/clickToEditForm'),\n  ContextualData: require('./lib/contextualData'),\n  Collection: require('./lib/collection'),\n  CollectionStats: require('./lib/collectionStats'),\n  Form: require('./lib/form'),\n  Model: require('./lib/model'),\n  SelectedModel: require('./lib/selectedModel'),\n\n  // Datums\n  Datum: require('./lib/datums/datum'),\n  Email: require('./lib/datums/email'),\n  LazyPhoto: require('./lib/datums/lazyPhoto'),\n  Link: require('./lib/datums/link'),\n  Number: require('./lib/datums/number'),\n  Percent: require('./lib/datums/percent'),\n  Text: require('./lib/datums/text'),\n  Label: require('./lib/datums/label'),\n  WholeNumber: require('./lib/datums/wholeNumber'),\n\n  // Global options\n  Options: require('./lib/options'),\n\n  // TODO : i think this and react-select will eventually go to a separate \n  //    npm package so that the core doesn't have dependency on react-select\n  CollectionPicker: require('./lib/datums/collectionPicker/collectionPicker'),\n  // react-select \n  ReactSelect: require('react-select'),\n  SelectOption: require('react-select/lib/Option.js')\n\n};\nif (window) {\n  window.ReactDatum = _ReactDatum;\n}\nif (module) {\n  module.exports = _ReactDatum;\n}"
        },
        {
          "id": 16,
          "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/webpack/buildin/module.js",
          "name": "(webpack)/buildin/module.js",
          "index": 2,
          "index2": 0,
          "size": 517,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
          "issuerId": 15,
          "issuerName": "./index.js",
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 15,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
              "module": "./index.js",
              "moduleName": "./index.js",
              "type": "cjs require",
              "userRequest": "module",
              "loc": "1:0-51"
            }
          ],
          "usedExports": true,
          "providedExports": null,
          "optimizationBailout": [],
          "depth": 2,
          "source": "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\tif(!module.children) module.children = [];\r\n\t\tObject.defineProperty(module, \"loaded\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.l;\r\n\t\t\t}\r\n\t\t});\r\n\t\tObject.defineProperty(module, \"id\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.i;\r\n\t\t\t}\r\n\t\t});\r\n\t\tmodule.webpackPolyfill = 1;\r\n\t}\r\n\treturn module;\r\n};\r\n"
        },
        {
          "id": 17,
          "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/clickToEditForm.js",
          "name": "./lib/clickToEditForm.js",
          "index": 3,
          "index2": 14,
          "size": 2575,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
          "issuerId": 15,
          "issuerName": "./index.js",
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 15,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
              "module": "./index.js",
              "moduleName": "./index.js",
              "type": "cjs require",
              "userRequest": "./lib/clickToEditForm",
              "loc": "5:19-51"
            }
          ],
          "usedExports": true,
          "providedExports": null,
          "optimizationBailout": [],
          "depth": 2,
          "source": "'use strict';\n\n(function () {\n  var ClickToEditForm,\n      Form,\n      React,\n      _,\n      bind = function bind(fn, me) {\n    return function () {\n      return fn.apply(me, arguments);\n    };\n  },\n      extend = function extend(child, parent) {\n    for (var key in parent) {\n      if (hasProp.call(parent, key)) child[key] = parent[key];\n    }function ctor() {\n      this.constructor = child;\n    }ctor.prototype = parent.prototype;child.prototype = new ctor();child.__super__ = parent.prototype;return child;\n  },\n      hasProp = {}.hasOwnProperty;\n\n  React = require('./lib/reactLegacy');\n\n  Form = require('./form');\n\n  _ = require('underscore');\n\n  module.exports = ClickToEditForm = function (superClass) {\n    extend(ClickToEditForm, superClass);\n\n    ClickToEditForm.displayName = \"react-datum.ClickToEditForm\";\n\n    ClickToEditForm.prototype.datumInputMode = 'readonly';\n\n    function ClickToEditForm(props) {\n      this.stopEditing = bind(this.stopEditing, this);\n      this.onCancelClick = bind(this.onCancelClick, this);\n      this.onSaveSuccess = bind(this.onSaveSuccess, this);\n      this.onEditClick = bind(this.onEditClick, this);\n      ClickToEditForm.__super__.constructor.apply(this, arguments);\n      this.isEditing = false;\n    }\n\n    ClickToEditForm.prototype.renderButtons = function (options) {\n      if (this.isEditing) {\n        return ClickToEditForm.__super__.renderButtons.apply(this, arguments);\n      }\n      if (this.props.readonly) {\n        return React.createElement(\"span\", null);\n      } else {\n        return React.createElement(\"button\", {\n          \"key\": \"edit\",\n          \"className\": \"btn btn-primary\",\n          \"onClick\": this.onEditClick\n        }, \"Edit\");\n      }\n    };\n\n    ClickToEditForm.prototype.onEditClick = function () {\n      this.isEditing = true;\n      this.datumInputMode = 'edit';\n      this.forceUpdate();\n      return _.defer(function (_this) {\n        return function () {\n          return _this.focus();\n        };\n      }(this));\n    };\n\n    ClickToEditForm.prototype.onSaveSuccess = function () {\n      ClickToEditForm.__super__.onSaveSuccess.apply(this, arguments);\n      return this.stopEditing();\n    };\n\n    ClickToEditForm.prototype.onCancelClick = function () {\n      this.stopEditing();\n      return ClickToEditForm.__super__.onCancelClick.apply(this, arguments);\n    };\n\n    ClickToEditForm.prototype.stopEditing = function () {\n      this.isEditing = false;\n      this.datumInputMode = 'readonly';\n      return this.forceUpdate();\n    };\n\n    return ClickToEditForm;\n  }(Form);\n}).call(undefined);"
        },
        {
          "id": 18,
          "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/prop-types/factoryWithThrowingShims.js",
          "name": "./node_modules/prop-types/factoryWithThrowingShims.js",
          "index": 7,
          "index2": 5,
          "size": 1492,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/prop-types/index.js",
          "issuerId": 5,
          "issuerName": "./node_modules/prop-types/index.js",
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 5,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/prop-types/index.js",
              "module": "./node_modules/prop-types/index.js",
              "moduleName": "./node_modules/prop-types/index.js",
              "type": "cjs require",
              "userRequest": "./factoryWithThrowingShims",
              "loc": "27:19-56"
            }
          ],
          "usedExports": true,
          "providedExports": null,
          "optimizationBailout": [],
          "depth": 4,
          "source": "/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nmodule.exports = function() {\n  function shim(props, propName, componentName, location, propFullName, secret) {\n    if (secret === ReactPropTypesSecret) {\n      // It is still safe when called from React.\n      return;\n    }\n    invariant(\n      false,\n      'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n      'Use PropTypes.checkPropTypes() to call them. ' +\n      'Read more at http://fb.me/use-check-prop-types'\n    );\n  };\n  shim.isRequired = shim;\n  function getShim() {\n    return shim;\n  };\n  // Important!\n  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n  var ReactPropTypes = {\n    array: shim,\n    bool: shim,\n    func: shim,\n    number: shim,\n    object: shim,\n    string: shim,\n    symbol: shim,\n\n    any: shim,\n    arrayOf: getShim,\n    element: shim,\n    instanceOf: getShim,\n    node: shim,\n    objectOf: getShim,\n    oneOf: getShim,\n    oneOfType: getShim,\n    shape: getShim,\n    exact: getShim\n  };\n\n  ReactPropTypes.checkPropTypes = emptyFunction;\n  ReactPropTypes.PropTypes = ReactPropTypes;\n\n  return ReactPropTypes;\n};\n"
        },
        {
          "id": 19,
          "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/fbjs/lib/emptyFunction.js",
          "name": "./node_modules/fbjs/lib/emptyFunction.js",
          "index": 8,
          "index2": 2,
          "size": 959,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/prop-types/factoryWithThrowingShims.js",
          "issuerId": 18,
          "issuerName": "./node_modules/prop-types/factoryWithThrowingShims.js",
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 18,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/prop-types/factoryWithThrowingShims.js",
              "module": "./node_modules/prop-types/factoryWithThrowingShims.js",
              "moduleName": "./node_modules/prop-types/factoryWithThrowingShims.js",
              "type": "cjs require",
              "userRequest": "fbjs/lib/emptyFunction",
              "loc": "10:20-53"
            }
          ],
          "usedExports": true,
          "providedExports": null,
          "optimizationBailout": [],
          "depth": 5,
          "source": "\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n  return function () {\n    return arg;\n  };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n  return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n  return arg;\n};\n\nmodule.exports = emptyFunction;"
        },
        {
          "id": 20,
          "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/fbjs/lib/invariant.js",
          "name": "./node_modules/fbjs/lib/invariant.js",
          "index": 9,
          "index2": 3,
          "size": 1506,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/prop-types/factoryWithThrowingShims.js",
          "issuerId": 18,
          "issuerName": "./node_modules/prop-types/factoryWithThrowingShims.js",
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 18,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/prop-types/factoryWithThrowingShims.js",
              "module": "./node_modules/prop-types/factoryWithThrowingShims.js",
              "moduleName": "./node_modules/prop-types/factoryWithThrowingShims.js",
              "type": "cjs require",
              "userRequest": "fbjs/lib/invariant",
              "loc": "11:16-45"
            }
          ],
          "usedExports": true,
          "providedExports": null,
          "optimizationBailout": [],
          "depth": 5,
          "source": "/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n  validateFormat = function validateFormat(format) {\n    if (format === undefined) {\n      throw new Error('invariant requires an error message argument');\n    }\n  };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n  validateFormat(format);\n\n  if (!condition) {\n    var error;\n    if (format === undefined) {\n      error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n    } else {\n      var args = [a, b, c, d, e, f];\n      var argIndex = 0;\n      error = new Error(format.replace(/%s/g, function () {\n        return args[argIndex++];\n      }));\n      error.name = 'Invariant Violation';\n    }\n\n    error.framesToPop = 1; // we don't care about invariant's own frame\n    throw error;\n  }\n}\n\nmodule.exports = invariant;"
        },
        {
          "id": 21,
          "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/prop-types/lib/ReactPropTypesSecret.js",
          "name": "./node_modules/prop-types/lib/ReactPropTypesSecret.js",
          "index": 10,
          "index2": 4,
          "size": 314,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/prop-types/factoryWithThrowingShims.js",
          "issuerId": 18,
          "issuerName": "./node_modules/prop-types/factoryWithThrowingShims.js",
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 18,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/prop-types/factoryWithThrowingShims.js",
              "module": "./node_modules/prop-types/factoryWithThrowingShims.js",
              "moduleName": "./node_modules/prop-types/factoryWithThrowingShims.js",
              "type": "cjs require",
              "userRequest": "./lib/ReactPropTypesSecret",
              "loc": "12:27-64"
            }
          ],
          "usedExports": true,
          "providedExports": null,
          "optimizationBailout": [],
          "depth": 5,
          "source": "/**\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"
        },
        {
          "id": 22,
          "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/collection.js",
          "name": "./lib/collection.js",
          "index": 18,
          "index2": 18,
          "size": 1922,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
          "issuerId": 15,
          "issuerName": "./index.js",
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 15,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
              "module": "./index.js",
              "moduleName": "./index.js",
              "type": "cjs require",
              "userRequest": "./lib/collection",
              "loc": "7:14-41"
            }
          ],
          "usedExports": true,
          "providedExports": null,
          "optimizationBailout": [],
          "depth": 2,
          "source": "'use strict';\n\n(function () {\n  var Backbone,\n      Collection,\n      ContextualData,\n      React,\n      SelectableCollection,\n      _,\n      extend = function extend(child, parent) {\n    for (var key in parent) {\n      if (hasProp.call(parent, key)) child[key] = parent[key];\n    }function ctor() {\n      this.constructor = child;\n    }ctor.prototype = parent.prototype;child.prototype = new ctor();child.__super__ = parent.prototype;return child;\n  },\n      hasProp = {}.hasOwnProperty;\n\n  React = require('./lib/reactLegacy');\n\n  Backbone = require('backbone');\n\n  _ = require('underscore');\n\n  SelectableCollection = require('selectable-collection');\n\n  ContextualData = require('./contextualData');\n\n  module.exports = Collection = function (superClass) {\n    extend(Collection, superClass);\n\n    function Collection() {\n      return Collection.__super__.constructor.apply(this, arguments);\n    }\n\n    Collection.displayName = \"react-datum.Collection\";\n\n    Collection.prototype.dataType = Backbone.Collection;\n\n    Collection.prototype.contextKey = 'collection';\n\n    Collection.collectionPropType = React.PropTypes.oneOfType([React.PropTypes.instanceOf(Backbone.Collection), React.PropTypes.array]);\n\n    Collection.propTypes = _.extend({}, ContextualData.propTypes, {\n      collection: Collection.collectionPropType.isRequired\n    });\n\n    Collection.childContextTypes = _.extend({}, ContextualData.childContextTypes, {\n      collection: Collection.collectionPropType\n    });\n\n    Collection.prototype.setCollectionOrModel = function () {\n      var collection;\n      Collection.__super__.setCollectionOrModel.apply(this, arguments);\n      collection = this.state.collectionOrModel;\n      if (!(collection == null || collection.hasSelectableCollectionMixin)) {\n        SelectableCollection.applyTo(collection);\n      }\n      return collection;\n    };\n\n    return Collection;\n  }(ContextualData);\n}).call(undefined);"
        },
        {
          "id": 23,
          "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/selectable-collection/index.js",
          "name": "./node_modules/selectable-collection/index.js",
          "index": 19,
          "index2": 17,
          "size": 58,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/collection.js",
          "issuerId": 22,
          "issuerName": "./lib/collection.js",
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 22,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/collection.js",
              "module": "./lib/collection.js",
              "moduleName": "./lib/collection.js",
              "type": "cjs require",
              "userRequest": "selectable-collection",
              "loc": "25:25-57"
            }
          ],
          "usedExports": true,
          "providedExports": null,
          "optimizationBailout": [],
          "depth": 3,
          "source": "\nmodule.exports = require('./lib/selectableCollection')\n  "
        },
        {
          "id": 24,
          "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/selectable-collection/lib/selectableCollection.js",
          "name": "./node_modules/selectable-collection/lib/selectableCollection.js",
          "index": 20,
          "index2": 16,
          "size": 8123,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/selectable-collection/index.js",
          "issuerId": 23,
          "issuerName": "./node_modules/selectable-collection/index.js",
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 23,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/selectable-collection/index.js",
              "module": "./node_modules/selectable-collection/index.js",
              "moduleName": "./node_modules/selectable-collection/index.js",
              "type": "cjs require",
              "userRequest": "./lib/selectableCollection",
              "loc": "2:17-54"
            }
          ],
          "usedExports": true,
          "providedExports": null,
          "optimizationBailout": [],
          "depth": 4,
          "source": "(function() {\n  var SelectableCollection, _,\n    __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };\n\n  _ = require('underscore');\n\n  module.exports = SelectableCollection = (function() {\n    function SelectableCollection() {\n      this.setActiveModelById = __bind(this.setActiveModelById, this);\n      this.setActiveIndex = __bind(this.setActiveIndex, this);\n      this.getActiveModel = __bind(this.getActiveModel, this);\n      this.setActiveModel = __bind(this.setActiveModel, this);\n      this.selectNone = __bind(this.selectNone, this);\n      this.selectAll = __bind(this.selectAll, this);\n      this.selectModelByIndex = __bind(this.selectModelByIndex, this);\n      this.selectModelById = __bind(this.selectModelById, this);\n      this.selectModel = __bind(this.selectModel, this);\n    }\n\n\n    /*\n      This method is used to mix SelectableCollection features into a Backbone Collection.\n      \n      example:\n      ```javascript\n        kittensCollection = new Backbone.Collection()\n        SelectableCollection.applyTo(kittensCollection)\n      ```\n     */\n\n    SelectableCollection.applyTo = function(collection) {\n      if (collection.hasSelectableCollectionMixin) {\n        return;\n      }\n      collection.hasSelectableCollection = true;\n      this.warnIfReplacingMethods(collection);\n      return _.extend(collection, this.prototype);\n    };\n\n    SelectableCollection.warnIfReplacingMethods = function(collection) {\n      var intersect;\n      intersect = _.intersection(_.keys(collection), _.keys(this.prototype));\n      if (!(intersect.length > 0)) {\n        return;\n      }\n      return console.error(\"Warning: using SelectableCollection mixin will replace the following methods: \" + intersect.join(', '));\n    };\n\n    SelectableCollection.prototype.hasSelectableCollectionMixin = true;\n\n\n    /*\n      Collection instance method that returns an array of selected models\n     */\n\n    SelectableCollection.prototype.getSelectedModels = function() {\n      return _.filter(this.models, function(m) {\n        return m.selected;\n      });\n    };\n\n\n    /*\n      Collection instance method that selects a single model.\n     \n      The model will be given a `selected` property of true.\n     \n      The `selected` argument can be one of:\n      `true`    - model argument will be selected\n      `false`   - unselect model\n      \"toggle\"` - invert current selected state\n      \n      Example: \n      ```javascript\n        myCollection.selectModel(myModel)\n        console.log(myModel.selected)\n         * => true\n      ```\n     */\n\n    SelectableCollection.prototype.selectModel = function(model, selected, options) {\n      if (selected == null) {\n        selected = true;\n      }\n      if (options == null) {\n        options = {};\n      }\n      options = _.defaults(options, {\n        silent: false\n      });\n      if (model == null) {\n        console.warn(\"SelectableCollection: selectModel called on null model\");\n        return false;\n      }\n      if (selected === \"toggle\") {\n        model.selected = (model.selected == null) || model.selected === false;\n      } else {\n        model.selected = selected;\n      }\n      if (!options.silent) {\n        this.trigger('selectionsChanged');\n      }\n      return model.selected;\n    };\n\n\n    /*\n      Collection instance method that selects a single model by ID.\n      \n      collection.get(id) is used to get the model passed to selectModel method.\n      \n      See also [selectModel method](#selectModel) for options\n     */\n\n    SelectableCollection.prototype.selectModelById = function(id, selected, options) {\n      if (selected == null) {\n        selected = true;\n      }\n      if (options == null) {\n        options = {};\n      }\n      return this.selectModel(this.get(id), selected, options);\n    };\n\n\n    /*\n      Collection instance method that selects a single model by it's zero based index\n      in the collection.\n    \n      See also [selectModel method](#selectModel) for options\n     */\n\n    SelectableCollection.prototype.selectModelByIndex = function(index, selected, options) {\n      if (selected == null) {\n        selected = true;\n      }\n      if (options == null) {\n        options = {};\n      }\n      return this.selectModel(this.models[index], selected, options);\n    };\n\n\n    /*\n      Collection instance method that selects all models in the collection.\n    \n      A single *selectionsChanged* event is triggered unless options.silent==true\n     */\n\n    SelectableCollection.prototype.selectAll = function(options) {\n      var model, _i, _len, _ref;\n      if (options == null) {\n        options = {};\n      }\n      options = _.defaults(options, {\n        silent: false\n      });\n      _ref = this.models;\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        model = _ref[_i];\n        if (model == null) {\n          continue;\n        }\n        this.selectModel(model, true, {\n          silent: true\n        });\n      }\n      if (!options.silent) {\n        return this.trigger('selectionsChanged');\n      }\n    };\n\n\n    /*\n      Collection instance method that unselects all models.  Also sets activeModel to null.\n    \n      A *selectionsChanged* event is triggered unless options.silent==true. \n      A *activeModelChanged* event is also fired\n     */\n\n    SelectableCollection.prototype.selectNone = function(options) {\n      var model, _i, _len, _ref;\n      if (options == null) {\n        options = {};\n      }\n      options = _.defaults(options, {\n        silent: false\n      });\n      _ref = this.getSelectedModels();\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        model = _ref[_i];\n        if (model == null) {\n          continue;\n        }\n        this.selectModel(model, false, {\n          silent: true\n        });\n      }\n      if (!options.silent) {\n        this.trigger('selectionsChanged');\n      }\n      return this.setActiveModel(null);\n    };\n\n\n    /*\n      Collection instance method that sets the current 'active' Model.  Multiple models may be \n      selected in the collection, only one model can be 'active'.   The active model is also\n      selected in the collection if not already selected.  \n      \n      SetActiveModel() is an optional feature. Active model can be used, as it is by \n      [tilegrid](https://github.com/zulily/tilegrid), to provide both multiple selections and\n      a single selection within that set (the last tile added to the selections)\n        \n      pass in null for model argument to unset active model\n     */\n\n    SelectableCollection.prototype.setActiveModel = function(model, options) {\n      var currentActive;\n      if (options == null) {\n        options = {};\n      }\n      options = _.defaults(options, {\n        active: true,\n        silent: false\n      });\n      currentActive = this.getActiveModel();\n      if (currentActive != null) {\n        currentActive.active = false;\n      }\n      this.selectModel(model, options);\n      if (model != null) {\n        model.active = options.active;\n      }\n      this.activeModel = model;\n      if (!options.silent) {\n        return this.trigger('activeModelChanged', model);\n      }\n    };\n\n\n    /*\n      Collection instance method that returns the current active model.\n     */\n\n    SelectableCollection.prototype.getActiveModel = function() {\n      return this.activeModel;\n    };\n\n\n    /*\n      Collection instance method that sets the active model by index in collection.\n      \n      see [setActiveModel](#setActiveModel) for options\n     */\n\n    SelectableCollection.prototype.setActiveIndex = function(index, options) {\n      if (options == null) {\n        options = {};\n      }\n      return this.setActiveModel(this.models[index]);\n    };\n\n\n    /*\n      Collection instance method that sets the active model by id in collection.\n      \n      see [setActiveModel](#setActiveModel) for options\n     */\n\n    SelectableCollection.prototype.setActiveModelById = function(modelId, options) {\n      if (options == null) {\n        options = {};\n      }\n      return this.setActiveModel(this.get(modelId), options);\n    };\n\n    return SelectableCollection;\n\n  })();\n\n}).call(this);\n"
        },
        {
          "id": 25,
          "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/collectionStats.js",
          "name": "./lib/collectionStats.js",
          "index": 21,
          "index2": 19,
          "size": 3834,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
          "issuerId": 15,
          "issuerName": "./index.js",
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 15,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
              "module": "./index.js",
              "moduleName": "./index.js",
              "type": "cjs require",
              "userRequest": "./lib/collectionStats",
              "loc": "8:19-51"
            }
          ],
          "usedExports": true,
          "providedExports": null,
          "optimizationBailout": [],
          "depth": 2,
          "source": "'use strict';\n\n(function () {\n  var Backbone,\n      CollectionStats,\n      React,\n      extend = function extend(child, parent) {\n    for (var key in parent) {\n      if (hasProp.call(parent, key)) child[key] = parent[key];\n    }function ctor() {\n      this.constructor = child;\n    }ctor.prototype = parent.prototype;child.prototype = new ctor();child.__super__ = parent.prototype;return child;\n  },\n      hasProp = {}.hasOwnProperty;\n\n  React = require('./lib/reactLegacy');\n\n  Backbone = require('backbone');\n\n  module.exports = CollectionStats = function (superClass) {\n    extend(CollectionStats, superClass);\n\n    function CollectionStats() {\n      return CollectionStats.__super__.constructor.apply(this, arguments);\n    }\n\n    CollectionStats.displayName = \"react-datum.CollectionStats\";\n\n    CollectionStats.propTypes = {\n      collection: React.PropTypes.instanceOf(Backbone.Collection),\n      itemDisplayName: React.PropTypes.string\n    };\n\n    CollectionStats.defaultProps = {\n      itemDisplayName: \"item\"\n    };\n\n    CollectionStats.contextTypes = {\n      collection: React.PropTypes.instanceOf(Backbone.Collection)\n    };\n\n    CollectionStats.prototype.render = function () {\n      this.collection = this.props.collection || this.context.collection;\n      if (this.collection == null) {\n        throw this.constructor.displayName + \" needs a collection prop or react-datum Collection context parent\";\n      }\n      return React.createElement(\"div\", {\n        \"className\": 'collection-stats'\n      }, this._renderFound(), this._renderSelected(), this._renderViewing());\n    };\n\n    CollectionStats.prototype._renderFound = function () {\n      var base, displayName, things, total;\n      total = (typeof (base = this.collection).getTotalRows === \"function\" ? base.getTotalRows() : void 0) || this.collection.models.length;\n      displayName = this.props.itemDisplayName;\n      things = function () {\n        switch (false) {\n          case (typeof inflection !== \"undefined\" && inflection !== null ? inflection.inflect : void 0) == null:\n            return inflection.inflect(this.props.itemDisplayName, total);\n          case displayName.plural == null:\n            return displayName.plural(total);\n          default:\n            return displayName;\n        }\n      }.call(this);\n      return React.createElement(\"span\", {\n        \"className\": \"found stats fade in\"\n      }, \"Found \", this._renderCount(total), \" \", things);\n    };\n\n    CollectionStats.prototype._renderSelected = function () {\n      if (!this.collection.hasSelectableCollection) {\n        return null;\n      }\n      return React.createElement(\"span\", {\n        \"className\": \"selected stats fade in\"\n      }, \", \", this._renderCount(this.collection.getSelectedModels().length), \" selected\");\n    };\n\n    CollectionStats.prototype._renderViewing = function () {\n      var bottomIndex, ref, ref1, topIndex;\n      topIndex = this.collection.topDisplayIndex || ((ref = this.collection.statsModel) != null ? ref.get('topDisplayIndex') : void 0);\n      bottomIndex = this.collection.bottomDisplayIndex || ((ref1 = this.collection.statsModel) != null ? ref1.get('bottomDisplayIndex') : void 0);\n      if (!(topIndex != null && bottomIndex)) {\n        return null;\n      }\n      return React.createElement(\"span\", {\n        \"className\": \"viewing stats fade in\"\n      }, \"Viewing \", this._renderCount(topIndex, 'top-index'), \" - \", this._renderCount(bottomIndex, 'bottom-index'));\n    };\n\n    CollectionStats.prototype._renderCount = function (value, addClass) {\n      var className;\n      if (addClass == null) {\n        addClass = \"\";\n      }\n      className = [\"count\", addClass].join(' ');\n      return React.createElement(\"span\", {\n        \"className\": className\n      }, value);\n    };\n\n    return CollectionStats;\n  }(React.Component);\n}).call(undefined);"
        },
        {
          "id": 26,
          "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/model.js",
          "name": "./lib/model.js",
          "index": 22,
          "index2": 20,
          "size": 1457,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
          "issuerId": 15,
          "issuerName": "./index.js",
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 15,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
              "module": "./index.js",
              "moduleName": "./index.js",
              "type": "cjs require",
              "userRequest": "./lib/model",
              "loc": "10:9-31"
            }
          ],
          "usedExports": true,
          "providedExports": null,
          "optimizationBailout": [],
          "depth": 2,
          "source": "'use strict';\n\n(function () {\n  var Backbone,\n      ContextualData,\n      Model,\n      React,\n      _,\n      extend = function extend(child, parent) {\n    for (var key in parent) {\n      if (hasProp.call(parent, key)) child[key] = parent[key];\n    }function ctor() {\n      this.constructor = child;\n    }ctor.prototype = parent.prototype;child.prototype = new ctor();child.__super__ = parent.prototype;return child;\n  },\n      hasProp = {}.hasOwnProperty;\n\n  React = require('./lib/reactLegacy');\n\n  Backbone = require('backbone');\n\n  _ = require('underscore');\n\n  ContextualData = require('./contextualData');\n\n  module.exports = Model = function (superClass) {\n    extend(Model, superClass);\n\n    function Model() {\n      return Model.__super__.constructor.apply(this, arguments);\n    }\n\n    Model.displayName = \"react-datum.Model\";\n\n    Model.prototype.dataType = Backbone.Model;\n\n    Model.prototype.contextKey = 'model';\n\n    Model.modelPropType = React.PropTypes.oneOfType([React.PropTypes.instanceOf(Backbone.Model), React.PropTypes.object]);\n\n    Model.propTypes = _.extend({}, ContextualData.propTypes, {\n      model: Model.modelPropType.isRequired\n    });\n\n    Model.childContextTypes = _.extend({}, ContextualData.childContextTypes, {\n      model: Model.modelPropType\n    });\n\n    Model.prototype.update = function () {\n      return Model.__super__.update.apply(this, arguments);\n    };\n\n    return Model;\n  }(ContextualData);\n}).call(undefined);"
        },
        {
          "id": 27,
          "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/selectedModel.js",
          "name": "./lib/selectedModel.js",
          "index": 23,
          "index2": 21,
          "size": 3522,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
          "issuerId": 15,
          "issuerName": "./index.js",
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 15,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
              "module": "./index.js",
              "moduleName": "./index.js",
              "type": "cjs require",
              "userRequest": "./lib/selectedModel",
              "loc": "11:17-47"
            }
          ],
          "usedExports": true,
          "providedExports": null,
          "optimizationBailout": [],
          "depth": 2,
          "source": "'use strict';\n\n(function () {\n  var Backbone,\n      ContextualData,\n      React,\n      SelectedModel,\n      bind = function bind(fn, me) {\n    return function () {\n      return fn.apply(me, arguments);\n    };\n  },\n      extend = function extend(child, parent) {\n    for (var key in parent) {\n      if (hasProp.call(parent, key)) child[key] = parent[key];\n    }function ctor() {\n      this.constructor = child;\n    }ctor.prototype = parent.prototype;child.prototype = new ctor();child.__super__ = parent.prototype;return child;\n  },\n      hasProp = {}.hasOwnProperty;\n\n  React = require('./lib/reactLegacy');\n\n  Backbone = require('backbone');\n\n  ContextualData = require('./contextualData');\n\n  module.exports = SelectedModel = function (superClass) {\n    extend(SelectedModel, superClass);\n\n    function SelectedModel() {\n      this._onSelectionsChanged = bind(this._onSelectionsChanged, this);\n      return SelectedModel.__super__.constructor.apply(this, arguments);\n    }\n\n    SelectedModel.displayName = \"react-datum.SelectedModel\";\n\n    SelectedModel.prototype.dataType = Backbone.Model;\n\n    SelectedModel.prototype.contextKey = 'model';\n\n    SelectedModel.proptypes = {\n      collection: React.PropTypes.instanceOf(Backbone.Collection),\n      placeholder: React.PropTypes.node\n    };\n\n    SelectedModel.contextTypes = {\n      collection: React.PropTypes.instanceOf(Backbone.Collection)\n    };\n\n    SelectedModel.childContextTypes = {\n      model: React.PropTypes.instanceOf(Backbone.Model)\n    };\n\n    SelectedModel.prototype.renderContent = function () {\n      var superContent;\n      superContent = SelectedModel.__super__.renderContent.apply(this, arguments);\n      if (this.state.collectionOrModel != null) {\n        return superContent;\n      }\n      return React.createElement(\"div\", {\n        \"className\": \"large-placeholder\"\n      }, this.props.placeholder);\n    };\n\n    SelectedModel.prototype.needsReinitializing = function () {\n      var truth;\n      truth = SelectedModel.__super__.needsReinitializing.call(this) || this.context.collection !== this._lastContextCollection;\n      this._lastContextCollection = this.context.collection;\n      return truth;\n    };\n\n    /*\n      override - We are going to provide a 'model' context (contextKey), but we listen to a \n      collection\n     */\n\n    SelectedModel.prototype.getInputCollectionOrModel = function () {\n      return this.props.collection || this.context.collection;\n    };\n\n    SelectedModel.prototype.getCollectionOrModelToProvide = function () {\n      var collection;\n      collection = this.props.collection || this.context.collection;\n      return collection != null ? typeof collection.getSelectedModels === \"function\" ? collection.getSelectedModels()[0] : void 0 : void 0;\n    };\n\n    SelectedModel.prototype.bindEvents = function (model) {\n      var ref;\n      SelectedModel.__super__.bindEvents.apply(this, arguments);\n      return (ref = this.getInputCollectionOrModel()) != null ? ref.on(\"selectionsChanged\", this._onSelectionsChanged) : void 0;\n    };\n\n    SelectedModel.prototype.unbindEvents = function () {\n      var ref;\n      SelectedModel.__super__.unbindEvents.apply(this, arguments);\n      return (ref = this.getInputCollectionOrModel()) != null ? ref.off(\"selectionsChanged\", this._onSelectionsChanged) : void 0;\n    };\n\n    SelectedModel.prototype._onSelectionsChanged = function () {\n      this.setCollectionOrModel();\n      return this.forceUpdate();\n    };\n\n    return SelectedModel;\n  }(ContextualData);\n}).call(undefined);"
        },
        {
          "id": 28,
          "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/email.js",
          "name": "./lib/datums/email.js",
          "index": 24,
          "index2": 22,
          "size": 2081,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
          "issuerId": 15,
          "issuerName": "./index.js",
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 15,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
              "module": "./index.js",
              "moduleName": "./index.js",
              "type": "cjs require",
              "userRequest": "./lib/datums/email",
              "loc": "15:9-38"
            }
          ],
          "usedExports": true,
          "providedExports": null,
          "optimizationBailout": [],
          "depth": 2,
          "source": "'use strict';\n\n(function () {\n  var Datum,\n      Email,\n      React,\n      _,\n      bind = function bind(fn, me) {\n    return function () {\n      return fn.apply(me, arguments);\n    };\n  },\n      extend = function extend(child, parent) {\n    for (var key in parent) {\n      if (hasProp.call(parent, key)) child[key] = parent[key];\n    }function ctor() {\n      this.constructor = child;\n    }ctor.prototype = parent.prototype;child.prototype = new ctor();child.__super__ = parent.prototype;return child;\n  },\n      hasProp = {}.hasOwnProperty;\n\n  React = require('../lib/reactLegacy');\n\n  _ = require('underscore');\n\n  Datum = require('./datum');\n\n  /*\n    For rendering and input of email addresses.  Can render mailto: links like \n    `<a href=\"mailto:\">` in display mode\n    \n    Validates that email address is a semi valid email based on matching \n    `/^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$/`\n   */\n\n  module.exports = Email = function (superClass) {\n    extend(Email, superClass);\n\n    Email.displayName = \"react-datum.Email\";\n\n    Email.propTypes = _.extend({}, Datum.propTypes, {\n      displayAsLink: React.PropTypes.bool\n    });\n\n    function Email(props) {\n      this.validateEmail = bind(this.validateEmail, this);\n      Email.__super__.constructor.apply(this, arguments);\n      this.addValidations(this.validateEmail);\n    }\n\n    Email.prototype.renderValueForDisplay = function () {\n      var value;\n      value = Email.__super__.renderValueForDisplay.apply(this, arguments);\n      if (this.props.displayAsLink) {\n        return React.createElement(\"a\", {\n          \"href\": this.getMailToHref(value)\n        }, value);\n      } else {\n        return value;\n      }\n    };\n\n    Email.prototype.getMailToHref = function (value) {\n      return \"mailto:\" + value;\n    };\n\n    Email.prototype.validateEmail = function (value) {\n      if (value.match(/^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$/)) {\n        return true;\n      }\n      return \"Invalid email address.  Should be like 'bob@zulily.com'\";\n    };\n\n    return Email;\n  }(Datum);\n}).call(undefined);"
        },
        {
          "id": 29,
          "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/lazyPhoto.js",
          "name": "./lib/datums/lazyPhoto.js",
          "index": 25,
          "index2": 23,
          "size": 3016,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
          "issuerId": 15,
          "issuerName": "./index.js",
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 15,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
              "module": "./index.js",
              "moduleName": "./index.js",
              "type": "cjs require",
              "userRequest": "./lib/datums/lazyPhoto",
              "loc": "16:13-46"
            }
          ],
          "usedExports": true,
          "providedExports": null,
          "optimizationBailout": [],
          "depth": 2,
          "source": "'use strict';\n\n(function () {\n  var Datum,\n      LazyPhoto,\n      Options,\n      React,\n      bind = function bind(fn, me) {\n    return function () {\n      return fn.apply(me, arguments);\n    };\n  },\n      extend = function extend(child, parent) {\n    for (var key in parent) {\n      if (hasProp.call(parent, key)) child[key] = parent[key];\n    }function ctor() {\n      this.constructor = child;\n    }ctor.prototype = parent.prototype;child.prototype = new ctor();child.__super__ = parent.prototype;return child;\n  },\n      hasProp = {}.hasOwnProperty;\n\n  React = require('../lib/reactLegacy');\n\n  Datum = require('./datum');\n\n  Options = require('../options');\n\n  /*\n    This is a lazy loading image.\n  \n    To prevent a page heavily loaded with images preventing other content from loading, a small\n    blank image is downloaded and rendered first and then onLoad the real image src is used and\n    rerender.\n  \n    On error a notFoundUrl is set as the image src to prevent broken image display.\n  \n    The model attribute specified in @props.attr should return a fully qualified\n    url.  The image is only rendered if it's visible and in view. Otherwise the placeholder\n    image is rendered.\n   */\n\n  module.exports = LazyPhoto = function (superClass) {\n    extend(LazyPhoto, superClass);\n\n    function LazyPhoto() {\n      this.onError = bind(this.onError, this);\n      this.onLoad = bind(this.onLoad, this);\n      return LazyPhoto.__super__.constructor.apply(this, arguments);\n    }\n\n    LazyPhoto.displayName = \"react-datum.LazyPhoto\";\n\n    LazyPhoto.prototype.subClassName = 'lazy-image';\n\n    LazyPhoto.prototype.initialLoadComplete = false;\n\n    LazyPhoto.prototype.componentWillMount = function () {\n      LazyPhoto.__super__.componentWillMount.apply(this, arguments);\n      return this.setState({\n        notFound: false\n      });\n    };\n\n    LazyPhoto.prototype.isEditable = function () {\n      return false;\n    };\n\n    LazyPhoto.prototype.renderForDisplay = function () {\n      var modelValue, notFound, notFoundUrl, source;\n      modelValue = this.getModelValue();\n      notFound = modelValue == null ? true : this.state.notFound;\n      notFoundUrl = Options.get('LazyPhoto').notFoundUrl;\n      source = notFound ? notFoundUrl : modelValue;\n      return React.createElement(\"img\", {\n        \"src\": source,\n        \"onLoad\": this.onLoad,\n        \"onError\": this.onError\n      });\n    };\n\n    LazyPhoto.prototype.onLoad = function (evt) {\n      if (this.initialLoadComplete || this.notFound) {\n        return;\n      }\n      return this.initialLoadComplete = true;\n    };\n\n    LazyPhoto.prototype.onError = function (evt) {\n      if (this.state.notFound) {\n        return;\n      }\n      return this.setState({\n        notFound: true\n      });\n    };\n\n    LazyPhoto.prototype.onModelValueChange = function () {\n      this.setState({\n        notFound: false\n      });\n      return LazyPhoto.__super__.onModelValueChange.apply(this, arguments);\n    };\n\n    return LazyPhoto;\n  }(Datum);\n}).call(undefined);"
        },
        {
          "id": 30,
          "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/link.js",
          "name": "./lib/datums/link.js",
          "index": 26,
          "index2": 24,
          "size": 2660,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
          "issuerId": 15,
          "issuerName": "./index.js",
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 15,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
              "module": "./index.js",
              "moduleName": "./index.js",
              "type": "cjs require",
              "userRequest": "./lib/datums/link",
              "loc": "17:8-36"
            }
          ],
          "usedExports": true,
          "providedExports": null,
          "optimizationBailout": [],
          "depth": 2,
          "source": "'use strict';\n\n(function () {\n  var Datum,\n      Link,\n      React,\n      _,\n      extend = function extend(child, parent) {\n    for (var key in parent) {\n      if (hasProp.call(parent, key)) child[key] = parent[key];\n    }function ctor() {\n      this.constructor = child;\n    }ctor.prototype = parent.prototype;child.prototype = new ctor();child.__super__ = parent.prototype;return child;\n  },\n      hasProp = {}.hasOwnProperty;\n\n  React = require('../lib/reactLegacy');\n\n  _ = require('underscore');\n\n  Datum = require('./datum');\n\n  /*\n    see ./link.md\n   */\n\n  module.exports = Link = function (superClass) {\n    extend(Link, superClass);\n\n    function Link() {\n      return Link.__super__.constructor.apply(this, arguments);\n    }\n\n    Link.displayName = \"react-datum.Link\";\n\n    Link.propTypes = _.extend({}, Datum.propTypes, {\n      nameAttr: React.PropTypes.string,\n      target: React.PropTypes.string,\n      ellipsizeAt: React.PropTypes.oneOfType([React.PropTypes.number, React.PropTypes.bool]),\n      reverseEllipsis: React.PropTypes.bool,\n      hideProtocol: React.PropTypes.bool\n    });\n\n    Link.defaultProps = _.extend({}, Datum.defaultProps, {\n      ellipsizeAt: 35,\n      target: '_blank',\n      hideProtocol: false\n    });\n\n    Link.prototype.subClassName = 'link';\n\n    Link.prototype.renderValueForDisplay = function () {\n      return React.createElement(\"a\", {\n        \"href\": this._getHref(),\n        \"target\": this.props.target\n      }, this._getTagContent());\n    };\n\n    Link.prototype._getHref = function () {\n      return this.getModelValue();\n    };\n\n    Link.prototype._removeHttpForDisplay = function () {\n      var index, value;\n      value = this.getModelValue();\n      if (value.indexOf('://') >= 3) {\n        index = value.indexOf('://') + 3;\n        value = value.slice(index);\n      }\n      return value;\n    };\n\n    Link.prototype._getTagContent = function () {\n      var contentValue, value;\n      if (this.props.nameAttr != null) {\n        contentValue = this.getModel().get(this.props.nameAttr);\n        if (_.isArray(contentValue)) {\n          contentValue = contentValue.map(function (v) {\n            return v.toString();\n          }).join(', ');\n        }\n        return this.renderEllipsizedValue(contentValue);\n      } else if (this.props.children != null) {\n        return React.createElement(\"span\", null, this.props.children);\n      } else {\n        if (this.props.hideProtocol) {\n          value = this._removeHttpForDisplay();\n        } else {\n          value = this.getModelValue();\n        }\n        return this.renderEllipsizedValue(value);\n      }\n    };\n\n    return Link;\n  }(Datum);\n}).call(undefined);"
        },
        {
          "id": 31,
          "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/percent.js",
          "name": "./lib/datums/percent.js",
          "index": 28,
          "index2": 26,
          "size": 3117,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
          "issuerId": 15,
          "issuerName": "./index.js",
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 15,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
              "module": "./index.js",
              "moduleName": "./index.js",
              "type": "cjs require",
              "userRequest": "./lib/datums/percent",
              "loc": "19:11-42"
            }
          ],
          "usedExports": true,
          "providedExports": null,
          "optimizationBailout": [],
          "depth": 2,
          "source": "'use strict';\n\n(function () {\n  var Number,\n      Percent,\n      React,\n      extend = function extend(child, parent) {\n    for (var key in parent) {\n      if (hasProp.call(parent, key)) child[key] = parent[key];\n    }function ctor() {\n      this.constructor = child;\n    }ctor.prototype = parent.prototype;child.prototype = new ctor();child.__super__ = parent.prototype;return child;\n  },\n      hasProp = {}.hasOwnProperty;\n\n  React = require('../lib/reactLegacy');\n\n  Number = require('./number');\n\n  /*\n    This datum is an extension of [ReactDatum.Number](http://zulily.github.io/react-datum/docs/api/#Number) for\n    display and input of percent values.   \n    \n    - Display value is affixed with '%' \n    - Display and input value are model value * 100 (model value is assumed to be \n    fractional value)\n    - User input is assumed to be number percentage (* 100)\n    - props.decimalPlaces is respected for both display and input\n  \n  \n    Number datum has (maybe use to have) a format called  'percent' that will also\n    do a little part of what Percent datum does.  The Percent datum is meant to \n    supercede 'percent' format to Number datum.\n   */\n\n  module.exports = Percent = function (superClass) {\n    extend(Percent, superClass);\n\n    function Percent() {\n      return Percent.__super__.constructor.apply(this, arguments);\n    }\n\n    Percent.displayName = \"react-datum.Percent\";\n\n    /*\n      Model value returned is multiplied by 100.  Internal value for Percent\n      is always the whole number displayed percentage rounded to requested\n      decimal places.\n     */\n\n    Percent.prototype.getModelValue = function () {\n      var superValue;\n      superValue = Percent.__super__.getModelValue.apply(this, arguments);\n      if (superValue == null) {\n        return superValue;\n      }\n      return this.roundToDecimalPlaces(Number.safelyFloat(superValue) * 100);\n    };\n\n    /*\n      What get's saved to the model is the user entered value divided by 100\n     */\n\n    Percent.prototype.setModelValue = function (value, options) {\n      var floatValue;\n      if (value == null) {\n        value = this.getInputValue();\n      }\n      if (options == null) {\n        options = {};\n      }\n      if (value == null) {\n        return;\n      }\n      value || (value = 0);\n      floatValue = Number.safelyFloat(value) / 100;\n      return Percent.__super__.setModelValue.call(this, floatValue, options);\n    };\n\n    /*\n      Other formats like 'money' and 'abbreviate' are ignored.  Override react-datum.Money\n     */\n\n    Percent.prototype.getFormats = function () {\n      return [];\n    };\n\n    /*\n      Renders value for display as nn.n%.\n      \n      Base number has (maybe use to have) a format called  'percent' that will also\n      do this little part of it.  The Percent datum is meant to supercede 'percent' \n      format to Number datum.\n     */\n\n    Percent.prototype.renderValueForDisplay = function () {\n      var superVal;\n      superVal = Percent.__super__.renderValueForDisplay.apply(this, arguments);\n      return superVal + '%';\n    };\n\n    return Percent;\n  }(Number);\n}).call(undefined);"
        },
        {
          "id": 32,
          "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/label.js",
          "name": "./lib/datums/label.js",
          "index": 30,
          "index2": 28,
          "size": 1824,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
          "issuerId": 15,
          "issuerName": "./index.js",
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 15,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
              "module": "./index.js",
              "moduleName": "./index.js",
              "type": "cjs require",
              "userRequest": "./lib/datums/label",
              "loc": "21:9-38"
            }
          ],
          "usedExports": true,
          "providedExports": null,
          "optimizationBailout": [],
          "depth": 2,
          "source": "'use strict';\n\n(function () {\n  var Label,\n      React,\n      Text,\n      _,\n      extend = function extend(child, parent) {\n    for (var key in parent) {\n      if (hasProp.call(parent, key)) child[key] = parent[key];\n    }function ctor() {\n      this.constructor = child;\n    }ctor.prototype = parent.prototype;child.prototype = new ctor();child.__super__ = parent.prototype;return child;\n  },\n      hasProp = {}.hasOwnProperty;\n\n  React = require('../lib/reactLegacy');\n\n  _ = require('underscore');\n\n  Text = require('./text');\n\n  /*\n    see ./label.md\n   */\n\n  module.exports = Label = function (superClass) {\n    extend(Label, superClass);\n\n    function Label() {\n      return Label.__super__.constructor.apply(this, arguments);\n    }\n\n    Label.displayName = \"react-datum.Label\";\n\n    Label.prototype.render = function () {\n      return Label.__super__.render.apply(this, arguments);\n    };\n\n    Label.prototype.renderValueForDisplay = function () {\n      var label, labelProps, superVal, tooltip;\n      superVal = Label.__super__.renderValueForDisplay.apply(this, arguments);\n      labelProps = {\n        style: this.props.style\n      };\n      tooltip = this.getPropOrMetadata('tooltip');\n      label = superVal != null ? this.renderWithPopover(React.createElement(\"label\", Object.assign({}, labelProps), superVal), tooltip, 'datumLabelTooltip', 'datum-tooltip') : null;\n      return label;\n    };\n\n    Label.prototype.getModelValue = function (newProps, newContext) {\n      if (newProps == null) {\n        newProps = this.props;\n      }\n      if (newContext == null) {\n        newContext = this.context;\n      }\n      if (newProps.children != null) {\n        return newProps.children;\n      }\n      return Label.__super__.getModelValue.apply(this, arguments);\n    };\n\n    return Label;\n  }(Text);\n}).call(undefined);"
        },
        {
          "id": 33,
          "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/wholeNumber.js",
          "name": "./lib/datums/wholeNumber.js",
          "index": 31,
          "index2": 29,
          "size": 1056,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
          "issuerId": 15,
          "issuerName": "./index.js",
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 15,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
              "module": "./index.js",
              "moduleName": "./index.js",
              "type": "cjs require",
              "userRequest": "./lib/datums/wholeNumber",
              "loc": "22:15-50"
            }
          ],
          "usedExports": true,
          "providedExports": null,
          "optimizationBailout": [],
          "depth": 2,
          "source": "'use strict';\n\n(function () {\n  var Number,\n      React,\n      WholeNumber,\n      extend = function extend(child, parent) {\n    for (var key in parent) {\n      if (hasProp.call(parent, key)) child[key] = parent[key];\n    }function ctor() {\n      this.constructor = child;\n    }ctor.prototype = parent.prototype;child.prototype = new ctor();child.__super__ = parent.prototype;return child;\n  },\n      hasProp = {}.hasOwnProperty;\n\n  React = require('../lib/reactLegacy');\n\n  Number = require('./number');\n\n  /*\n    For whole numbers (no decimal input allowed).\n   */\n\n  module.exports = WholeNumber = function (superClass) {\n    extend(WholeNumber, superClass);\n\n    function WholeNumber() {\n      return WholeNumber.__super__.constructor.apply(this, arguments);\n    }\n\n    WholeNumber.displayName = \"react-datum.WholeNumber\";\n\n    WholeNumber.prototype.charactersMustMatch = /^\\-?[0-9]*$/;\n\n    WholeNumber.prototype.getInputValue = function () {\n      return parseInt(this.state.value, 10);\n    };\n\n    return WholeNumber;\n  }(Number);\n}).call(undefined);"
        },
        {
          "id": 34,
          "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/collectionPicker/collectionPicker.js",
          "name": "./lib/datums/collectionPicker/collectionPicker.js",
          "index": 32,
          "index2": 35,
          "size": 17268,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
          "issuerId": 15,
          "issuerName": "./index.js",
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 15,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
              "module": "./index.js",
              "moduleName": "./index.js",
              "type": "cjs require",
              "userRequest": "./lib/datums/collectionPicker/collectionPicker",
              "loc": "29:20-77"
            }
          ],
          "usedExports": true,
          "providedExports": null,
          "optimizationBailout": [],
          "depth": 2,
          "source": "'use strict';\n\n(function () {\n  var Backbone,\n      CollectionPicker,\n      Datum,\n      React,\n      Select,\n      Strhelp,\n      _,\n      bind = function bind(fn, me) {\n    return function () {\n      return fn.apply(me, arguments);\n    };\n  },\n      extend = function extend(child, parent) {\n    for (var key in parent) {\n      if (hasProp.call(parent, key)) child[key] = parent[key];\n    }function ctor() {\n      this.constructor = child;\n    }ctor.prototype = parent.prototype;child.prototype = new ctor();child.__super__ = parent.prototype;return child;\n  },\n      hasProp = {}.hasOwnProperty,\n      indexOf = [].indexOf || function (item) {\n    for (var i = 0, l = this.length; i < l; i++) {\n      if (i in this && this[i] === item) return i;\n    }return -1;\n  };\n\n  React = require('../../lib/reactLegacy');\n\n  Backbone = require('backbone');\n\n  _ = require('underscore');\n\n  Strhelp = require('bumble-strings');\n\n  Datum = require('../datum');\n\n  Select = require('react-select');\n\n  module.exports = CollectionPicker = function (superClass) {\n    extend(CollectionPicker, superClass);\n\n    CollectionPicker.displayName = \"react-datum.CollectionPicker\";\n\n    CollectionPicker.propTypes = _.extend({}, Datum.propTypes, {\n      collection: React.PropTypes.oneOfType([React.PropTypes.instanceOf(Backbone.Collection), React.PropTypes.string, React.PropTypes.array]),\n      ellipsizeAt: React.PropTypes.oneOfType([React.PropTypes.number, React.PropTypes.bool]),\n      reverseEllipsis: React.PropTypes.bool,\n      optionComponent: React.PropTypes.func,\n      valueComponent: React.PropTypes.func,\n      fetchUnknownModelsInCollection: React.PropTypes.bool,\n      displayAttr: React.PropTypes.string,\n      optionSaveAttr: React.PropTypes.string,\n      displayComponent: React.PropTypes.any,\n      synchronousLoading: React.PropTypes.bool,\n      isLoading: React.PropTypes.bool,\n      asyncSuggestionCallback: React.PropTypes.func,\n      multi: React.PropTypes.bool,\n      csvDisplay: React.PropTypes.bool,\n      editPlaceholder: React.PropTypes.string,\n      setAsString: React.PropTypes.bool,\n      displayModelValue: React.PropTypes.bool\n    });\n\n    CollectionPicker.defaultProps = _.extend({}, Datum.defaultProps, {\n      ellipsizeAt: 35,\n      fetchUnknownModelsInCollection: true,\n      loading: false,\n      attr: 'value'\n    });\n\n    CollectionPicker.contextTypes = _.extend({}, Datum.contextTypes, {\n      collection: React.PropTypes.oneOfType([React.PropTypes.instanceOf(Backbone.Collection), React.PropTypes.string])\n    });\n\n    CollectionPicker.prototype.subClassName = \"collection-picker\";\n\n    CollectionPicker.prototype.selectRef = \"reactSelect\";\n\n    function CollectionPicker() {\n      this.groupSuggestionModels = bind(this.groupSuggestionModels, this);\n      this.filterSuggestionModels = bind(this.filterSuggestionModels, this);\n      this.onLoadOptions = bind(this.onLoadOptions, this);\n      this.onChange = bind(this.onChange, this);\n      this.getOptionValuesForReactSelect = bind(this.getOptionValuesForReactSelect, this);\n      this.focus = bind(this.focus, this);\n      this.getInputComponent = bind(this.getInputComponent, this);\n      this._onFirstCollectionModelSync = bind(this._onFirstCollectionModelSync, this);\n      CollectionPicker.__super__.constructor.apply(this, arguments);\n    }\n\n    CollectionPicker.prototype.render = function () {\n      return CollectionPicker.__super__.render.apply(this, arguments);\n    };\n\n    CollectionPicker.prototype.renderValueForDisplay = function () {\n      var collection, collectionValues, modelValues;\n      collection = this.getCollection();\n      modelValues = this.getModelValue();\n      if (_.isString(modelValues) && modelValues.match(/\\d+\\,\\s*\\d+/)) {\n        modelValues = modelValues.split(/\\,\\s?/);\n      }\n      if (!_.isArray(modelValues)) {\n        modelValues = [modelValues];\n      }\n      modelValues = _.compact(_.unique(_.flatten(modelValues)));\n      if (this.props.csvDisplay) {\n        collectionValues = modelValues.map(function (_this) {\n          return function (modelId) {\n            var ref;\n            return (ref = _this.getCollectionModelDisplayValue(modelId, collection)) != null ? ref : modelId;\n          };\n        }(this));\n        return this.renderEllipsizedValue(collectionValues.join(', '));\n      } else {\n        return modelValues.map(function (_this) {\n          return function (modelValue) {\n            return _this.renderCollectionDisplayValue(modelValue, collection);\n          };\n        }(this));\n      }\n    };\n\n    CollectionPicker.prototype.renderCollectionDisplayValue = function (modelId, collection) {\n      var modelValue, valueProps;\n      if (collection == null) {\n        collection = this.getCollection();\n      }\n      modelValue = this.getCollectionModelDisplayValue(modelId, collection);\n      if (modelValue) {\n        modelValue = this.renderEllipsizedValue(modelValue);\n      }\n      valueProps = {\n        key: modelValue,\n        className: \"collection-picker-display-value\"\n      };\n      if (this.props.displayComponent != null) {\n        valueProps.value = this._getCollectionModelById(modelId);\n        return React.createElement(this.props.displayComponent, Object.assign({}, valueProps));\n      }\n      return React.createElement(\"span\", Object.assign({}, valueProps), modelValue || this.renderPlaceholder() || \"unknown\");\n    };\n\n    CollectionPicker.prototype.renderInput = function () {\n      if (this.props.synchronousLoading) {\n        return React.createElement(Select[\"default\"], Object.assign({}, this.getSelectOptions()));\n      } else {\n        return React.createElement(Select.Async, Object.assign({}, this.getSelectAsyncOptions()), function (_this) {\n          return function (props) {\n            var collection;\n            collection = _this.getCollection();\n            if (collection.filterForPicker != null || _this.props.asyncLoadCallback != null) {\n              props.filterOptions = null;\n            }\n            props.value = _this.getValueForInput();\n            props.ref = 'select';\n            return React.createElement(Select[\"default\"], Object.assign({}, props));\n          };\n        }(this));\n      }\n    };\n\n    CollectionPicker.prototype.getCollection = function () {\n      var collection;\n      collection = this.props.collection || this.context.collection;\n      if (collection == null) {\n        console.warn(this.constructor.displayName + (\" requires a collection prop or context. attr=\" + this.props.attr));\n      }\n      if (!(collection instanceof Backbone.Collection)) {\n        return new Backbone.Collection(collection);\n      }\n      return collection;\n    };\n\n    /*\n      TODO: make this method public.  useful for extensions and used by some\n     */\n\n    CollectionPicker.prototype._getCollectionModelById = function (modelOrId) {\n      var collectionModel, onSync, ref;\n      if (_.isNumber(modelOrId) || _.isString(modelOrId)) {\n        collectionModel = (ref = this.getCollection()) != null ? ref.get(modelOrId, {\n          add: this.props.fetchUnknownModelsInCollection\n        }) : void 0;\n        onSync = function (_this) {\n          return function () {\n            _.defer(function () {\n              return _this._onFirstCollectionModelSync(collectionModel);\n            });\n            return collectionModel != null ? typeof collectionModel.off === \"function\" ? collectionModel.off('sync', onSync) : void 0 : void 0;\n          };\n        }(this);\n        if (collectionModel != null) {\n          if (typeof collectionModel.on === \"function\") {\n            collectionModel.on('sync', onSync);\n          }\n        }\n        return collectionModel;\n      }\n      return modelOrId;\n    };\n\n    CollectionPicker.prototype._onFirstCollectionModelSync = function (collectionModel) {\n      var ref;\n      if ((ref = this.getModel()) != null) {\n        if (typeof ref.trigger === \"function\") {\n          ref.trigger('invalidate');\n        }\n      }\n      return this.forceUpdate();\n    };\n\n    CollectionPicker.prototype.getCollectionModelDisplayValue = function (modelId, collection) {\n      var displayValue, model, ref;\n      if (!modelId) {\n        return null;\n      }\n      if (this.props.displayModelValue) {\n        return modelId.toString();\n      }\n      model = this._getCollectionModelById(modelId);\n      if (model != null) {\n        if (!_.isFunction(model.toString) && this.props.displayAttr == null) {\n          throw new Error(this.constructor.displayName + \": You need to specify a displayAttr prop or model must have toString() method\");\n        }\n        displayValue = this.props.displayAttr != null ? (ref = typeof model.get === \"function\" ? model.get(this.props.displayAttr) : void 0) != null ? ref : model[this.props.displayAttr] : typeof model.toString === \"function\" ? model.toString() : void 0;\n      } else {\n        displayValue = null;\n      }\n      return displayValue;\n    };\n\n    CollectionPicker.prototype.getOptionSaveValue = function (modelId, collection) {\n      var model, ref, ref1, ref2;\n      model = this._getCollectionModelById(modelId);\n      if (model != null && this.props.optionSaveAttr == null) {\n        return model.id;\n      }\n      return (ref = (ref1 = (ref2 = model != null ? typeof model.get === \"function\" ? model.get(this.props.optionSaveAttr) : void 0 : void 0) != null ? ref2 : model != null ? model[this.props.optionSaveAttr] : void 0) != null ? ref1 : model != null ? model.id : void 0) != null ? ref : modelId;\n    };\n\n    CollectionPicker.prototype.getModelValue = function (newProps) {\n      var modelValue;\n      if (newProps == null) {\n        newProps = this.props;\n      }\n      modelValue = CollectionPicker.__super__.getModelValue.apply(this, arguments);\n      if (newProps.multi) {\n        modelValue = function () {\n          switch (false) {\n            case !(modelValue == null):\n              return [];\n            case !_.isString(modelValue):\n              return modelValue.split(',');\n            case !_.isArray(modelValue):\n              return modelValue;\n            default:\n              return [modelValue];\n          }\n        }();\n        modelValue = _.compact(_.unique(_.flatten(modelValue)));\n      }\n      return modelValue;\n    };\n\n    CollectionPicker.prototype.getSelectOptions = function () {\n      var collection;\n      collection = this.getCollection();\n      return _.extend({}, this.props, {\n        placeholder: this.props.editPlaceholder || this.getPropOrMetadata('placeholder') || this.renderPlaceholder(),\n        value: this.getValueForInput(),\n        onChange: this.onChange,\n        onBlur: this.onBlur,\n        options: this.getOptionValuesForReactSelect(collection.models),\n        labelKey: \"label\",\n        valueKey: \"value\",\n        ref: this.selectRef\n      });\n    };\n\n    CollectionPicker.prototype.getSelectAsyncOptions = function () {\n      var collection, selectOptions;\n      collection = this.getCollection();\n      selectOptions = this.getSelectOptions();\n      if (this.props.asyncSuggestionCallback != null) {\n        delete selectOptions.options;\n      }\n      return _.extend(selectOptions, {\n        loadOptions: this.onLoadOptions\n      });\n    };\n\n    CollectionPicker.prototype.hasInputValueChanged = function () {\n      return this.getInputValue() !== this.getModelValue();\n    };\n\n    CollectionPicker.prototype.getInputComponent = function () {\n      return ReactDOM.findDOMNode(this).querySelector('input');\n    };\n\n    CollectionPicker.prototype.getSelectedModels = function () {\n      var ref;\n      return (ref = this.getCollection()) != null ? ref.get(this.getInputValue()) : void 0;\n    };\n\n    CollectionPicker.prototype.focus = function () {\n      var ref;\n      return (ref = this.getInputComponent()) != null ? typeof ref.focus === \"function\" ? ref.focus() : void 0 : void 0;\n    };\n\n    CollectionPicker.prototype.getOptionValuesForReactSelect = function (models) {\n      if (models == null) {\n        models = [];\n      }\n      return _.map(models, function (_this) {\n        return function (m) {\n          return {\n            label: _this.getCollectionModelDisplayValue(m),\n            value: _this.getOptionSaveValue(m),\n            model: m\n          };\n        };\n      }(this));\n    };\n\n    /*\n     Extends Datum class - react-select returns array of options and not a synth event \n     super expects a synth event but only uses value.\n     \n     Also note that the value passed back to the usage through @props.onChange is\n     the option object(s) for the currently selected option(s)\n     */\n\n    CollectionPicker.prototype.onChange = function (optionsSelected) {\n      var ref, ref1, value, values;\n      if (this.props.multi) {\n        values = _.pluck(optionsSelected, 'value');\n        if (values.length === 1 && ((ref = this.state.value) != null ? ref.length : void 0) > 0 && (ref1 = values[0], indexOf.call(this.state.value, ref1) < 0)) {\n          values = this.state.value.concat(values);\n          optionsSelected = this.getOptionValuesForReactSelect(this.getSelectedModels());\n        }\n        if (this.props.setAsString) {\n          values = values.join(',');\n        }\n        return CollectionPicker.__super__.onChange.call(this, values, {\n          propsOnChangeValue: optionsSelected\n        });\n      } else {\n        value = optionsSelected === null ? null : optionsSelected != null ? optionsSelected.value : void 0;\n        return CollectionPicker.__super__.onChange.call(this, value, {\n          propsOnChangeValue: optionsSelected\n        });\n      }\n    };\n\n    CollectionPicker.prototype.onLoadOptions = function (userInput, callback) {\n      var chainedCallback, collection, ref, selectedModels;\n      collection = this.getCollection();\n      selectedModels = _.compact((ref = this.getSelectedModels()) != null ? ref : []);\n      this.lastAsyncCallback = callback;\n      chainedCallback = function (_this) {\n        return function (error, models) {\n          var optionsForReactSelect;\n          if (arguments.length < 2) {\n            models = error;\n            error = false;\n          }\n          models = _this.groupSuggestionModels(userInput, models);\n          if (_this.props.multi) {\n            models = models.concat(selectedModels);\n            collection.add(selectedModels);\n          }\n          optionsForReactSelect = _this.getOptionValuesForReactSelect(models);\n          return _this.lastAsyncCallback(null, {\n            options: optionsForReactSelect\n          });\n        };\n      }(this);\n      switch (false) {\n        case this.props.asyncSuggestionCallback == null:\n          this.props.asyncSuggestionCallback.call(this, collection, userInput, chainedCallback, this.props.asyncOptions);\n          break;\n        case collection.filterForPicker == null:\n          collection.filterForPicker.call(this, userInput, chainedCallback, this.props.asyncOptions);\n          break;\n        default:\n          this.filterSuggestionModels(collection, userInput, chainedCallback, this.props.asyncOptions);\n      }\n      return null;\n    };\n\n    /* weak string compare userInput to suggestion model's display value */\n\n    CollectionPicker.prototype.filterSuggestionModels = function (collection, userInput, callback) {\n      var filteredModels;\n      filteredModels = _.filter(collection.models, function (_this) {\n        return function (model) {\n          var displayValue;\n          displayValue = _this.getCollectionModelDisplayValue(model);\n          return displayValue != null && Strhelp.weaklyHas(displayValue, userInput);\n        };\n      }(this));\n      filteredModels = filteredModels.sort(function (_this) {\n        return function (a, b) {\n          return Strhelp.weaklyCompare(_this.getCollectionModelDisplayValue(a), _this.getCollectionModelDisplayValue(b));\n        };\n      }(this));\n      if (typeof callback === \"function\") {\n        callback(filteredModels);\n      }\n      return filteredModels;\n    };\n\n    CollectionPicker.prototype.groupSuggestionModels = function (userInput, models) {\n      var bottomHits, displayValue, i, len, model, topHits;\n      topHits = [];\n      bottomHits = [];\n      for (i = 0, len = models.length; i < len; i++) {\n        model = models[i];\n        displayValue = this.getCollectionModelDisplayValue(model);\n        if (displayValue != null && Strhelp.weaklyStartsWith(displayValue, userInput)) {\n          topHits.push(model);\n        } else {\n          bottomHits.push(model);\n        }\n      }\n      return topHits.concat(bottomHits);\n    };\n\n    /*\n      This is the model associated with the collectionPicker. This is required to exist because\n      this is the model in which the value is saved. If this does not exist or re-created every time we\n      will not be able to show the value option on the picker.\n     */\n\n    CollectionPicker.prototype.getModel = function (newProps, newContext) {\n      if (newProps == null) {\n        newProps = this.props;\n      }\n      if (newContext == null) {\n        newContext = this.context;\n      }\n      this.valueModel = (newProps != null ? newProps.model : void 0) || (newContext != null ? newContext.model : void 0) || this.valueModel || new Backbone.Model();\n      return this.valueModel;\n    };\n\n    return CollectionPicker;\n  }(Datum);\n}).call(undefined);"
        },
        {
          "id": 35,
          "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/bumble-strings/index.js",
          "name": "./node_modules/bumble-strings/index.js",
          "index": 33,
          "index2": 31,
          "size": 51,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/collectionPicker/collectionPicker.js",
          "issuerId": 34,
          "issuerName": "./lib/datums/collectionPicker/collectionPicker.js",
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 34,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/collectionPicker/collectionPicker.js",
              "module": "./lib/datums/collectionPicker/collectionPicker.js",
              "moduleName": "./lib/datums/collectionPicker/collectionPicker.js",
              "type": "cjs require",
              "userRequest": "bumble-strings",
              "loc": "36:12-37"
            }
          ],
          "usedExports": true,
          "providedExports": null,
          "optimizationBailout": [],
          "depth": 3,
          "source": "\n\nmodule.exports = require('./lib/bumble-strings')\n"
        },
        {
          "id": 36,
          "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/bumble-strings/lib/bumble-strings.js",
          "name": "./node_modules/bumble-strings/lib/bumble-strings.js",
          "index": 34,
          "index2": 30,
          "size": 9024,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/bumble-strings/index.js",
          "issuerId": 35,
          "issuerName": "./node_modules/bumble-strings/index.js",
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 35,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/bumble-strings/index.js",
              "module": "./node_modules/bumble-strings/index.js",
              "moduleName": "./node_modules/bumble-strings/index.js",
              "type": "cjs require",
              "userRequest": "./lib/bumble-strings",
              "loc": "3:17-48"
            }
          ],
          "usedExports": true,
          "providedExports": null,
          "optimizationBailout": [],
          "depth": 4,
          "source": "// Generated by CoffeeScript 1.10.0\n(function() {\n  var StringHelpers, _;\n\n  _ = require('underscore');\n\n  module.exports = StringHelpers = (function() {\n    function StringHelpers() {}\n\n\n    /*\n      Trims leading and trailing spaces.  Also optionally trims internal excess spaces\n     */\n\n    StringHelpers.trim = function(str, options) {\n      if (options == null) {\n        options = {};\n      }\n      options = _.defaults(options, {\n        all: false\n      });\n      str = str.replace(/^\\s+|\\s+$/g, \"\");\n      if (options.all) {\n        str = str.replace(/\\s+/g, ' ');\n      }\n      return str;\n    };\n\n\n    /*\n      Adds elipsis to string, if neccessary, for maximum string length not\n      to exceed maxLength\n     */\n\n    StringHelpers.elipsize = function(str, maxLength) {\n      if ((maxLength == null) || str.length <= maxLength) {\n        return str;\n      }\n      return str.slice(0, maxLength - 3) + '...';\n    };\n\n\n    /*\n      Returns true if the string is all whitespace characters\n     */\n\n    StringHelpers.isEmpty = function(str) {\n      if (this.weaklyEqual(str, \"\")) {\n        return true;\n      }\n    };\n\n\n    /*\n      Returns true if string starts with any of otherStrings.  \n      otherStrings = one or array to compare to\n     */\n\n    StringHelpers.startsWith = function(str, otherStrings) {\n      return this._withOneOrArray(otherStrings, function(otherStr) {\n        if (str.slice(0, otherStr.length) === otherStr) {\n          return true;\n        }\n      });\n    };\n\n\n    /*\n      Returns true if string ends with any of otherStrings.  \n      otherStrings = one or array to compare to\n     */\n\n    StringHelpers.endsWith = function(str, otherStrings) {\n      return this._withOneOrArray(otherStrings, function(otherStr) {\n        if (!((otherStr != null ? otherStr.length : void 0) > 0)) {\n          return true;\n        }\n        if (str.slice(-1 * otherStr.length) === otherStr) {\n          return true;\n        }\n      });\n    };\n\n\n    /*\n      Returns true if string contains any of otherStrings.  \n      otherStrings = one or array to compare to\n     */\n\n    StringHelpers.has = function(str, otherStrings) {\n      return this._withOneOrArray(otherStrings, function(otherStr) {\n        if (str.indexOf(otherStr) !== -1) {\n          return true;\n        }\n      });\n    };\n\n\n    /*\n      Returns the weak value of the string -- all lowercase, plus trimmed\n      and with excess inner whitespace ignored, locale ignored by default. \n      \n      The weakly... functions below use this method on both strings being\n      compared to return positive match of mismatched case, etc.\n     */\n\n    StringHelpers.weakValue = function(str, options) {\n      if (options == null) {\n        options = {};\n      }\n      _.defaults(options, {\n        ignoreCase: true,\n        useLocale: false,\n        trim: true\n      });\n      if (options.trim) {\n        str = this.trim(str, {\n          all: true\n        });\n      }\n      if (options.ignoreCase) {\n        if (options.useLocale) {\n          return str = str.toLocaleLowerCase();\n        } else {\n          return str = str.toLowerCase();\n        }\n      }\n    };\n\n\n    /*\n      Returns true if the first string weakly equals any of the otherStrings. \n      see weakValue() comments\n     */\n\n    StringHelpers.weaklyEqual = function(str, otherStrings, options) {\n      if (options == null) {\n        options = {};\n      }\n      return this._withOneOrArray(otherStrings, (function(_this) {\n        return function(otherStr) {\n          if (_this.weakValue(str, options) === _this.weakValue(otherStr, options)) {\n            return true;\n          }\n        };\n      })(this));\n    };\n\n\n    /*\n      Returns -1, 0 or 1 like javascript localeCompare.  Comppares the weak values.  \n      see weakValue() comments\n     */\n\n    StringHelpers.weaklyCompare = function(str, otherStrings, options) {\n      if (options == null) {\n        options = {};\n      }\n      return this._withOneOrArray(otherStrings, (function(_this) {\n        return function(otherStr) {\n          if (_this.weakValue(str, options).localeCompare(_this.weakValue(otherStr, options))) {\n            return true;\n          }\n        };\n      })(this));\n    };\n\n\n    /*\n      Returns true if the first string weakly contains any of the otherStrings. \n      see weakValue() comments\n     */\n\n    StringHelpers.weaklyHas = function(str, otherStrings) {\n      return this._withOneOrArray(otherStrings, (function(_this) {\n        return function(otherStr) {\n          if (_this.weakValue(str).indexOf(_this.weakValue(otherStr)) !== -1) {\n            return true;\n          }\n        };\n      })(this));\n    };\n\n\n    /*\n      Returns true if the first string weakly starts with any of the otherStrings. \n      see weakValue() comments\n     */\n\n    StringHelpers.weaklyStartsWith = function(str, otherStrings) {\n      return this._withOneOrArray(otherStrings, (function(_this) {\n        return function(otherStr) {\n          if (_this.startsWith(_this.weakValue(str), _this.weakValue(otherStr))) {\n            return true;\n          }\n        };\n      })(this));\n    };\n\n\n    /*\n      Returns true if the first string weakly ends with any of the otherStrings. \n      see weakValue() comments\n     */\n\n    StringHelpers.weaklyEndsWith = function(str, otherStrings) {\n      return this._withOneOrArray(otherStrings, (function(_this) {\n        return function(otherStr) {\n          if (_this.endsWith(_this.weakValue(str), _this.weakValue(otherStr))) {\n            return true;\n          }\n        };\n      })(this));\n    };\n\n\n    /*\n      makes strings like \"this_string\", \"ThisString\", \"this-string\", \"this.string\" into\n      \"this string\"\n     */\n\n    StringHelpers.humanize = function(str) {\n      var out;\n      out = str.replace(/([A-Z])/g, \" $1\").replace(/[_\\-\\.](.)/g, \" $1\");\n      return out.trim().toLowerCase();\n    };\n\n\n    /*  \n      converts a string like \"dropCamelCase\".decamelize() => \"Drop Camel Case\"\n     */\n\n    StringHelpers.decamelize = function(str) {\n      var result;\n      result = str.replace(/_?([A-Z])/g, \" $1\");\n      result = result.charAt(0).toUpperCase() + result.slice(1);\n      return result.toLowerCase();\n    };\n\n\n    /*\n      converts a string like \"Drop Camel Case\".dropcamelize() => \"dropCamelCase\"\n     */\n\n    StringHelpers.dropcamelize = function(str) {\n      var result;\n      result = str.replace(/\\s/g, \"\");\n      return result.charAt(0).toLowerCase() + result.slice(1);\n    };\n\n\n    /*\n      capitalize the first letter of a string\n     */\n\n    StringHelpers.capitalize = function(str) {\n      return str.charAt(0).toUpperCase() + str.substring(1);\n    };\n\n\n    /*\n      decapitalize the first letter of a string\n     */\n\n    StringHelpers.decapitalize = function(str) {\n      return str.charAt(0).toLowerCase() + str.substring(1);\n    };\n\n\n    /*\n      returns true if the first letter of a string is capitalized\n     */\n\n    StringHelpers.isCapitalized = function(str) {\n      return str.match(/^[A-Z].*/) !== null;\n    };\n\n\n    /*\n      returns true if all alphabetic characters of string are upper case letters.\n      ignores numbers and punctuation\n     */\n\n    StringHelpers.isAllCaps = function(str) {\n      return str.match(/^[A-Z\\s0-9]*$/) !== null;\n    };\n\n\n    /*\n      returns true if string is numeric\n     */\n\n    StringHelpers.isNumeric = function(str) {\n      return str.toString().match(/^[\\-,\\+]?[\\s\\d\\.]*$/) !== null;\n    };\n\n\n    /*\n      adds thousands separaters optionally truncates decimal portion to decimalPlaces characters\n      slightly enhanced from\n      http://stackoverflow.com/questions/2901102/how-to-print-a-number-with-commas-as-thousands-separators-in-javascript\n     */\n\n    StringHelpers.numerize = function(str, decimalPlaces, zeroFill) {\n      var parts, pow;\n      if (decimalPlaces == null) {\n        decimalPlaces = null;\n      }\n      if (zeroFill == null) {\n        zeroFill = false;\n      }\n      if (decimalPlaces) {\n        pow = Math.pow(10, decimalPlaces);\n        parts = (Math.round(parseFloat(str) * pow) / pow).toString().split(\".\");\n      } else {\n        parts = str.toString().split('.');\n      }\n      parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n      if (decimalPlaces) {\n        if (parts.length > 1) {\n          parts[1] = parts[1].slice(0, decimalPlaces);\n          if (zeroFill) {\n            while (parts[1].length < decimalPlaces) {\n              parts[1] += '0';\n            }\n          }\n        } else if (zeroFill) {\n          parts.push(Array(decimalPlaces + 1).join('0'));\n        }\n      }\n      return parts.join(\".\");\n    };\n\n    StringHelpers._withOneOrArray = function(strOrArray, fn) {\n      var array, i, len, str, truth;\n      array = _.isArray(strOrArray) ? strOrArray : [strOrArray];\n      truth = false;\n      for (i = 0, len = array.length; i < len; i++) {\n        str = array[i];\n        if (fn(str) === true) {\n          truth = true;\n          break;\n        }\n      }\n      return truth;\n    };\n\n    return StringHelpers;\n\n  })();\n\n}).call(this);\n"
        },
        {
          "id": 37,
          "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/react-input-autosize/lib/AutosizeInput.js",
          "name": "./node_modules/react-input-autosize/lib/AutosizeInput.js",
          "index": 36,
          "index2": 32,
          "size": 9990,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/react-select/dist/react-select.es.js",
          "issuerId": 12,
          "issuerName": "./node_modules/react-select/dist/react-select.es.js",
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 12,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/react-select/dist/react-select.es.js",
              "module": "./node_modules/react-select/dist/react-select.es.js",
              "moduleName": "./node_modules/react-select/dist/react-select.es.js",
              "type": "harmony import",
              "userRequest": "react-input-autosize",
              "loc": "1:0-49"
            }
          ],
          "usedExports": [
            "default"
          ],
          "providedExports": null,
          "optimizationBailout": [],
          "depth": 3,
          "source": "'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 = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\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;"
        },
        {
          "id": 38,
          "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/react-select/lib/Option.js",
          "name": "./node_modules/react-select/lib/Option.js",
          "index": 38,
          "index2": 37,
          "size": 5809,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
          "issuerId": 15,
          "issuerName": "./index.js",
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 15,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
              "module": "./index.js",
              "moduleName": "./index.js",
              "type": "cjs require",
              "userRequest": "react-select/lib/Option.js",
              "loc": "32:16-53"
            }
          ],
          "usedExports": true,
          "providedExports": null,
          "optimizationBailout": [],
          "depth": 2,
          "source": "'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 = require('classnames');\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _blockEvent = require('./utils/blockEvent');\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;"
        },
        {
          "id": 39,
          "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/react-select/lib/utils/blockEvent.js",
          "name": "./node_modules/react-select/lib/utils/blockEvent.js",
          "index": 39,
          "index2": 36,
          "size": 389,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/react-select/lib/Option.js",
          "issuerId": 38,
          "issuerName": "./node_modules/react-select/lib/Option.js",
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 38,
              "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/react-select/lib/Option.js",
              "module": "./node_modules/react-select/lib/Option.js",
              "moduleName": "./node_modules/react-select/lib/Option.js",
              "type": "cjs require",
              "userRequest": "./utils/blockEvent",
              "loc": "21:18-47"
            }
          ],
          "usedExports": true,
          "providedExports": null,
          "optimizationBailout": [],
          "depth": 3,
          "source": "'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};"
        }
      ],
      "filteredModules": 0,
      "origins": [
        {
          "moduleId": 14,
          "module": "multi ././index.js",
          "moduleIdentifier": "multi ././index.js",
          "moduleName": "multi ././index.js",
          "loc": "",
          "name": "main",
          "reasons": []
        }
      ]
    }
  ],
  "modules": [
    {
      "id": 0,
      "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/lib/reactLegacy.js",
      "name": "./lib/lib/reactLegacy.js",
      "index": 4,
      "index2": 7,
      "size": 194,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/clickToEditForm.js",
      "issuerId": 17,
      "issuerName": "./lib/clickToEditForm.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 2,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/datum.js",
          "module": "./lib/datums/datum.js",
          "moduleName": "./lib/datums/datum.js",
          "type": "cjs require",
          "userRequest": "../lib/reactLegacy",
          "loc": "24:10-39"
        },
        {
          "moduleId": 6,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/contextualData.js",
          "module": "./lib/contextualData.js",
          "moduleName": "./lib/contextualData.js",
          "type": "cjs require",
          "userRequest": "./lib/reactLegacy",
          "loc": "22:10-38"
        },
        {
          "moduleId": 9,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/number.js",
          "module": "./lib/datums/number.js",
          "moduleName": "./lib/datums/number.js",
          "type": "cjs require",
          "userRequest": "../lib/reactLegacy",
          "loc": "31:10-39"
        },
        {
          "moduleId": 10,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/form.js",
          "module": "./lib/form.js",
          "moduleName": "./lib/form.js",
          "type": "cjs require",
          "userRequest": "./lib/reactLegacy",
          "loc": "29:10-38"
        },
        {
          "moduleId": 11,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/text.js",
          "module": "./lib/datums/text.js",
          "moduleName": "./lib/datums/text.js",
          "type": "cjs require",
          "userRequest": "../lib/reactLegacy",
          "loc": "17:10-39"
        },
        {
          "moduleId": 17,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/clickToEditForm.js",
          "module": "./lib/clickToEditForm.js",
          "moduleName": "./lib/clickToEditForm.js",
          "type": "cjs require",
          "userRequest": "./lib/reactLegacy",
          "loc": "22:10-38"
        },
        {
          "moduleId": 22,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/collection.js",
          "module": "./lib/collection.js",
          "moduleName": "./lib/collection.js",
          "type": "cjs require",
          "userRequest": "./lib/reactLegacy",
          "loc": "19:10-38"
        },
        {
          "moduleId": 25,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/collectionStats.js",
          "module": "./lib/collectionStats.js",
          "moduleName": "./lib/collectionStats.js",
          "type": "cjs require",
          "userRequest": "./lib/reactLegacy",
          "loc": "16:10-38"
        },
        {
          "moduleId": 26,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/model.js",
          "module": "./lib/model.js",
          "moduleName": "./lib/model.js",
          "type": "cjs require",
          "userRequest": "./lib/reactLegacy",
          "loc": "18:10-38"
        },
        {
          "moduleId": 27,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/selectedModel.js",
          "module": "./lib/selectedModel.js",
          "moduleName": "./lib/selectedModel.js",
          "type": "cjs require",
          "userRequest": "./lib/reactLegacy",
          "loc": "22:10-38"
        },
        {
          "moduleId": 28,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/email.js",
          "module": "./lib/datums/email.js",
          "moduleName": "./lib/datums/email.js",
          "type": "cjs require",
          "userRequest": "../lib/reactLegacy",
          "loc": "22:10-39"
        },
        {
          "moduleId": 29,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/lazyPhoto.js",
          "module": "./lib/datums/lazyPhoto.js",
          "moduleName": "./lib/datums/lazyPhoto.js",
          "type": "cjs require",
          "userRequest": "../lib/reactLegacy",
          "loc": "22:10-39"
        },
        {
          "moduleId": 30,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/link.js",
          "module": "./lib/datums/link.js",
          "moduleName": "./lib/datums/link.js",
          "type": "cjs require",
          "userRequest": "../lib/reactLegacy",
          "loc": "17:10-39"
        },
        {
          "moduleId": 31,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/percent.js",
          "module": "./lib/datums/percent.js",
          "moduleName": "./lib/datums/percent.js",
          "type": "cjs require",
          "userRequest": "../lib/reactLegacy",
          "loc": "16:10-39"
        },
        {
          "moduleId": 32,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/label.js",
          "module": "./lib/datums/label.js",
          "moduleName": "./lib/datums/label.js",
          "type": "cjs require",
          "userRequest": "../lib/reactLegacy",
          "loc": "17:10-39"
        },
        {
          "moduleId": 33,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/wholeNumber.js",
          "module": "./lib/datums/wholeNumber.js",
          "moduleName": "./lib/datums/wholeNumber.js",
          "type": "cjs require",
          "userRequest": "../lib/reactLegacy",
          "loc": "16:10-39"
        },
        {
          "moduleId": 34,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/collectionPicker/collectionPicker.js",
          "module": "./lib/datums/collectionPicker/collectionPicker.js",
          "moduleName": "./lib/datums/collectionPicker/collectionPicker.js",
          "type": "cjs require",
          "userRequest": "../../lib/reactLegacy",
          "loc": "30:10-42"
        }
      ],
      "usedExports": true,
      "providedExports": null,
      "optimizationBailout": [],
      "depth": 3,
      "source": "'use strict';\n\n(function () {\n  var React;\n\n  React = require('react');\n\n  if (!React.PropTypes) {\n    React.PropTypes = require('prop-types');\n  }\n\n  module.exports = React;\n}).call(undefined);"
    },
    {
      "id": 1,
      "identifier": "external {\"root\":\"_\",\"commonjs2\":\"underscore\",\"commonjs\":\"underscore\",\"amd\":\"underscore\"}",
      "name": "external {\"root\":\"_\",\"commonjs2\":\"underscore\",\"commonjs\":\"underscore\",\"amd\":\"underscore\"}",
      "index": 15,
      "index2": 10,
      "size": 42,
      "cacheable": false,
      "built": false,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/clickToEditForm.js",
      "issuerId": 17,
      "issuerName": "./lib/clickToEditForm.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 2,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/datum.js",
          "module": "./lib/datums/datum.js",
          "moduleName": "./lib/datums/datum.js",
          "type": "cjs require",
          "userRequest": "underscore",
          "loc": "30:6-27"
        },
        {
          "moduleId": 6,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/contextualData.js",
          "module": "./lib/contextualData.js",
          "moduleName": "./lib/contextualData.js",
          "type": "cjs require",
          "userRequest": "underscore",
          "loc": "26:6-27"
        },
        {
          "moduleId": 8,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/options.js",
          "module": "./lib/options.js",
          "moduleName": "./lib/options.js",
          "type": "cjs require",
          "userRequest": "underscore",
          "loc": "6:6-27"
        },
        {
          "moduleId": 9,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/number.js",
          "module": "./lib/datums/number.js",
          "moduleName": "./lib/datums/number.js",
          "type": "cjs require",
          "userRequest": "underscore",
          "loc": "33:6-27"
        },
        {
          "moduleId": 10,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/form.js",
          "module": "./lib/form.js",
          "moduleName": "./lib/form.js",
          "type": "cjs require",
          "userRequest": "underscore",
          "loc": "37:6-27"
        },
        {
          "moduleId": 11,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/text.js",
          "module": "./lib/datums/text.js",
          "moduleName": "./lib/datums/text.js",
          "type": "cjs require",
          "userRequest": "underscore",
          "loc": "19:6-27"
        },
        {
          "moduleId": 17,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/clickToEditForm.js",
          "module": "./lib/clickToEditForm.js",
          "moduleName": "./lib/clickToEditForm.js",
          "type": "cjs require",
          "userRequest": "underscore",
          "loc": "26:6-27"
        },
        {
          "moduleId": 22,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/collection.js",
          "module": "./lib/collection.js",
          "moduleName": "./lib/collection.js",
          "type": "cjs require",
          "userRequest": "underscore",
          "loc": "23:6-27"
        },
        {
          "moduleId": 24,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/selectable-collection/lib/selectableCollection.js",
          "module": "./node_modules/selectable-collection/lib/selectableCollection.js",
          "moduleName": "./node_modules/selectable-collection/lib/selectableCollection.js",
          "type": "cjs require",
          "userRequest": "underscore",
          "loc": "5:6-27"
        },
        {
          "moduleId": 26,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/model.js",
          "module": "./lib/model.js",
          "moduleName": "./lib/model.js",
          "type": "cjs require",
          "userRequest": "underscore",
          "loc": "22:6-27"
        },
        {
          "moduleId": 28,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/email.js",
          "module": "./lib/datums/email.js",
          "moduleName": "./lib/datums/email.js",
          "type": "cjs require",
          "userRequest": "underscore",
          "loc": "24:6-27"
        },
        {
          "moduleId": 30,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/link.js",
          "module": "./lib/datums/link.js",
          "moduleName": "./lib/datums/link.js",
          "type": "cjs require",
          "userRequest": "underscore",
          "loc": "19:6-27"
        },
        {
          "moduleId": 32,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/label.js",
          "module": "./lib/datums/label.js",
          "moduleName": "./lib/datums/label.js",
          "type": "cjs require",
          "userRequest": "underscore",
          "loc": "19:6-27"
        },
        {
          "moduleId": 34,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/collectionPicker/collectionPicker.js",
          "module": "./lib/datums/collectionPicker/collectionPicker.js",
          "moduleName": "./lib/datums/collectionPicker/collectionPicker.js",
          "type": "cjs require",
          "userRequest": "underscore",
          "loc": "34:6-27"
        },
        {
          "moduleId": 36,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/bumble-strings/lib/bumble-strings.js",
          "module": "./node_modules/bumble-strings/lib/bumble-strings.js",
          "moduleName": "./node_modules/bumble-strings/lib/bumble-strings.js",
          "type": "cjs require",
          "userRequest": "underscore",
          "loc": "5:6-27"
        }
      ],
      "usedExports": true,
      "providedExports": null,
      "optimizationBailout": [],
      "depth": 3
    },
    {
      "id": 2,
      "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/datum.js",
      "name": "./lib/datums/datum.js",
      "index": 13,
      "index2": 12,
      "size": 30204,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
      "issuerId": 15,
      "issuerName": "./index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 9,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/number.js",
          "module": "./lib/datums/number.js",
          "moduleName": "./lib/datums/number.js",
          "type": "cjs require",
          "userRequest": "./datum",
          "loc": "35:10-28"
        },
        {
          "moduleId": 10,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/form.js",
          "module": "./lib/form.js",
          "moduleName": "./lib/form.js",
          "type": "cjs require",
          "userRequest": "./datums/datum",
          "loc": "33:10-35"
        },
        {
          "moduleId": 11,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/text.js",
          "module": "./lib/datums/text.js",
          "moduleName": "./lib/datums/text.js",
          "type": "cjs require",
          "userRequest": "./datum",
          "loc": "21:10-28"
        },
        {
          "moduleId": 15,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
          "module": "./index.js",
          "moduleName": "./index.js",
          "type": "cjs require",
          "userRequest": "./lib/datums/datum",
          "loc": "14:9-38"
        },
        {
          "moduleId": 28,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/email.js",
          "module": "./lib/datums/email.js",
          "moduleName": "./lib/datums/email.js",
          "type": "cjs require",
          "userRequest": "./datum",
          "loc": "26:10-28"
        },
        {
          "moduleId": 29,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/lazyPhoto.js",
          "module": "./lib/datums/lazyPhoto.js",
          "moduleName": "./lib/datums/lazyPhoto.js",
          "type": "cjs require",
          "userRequest": "./datum",
          "loc": "24:10-28"
        },
        {
          "moduleId": 30,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/link.js",
          "module": "./lib/datums/link.js",
          "moduleName": "./lib/datums/link.js",
          "type": "cjs require",
          "userRequest": "./datum",
          "loc": "21:10-28"
        },
        {
          "moduleId": 34,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/collectionPicker/collectionPicker.js",
          "module": "./lib/datums/collectionPicker/collectionPicker.js",
          "moduleName": "./lib/datums/collectionPicker/collectionPicker.js",
          "type": "cjs require",
          "userRequest": "../datum",
          "loc": "38:10-29"
        }
      ],
      "usedExports": true,
      "providedExports": null,
      "optimizationBailout": [],
      "depth": 2,
      "source": "'use strict';\n\n(function () {\n  var Backbone,\n      Datum,\n      Options,\n      React,\n      ReactDOM,\n      _,\n      bind = function bind(fn, me) {\n    return function () {\n      return fn.apply(me, arguments);\n    };\n  },\n      extend = function extend(child, parent) {\n    for (var key in parent) {\n      if (hasProp.call(parent, key)) child[key] = parent[key];\n    }function ctor() {\n      this.constructor = child;\n    }ctor.prototype = parent.prototype;child.prototype = new ctor();child.__super__ = parent.prototype;return child;\n  },\n      hasProp = {}.hasOwnProperty;\n\n  React = require('../lib/reactLegacy');\n\n  ReactDOM = require('react-dom');\n\n  Backbone = require('backbone');\n\n  _ = require('underscore');\n\n  Options = require('../options');\n\n  module.exports = Datum = function (superClass) {\n    extend(Datum, superClass);\n\n    Datum.displayName = \"react-datum.Datum\";\n\n    Datum.propTypes = {\n      className: React.PropTypes.string,\n      model: React.PropTypes.oneOfType([React.PropTypes.instanceOf(Backbone.Model), React.PropTypes.object]),\n      attr: React.PropTypes.string,\n      label: React.PropTypes.node,\n      tooltip: React.PropTypes.string,\n      placeholder: React.PropTypes.node,\n      inputMode: React.PropTypes.oneOf(['readonly', 'edit', 'inlineEdit']),\n      getMetadata: React.PropTypes.func,\n      noPopover: React.PropTypes.bool,\n      rbOverlayProps: React.PropTypes.object,\n      setOnChange: React.PropTypes.bool,\n      setOnBlur: React.PropTypes.bool,\n      saveOnSet: React.PropTypes.bool,\n      modelSaveMethod: React.PropTypes.string,\n      modelSaveOptions: React.PropTypes.object,\n      savedIndicatorTimeout: React.PropTypes.number,\n      readonly: React.PropTypes.bool,\n      required: React.PropTypes.bool,\n      style: React.PropTypes.object,\n      asDiv: React.PropTypes.bool,\n      onChange: React.PropTypes.func,\n      value: React.PropTypes.node,\n      stateless: React.PropTypes.bool\n    };\n\n    Datum.defaultProps = {\n      setOnBlur: true,\n      setOnChange: false,\n      saveOnSet: false,\n      modelSaveMethod: 'save',\n      savedIndicatorTimeout: 5000\n    };\n\n    Datum.contextTypes = {\n      model: React.PropTypes.oneOfType([React.PropTypes.instanceOf(Backbone.Model), React.PropTypes.object]),\n      inputMode: React.PropTypes.oneOf(['readonly', 'edit', 'inlineEdit']),\n      form: React.PropTypes.object\n    };\n\n    Datum.prototype.subClassName = null;\n\n    Datum.prototype.className = 'datum';\n\n    Datum.inlineEditor = null;\n\n    Datum.prototype.validations = [];\n\n    function Datum(props) {\n      this.validateRequired = bind(this.validateRequired, this);\n      this.focus = bind(this.focus, this);\n      this.onInputRef = bind(this.onInputRef, this);\n      this.getInputComponent = bind(this.getInputComponent, this);\n      this.setValue = bind(this.setValue, this);\n      this.onInputKeyDown = bind(this.onInputKeyDown, this);\n      this.onDocumentKeydown = bind(this.onDocumentKeydown, this);\n      this.onDocumentClick = bind(this.onDocumentClick, this);\n      this.onModelSaveError = bind(this.onModelSaveError, this);\n      this.onModelSaveSuccess = bind(this.onModelSaveSuccess, this);\n      this.onBlur = bind(this.onBlur, this);\n      this.onChange = bind(this.onChange, this);\n      this.onEditClick = bind(this.onEditClick, this);\n      this.addValidations = bind(this.addValidations, this);\n      Datum.__super__.constructor.call(this, props);\n      this.initializeState();\n      this.addValidations(this.validateRequired);\n    }\n\n    Datum.prototype.initializeState = function () {\n      var ref;\n      return this.state = _.extend((ref = this.state) != null ? ref : {}, {\n        value: this.getModelValue(),\n        errors: [],\n        isDirty: false,\n        saving: false,\n        saved: null\n      });\n    };\n\n    Datum.prototype.componentWillMount = function () {};\n\n    Datum.prototype.componentDidMount = function () {\n      var modelValue, ref, ref1;\n      if ((ref = this.context) != null) {\n        if ((ref1 = ref.form) != null) {\n          if (typeof ref1.addDatum === \"function\") {\n            ref1.addDatum(this);\n          }\n        }\n      }\n      modelValue = this.getModelValue();\n      document.addEventListener('click', this.onDocumentClick);\n      return document.addEventListener('keydown', this.onDocumentKeydown);\n    };\n\n    /* !pragma coverage-skip-next */\n\n    Datum.prototype.componentWillReceiveProps = function (nextProps) {\n      var newModelValue, prevModelValue;\n      prevModelValue = this.getModelValue(this.props);\n      newModelValue = this.getModelValue(nextProps);\n      if (JSON.stringify(prevModelValue) !== JSON.stringify(newModelValue)) {\n        return this.setState({\n          value: newModelValue\n        });\n      }\n    };\n\n    /* !pragma coverage-skip-next */\n\n    Datum.prototype.componentWillUnmount = function () {\n      var ref, ref1;\n      if ((ref = this.context) != null) {\n        if ((ref1 = ref.form) != null) {\n          if (typeof ref1.removeDatum === \"function\") {\n            ref1.removeDatum(this);\n          }\n        }\n      }\n      if (this.isDirty() && this.shouldSetOnBlur()) {\n        this.setValue(this.state.value, {\n          setModelValue: true\n        });\n      }\n      document.removeEventListener('click', this.onDocumentClick);\n      return document.removeEventListener('keydown', this.onDocumentKeydown);\n    };\n\n    Datum.prototype.render = function () {\n      return this.renderDatumWrapper(function (_this) {\n        return function () {\n          if (_this.isEditing()) {\n            return _this.renderForInput();\n          } else {\n            return _this.renderForDisplay();\n          }\n        };\n      }(this));\n    };\n\n    Datum.prototype.renderDatumWrapper = function (contentFn) {\n      var wrapperProps;\n      wrapperProps = {\n        className: this.getFullClassName(),\n        'data-zattr': this.getAttr(),\n        style: this.props.style || {}\n      };\n      if (this.props.asDiv) {\n        return React.createElement(\"div\", Object.assign({}, wrapperProps), contentFn());\n      } else {\n        return React.createElement(\"span\", Object.assign({}, wrapperProps), contentFn());\n      }\n    };\n\n    Datum.prototype.renderForDisplay = function () {\n      return React.createElement(\"span\", null, this.renderLabel(), this.renderValueOrPlaceholder(), this.renderIcons());\n    };\n\n    Datum.prototype.renderLabel = function () {\n      var label, labelProps, tooltip;\n      labelProps = {};\n      tooltip = this.getPropOrMetadata('tooltip');\n      label = this.getPropOrMetadata('label') != null ? this.renderWithPopover(React.createElement(\"label\", Object.assign({}, labelProps), this.getPropOrMetadata('label')), tooltip, 'datumTooltip', 'datum-tooltip') : null;\n      return label;\n    };\n\n    /*\n      Override this method only if you need to not render the placeholder.\n     */\n\n    Datum.prototype.renderValueOrPlaceholder = function () {\n      var displayValue, placeholderValue;\n      if (this.getModelValue() != null) {\n        displayValue = this.renderValueForDisplay();\n        return this.renderWrappedDisplayValue(displayValue);\n      } else {\n        placeholderValue = this.renderPlaceholder();\n        return this.renderWrappedDisplayValue(placeholderValue);\n      }\n    };\n\n    /*\n      In most cases, this is the method you want to override in a custom datum to \n      alter the way the model attribute is displayed when inputMode='readonly'\n      \n      This method is only called if the model value is not null.\n     */\n\n    Datum.prototype.renderValueForDisplay = function () {\n      return this.getValueForDisplay();\n    };\n\n    Datum.prototype.renderWrappedDisplayValue = function (value) {\n      return React.createElement(\"span\", {\n        \"className\": \"datum-display-value\",\n        \"onClick\": this.onEditClick,\n        \"style\": this.props.style\n      }, value);\n    };\n\n    Datum.prototype.renderPlaceholder = function () {\n      var placeholder;\n      placeholder = this.getPropOrMetadata('placeholder');\n      if (placeholder == null) {\n        return null;\n      }\n      return React.createElement(\"span\", {\n        \"className\": \"placeholder\"\n      }, placeholder);\n    };\n\n    /*\n      Note that this method is not called by Datum directly.  It is \n      provided here in the Datum base class so that any Datum extensions \n      can ellipsize whatever part of their rendering neccessary and have \n      a consistent prop and method for doing so.\n     */\n\n    Datum.prototype.renderEllipsizedValue = function (value, options) {\n      var ellipsizeAt, ellipsizedValue;\n      if (options == null) {\n        options = {};\n      }\n      if (value == null) {\n        return value;\n      }\n      ellipsizeAt = this.getEllipsizeAt();\n      if (value && _.isString(value) && ellipsizeAt && value.length > ellipsizeAt) {\n        if (this.props.reverseEllipsis) {\n          ellipsizedValue = '...' + value.slice(value.length - (ellipsizeAt - 3), value.length - 1);\n        } else {\n          ellipsizedValue = value.slice(0, ellipsizeAt - 3) + '...';\n        }\n        return this.renderWithPopover(ellipsizedValue, value, 'datumEllipsizedValue', 'datum-ellipsized');\n      }\n      return value;\n    };\n\n    Datum.prototype.renderForInput = function () {\n      return React.createElement(\"span\", {\n        \"className\": \"datum-input\",\n        \"data-value\": this.getValueForInput()\n      }, this.renderLabel(), this.renderInput(), this.renderIcons());\n    };\n\n    /*\n      In most cases this is the method you want to override to alter the presentation of the datum when\n      inputMode='edit'.\n      \n      If you override this method, be sure to add @onBlur() and @onChange() to your input\n      component\n     */\n\n    Datum.prototype.renderInput = function () {\n      return React.createElement(\"input\", Object.assign({}, this.getInputComponentOptions()));\n    };\n\n    /*\n      Override / extend this method to add or alter icons presented after datum.\n      \n      Datum implementation renders the error icon if needed.\n     */\n\n    Datum.prototype.renderIcons = function () {\n      var className, errorIcon, errorIconClass, errors;\n      if (!(this.state.errors.length > 0)) {\n        return null;\n      }\n      errors = [];\n      className = \"error validation\";\n      errorIconClass = Options.get('errorIconClass');\n      errorIcon = errorIconClass != null ? React.createElement(\"i\", {\n        \"className\": errorIconClass\n      }) : '!';\n      errors = this.renderErrors();\n      return this.renderWithPopover(errorIcon, errors, 'datumInvalid', 'datum-invalid');\n    };\n\n    /*\n      Override / extend this method to control what is rendered in the error icon popup\n     */\n\n    Datum.prototype.renderErrors = function () {\n      var error, errors, i, len, ref;\n      errors = [];\n      if (this.getReactBootstrap() != null && !this.props.noPopover) {\n        ref = this.state.errors;\n        for (i = 0, len = ref.length; i < len; i++) {\n          error = ref[i];\n          errors.push(React.createElement(\"div\", null, error));\n        }\n      } else {\n        errors = this.state.errors.join('\\n');\n      }\n      return errors;\n    };\n\n    /*\n      You can use this to render a value with the standard popover treatment or \n      extend and override to effect the standard popover treatment\n     */\n\n    Datum.prototype.renderWithPopover = function (value, tooltip, popoverId, valueClass) {\n\n      /* !pragma coverage-skip-block */\n      var Rb, popover, rValue, rbOverlayProps;\n      if (tooltip == null) {\n        return value;\n      }\n      Rb = this.getReactBootstrap();\n      if (Rb != null && !this.props.noPopover) {\n        popover = React.createElement(Rb.Popover, {\n          \"id\": popoverId\n        }, tooltip);\n        rbOverlayProps = this.getRbOverlayProps(value, popoverId);\n        rValue = React.createElement(Rb.OverlayTrigger, Object.assign({\n          \"overlay\": popover\n        }, rbOverlayProps), React.createElement(\"span\", {\n          \"className\": valueClass\n        }, value));\n      } else {\n        rValue = React.createElement(\"span\", {\n          \"className\": valueClass,\n          \"title\": tooltip\n        }, value);\n      }\n      return rValue;\n    };\n\n    /*\n      Override this method to provide things like custom positioning of error popovers\n     */\n\n    Datum.prototype.getRbOverlayProps = function (value, popoverId) {\n\n      /* !pragma coverage-skip-block */\n      var ref;\n      return (ref = this.props.rbOverlayProps) != null ? ref : Options.get('RbOverlayProps');\n    };\n\n    /*\n      This method can be overriden to provide custom determination of dirty state.\n      dirty meaning, has the input value changed.  The base implementation assumes\n      that the base behavior of setting state.value to null on model.set() happens.\n     */\n\n    Datum.prototype.isDirty = function () {\n      return this.state.isDirty;\n    };\n\n    /*\n      This method is called to determine if the inputMode (prop, context) is one\n      of the editable types.  ('edit' or 'inlineEdit')\n      \n      Note that a return of true does NOT indicate that the Datum is in its \n      edit display.  If the component is an inputMode='inlineEdit', in may be\n      showing it's display presentation.  See also isEditing()\n     */\n\n    Datum.prototype.isEditable = function () {\n      var inputMode;\n      inputMode = this.getInputMode();\n      if (inputMode === \"edit\" || inputMode === \"inlineEdit\") {\n        return true;\n      }\n    };\n\n    /*\n      This method is called to determine if the Datum is displaying its input\n      presentation.\n     */\n\n    Datum.prototype.isEditing = function () {\n      var inputMode;\n      inputMode = this.getInputMode();\n      return inputMode === 'edit' || this.isInlineEdit() && this.constructor.inlineEditor === this;\n    };\n\n    Datum.prototype.isInlineEdit = function () {\n      return this.getInputMode() === 'inlineEdit';\n    };\n\n    Datum.prototype.cancelEdit = function () {\n      return this.setState({\n        errors: [],\n        value: this.getModelValue()\n      });\n    };\n\n    /*\n      When extending Datum, use @addValidations from constructor to add additional validations.\n      'required' validation is automatically added (only invalid if empty and has 'required' prop)\n      \n      For example, see [Number datum](#Number)\n      \n      You can add validations to an individual instance of any Datum extension.\n      \n      `validations` argument should be one or an array of methods that accept the (value) to\n      validate and return true if valid, false if not.\n     */\n\n    Datum.prototype.addValidations = function (validations) {\n      if (!_.isArray(validations)) {\n        validations = [validations];\n      }\n      return this.validations = this.validations.concat(validations);\n    };\n\n    Datum.prototype.getInputMode = function () {\n      if (this.props.readonly) {\n        return \"readonly\";\n      }\n      return this.props.inputMode || this.context.inputMode || \"readonly\";\n    };\n\n    Datum.prototype.getInputComponentOptions = function () {\n      var placeholder, value;\n      placeholder = this.getPropOrMetadata('placeholder') || \"\";\n      value = this.getValueForInput();\n      return {\n        type: \"text\",\n        placeholder: placeholder,\n        value: value,\n        onChange: this.onChange,\n        onBlur: this.onBlur,\n        onKeyDown: this.onInputKeyDown,\n        ref: this.onInputRef\n      };\n    };\n\n    /* \n      This method should return the value for display from the model. You \n      can extend this method in a custom Datum to coerce or manipulate just\n      the value used for display.   \n      \n      In most cases, you'll probably want to extend the Datum.renderValueForDisplay() \n      instead\n     */\n\n    Datum.prototype.getValueForDisplay = function () {\n      return this.getModelValue();\n    };\n\n    /*\n      Extend this method to coerce or intepret the value from the model\n      that is displayed when in input\n     */\n\n    Datum.prototype.getValueForInput = function () {\n      if (!this.props.stateless && this.state.value !== void 0) {\n        return this.state.value;\n      } else {\n        return this.getModelValue();\n      }\n    };\n\n    /*\n      DEPRECATED (use getValueForInput): this method returns the value in the input as seen by user\n     */\n\n    Datum.prototype.getInputValue = function () {\n      return this.state.value;\n    };\n\n    /*\n      Extend this method to change how to get the input element's value from a \n      change event.   The base class impl get's the value from event.target.value\n      by default.\n     */\n\n    Datum.prototype.getValueFromInput = function (event) {\n      var ref, ref1, ref2;\n      return (ref = (ref1 = event != null ? (ref2 = event.target) != null ? ref2.value : void 0 : void 0) != null ? ref1 : event != null ? event.value : void 0) != null ? ref : event;\n    };\n\n    /*\n      returns the Backbone Model currently associated with the datum.\n     */\n\n    Datum.prototype.getModel = function (newProps, newContext) {\n      if (newProps == null) {\n        newProps = this.props;\n      }\n      if (newContext == null) {\n        newContext = this.context;\n      }\n      return (newProps != null ? newProps.model : void 0) || (newContext != null ? newContext.model : void 0) || new Backbone.Model();\n    };\n\n    /*\n      Returns the value set via value prop or the value currently set on the model\n      \n      warning: Do not override this method to return a component element or jsx; bad things will happen.\n     */\n\n    Datum.prototype.getModelValue = function (newProps, newContext) {\n      var model, ref, ref1, value;\n      if (newProps == null) {\n        newProps = this.props;\n      }\n      if (newContext == null) {\n        newContext = this.context;\n      }\n      if (newProps.value !== void 0) {\n        return (ref = (ref1 = this.state) != null ? ref1.shadowValue : void 0) != null ? ref : newProps.value;\n      }\n      if (!(model = this.getModel(newProps, newContext))) {\n        return null;\n      }\n      value = _.isFunction(model.get) ? model.get(this.getAttr(newProps)) : model[this.getAttr(newProps)];\n      return value;\n    };\n\n    /*\n      When extending react datum, use this method to get the attribute name specified\n      to the component as props.attr.  \n      \n      You can also override this method in an extension to dynamically select the attribute\n      to get from the model.  For say an international price datum that selects a price\n      attribute based on the local currency  (not a contrived example)\n     */\n\n    Datum.prototype.getAttr = function (props) {\n      if (props == null) {\n        props = this.props;\n      }\n      return props.attr;\n    };\n\n    /*\n      Extend this method to interpret the value prior to saving for example a Percent datum\n      that the user enters a value that is 100x what gets saved to model\n      \n      options pass through to model.set()\n     */\n\n    Datum.prototype.setModelValue = function (value, options) {\n      var attr, model;\n      if (options == null) {\n        options = {};\n      }\n      if (value === void 0) {\n        value = this.getInputValue();\n        if (value === void 0) {\n          return;\n        }\n      }\n      model = this.getModel();\n      attr = this.getAttr();\n      if (model != null) {\n        if (_.isFunction(model.set)) {\n          model.set(attr, value, options);\n        } else {\n          model[attr] = value;\n        }\n        if (this.props.saveOnSet || options.saveOnset) {\n          this.saveModel();\n        }\n      }\n      if (this.props.value !== void 0) {\n        return this.setState({\n          shadowValue: value\n        });\n      }\n    };\n\n    Datum.prototype.saveModel = function () {\n      var model;\n      model = this.getModel();\n      if (model == null) {\n        return;\n      }\n      if (_.isFunction(model[this.props.modelSaveMethod])) {\n        return this.setState({\n          saving: true\n        }, function (_this) {\n          return function () {\n            return model[_this.props.modelSaveMethod]({}, _this.getModelSaveOptions());\n          };\n        }(this));\n      } else {\n        return console.error(\"Datum:setModelValue - saveOnSet true but modelSaveMethod (\" + this.props.modelSaveMethod + \") is not a function on model\");\n      }\n    };\n\n    Datum.prototype.getModelSaveOptions = function () {\n      var originalError, originalSuccess, saveOptions;\n      saveOptions = _.extend({}, this.props.modelSaveOptions);\n      originalSuccess = saveOptions.success;\n      originalError = saveOptions.error;\n      saveOptions.success = function (_this) {\n        return function (model, resp) {\n          _this.onModelSaveSuccess(model, resp);\n          return typeof originalSuccess === \"function\" ? originalSuccess(model, resp, _this) : void 0;\n        };\n      }(this);\n      saveOptions.error = function (_this) {\n        return function (model, resp) {\n          _this.onModelSaveError(model, resp);\n          return typeof originalError === \"function\" ? originalError(model, resp, _this) : void 0;\n        };\n      }(this);\n      return saveOptions;\n    };\n\n    Datum.prototype.getEllipsizeAt = function () {\n      return this.props.ellipsizeAt;\n    };\n\n    /*\n      Override / extend this method to add conditional css classes to the outer datum element\n     */\n\n    Datum.prototype.getFullClassName = function () {\n      var className, ref;\n      className = this.subClassName != null ? this.className + \" \" + this.subClassName : this.className;\n      if (this.props.required) {\n        className += \" required\";\n      }\n      if (((ref = this.state.errors) != null ? ref.length : void 0) > 0) {\n        className += \" invalid\";\n      }\n      if (this.state.saving) {\n        className += \" saving\";\n      }\n      if (this.state.saved === false) {\n        className += \" not-saved\";\n      }\n      if (this.state.saved === true) {\n        className += \" saved\";\n      }\n      if (this.props.className != null) {\n        className += \" \" + this.props.className;\n      }\n      return className;\n    };\n\n    Datum.prototype.getPropOrMetadata = function (prop) {\n      var base, ref;\n      if (this.props[prop] !== void 0) {\n        return this.props[prop];\n      }\n      return (typeof (base = this.props).getMetadata === \"function\" ? base.getMetadata(prop, this) : void 0) || ((ref = this.getModel()) != null ? typeof ref.getDatumMetadata === \"function\" ? ref.getDatumMetadata(prop, this) : void 0 : void 0) || void 0;\n    };\n\n    Datum.prototype.getReactBootstrap = function () {\n      return Options.get('ReactBootstrap') || (typeof window !== \"undefined\" && window !== null ? window.ReactBootstrap : void 0);\n    };\n\n    Datum.prototype.shouldSetOnChange = function () {\n      return this.props.setOnChange === true || this.isInlineEdit() && !this.props.setOnChange === false;\n    };\n\n    Datum.prototype.shouldSetOnBlur = function () {\n      return this.props.setOnBlur === true && !this.shouldSetOnChange() && !this.props.multi;\n    };\n\n    Datum.prototype.onEditClick = function (synthEvent) {\n      var ref;\n      if (this.inlineToEditMode()) {\n        synthEvent.stopPropagation();\n        return (ref = synthEvent.nativeEvent) != null ? typeof ref.stopImmediatePropagation === \"function\" ? ref.stopImmediatePropagation() : void 0 : void 0;\n      }\n    };\n\n    Datum.prototype.onChange = function (event, options) {\n      var value;\n      if (options == null) {\n        options = {};\n      }\n      options = _.defaults(options, {\n        silent: false,\n        event: event,\n        propsOnChangeValue: null\n      });\n      value = this.getValueFromInput(event);\n      this.setValue(value, {\n        setModelValue: this.shouldSetOnChange()\n      });\n      if (this.shouldSetOnChange()) {\n        this.inlineToDisplayMode();\n      }\n      if (this.props.onChange != null && !options.silent) {\n        return this.props.onChange(options.propsOnChangeValue || value, this, options);\n      }\n    };\n\n    Datum.prototype.onBlur = function (event) {\n      var value;\n      value = this.getInputValue();\n      if (!this.hasInputValueChanged()) {\n        return;\n      }\n      this.setValue(value, {\n        setModelValue: this.shouldSetOnBlur()\n      });\n      return this.inlineToDisplayMode();\n    };\n\n    Datum.prototype.onModelSaveSuccess = function (model, resp) {\n      this.setState({\n        saving: false,\n        saved: true\n      });\n      if (this.props.savedIndicatorTimeout != null) {\n        return _.delay(function (_this) {\n          return function () {\n            return _this.setState({\n              saved: null\n            });\n          };\n        }(this), this.props.savedIndicatorTimeout);\n      }\n    };\n\n    Datum.prototype.onModelSaveError = function (model, resp) {\n      var errors, ref, ref1;\n      errors = this.state.errors || [];\n      errors.push(\"Unable to save value. Error: \" + ((ref = (ref1 = resp.responseText) != null ? ref1 : resp.statusText) != null ? ref : resp));\n      this.setState({\n        saving: false,\n        saved: false,\n        errors: errors\n      });\n      if (this.props.savedIndicatorTimeout != null) {\n        return _.delay(function (_this) {\n          return function () {\n            return _this.setState({\n              saved: null\n            });\n          };\n        }(this), this.props.savedIndicatorTimeout);\n      }\n    };\n\n    /*\n      Extend this method to run code when the model value change is detected\n      when props are changed\n     */\n\n    Datum.prototype.onModelValueChange = function (oldModelValue, newModelValue) {\n      return this.setState({\n        value: newModelValue\n      });\n    };\n\n    Datum.prototype.onDocumentClick = function (evt) {\n      if (this.isInlineEdit() && this.isEditing() && !this.isElementOrParentOf(evt.target, ReactDOM.findDOMNode(this))) {\n        return this.inlineToDisplayMode();\n      }\n    };\n\n    Datum.prototype.onDocumentKeydown = function (evt) {\n      if (evt.keyCode === 27 && (typeof this.isInlineEdit === \"function\" ? this.isInlineEdit() : void 0) && (typeof this.isEditing === \"function\" ? this.isEditing() : void 0)) {\n        return this.inlineToDisplayMode();\n      }\n    };\n\n    Datum.prototype.isElementOrParentOf = function (elementInQuestion, parentElement) {\n      var el;\n      el = elementInQuestion;\n      while (el != null) {\n        if (el === parentElement) {\n          return true;\n        }\n        el = el.parentElement;\n      }\n      return false;\n    };\n\n    Datum.prototype.hasInputValueChanged = function () {\n      var inputValue;\n      inputValue = this.getInputValue();\n      return inputValue !== void 0 && inputValue !== this.getModelValue();\n    };\n\n    Datum.prototype.inlineToDisplayMode = function () {\n      if (!this.isInlineEdit()) {\n        return false;\n      }\n      if (this.constructor.inlineEditor === this) {\n        this.constructor.inlineEditor = null;\n        this.forceUpdate();\n      }\n      return true;\n    };\n\n    Datum.prototype.inlineToEditMode = function () {\n      if (!this.isInlineEdit()) {\n        return false;\n      }\n      if (this.constructor.inlineEditor != null) {\n        this.constructor.inlineEditor.inlineToDisplayMode();\n      }\n      this.constructor.inlineEditor = this;\n      this.forceUpdate();\n      _.defer(function (_this) {\n        return function () {\n          return _this.focus();\n        };\n      }(this));\n      return true;\n    };\n\n    Datum.prototype.onInputKeyDown = function (event) {\n      var base;\n      return typeof (base = this.props).onKeyDown === \"function\" ? base.onKeyDown(event) : void 0;\n    };\n\n    Datum.prototype.setValue = function (newValue, options) {\n      var valid;\n      if (options == null) {\n        options = {};\n      }\n      options = _.defaults(options, {\n        setModelValue: false\n      });\n      valid = this.validate(newValue);\n      if (options.setModelValue) {\n        this.setModelValue(newValue, options);\n        this.setState({\n          isDirty: false\n        });\n      } else {\n        this.setState({\n          isDirty: true\n        });\n      }\n      return this.setState({\n        value: newValue\n      });\n    };\n\n    /*\n      This method can be used to get at the inner input component if one exists, only\n      while inputMode=='edit'\n     */\n\n    Datum.prototype.getInputComponent = function () {\n      return this.inputComponent;\n    };\n\n    Datum.prototype.onInputRef = function (input) {\n      return this.inputComponent = input;\n    };\n\n    Datum.prototype.focus = function () {\n      var node;\n      if (this.getInputComponent() != null) {\n        node = ReactDOM.findDOMNode(this.getInputComponent());\n        node.focus();\n        return node.select();\n      }\n    };\n\n    /*\n      This method is called to validate the value in the input.\n      \n      Note that validations such as props.required also need to apply if the user \n      hasn't changed the input, so the default value is the coalesce of state.value\n      or model value.  state.value (see getInputValue()) is null if the user has\n      not made changes.\n     */\n\n    Datum.prototype.validate = function (value) {\n      var errors, i, len, ref, valid, validation;\n      if (value == null) {\n        value = this.getValueForInput();\n      }\n      this.setState({\n        errors: []\n      });\n      errors = [];\n      ref = this.validations;\n      for (i = 0, len = ref.length; i < len; i++) {\n        validation = ref[i];\n        valid = validation(value);\n        if (valid !== true) {\n          errors.push(valid);\n        }\n      }\n      this.setState({\n        errors: errors\n      });\n      return errors.length === 0;\n    };\n\n    Datum.prototype.validateRequired = function (value) {\n      if (!this.props.required) {\n        return true;\n      }\n      if (!(_.isNull(value) || _.isEmpty(value) || _.isUndefined(value))) {\n        return true;\n      }\n      return \"This input is required\";\n    };\n\n    /*\n      This method can be used to clear any validation or save errors manually\n     */\n\n    Datum.prototype.clearErrors = function () {\n      if (_.isArray(this.state.errors) && this.state.errors.length > 0) {\n        return this.setState({\n          errors: []\n        });\n      }\n    };\n\n    return Datum;\n  }(React.Component);\n}).call(undefined);"
    },
    {
      "id": 3,
      "identifier": "external {\"root\":\"Backbone\",\"commonjs2\":\"backbone\",\"commonjs\":\"backbone\",\"amd\":\"backbone\"}",
      "name": "external {\"root\":\"Backbone\",\"commonjs2\":\"backbone\",\"commonjs\":\"backbone\",\"amd\":\"backbone\"}",
      "index": 14,
      "index2": 9,
      "size": 42,
      "cacheable": false,
      "built": false,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/contextualData.js",
      "issuerId": 6,
      "issuerName": "./lib/contextualData.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 2,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/datum.js",
          "module": "./lib/datums/datum.js",
          "moduleName": "./lib/datums/datum.js",
          "type": "cjs require",
          "userRequest": "backbone",
          "loc": "28:13-32"
        },
        {
          "moduleId": 6,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/contextualData.js",
          "module": "./lib/contextualData.js",
          "moduleName": "./lib/contextualData.js",
          "type": "cjs require",
          "userRequest": "backbone",
          "loc": "24:13-32"
        },
        {
          "moduleId": 10,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/form.js",
          "module": "./lib/form.js",
          "moduleName": "./lib/form.js",
          "type": "cjs require",
          "userRequest": "backbone",
          "loc": "35:13-32"
        },
        {
          "moduleId": 22,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/collection.js",
          "module": "./lib/collection.js",
          "moduleName": "./lib/collection.js",
          "type": "cjs require",
          "userRequest": "backbone",
          "loc": "21:13-32"
        },
        {
          "moduleId": 25,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/collectionStats.js",
          "module": "./lib/collectionStats.js",
          "moduleName": "./lib/collectionStats.js",
          "type": "cjs require",
          "userRequest": "backbone",
          "loc": "18:13-32"
        },
        {
          "moduleId": 26,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/model.js",
          "module": "./lib/model.js",
          "moduleName": "./lib/model.js",
          "type": "cjs require",
          "userRequest": "backbone",
          "loc": "20:13-32"
        },
        {
          "moduleId": 27,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/selectedModel.js",
          "module": "./lib/selectedModel.js",
          "moduleName": "./lib/selectedModel.js",
          "type": "cjs require",
          "userRequest": "backbone",
          "loc": "24:13-32"
        },
        {
          "moduleId": 34,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/collectionPicker/collectionPicker.js",
          "module": "./lib/datums/collectionPicker/collectionPicker.js",
          "moduleName": "./lib/datums/collectionPicker/collectionPicker.js",
          "type": "cjs require",
          "userRequest": "backbone",
          "loc": "32:13-32"
        }
      ],
      "usedExports": true,
      "providedExports": null,
      "optimizationBailout": [],
      "depth": 3
    },
    {
      "id": 4,
      "identifier": "external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}",
      "name": "external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}",
      "index": 5,
      "index2": 1,
      "size": 42,
      "cacheable": false,
      "built": false,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/react-select/lib/Option.js",
      "issuerId": 38,
      "issuerName": "./node_modules/react-select/lib/Option.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 0,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/lib/reactLegacy.js",
          "module": "./lib/lib/reactLegacy.js",
          "moduleName": "./lib/lib/reactLegacy.js",
          "type": "cjs require",
          "userRequest": "react",
          "loc": "6:10-26"
        },
        {
          "moduleId": 12,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/react-select/dist/react-select.es.js",
          "module": "./node_modules/react-select/dist/react-select.es.js",
          "moduleName": "./node_modules/react-select/dist/react-select.es.js",
          "type": "harmony import",
          "userRequest": "react",
          "loc": "4:0-41"
        },
        {
          "moduleId": 37,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/react-input-autosize/lib/AutosizeInput.js",
          "module": "./node_modules/react-input-autosize/lib/AutosizeInput.js",
          "moduleName": "./node_modules/react-input-autosize/lib/AutosizeInput.js",
          "type": "cjs require",
          "userRequest": "react",
          "loc": "11:13-29"
        },
        {
          "moduleId": 38,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/react-select/lib/Option.js",
          "module": "./node_modules/react-select/lib/Option.js",
          "moduleName": "./node_modules/react-select/lib/Option.js",
          "type": "cjs require",
          "userRequest": "react",
          "loc": "17:13-29"
        }
      ],
      "usedExports": true,
      "providedExports": null,
      "optimizationBailout": [],
      "depth": 3
    },
    {
      "id": 5,
      "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/prop-types/index.js",
      "name": "./node_modules/prop-types/index.js",
      "index": 6,
      "index2": 6,
      "size": 956,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/react-select/lib/Option.js",
      "issuerId": 38,
      "issuerName": "./node_modules/react-select/lib/Option.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 0,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/lib/reactLegacy.js",
          "module": "./lib/lib/reactLegacy.js",
          "moduleName": "./lib/lib/reactLegacy.js",
          "type": "cjs require",
          "userRequest": "prop-types",
          "loc": "9:22-43"
        },
        {
          "moduleId": 12,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/react-select/dist/react-select.es.js",
          "module": "./node_modules/react-select/dist/react-select.es.js",
          "moduleName": "./node_modules/react-select/dist/react-select.es.js",
          "type": "harmony import",
          "userRequest": "prop-types",
          "loc": "3:0-35"
        },
        {
          "moduleId": 37,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/react-input-autosize/lib/AutosizeInput.js",
          "module": "./node_modules/react-input-autosize/lib/AutosizeInput.js",
          "moduleName": "./node_modules/react-input-autosize/lib/AutosizeInput.js",
          "type": "cjs require",
          "userRequest": "prop-types",
          "loc": "15:17-38"
        },
        {
          "moduleId": 38,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/react-select/lib/Option.js",
          "module": "./node_modules/react-select/lib/Option.js",
          "moduleName": "./node_modules/react-select/lib/Option.js",
          "type": "cjs require",
          "userRequest": "prop-types",
          "loc": "13:17-38"
        }
      ],
      "usedExports": true,
      "providedExports": null,
      "optimizationBailout": [],
      "depth": 3,
      "source": "/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n  var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n    Symbol.for &&\n    Symbol.for('react.element')) ||\n    0xeac7;\n\n  var isValidElement = function(object) {\n    return typeof object === 'object' &&\n      object !== null &&\n      object.$$typeof === REACT_ELEMENT_TYPE;\n  };\n\n  // By explicitly using `prop-types` you are opting into new development behavior.\n  // http://fb.me/prop-types-in-prod\n  var throwOnDirectAccess = true;\n  module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n  // By explicitly using `prop-types` you are opting into new production behavior.\n  // http://fb.me/prop-types-in-prod\n  module.exports = require('./factoryWithThrowingShims')();\n}\n"
    },
    {
      "id": 6,
      "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/contextualData.js",
      "name": "./lib/contextualData.js",
      "index": 17,
      "index2": 15,
      "size": 6906,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
      "issuerId": 15,
      "issuerName": "./index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 15,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
          "module": "./index.js",
          "moduleName": "./index.js",
          "type": "cjs require",
          "userRequest": "./lib/contextualData",
          "loc": "6:18-49"
        },
        {
          "moduleId": 22,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/collection.js",
          "module": "./lib/collection.js",
          "moduleName": "./lib/collection.js",
          "type": "cjs require",
          "userRequest": "./contextualData",
          "loc": "27:19-46"
        },
        {
          "moduleId": 26,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/model.js",
          "module": "./lib/model.js",
          "moduleName": "./lib/model.js",
          "type": "cjs require",
          "userRequest": "./contextualData",
          "loc": "24:19-46"
        },
        {
          "moduleId": 27,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/selectedModel.js",
          "module": "./lib/selectedModel.js",
          "moduleName": "./lib/selectedModel.js",
          "type": "cjs require",
          "userRequest": "./contextualData",
          "loc": "26:19-46"
        }
      ],
      "usedExports": true,
      "providedExports": null,
      "optimizationBailout": [],
      "depth": 2,
      "source": "'use strict';\n\n(function () {\n  var Backbone,\n      ContextualData,\n      React,\n      _,\n      bind = function bind(fn, me) {\n    return function () {\n      return fn.apply(me, arguments);\n    };\n  },\n      extend = function extend(child, parent) {\n    for (var key in parent) {\n      if (hasProp.call(parent, key)) child[key] = parent[key];\n    }function ctor() {\n      this.constructor = child;\n    }ctor.prototype = parent.prototype;child.prototype = new ctor();child.__super__ = parent.prototype;return child;\n  },\n      hasProp = {}.hasOwnProperty;\n\n  React = require('./lib/reactLegacy');\n\n  Backbone = require('backbone');\n\n  _ = require('underscore');\n\n  /*\n    This is an abstract base class for contextual data components like ReactDatum.Collection \n    and ReactDatum.Model that provide a single contextual data element.\n    \n    The ReactDatum.ContextualData base class also provides the listener to model or collection\n    events and rendering of child components on changes.\n    \n    You shouldn't need to use this class directly.\n   */\n\n  module.exports = ContextualData = function (superClass) {\n    extend(ContextualData, superClass);\n\n    /*\n      This is the class of thing being placed in the context.\n        ex. `Backbone.Model` or `Backbone.Collection`\n     */\n\n    ContextualData.prototype.dataType = null;\n\n    /*\n     this is the key in @context children should use to access thing\n      ex. \"model\"\n     */\n\n    ContextualData.prototype.contextKey = null;\n\n    ContextualData.propTypes = {\n      fetch: React.PropTypes.bool,\n      fetchOptions: React.PropTypes.object,\n      placeholder: React.PropTypes.node,\n      className: React.PropTypes.string,\n      debouncedUpdate: React.PropTypes.bool,\n      debounceMs: React.PropTypes.number,\n      debug: React.PropTypes.bool,\n      style: React.PropTypes.object\n    };\n\n    ContextualData.childContextTypes = {};\n\n    ContextualData.defaultProps = {\n      fetch: false,\n      fetchOptions: {},\n      placeholder: void 0,\n      style: {},\n      debouncedUpdate: true,\n      debounceMs: 0\n    };\n\n    function ContextualData(props) {\n      this.update = bind(this.update, this);\n      this.onDataChanged = bind(this.onDataChanged, this);\n      ContextualData.__super__.constructor.call(this, props);\n      this.state = {\n        lastUpdated: null,\n        collectionOrModel: null\n      };\n      this.debouncedUpdate = this.props.debouncedUpdate ? _.debounce(this.update, this.props.debounceMs) : this.update;\n    }\n\n    ContextualData.prototype.getChildContext = function () {\n      var c;\n      c = {};\n      c[this.contextKey] = this.state.collectionOrModel;\n      return c;\n    };\n\n    ContextualData.prototype.render = function () {\n      var className;\n      className = \"contextual-data \" + this.contextKey;\n      if (this.props.className != null) {\n        className += \" \" + this.props.className;\n      }\n      return React.createElement(\"span\", {\n        \"style\": _.extend({}, this.props.style),\n        \"className\": className\n      }, this.renderContent());\n    };\n\n    ContextualData.prototype.renderContent = function () {\n      if (this.state.collectionOrModel != null || this.props.placeholder === void 0) {\n        return this.props.children;\n      }\n      return this.props.placeholder;\n    };\n\n    /* !pragma coverage-skip-next */\n\n    ContextualData.prototype.componentWillUnmount = function () {\n      return this.unbindEvents();\n    };\n\n    ContextualData.prototype.componentWillMount = function () {\n      return this.initializeCollectionOrModel();\n    };\n\n    /* !pragma coverage-skip-next */\n\n    ContextualData.prototype.componentWillReceiveProps = function (newProps) {\n      this.props = newProps;\n      return this.initializeCollectionOrModel();\n    };\n\n    /*\n      override this model to do a custom fetch method like fetchForUser or some such\n     */\n\n    ContextualData.prototype.fetchCollectionOrModel = function () {\n      return this.state.collectionOrModel.fetch(this.props.fetchOptions);\n    };\n\n    /*\n      extend this method to provide additional initialization on the \n      thing you provide.  You should probably call super\n     */\n\n    ContextualData.prototype.initializeCollectionOrModel = function () {\n      if (!this.needsReinitializing()) {\n        return;\n      }\n      this.unbindEvents();\n      this.setCollectionOrModel();\n      this.bindEvents();\n      if (this.props.fetch && this.state.collectionOrModel != null) {\n        return this.fetchCollectionOrModel();\n      }\n    };\n\n    /*\n      override this method to input from somewhere other than the context or props being passed in\n     */\n\n    ContextualData.prototype.getInputCollectionOrModel = function () {\n      return this.props[this.contextKey] || this.context[this.contextKey];\n    };\n\n    /*\n      override or extend this method to provide something other than what we recieve\n     */\n\n    ContextualData.prototype.getCollectionOrModelToProvide = function () {\n      return this.getInputCollectionOrModel();\n    };\n\n    /*\n      extend this method to provide additional tests to determine if initialization is \n      needed.  You should probably extend this method like so:\n      ```\n        return super() || this._someOtherTest()\n      ```\n     */\n\n    ContextualData.prototype.needsReinitializing = function () {\n      var collectionOrModel, truth;\n      collectionOrModel = this.getCollectionOrModelToProvide();\n      truth = this.state.collectionOrModel == null || collectionOrModel !== this._lastPropsModel;\n      this._lastPropsModel = collectionOrModel;\n      return truth;\n    };\n\n    ContextualData.prototype.setCollectionOrModel = function () {\n      var collectionOrModel;\n      collectionOrModel = this.getCollectionOrModelToProvide();\n      this.setState({\n        collectionOrModel: collectionOrModel\n      });\n      return this.state.collectionOrModel = collectionOrModel;\n    };\n\n    ContextualData.prototype.bindEvents = function () {\n      var ref;\n      return (ref = this.state.collectionOrModel) != null ? typeof ref.on === \"function\" ? ref.on('all', this.onDataChanged, this) : void 0 : void 0;\n    };\n\n    ContextualData.prototype.unbindEvents = function () {\n      var ref;\n      return (ref = this.state.collectionOrModel) != null ? typeof ref.off === \"function\" ? ref.off('all', this.onDataChanged) : void 0 : void 0;\n    };\n\n    ContextualData.prototype.onDataChanged = function () {\n      return this.debouncedUpdate();\n    };\n\n    ContextualData.prototype.update = function () {\n      if (this.props.debug) {\n        console.log(\"ContextualData: update on model\", this.state.collectionOrModel);\n      }\n      this.setState({\n        lastUpdated: Date.now(),\n        collectionOrModel: this.getCollectionOrModelToProvide()\n      });\n      if (this.props.forceUpdate) {\n        return this.forceUpdate();\n      }\n    };\n\n    return ContextualData;\n  }(React.Component);\n}).call(undefined);"
    },
    {
      "id": 7,
      "identifier": "external {\"root\":\"ReactDOM\",\"commonjs2\":\"react-dom\",\"commonjs\":\"react-dom\",\"amd\":\"react-dom\"}",
      "name": "external {\"root\":\"ReactDOM\",\"commonjs2\":\"react-dom\",\"commonjs\":\"react-dom\",\"amd\":\"react-dom\"}",
      "index": 12,
      "index2": 8,
      "size": 42,
      "cacheable": false,
      "built": false,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/form.js",
      "issuerId": 10,
      "issuerName": "./lib/form.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 2,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/datum.js",
          "module": "./lib/datums/datum.js",
          "moduleName": "./lib/datums/datum.js",
          "type": "cjs require",
          "userRequest": "react-dom",
          "loc": "26:13-33"
        },
        {
          "moduleId": 10,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/form.js",
          "module": "./lib/form.js",
          "moduleName": "./lib/form.js",
          "type": "cjs require",
          "userRequest": "react-dom",
          "loc": "31:13-33"
        },
        {
          "moduleId": 12,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/react-select/dist/react-select.es.js",
          "module": "./node_modules/react-select/dist/react-select.es.js",
          "moduleName": "./node_modules/react-select/dist/react-select.es.js",
          "type": "harmony import",
          "userRequest": "react-dom",
          "loc": "5:0-40"
        }
      ],
      "usedExports": true,
      "providedExports": null,
      "optimizationBailout": [],
      "depth": 3
    },
    {
      "id": 8,
      "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/options.js",
      "name": "./lib/options.js",
      "index": 16,
      "index2": 11,
      "size": 3238,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
      "issuerId": 15,
      "issuerName": "./index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 2,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/datum.js",
          "module": "./lib/datums/datum.js",
          "moduleName": "./lib/datums/datum.js",
          "type": "cjs require",
          "userRequest": "../options",
          "loc": "32:12-33"
        },
        {
          "moduleId": 15,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
          "module": "./index.js",
          "moduleName": "./index.js",
          "type": "cjs require",
          "userRequest": "./lib/options",
          "loc": "25:11-35"
        },
        {
          "moduleId": 29,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/lazyPhoto.js",
          "module": "./lib/datums/lazyPhoto.js",
          "moduleName": "./lib/datums/lazyPhoto.js",
          "type": "cjs require",
          "userRequest": "../options",
          "loc": "26:12-33"
        }
      ],
      "usedExports": true,
      "providedExports": null,
      "optimizationBailout": [],
      "depth": 2,
      "source": "'use strict';\n\n(function () {\n  var Options, _, __options;\n\n  _ = require('underscore');\n\n  __options = {\n    ReactBootstrap: (typeof window !== \"undefined\" && window !== null ? window.ReactBootstrap : void 0) || null,\n    errorIconClass: null\n  };\n\n  /*\n    These are global options used to control various aspects\n    of ReactDatum rendering and functionality.\n  \n    Currently supported configurable options:\n  \n      ReactBootstrap: Defaults to global 'ReactBootstrap' if it exists.\n        If set this option will use ReactBootstrap for popovers such as when\n        a Datum is ellipsized and for validation errors. \n        If not set, ReactDatum will use the HTML5 title tooltips for popovers\n        \n      RbOverlayProps: \n        You can change the placement, trigger, etc used for popovers when using\n        ReactBootstrap.\n        \n      errorIconClass: default: null.  Icon css class to use for indicating \n        validation errors. If not set, a red unicode exclamation point is used.\n   */\n\n  module.exports = Options = function () {\n    function Options() {}\n\n    /*\n      These are defaulted onto whatever is provided via ReactDatum.Options.set().\n     */\n\n    Options._defaults = {\n      errorIconClass: null,\n      ReactBootstrap: null,\n      RbOverlayProps: {\n        trigger: ['hover', 'focus'],\n        placement: 'right'\n      },\n      LazyPhoto: {\n        notFoundUrl: \"http://zulily.github.io/react-datum/img/petals.png\",\n        loadingUrl: \"http://zulily.github.io/react-datum/img/blank.jpg\"\n      }\n    };\n\n    Options._options = _.extend({}, Options._defaults);\n\n    /*\n      Use to set a ReactDatum option.  Arguments can be either `(key, value)` or `({key: value, key: value})`\n        \n      Example:\n      ```\n        ReactDatum = require('react-datum')\n        \n        // use the version of react bootstrap I got somewhere \n        ReactDatum.Options.set('ReactBootstrap', loadedBootstrapLib)\n        \n        // use the fontawesome 4.5 exclamation sign icon for errors\n        ReactDatum.Options.set('errorIconClass', 'fa fa-exclamation-circle')\n      \n        // change the placement of the popover (if using ReactBootstrap)\n        ReactDatum.Options.set({RbOverlayProps: {placement: 'bottom'}})\n      ```\n     */\n\n    Options.set = function (option, value) {\n      var _options, extension, key;\n      _options = Options._options;\n      extension = {};\n      if (_.isObject(option)) {\n        extension = option;\n      } else {\n        extension[option] = value;\n      }\n      for (key in extension) {\n        value = extension[key];\n        if (this._options[key] != null && _.isObject(this._options[key]) && _.isObject(value)) {\n          _.extend(this._options[key], value);\n        } else {\n          this._options[key] = value;\n        }\n      }\n      return this._options;\n    };\n\n    /*\n      Get a previously set option or it's default if not set.  Returns full set of options if no option arg \n      is provided.\n     */\n\n    Options.get = function (option) {\n      if (option == null) {\n        option = null;\n      }\n      if (option == null) {\n        return _.extend({}, this._options);\n      }\n      return this._options[option];\n    };\n\n    return Options;\n  }();\n}).call(undefined);"
    },
    {
      "id": 9,
      "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/number.js",
      "name": "./lib/datums/number.js",
      "index": 27,
      "index2": 25,
      "size": 9120,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
      "issuerId": 15,
      "issuerName": "./index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 15,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
          "module": "./index.js",
          "moduleName": "./index.js",
          "type": "cjs require",
          "userRequest": "./lib/datums/number",
          "loc": "18:10-40"
        },
        {
          "moduleId": 31,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/percent.js",
          "module": "./lib/datums/percent.js",
          "moduleName": "./lib/datums/percent.js",
          "type": "cjs require",
          "userRequest": "./number",
          "loc": "18:11-30"
        },
        {
          "moduleId": 33,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/wholeNumber.js",
          "module": "./lib/datums/wholeNumber.js",
          "moduleName": "./lib/datums/wholeNumber.js",
          "type": "cjs require",
          "userRequest": "./number",
          "loc": "18:11-30"
        }
      ],
      "usedExports": true,
      "providedExports": null,
      "optimizationBailout": [],
      "depth": 2,
      "source": "'use strict';\n\n(function () {\n  var Datum,\n      Number,\n      ONE_BILLION,\n      ONE_MILLION,\n      ONE_THOUSAND,\n      RECOGNIZED_FORMATS,\n      React,\n      _,\n      bind = function bind(fn, me) {\n    return function () {\n      return fn.apply(me, arguments);\n    };\n  },\n      extend = function extend(child, parent) {\n    for (var key in parent) {\n      if (hasProp.call(parent, key)) child[key] = parent[key];\n    }function ctor() {\n      this.constructor = child;\n    }ctor.prototype = parent.prototype;child.prototype = new ctor();child.__super__ = parent.prototype;return child;\n  },\n      hasProp = {}.hasOwnProperty,\n      indexOf = [].indexOf || function (item) {\n    for (var i = 0, l = this.length; i < l; i++) {\n      if (i in this && this[i] === item) return i;\n    }return -1;\n  };\n\n  React = require('../lib/reactLegacy');\n\n  _ = require('underscore');\n\n  Datum = require('./datum');\n\n  ONE_BILLION = 1000000000;\n\n  ONE_MILLION = 1000000;\n\n  ONE_THOUSAND = 1000;\n\n  RECOGNIZED_FORMATS = ['abbreviate', 'money', 'comma', 'percent'];\n\n  /*\n    For real numbers.\n  \n    Only allows `/^\\-?[0-9]*\\.?[0-9]*$/` on input\n   */\n\n  module.exports = Number = function (superClass) {\n    extend(Number, superClass);\n\n    Number.displayName = \"react-datum.Number\";\n\n    Number.propTypes = _.extend({}, Datum.propTypes, {\n      format: React.PropTypes.oneOfType([React.PropTypes.array, React.PropTypes.string]),\n      decimalPlaces: React.PropTypes.number,\n      zeroFill: React.PropTypes.bool,\n      minValue: React.PropTypes.number,\n      maxValue: React.PropTypes.number\n    });\n\n    Number.defaultProps = _.extend({}, Datum.defaultProps, {\n      decimalPlaces: null,\n      zeroFill: null,\n      format: ['comma']\n    });\n\n    Number.prototype.charactersMustMatch = /^\\-?[0-9]*\\.?[0-9]*$/;\n\n    Number.getComaAddedValue = function (value) {\n      var decimal, ref, wholeNumber;\n      ref = value.toString().split('.'), wholeNumber = ref[0], decimal = ref[1];\n      value = wholeNumber.replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n      if (decimal != null) {\n        value += '.' + decimal;\n      }\n      return value;\n    };\n\n    /*\n      fail proof conversion from sting to float that will never return NaN\n     */\n\n    Number.safelyFloat = function (value) {\n      var error, floatValue;\n      if (value == null) {\n        return 0;\n      }\n      try {\n        floatValue = parseFloat(value);\n      } catch (error) {\n        console.error(\"unparseable float \" + value);\n        return 0;\n      }\n      if (_.isNaN(floatValue)) {\n        return 0;\n      } else {\n        return floatValue;\n      }\n    };\n\n    function Number(props) {\n      this.validateMax = bind(this.validateMax, this);\n      this.validateMin = bind(this.validateMin, this);\n      this.validateNumeric = bind(this.validateNumeric, this);\n      this.onChange = bind(this.onChange, this);\n      Number.__super__.constructor.apply(this, arguments);\n      this.addValidations([this.validateNumeric, this.validateMin, this.validateMax]);\n    }\n\n    Number.prototype.isAcceptableInput = function (value) {\n      return value.match(this.charactersMustMatch);\n    };\n\n    /*\n      overrides super - adds formatting\n     */\n\n    Number.prototype.renderValueForDisplay = function () {\n      var formats, modelValue, value;\n      modelValue = this.getModelValue();\n      value = parseFloat(modelValue);\n      if (_.isNaN(value)) {\n        return modelValue;\n      }\n      formats = this.getFormats();\n      if (indexOf.call(formats, 'percent') >= 0) {\n        value *= 100;\n      }\n      value = this.roundToDecimalPlaces(value, {\n        formats: formats\n      });\n      value = this.abbreviate(value, formats);\n      value = this.addCommas(value, formats);\n      value = this.monetize(value, formats);\n      if (indexOf.call(formats, 'percent') >= 0) {\n        value += \"%\";\n      }\n      return value;\n    };\n\n    Number.prototype.renderPlaceHolder = function () {\n      if (this.getPropOrMetadata('placeholder') != null) {\n        Number.__super__.renderPlaceHolder.apply(this, arguments);\n      }\n      return React.createElement(\"span\", null, \"0\");\n    };\n\n    Number.prototype.getValueForInput = function () {\n      var floatVal, value;\n      value = Number.__super__.getValueForInput.apply(this, arguments);\n      if (value != null && _.isString(value)) {\n        value = value.replace(/[\\s\\$\\,]/g, '');\n      }\n      if (value === '-' || value === '+') {\n        return value;\n      }\n      floatVal = parseFloat(value);\n      if (_.isNaN(floatVal)) {\n        return '';\n      } else {\n        return value;\n      }\n    };\n\n    Number.prototype.getFormats = function () {\n      var ref;\n      if (_.isArray(this.props.format)) {\n        return this.props.format;\n      } else {\n        return ((ref = this.props.format) != null ? ref.toString().split(' ') : void 0) || [];\n      }\n    };\n\n    Number.prototype.onChange = function (event) {\n      var inputValue;\n      inputValue = event.target.value;\n      if (this.isAcceptableInput(inputValue)) {\n        return Number.__super__.onChange.apply(this, arguments);\n      }\n    };\n\n    Number.prototype.validateNumeric = function (value) {\n      if (_.isNumber(value)) {\n        return true;\n      }\n      if (this.charactersMustMatch.test(value)) {\n        return true;\n      }\n      if (value.length > 25) {\n        value = value.slice(0, 25) + '...';\n      }\n      return \"The value must be numeric. \\\"\" + value + \"\\\" is not valid\";\n    };\n\n    Number.prototype.validateMin = function (value) {\n      var minValue;\n      minValue = this.getPropOrMetadata('minValue');\n      if (!(value != null && minValue != null)) {\n        return true;\n      }\n      if (parseFloat(value) >= parseFloat(minValue)) {\n        return true;\n      }\n      return \"The value must be greater than or equal to \" + minValue;\n    };\n\n    Number.prototype.validateMax = function (value) {\n      var maxValue;\n      maxValue = this.getPropOrMetadata('maxValue');\n      if (!(value != null && maxValue != null)) {\n        return true;\n      }\n      if (parseFloat(value) <= parseFloat(maxValue)) {\n        return true;\n      }\n      return \"The value must be less than or equal to \" + maxValue;\n    };\n\n    /*  \n      returns a string with number value input rounded to user requested props.decimalPlaces \n        and optionally zeroFilled if @props.zeroFill == true\n      note that 'money', when not 'abbreviate'd should zero fill out to two decimal places \n      unless props indicate otherwise\n     */\n\n    Number.prototype.roundToDecimalPlaces = function (value, options) {\n      if (options == null) {\n        options = {};\n      }\n      options = _.defaults(options, {\n        formats: this.getFormats(),\n        decimalPlaces: this.props.decimalPlaces,\n        zeroFill: this.props.zeroFill\n      });\n      if (indexOf.call(options.formats, 'money') >= 0) {\n        if (options.decimalPlaces == null) {\n          options.decimalPlaces = 2;\n        }\n        if (options.zeroFill == null) {\n          options.zeroFill = !(indexOf.call(options.formats, 'abbreviate') >= 0);\n        }\n      }\n      if (options.decimalPlaces != null) {\n        value = parseFloat(value).toFixed(options.decimalPlaces);\n        if (!options.zeroFill) {\n          value = parseFloat(value).toString();\n        }\n      }\n      return value;\n    };\n\n    /*  \n      returns a string with number value abbreviated and rounded to user \n      requested props.decimalPlaces\n     */\n\n    Number.prototype.abbreviate = function (value, formats) {\n      var absValue, affix, ref;\n      if (formats == null) {\n        formats = this.getFormats();\n      }\n      if (indexOf.call(formats, 'abbreviate') >= 0) {\n        value = parseFloat(value);\n        absValue = Math.abs(value);\n        ref = absValue >= ONE_BILLION ? [value / ONE_BILLION, \"B\"] : absValue >= ONE_MILLION ? [value / ONE_MILLION, \"M\"] : absValue >= ONE_THOUSAND ? [value / ONE_THOUSAND, \"K\"] : [value, \"\"], value = ref[0], affix = ref[1];\n        value = \"\" + this.roundToDecimalPlaces(value, {\n          formats: formats\n        });\n        if ((affix != null ? affix.length : void 0) > 0) {\n          value += \" \" + affix;\n        }\n      }\n      return value;\n    };\n\n    Number.prototype.addCommas = function (value, formats) {\n      if (formats == null) {\n        formats = this.getFormats();\n      }\n      if (indexOf.call(formats, 'comma') >= 0) {\n        value = Number.getComaAddedValue(value);\n      }\n      return value;\n    };\n\n    /*\n      If props.formats includes 'money', this method prepends the value\n      displayed with '$'\n      \n      Override this method to do things like create an internationalized\n      display of money value for another currency.\n     */\n\n    Number.prototype.monetize = function (value, formats) {\n      if (formats == null) {\n        formats = this.getFormats();\n      }\n      if (indexOf.call(formats, 'money') >= 0) {\n        value = \"$\" + value;\n      }\n      return value;\n    };\n\n    Number.prototype.getInputValue = function () {\n      return parseFloat(this.state.value);\n    };\n\n    return Number;\n  }(Datum);\n}).call(undefined);"
    },
    {
      "id": 10,
      "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/form.js",
      "name": "./lib/form.js",
      "index": 11,
      "index2": 13,
      "size": 12325,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
      "issuerId": 15,
      "issuerName": "./index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 15,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
          "module": "./index.js",
          "moduleName": "./index.js",
          "type": "cjs require",
          "userRequest": "./lib/form",
          "loc": "9:8-29"
        },
        {
          "moduleId": 17,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/clickToEditForm.js",
          "module": "./lib/clickToEditForm.js",
          "moduleName": "./lib/clickToEditForm.js",
          "type": "cjs require",
          "userRequest": "./form",
          "loc": "24:9-26"
        }
      ],
      "usedExports": true,
      "providedExports": null,
      "optimizationBailout": [],
      "depth": 2,
      "source": "'use strict';\n\n(function () {\n  var Backbone,\n      Datum,\n      Form,\n      React,\n      ReactDom,\n      _,\n      bind = function bind(fn, me) {\n    return function () {\n      return fn.apply(me, arguments);\n    };\n  },\n      extend = function extend(child, parent) {\n    for (var key in parent) {\n      if (hasProp.call(parent, key)) child[key] = parent[key];\n    }function ctor() {\n      this.constructor = child;\n    }ctor.prototype = parent.prototype;child.prototype = new ctor();child.__super__ = parent.prototype;return child;\n  },\n      hasProp = {}.hasOwnProperty,\n      indexOf = [].indexOf || function (item) {\n    for (var i = 0, l = this.length; i < l; i++) {\n      if (i in this && this[i] === item) return i;\n    }return -1;\n  };\n\n  React = require('./lib/reactLegacy');\n\n  ReactDom = require('react-dom');\n\n  Datum = require('./datums/datum');\n\n  Backbone = require('backbone');\n\n  _ = require('underscore');\n\n  module.exports = Form = function (superClass) {\n    extend(Form, superClass);\n\n    Form.displayName = \"react-datum.Form\";\n\n    Form.modelOrObject = function () {\n      return React.PropTypes.oneOfType([React.PropTypes.instanceOf(Backbone.Model), React.PropTypes.object]);\n    };\n\n    Form.propTypes = {\n      model: Form.modelOrObject(),\n      modelSaveMethod: React.PropTypes.string,\n      readonly: React.PropTypes.bool,\n      buttonPosition: React.PropTypes.oneOf(['top', 'bottom', 'none']),\n      className: React.PropTypes.string,\n      saveSuccessCallback: React.PropTypes.func,\n      saveErrorCallback: React.PropTypes.func\n    };\n\n    Form.defaultProps = {\n      readonly: false,\n      buttonPosition: 'bottom',\n      className: 'form',\n      modelSaveMethod: 'save'\n    };\n\n    Form.contextTypes = {\n\n      /* can also accept model instance as a prop.  prop has precendence */\n      model: Form.modelOrObject()\n    };\n\n    Form.childContextTypes = {\n      model: Form.modelOrObject(),\n      inputMode: Datum.contextTypes.inputMode,\n      form: React.PropTypes.object\n    };\n\n    Form.prototype.datumInputMode = 'edit';\n\n    function Form(props) {\n      this.onCancelClick = bind(this.onCancelClick, this);\n      this.onSaveError = bind(this.onSaveError, this);\n      this.onSaveSuccess = bind(this.onSaveSuccess, this);\n      this.onSaveClick = bind(this.onSaveClick, this);\n      this.datums = [];\n      this.state = {\n        errorMessage: null,\n        successMessage: null\n      };\n      Form.__super__.constructor.apply(this, arguments);\n    }\n\n    Form.prototype.getChildContext = function () {\n      return {\n        model: this.getModel(),\n        inputMode: this.getDatumInputMode(),\n        form: this\n      };\n    };\n\n    Form.prototype.render = function () {\n      if (this.getModel() == null) {\n        return null;\n      }\n      this._saveModelStateAtRender();\n      return React.createElement(\"div\", {\n        \"className\": \"form \" + this.datumInputMode + \" \" + this.props.className\n      }, this.renderTopButtons(), this.renderChildren(), this.renderBottomButtons(), this.renderMessages());\n    };\n\n    Form.prototype.componentDidMount = function () {\n      return this.node = ReactDom.findDOMNode(this);\n    };\n\n    /*\n      Gives the first editable datum focus\n     */\n\n    Form.prototype.focus = function () {\n      var firstEditable;\n      firstEditable = _.find(this.datums, function (d) {\n        return d.isEditable();\n      });\n      return firstEditable != null ? firstEditable.focus() : void 0;\n    };\n\n    Form.prototype.renderChildren = function () {\n      return React.createElement(\"div\", {\n        \"className\": \"form-content\"\n      }, this.props.children);\n    };\n\n    Form.prototype.renderTopButtons = function () {\n      if (this.props.buttonPosition !== 'top') {\n        return;\n      }\n      return this.renderButtonContainer({\n        addClass: \"top\"\n      });\n    };\n\n    Form.prototype.renderBottomButtons = function () {\n      if (this.props.buttonPosition !== 'bottom') {\n        return;\n      }\n      return this.renderButtonContainer({\n        addClass: \"bottom\"\n      });\n    };\n\n    Form.prototype.renderButtonContainer = function (options) {\n      var className;\n      if (options == null) {\n        options = {};\n      }\n      options = _.defaults(options, {\n        addClass: null\n      });\n      className = \"form-buttons\";\n      if (options.addClass != null) {\n        className += \" \" + options.addClass;\n      }\n      return React.createElement(\"div\", {\n        \"className\": className\n      }, this.renderButtons(options));\n    };\n\n    Form.prototype.renderButtons = function (options) {\n      return [React.createElement(\"button\", {\n        \"key\": \"save\",\n        \"ref\": \"saveButton\",\n        \"className\": 'btn btn-success',\n        \"onClick\": this.onSaveClick\n      }, \"Save\"), React.createElement(\"button\", {\n        \"key\": \"cancel\",\n        \"ref\": \"cancelButton\",\n        \"className\": 'btn',\n        \"onClick\": this.onCancelClick\n      }, \"Cancel\")];\n    };\n\n    Form.prototype.renderMessages = function () {\n      return [this.renderSuccessMessage(), this.renderErrorMessage()];\n    };\n\n    Form.prototype.renderErrorMessage = function () {\n      return this.renderMessage(this.state.errorMessage, 'error');\n    };\n\n    Form.prototype.renderSuccessMessage = function () {\n      return this.renderMessage(this.state.successMessage, 'success');\n    };\n\n    Form.prototype.renderMessage = function (message, className) {\n      var fullClassName;\n      if (message == null) {\n        return null;\n      }\n      fullClassName = \"datum-form-message-\" + className + \" \" + className;\n      return React.createElement(\"div\", {\n        \"key\": className,\n        \"className\": fullClassName\n      }, message);\n    };\n\n    /*\n      Save the changes from datums on the form to the Backbone model. \n      \n      Calls model.save after first attempting to validate() the model.  Handles \n      inconsistencies in model.validate() between versions 0.9.2 - 1.2.2 of Backbone.\n      \n      The user clicking on the save button belonging to the Form will call this Method\n      \n      The options argument is passed on to Backbone model.save()\n     */\n\n    Form.prototype.save = function (options) {\n      var model;\n      if (options == null) {\n        options = {};\n      }\n      options = _.defaults(options, {\n        validateDatums: true,\n        validateModel: true\n      });\n      this.setState({\n        errorMessage: null,\n        successMessage: null\n      });\n      model = this.getModel();\n      if (options.validateDatums && !this.validateDatums(options)) {\n        this.onSaveError(model, \"Correct errors and try again.\");\n        return;\n      }\n      if (options.validateModel && !this.validateModel(options)) {\n        this.onSaveError(model, model.validationError);\n        return;\n      }\n      return this.saveModel(options);\n    };\n\n    /*\n      Validate the datums on the form. \n      \n      returns false if any are currently invalid\n     */\n\n    Form.prototype.validateDatums = function (options) {\n      if (options == null) {\n        options = {};\n      }\n      if (this.getInvalidDatums().length > 0) {\n        this.setState({\n          errorMessage: \"Please correct errors and try again.\"\n        });\n        return false;\n      }\n      return true;\n    };\n\n    /*\n      Calls Backbone model.validate and handles inconsistencies in model.validate() \n      between versions 0.9.2 - 1.2.2 of Backbone.\n     */\n\n    Form.prototype.validateModel = function (options) {\n      var error, model;\n      if (options == null) {\n        options = {};\n      }\n      model = this.getModel();\n      if (model == null) {\n        return;\n      }\n      try {\n        if (!model.isValid()) {\n          if (model.validationError != null) {\n            return false;\n          }\n        }\n      } catch (error) {\n        null;\n      }\n      return true;\n    };\n\n    Form.prototype.preceedOriginalCallback = function (obj, attr, newCallback) {\n      var originalCallback;\n      originalCallback = obj[attr];\n      return obj[attr] = function () {\n        newCallback.apply(this, arguments);\n        return originalCallback != null ? originalCallback.apply(this, argumentsk) : void 0;\n      };\n    };\n\n    /*  \n      calls Backbone model.save and calls success and error handlers. \n      \n      You should probably call Form.save() above instead.  It will also validate the model \n      and datums.\n     */\n\n    Form.prototype.saveModel = function (options) {\n      var model, saved;\n      if (options == null) {\n        options = {};\n      }\n      model = this.getModel();\n      if (model == null) {\n        return;\n      }\n      this.preceedOriginalCallback(options, 'success', this.onSaveSuccess);\n      this.preceedOriginalCallback(options, 'error', this.onSaveError);\n      return saved = model[this.props.modelSaveMethod]({}, options);\n    };\n\n    Form.prototype.onSaveClick = function (evt) {\n      return this.save();\n    };\n\n    Form.prototype.onSaveSuccess = function (model, response, options) {\n      if (options == null) {\n        options = {};\n      }\n      this._saveModelState();\n      if (this.props.saveSuccessCallback != null && _.isFunction(this.props.saveSuccessCallback)) {\n        return this.props.saveSuccessCallback(model, response, options);\n      } else {\n        return this.setState({\n          successMessage: \"Successfully saved!\",\n          successAt: Date.now()\n        });\n      }\n    };\n\n    Form.prototype.onSaveError = function (model, response, options) {\n      if (options == null) {\n        options = {};\n      }\n      if (this.props.saveErrorCallback != null && _.isFunction(this.props.saveErrorCallback)) {\n        return this.props.saveErrorCallback(model, response, options);\n      } else {\n        response = response == null || _.isString(response) ? response : JSON.stringify(response);\n        return this.setState({\n          errorMessage: \"Unable to save. \" + response || \"Reason unknown.\"\n        });\n      }\n    };\n\n    Form.prototype.onCancelClick = function (evt) {\n      this.setState({\n        errorMessage: null,\n        successMessage: null\n      });\n      this._restoreModelState();\n      return this._resetDatums();\n    };\n\n    Form.prototype.getModel = function () {\n      return this.props.model || this.context.model;\n    };\n\n    Form.prototype.getDatumInputMode = function () {\n      if (this.props.readonly) {\n        return 'readonly';\n      } else {\n        return this.datumInputMode;\n      }\n    };\n\n    Form.prototype.getInvalidDatums = function () {\n      return _.filter(this.datums, function (d) {\n        return !d.validate();\n      });\n    };\n\n    /*\n      This method is called by the datum children when they mount\n     */\n\n    Form.prototype.addDatum = function (datumComponent) {\n      if (indexOf.call(this.datums, datumComponent) < 0) {\n        return this.datums.push(datumComponent);\n      }\n    };\n\n    /*\n      This method is called by the datum children when they unmount\n     */\n\n    Form.prototype.removeDatum = function (datumComponent) {\n      var index;\n      index = this.datums.indexOf(datumComponent);\n      if (index < 0) {\n        console.error(\"form.removeDatum called for datumComponent (\" + datumComponent.constructor.displayName + \") that we don't know about?\");\n        return;\n      }\n      return this.datums = this.datums.slice(0, index).concat(this.datums.slice(index + 1, this.datums.length));\n    };\n\n    Form.prototype._saveModelStateAtRender = function () {\n      var model;\n      model = this.getModel();\n      if (model === this._savedModel) {\n        return;\n      }\n      return this._saveModelState();\n    };\n\n    Form.prototype._saveModelState = function () {\n      this._savedModel = this.getModel();\n      return this._savedAttrs = this._savedModel.toJSON();\n    };\n\n    Form.prototype._restoreModelState = function () {\n      var model;\n      model = this.getModel();\n      if (model !== this._savedModel) {\n        return;\n      }\n      return model.set(this._savedAttrs);\n    };\n\n    Form.prototype._resetDatums = function () {\n      var datum, i, len, ref, results;\n      ref = this.datums;\n      results = [];\n      for (i = 0, len = ref.length; i < len; i++) {\n        datum = ref[i];\n        results.push(datum.cancelEdit());\n      }\n      return results;\n    };\n\n    return Form;\n  }(React.Component);\n}).call(undefined);"
    },
    {
      "id": 11,
      "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/text.js",
      "name": "./lib/datums/text.js",
      "index": 29,
      "index2": 27,
      "size": 2635,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
      "issuerId": 15,
      "issuerName": "./index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 15,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
          "module": "./index.js",
          "moduleName": "./index.js",
          "type": "cjs require",
          "userRequest": "./lib/datums/text",
          "loc": "20:8-36"
        },
        {
          "moduleId": 32,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/label.js",
          "module": "./lib/datums/label.js",
          "moduleName": "./lib/datums/label.js",
          "type": "cjs require",
          "userRequest": "./text",
          "loc": "21:9-26"
        }
      ],
      "usedExports": true,
      "providedExports": null,
      "optimizationBailout": [],
      "depth": 2,
      "source": "'use strict';\n\n(function () {\n  var Datum,\n      React,\n      Text,\n      _,\n      extend = function extend(child, parent) {\n    for (var key in parent) {\n      if (hasProp.call(parent, key)) child[key] = parent[key];\n    }function ctor() {\n      this.constructor = child;\n    }ctor.prototype = parent.prototype;child.prototype = new ctor();child.__super__ = parent.prototype;return child;\n  },\n      hasProp = {}.hasOwnProperty;\n\n  React = require('../lib/reactLegacy');\n\n  _ = require('underscore');\n\n  Datum = require('./datum');\n\n  /*\n    see ./text.md\n   */\n\n  module.exports = Text = function (superClass) {\n    extend(Text, superClass);\n\n    Text.displayName = \"react-datum.Text\";\n\n    Text.propTypes = _.extend({}, Datum.propTypes, {\n      displayAsHtml: React.PropTypes.bool,\n      ellipsizeAt: React.PropTypes.oneOfType([React.PropTypes.number, React.PropTypes.bool]),\n      reverseEllipsis: React.PropTypes.bool,\n      uniqueArrayMembers: React.PropTypes.bool\n    });\n\n    Text.defaultProps = _.extend({}, Datum.defaultProps, {\n      ellipsizeAt: 35,\n      reverseEllipsis: false\n    });\n\n    function Text() {\n      Text.__super__.constructor.apply(this, arguments);\n    }\n\n    Text.prototype.render = function () {\n      return Text.__super__.render.apply(this, arguments);\n    };\n\n    Text.prototype.renderValueForDisplay = function () {\n      var superValue, value, values;\n      superValue = Text.__super__.renderValueForDisplay.apply(this, arguments);\n      value = function () {\n        switch (false) {\n          case !_.isArray(superValue):\n            values = _.compact(_.flatten(superValue));\n            if (this.props.uniqueArrayMembers) {\n              values = _.unique(values);\n            }\n            return values.join(', ');\n          case !_.isObject(superValue):\n            return JSON.stringify(superValue);\n          default:\n            return superValue.toString();\n        }\n      }.call(this);\n      return this.renderEllipsizedValue(value);\n    };\n\n    /* \n      Extends Datum#renderWrappedDisplayValue to provide support for displayAsHtml\n      option.\n     */\n\n    Text.prototype.renderWrappedDisplayValue = function (value) {\n      if (this.props.displayAsHtml) {\n        return React.createElement(\"span\", {\n          \"className\": \"datum-display-value\",\n          \"dangerouslySetInnerHTML\": this.getMarkup(value)\n        });\n      } else {\n        return Text.__super__.renderWrappedDisplayValue.apply(this, arguments);\n      }\n    };\n\n    Text.prototype.getMarkup = function (value) {\n      return {\n        __html: value\n      };\n    };\n\n    return Text;\n  }(Datum);\n}).call(undefined);"
    },
    {
      "id": 12,
      "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/react-select/dist/react-select.es.js",
      "name": "./node_modules/react-select/dist/react-select.es.js",
      "index": 35,
      "index2": 34,
      "size": 90402,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
      "issuerId": 15,
      "issuerName": "./index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 15,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
          "module": "./index.js",
          "moduleName": "./index.js",
          "type": "cjs require",
          "userRequest": "react-select",
          "loc": "31:15-38"
        },
        {
          "moduleId": 34,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/collectionPicker/collectionPicker.js",
          "module": "./lib/datums/collectionPicker/collectionPicker.js",
          "moduleName": "./lib/datums/collectionPicker/collectionPicker.js",
          "type": "cjs require",
          "userRequest": "react-select",
          "loc": "40:11-34"
        }
      ],
      "usedExports": true,
      "providedExports": [
        "Async",
        "AsyncCreatable",
        "Creatable",
        "Value",
        "Option",
        "defaultMenuRenderer",
        "defaultArrowRenderer",
        "defaultClearRenderer",
        "defaultFilterOptions",
        "default"
      ],
      "optimizationBailout": [],
      "depth": 2,
      "source": "import AutosizeInput from 'react-input-autosize';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport { findDOMNode } from 'react-dom';\n\nvar arrowRenderer = function arrowRenderer(_ref) {\n\tvar onMouseDown = _ref.onMouseDown;\n\n\treturn React.createElement('span', {\n\t\tclassName: 'Select-arrow',\n\t\tonMouseDown: onMouseDown\n\t});\n};\n\narrowRenderer.propTypes = {\n\tonMouseDown: PropTypes.func\n};\n\nvar clearRenderer = function clearRenderer() {\n\treturn React.createElement('span', {\n\t\tclassName: 'Select-clear',\n\t\tdangerouslySetInnerHTML: { __html: '&times;' }\n\t});\n};\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\nvar trim = function trim(str) {\n  return str.replace(/^\\s+|\\s+$/g, '');\n};\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 = stripDiacritics(filterValue);\n\t}\n\n\tif (props.ignoreCase) {\n\t\tfilterValue = filterValue.toLowerCase();\n\t}\n\n\tif (props.trimFilter) {\n\t\tfilterValue = trim(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 = stripDiacritics(valueTest);\n\t\t\tif (labelTest && props.matchProp !== 'value') labelTest = stripDiacritics(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\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 = classNames(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 React.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: PropTypes.func,\n\tfocusedOption: PropTypes.object,\n\tinputValue: PropTypes.string,\n\tinstancePrefix: PropTypes.string,\n\tonFocus: PropTypes.func,\n\tonOptionRef: PropTypes.func,\n\tonSelect: PropTypes.func,\n\toptionClassName: PropTypes.string,\n\toptionComponent: PropTypes.func,\n\toptionRenderer: PropTypes.func,\n\toptions: PropTypes.array,\n\tremoveValue: PropTypes.func,\n\tselectValue: PropTypes.func,\n\tvalueArray: PropTypes.array,\n\tvalueKey: PropTypes.string\n};\n\nvar blockEvent = (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\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\nvar asyncGenerator = function () {\n  function AwaitValue(value) {\n    this.value = value;\n  }\n\n  function AsyncGenerator(gen) {\n    var front, back;\n\n    function send(key, arg) {\n      return new Promise(function (resolve, reject) {\n        var request = {\n          key: key,\n          arg: arg,\n          resolve: resolve,\n          reject: reject,\n          next: null\n        };\n\n        if (back) {\n          back = back.next = request;\n        } else {\n          front = back = request;\n          resume(key, arg);\n        }\n      });\n    }\n\n    function resume(key, arg) {\n      try {\n        var result = gen[key](arg);\n        var value = result.value;\n\n        if (value instanceof AwaitValue) {\n          Promise.resolve(value.value).then(function (arg) {\n            resume(\"next\", arg);\n          }, function (arg) {\n            resume(\"throw\", arg);\n          });\n        } else {\n          settle(result.done ? \"return\" : \"normal\", result.value);\n        }\n      } catch (err) {\n        settle(\"throw\", err);\n      }\n    }\n\n    function settle(type, value) {\n      switch (type) {\n        case \"return\":\n          front.resolve({\n            value: value,\n            done: true\n          });\n          break;\n\n        case \"throw\":\n          front.reject(value);\n          break;\n\n        default:\n          front.resolve({\n            value: value,\n            done: false\n          });\n          break;\n      }\n\n      front = front.next;\n\n      if (front) {\n        resume(front.key, front.arg);\n      } else {\n        back = null;\n      }\n    }\n\n    this._invoke = send;\n\n    if (typeof gen.return !== \"function\") {\n      this.return = undefined;\n    }\n  }\n\n  if (typeof Symbol === \"function\" && Symbol.asyncIterator) {\n    AsyncGenerator.prototype[Symbol.asyncIterator] = function () {\n      return this;\n    };\n  }\n\n  AsyncGenerator.prototype.next = function (arg) {\n    return this._invoke(\"next\", arg);\n  };\n\n  AsyncGenerator.prototype.throw = function (arg) {\n    return this._invoke(\"throw\", arg);\n  };\n\n  AsyncGenerator.prototype.return = function (arg) {\n    return this._invoke(\"return\", arg);\n  };\n\n  return {\n    wrap: function (fn) {\n      return function () {\n        return new AsyncGenerator(fn.apply(this, arguments));\n      };\n    },\n    await: function (value) {\n      return new AwaitValue(value);\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\nvar Option = function (_React$Component) {\n\tinherits(Option, _React$Component);\n\n\tfunction Option(props) {\n\t\tclassCallCheck(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\tcreateClass(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 = classNames(this.props.className, option.className);\n\n\t\t\treturn option.disabled ? React.createElement(\n\t\t\t\t'div',\n\t\t\t\t{ className: className,\n\t\t\t\t\tonMouseDown: blockEvent,\n\t\t\t\t\tonClick: blockEvent },\n\t\t\t\tthis.props.children\n\t\t\t) : React.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\treturn Option;\n}(React.Component);\n\nOption.propTypes = {\n\tchildren: PropTypes.node,\n\tclassName: PropTypes.string, // className (based on mouse position)\n\tinstancePrefix: PropTypes.string.isRequired, // unique prefix for the ids (used for aria)\n\tisDisabled: PropTypes.bool, // the option is disabled\n\tisFocused: PropTypes.bool, // the option is focused\n\tisSelected: PropTypes.bool, // the option is selected\n\tonFocus: PropTypes.func, // method to handle mouseEnter on option element\n\tonSelect: PropTypes.func, // method to handle click on option element\n\tonUnfocus: PropTypes.func, // method to handle mouseLeave on option element\n\toption: PropTypes.object.isRequired, // object that is base for that option\n\toptionIndex: PropTypes.number // index of the option, used to generate unique ids for aria\n};\n\nvar Value = function (_React$Component) {\n\tinherits(Value, _React$Component);\n\n\tfunction Value(props) {\n\t\tclassCallCheck(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\tcreateClass(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 React.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 ? React.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) : React.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 React.createElement(\n\t\t\t\t'div',\n\t\t\t\t{ className: classNames('Select-value', 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\treturn Value;\n}(React.Component);\n\nValue.propTypes = {\n\tchildren: PropTypes.node,\n\tdisabled: PropTypes.bool, // disabled prop passed to ReactSelect\n\tid: PropTypes.string, // Unique id for the value - used for aria\n\tonClick: PropTypes.func, // method to handle click on value label\n\tonRemove: PropTypes.func, // method to handle removal of the value\n\tvalue: PropTypes.object.isRequired // the option object for this value\n};\n\n/*!\n  Copyright (c) 2018 Jed Watson.\n  Licensed under the MIT License (MIT), see\n  http://jedwatson.github.io/react-select\n*/\nvar stringifyValue = function stringifyValue(value) {\n\treturn typeof value === 'string' ? value : value !== null && JSON.stringify(value) || '';\n};\n\nvar stringOrNode = PropTypes.oneOfType([PropTypes.string, PropTypes.node]);\nvar stringOrNumber = PropTypes.oneOfType([PropTypes.string, PropTypes.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\tif (props.allowCreate) {\n\t\tvar newOption = {};\n\t\tnewOption[valueKey] = value;\n\t\tnewOption[labelKey] = value;\n\t\treturn newOption;\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$1 = function (_React$Component) {\n\tinherits(Select, _React$Component);\n\n\tfunction Select(props) {\n\t\tclassCallCheck(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\tcreateClass(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 = findDOMNode(this.focused);\n\t\t\t\tvar menuNode = 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 = findDOMNode(this.focused);\n\t\t\t\tvar menuDOM = 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\tif (enabled) {\n\t\t\t\tif (!document.addEventListener && document.attachEvent) {\n\t\t\t\t\tdocument.attachEvent('ontouchstart', this.handleTouchOutside);\n\t\t\t\t} else {\n\t\t\t\t\tdocument.addEventListener('touchstart', this.handleTouchOutside);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (!document.removeEventListener && document.detachEvent) {\n\t\t\t\t\tdocument.detachEvent('ontouchstart', this.handleTouchOutside);\n\t\t\t\t} else {\n\t\t\t\t\tdocument.removeEventListener('touchstart', this.handleTouchOutside);\n\t\t\t\t}\n\t\t\t}\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});\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});\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 188:\n\t\t\t\t\t// comma , key\n\t\t\t\t\tif (this.props.allowCreate && this.props.multi) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\tthis.selectFocusedOption();\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\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\tif (this.props.allowCreate) {\n\t\t\t\t\tvalue = this.expandValue(value, this.props);\n\t\t\t\t}\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 (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} else if (this.props.allowCreate && !this.state.focusedOption) {\n\t\t\t\treturn this.selectValue(this.state.inputValue);\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 React.createElement(\n\t\t\t\t'span',\n\t\t\t\t{ className: 'Select-loading-zone', 'aria-hidden': 'true' },\n\t\t\t\tReact.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 ? React.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\tif (this.props.singleValue) {\n\t\t\t\t\treturn React.createElement(\n\t\t\t\t\t\tValueComponent,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdisabled: this.props.disabled,\n\t\t\t\t\t\t\tonClick: onClick,\n\t\t\t\t\t\t\tonRemove: this.removeValue,\n\t\t\t\t\t\t\tvalues: valueArray,\n\t\t\t\t\t\t\tdisabledOptions: this.props.disabledOptions || []\n\t\t\t\t\t\t},\n\t\t\t\t\t\tvalueArray.length\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\treturn valueArray.map(function (value, i) {\n\t\t\t\t\t\treturn React.createElement(\n\t\t\t\t\t\t\tValueComponent,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: _this5._instancePrefix + '-value-' + i,\n\t\t\t\t\t\t\t\tinstancePrefix: _this5._instancePrefix,\n\t\t\t\t\t\t\t\tdisabled: _this5.props.disabled || value.clearableValue === false,\n\t\t\t\t\t\t\t\tkey: 'value-' + i + '-' + value[_this5.props.valueKey],\n\t\t\t\t\t\t\t\tonClick: onClick,\n\t\t\t\t\t\t\t\tonRemove: _this5.removeValue,\n\t\t\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\t\t\tvalues: valueArray,\n\t\t\t\t\t\t\t\tdisabledOptions: _this5.props.disabledOptions || []\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\trenderLabel(value, i),\n\t\t\t\t\t\t\tReact.createElement(\n\t\t\t\t\t\t\t\t'span',\n\t\t\t\t\t\t\t\t{ className: 'Select-aria-only' },\n\t\t\t\t\t\t\t\t'\\xA0'\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} else if (shouldShowValue(this.state, this.props)) {\n\t\t\t\tif (isOpen) onClick = null;\n\t\t\t\treturn React.createElement(\n\t\t\t\t\tValueComponent,\n\t\t\t\t\tdefineProperty({\n\t\t\t\t\t\tdisabled: this.props.disabled,\n\t\t\t\t\t\tdisabledOptions: this.props.disabledOptions || [],\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\tvalues: valueArray\n\t\t\t\t\t}, 'disabledOptions', this.props.disabledOptions || []),\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 = classNames('Select-input', this.props.inputProps.className);\n\t\t\tvar isOpen = this.state.isOpen;\n\n\t\t\tvar ariaOwns = classNames((_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\tclassName: className,\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\n\t\t\t\tvar _ariaOwns = classNames(defineProperty({}, this._instancePrefix + '-list', isOpen));\n\t\t\t\treturn React.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 React.createElement(AutosizeInput, _extends({ id: this.props.id }, inputProps, { minWidth: '5' }));\n\t\t\t}\n\t\t\treturn React.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\tReact.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 React.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 React.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$$1(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$$1 = typeof this.props.filterOptions === 'function' ? this.props.filterOptions : filterOptions;\n\n\t\t\t\treturn filterOptions$$1(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 React.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 React.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 React.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 React.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\tReact.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 = classNames('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 = React.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 React.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\tReact.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\tReact.createElement(\n\t\t\t\t\t\t'span',\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, !this.props.multi || this.props.singleValue ? valueArray : null, focusedOption) : null\n\t\t\t);\n\t\t}\n\t}]);\n\treturn Select;\n}(React.Component);\n\nSelect$1.propTypes = {\n\t'aria-describedby': PropTypes.string, // html id(s) of element(s) that should be used to describe this input (for assistive tech)\n\t'aria-label': PropTypes.string, // aria label (for assistive tech)\n\t'aria-labelledby': PropTypes.string, // html id of an element that should be used as the label (for assistive tech)\n\tarrowRenderer: PropTypes.func, // create the drop-down caret element\n\tautoBlur: PropTypes.bool, // automatically blur the component when an option is selected\n\tautoFocus: PropTypes.bool, // autofocus the component on mount\n\tautofocus: PropTypes.bool, // deprecated; use autoFocus instead\n\tautosize: PropTypes.bool, // whether to enable autosizing or not\n\tbackspaceRemoves: PropTypes.bool, // whether backspace removes an item if there is no text input\n\tbackspaceToRemoveMessage: PropTypes.string, // message to use for screenreaders to press backspace to remove the current item - {label} is replaced with the item label\n\tclassName: PropTypes.string, // className for the outer element\n\tclearAllText: stringOrNode, // title for the \"clear\" control when multi: true\n\tclearRenderer: PropTypes.func, // create clearable x element\n\tclearValueText: stringOrNode, // title for the \"clear\" control\n\tclearable: PropTypes.bool, // should it be possible to reset value\n\tcloseOnSelect: PropTypes.bool, // whether to close the menu when a value is selected\n\tdeleteRemoves: PropTypes.bool, // whether delete removes an item if there is no text input\n\tdelimiter: PropTypes.string, // delimiter to use to join multiple values for the hidden field value\n\tdisabled: PropTypes.bool, // whether the Select is disabled or not\n\tescapeClearsValue: PropTypes.bool, // whether escape clears the value when the menu is closed\n\tfilterOption: PropTypes.func, // method to filter a single option (option, filterString)\n\tfilterOptions: PropTypes.any, // boolean to enable default filtering or function to filter the options array ([options], filterString, [values])\n\tid: PropTypes.string, // html id to set on the input element for accessibility or tests\n\tignoreAccents: PropTypes.bool, // whether to strip diacritics when filtering\n\tignoreCase: PropTypes.bool, // whether to perform case-insensitive filtering\n\tinputProps: PropTypes.object, // custom attributes for the Input\n\tinputRenderer: PropTypes.func, // returns a custom input component\n\tinstanceId: PropTypes.string, // set the components instanceId\n\tisLoading: PropTypes.bool, // whether the Select is loading externally or not (such as options being loaded)\n\tjoinValues: PropTypes.bool, // joins multiple values into a single form field with the delimiter (legacy mode)\n\tlabelKey: PropTypes.string, // path of the label value in option objects\n\tmatchPos: PropTypes.string, // (any|start) match the start or entire string when filtering\n\tmatchProp: PropTypes.string, // (any|label|value) which option property to filter on\n\tmenuBuffer: PropTypes.number, // optional buffer (in px) between the bottom of the viewport and the bottom of the menu\n\tmenuContainerStyle: PropTypes.object, // optional style to apply to the menu container\n\tmenuRenderer: PropTypes.func, // renders a custom menu with options\n\tmenuStyle: PropTypes.object, // optional style to apply to the menu\n\tmulti: PropTypes.bool, // multi-value input\n\tname: PropTypes.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: PropTypes.func, // onBlur handler: function (event) {}\n\tonBlurResetsInput: PropTypes.bool, // whether input is cleared on blur\n\tonChange: PropTypes.func, // onChange handler: function (newValue) {}\n\tonClose: PropTypes.func, // fires when the menu is closed\n\tonCloseResetsInput: PropTypes.bool, // whether input is cleared when menu is closed through the arrow\n\tonFocus: PropTypes.func, // onFocus handler: function (event) {}\n\tonInputChange: PropTypes.func, // onInputChange handler: function (inputValue) {}\n\tonInputKeyDown: PropTypes.func, // input keyDown handler: function (event) {}\n\tonMenuScrollToBottom: PropTypes.func, // fires when the menu is scrolled to the bottom; can be used to paginate options\n\tonOpen: PropTypes.func, // fires when the menu is opened\n\tonSelectResetsInput: PropTypes.bool, // whether input is cleared on select (works only for multiselect)\n\tonValueClick: PropTypes.func, // onClick handler for value labels: function (value, event) {}\n\topenOnClick: PropTypes.bool, // boolean to control opening the menu when the control is clicked\n\topenOnFocus: PropTypes.bool, // always open options menu on focus\n\toptionClassName: PropTypes.string, // additional class(es) to apply to the <Option /> elements\n\toptionComponent: PropTypes.func, // option component to render in dropdown\n\toptionRenderer: PropTypes.func, // optionRenderer: function (option) {}\n\toptions: PropTypes.array, // array of options\n\tpageSize: PropTypes.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: PropTypes.bool, // whether the selected option is removed from the dropdown on multi selects\n\trequired: PropTypes.bool, // applies HTML5 required attribute when needed\n\tresetValue: PropTypes.any, // value to use when you clear the control\n\trtl: PropTypes.bool, // set to true in order to use react-select in right-to-left direction\n\tscrollMenuIntoView: PropTypes.bool, // boolean to enable the viewport to shift so that the full menu fully visible when engaged\n\tsearchable: PropTypes.bool, // whether to enable searching feature or not\n\tsimpleValue: PropTypes.bool, // pass the value to onChange as a simple value (legacy pre 1.0 mode), defaults to false\n\tstyle: PropTypes.object, // optional style to apply to the control\n\ttabIndex: stringOrNumber, // optional tab index of the control\n\ttabSelectsValue: PropTypes.bool, // whether to treat tabbing out while focused to be value selection\n\ttrimFilter: PropTypes.bool, // whether to trim whitespace around filter value\n\tvalue: PropTypes.any, // initial field value\n\tvalueComponent: PropTypes.func, // value component to render\n\tvalueKey: PropTypes.string, // path of the label value in option objects\n\tvalueRenderer: PropTypes.func, // valueRenderer: function (option) {}\n\twrapperStyle: PropTypes.object // optional style to apply to the component wrapper\n};\n\nSelect$1.defaultProps = {\n\tarrowRenderer: arrowRenderer,\n\tautosize: true,\n\tbackspaceRemoves: true,\n\tbackspaceToRemoveMessage: 'Press backspace to remove {label}',\n\tclearable: true,\n\tclearAllText: 'Clear all',\n\tclearRenderer: clearRenderer,\n\tclearValueText: 'Clear value',\n\tcloseOnSelect: true,\n\tdeleteRemoves: true,\n\tdelimiter: ',',\n\tdisabled: false,\n\tescapeClearsValue: true,\n\tfilterOptions: filterOptions,\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: menuRenderer,\n\tmulti: false,\n\tnoResultsText: 'No results found',\n\tonBlurResetsInput: true,\n\tonCloseResetsInput: true,\n\tonSelectResetsInput: true,\n\topenOnClick: true,\n\toptionComponent: Option,\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: Value,\n\tvalueKey: 'value'\n};\n\nvar propTypes = {\n\tautoload: PropTypes.bool.isRequired, // automatically call the `loadOptions` prop on-mount; defaults to true\n\tcache: PropTypes.any, // object to use to cache results; set to null/false to disable caching\n\tchildren: PropTypes.func.isRequired, // Child function responsible for creating the inner Select component; (props: Object): PropTypes.element\n\tignoreAccents: PropTypes.bool, // strip diacritics when filtering; defaults to true\n\tignoreCase: PropTypes.bool, // perform case-insensitive filtering; defaults to true\n\tloadOptions: PropTypes.func.isRequired, // callback to load options asynchronously; (inputValue: string, callback: Function): ?Promise\n\tloadingPlaceholder: PropTypes.oneOfType([// replaces the placeholder while options are loading\n\tPropTypes.string, PropTypes.node]),\n\tmulti: PropTypes.bool, // multi-value input\n\tnoResultsText: PropTypes.oneOfType([// field noResultsText, displayed when no options come back from the server\n\tPropTypes.string, PropTypes.node]),\n\tonChange: PropTypes.func, // onChange handler: function (newValue) {}\n\tonInputChange: PropTypes.func, // optional for keeping track of what is being typed\n\toptions: PropTypes.array.isRequired, // array of options\n\tplaceholder: PropTypes.oneOfType([// field placeholder, displayed when there's no value (shared with Select)\n\tPropTypes.string, PropTypes.node]),\n\tsearchPromptText: PropTypes.oneOfType([// label to prompt for search input\n\tPropTypes.string, PropTypes.node]),\n\tvalue: PropTypes.any // initial field value\n};\n\nvar defaultCache = {};\n\nvar defaultChildren = function defaultChildren(props) {\n\treturn React.createElement(Select$1, 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\tinherits(Async, _Component);\n\n\tfunction Async(props, context) {\n\t\tclassCallCheck(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\tcreateClass(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: 'clearOptions',\n\t\tvalue: function clearOptions() {\n\t\t\tthis.setState({ options: [] });\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 = stripDiacritics(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\treturn Async;\n}(Component);\n\nAsync.propTypes = propTypes;\nAsync.defaultProps = defaultProps;\n\nvar CreatableSelect = function (_React$Component) {\n\tinherits(CreatableSelect, _React$Component);\n\n\tfunction CreatableSelect(props, context) {\n\t\tclassCallCheck(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\tcreateClass(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$$1() {\n\t\t\tvar _props2 = this.props,\n\t\t\t    filterOptions$$1 = _props2.filterOptions,\n\t\t\t    isValidNewOption = _props2.isValidNewOption,\n\t\t\t    promptTextCreator = _props2.promptTextCreator;\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$$1.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\tfilteredOptions.unshift(this._createPlaceholderOption);\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$$1(params) {\n\t\t\tvar menuRenderer$$1 = this.props.menuRenderer;\n\n\n\t\t\treturn menuRenderer$$1(_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({ keyCode: event.keyCode })) {\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\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$2;\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\treturn CreatableSelect;\n}(React.Component);\n\nvar defaultChildren$2 = function defaultChildren(props) {\n\treturn React.createElement(Select$1, 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: filterOptions,\n\tisOptionUnique: isOptionUnique,\n\tisValidNewOption: isValidNewOption,\n\tmenuRenderer: menuRenderer,\n\tnewOptionCreator: newOptionCreator,\n\tpromptTextCreator: promptTextCreator,\n\tshouldKeyDownEventCreateNewOption: shouldKeyDownEventCreateNewOption\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: PropTypes.func,\n\n\t// See Select.propTypes.filterOptions\n\tfilterOptions: PropTypes.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: PropTypes.func,\n\n\t// Determines if the current input text represents a valid option.\n\t// ({ label: string }): boolean\n\tisValidNewOption: PropTypes.func,\n\n\t// See Select.propTypes.menuRenderer\n\tmenuRenderer: PropTypes.any,\n\n\t// Factory to create new option.\n\t// ({ label: string, labelKey: string, valueKey: string }): Object\n\tnewOptionCreator: PropTypes.func,\n\n\t// input change handler: function (inputValue) {}\n\tonInputChange: PropTypes.func,\n\n\t// input keyDown handler: function (event) {}\n\tonInputKeyDown: PropTypes.func,\n\n\t// new option click handler: function (option) {}\n\tonNewOptionClick: PropTypes.func,\n\n\t// See Select.propTypes.options\n\toptions: PropTypes.array,\n\n\t// Creates prompt/placeholder option text.\n\t// (filterText: string): string\n\tpromptTextCreator: PropTypes.func,\n\n\tref: PropTypes.func,\n\n\t// Decides if a keyDown event (eg its `keyCode`) should result in the creation of a new option.\n\tshouldKeyDownEventCreateNewOption: PropTypes.func\n};\n\nvar AsyncCreatableSelect = function (_React$Component) {\n\tinherits(AsyncCreatableSelect, _React$Component);\n\n\tfunction AsyncCreatableSelect() {\n\t\tclassCallCheck(this, AsyncCreatableSelect);\n\t\treturn possibleConstructorReturn(this, (AsyncCreatableSelect.__proto__ || Object.getPrototypeOf(AsyncCreatableSelect)).apply(this, arguments));\n\t}\n\n\tcreateClass(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 React.createElement(\n\t\t\t\tAsync,\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 React.createElement(\n\t\t\t\t\t\tCreatableSelect,\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\treturn AsyncCreatableSelect;\n}(React.Component);\n\nvar defaultChildren$1 = function defaultChildren(props) {\n\treturn React.createElement(Select$1, props);\n};\n\nAsyncCreatableSelect.propTypes = {\n\tchildren: PropTypes.func.isRequired // Child function responsible for creating the inner Select component; (props: Object): PropTypes.element\n};\n\nAsyncCreatableSelect.defaultProps = {\n\tchildren: defaultChildren$1\n};\n\nSelect$1.Async = Async;\nSelect$1.AsyncCreatable = AsyncCreatableSelect;\nSelect$1.Creatable = CreatableSelect;\nSelect$1.Value = Value;\nSelect$1.Option = Option;\n\nexport { Async, AsyncCreatableSelect as AsyncCreatable, CreatableSelect as Creatable, Value, Option, menuRenderer as defaultMenuRenderer, arrowRenderer as defaultArrowRenderer, clearRenderer as defaultClearRenderer, filterOptions as defaultFilterOptions };\nexport default Select$1;\n"
    },
    {
      "id": 13,
      "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/classnames/index.js",
      "name": "./node_modules/classnames/index.js",
      "index": 37,
      "index2": 33,
      "size": 1102,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/react-select/lib/Option.js",
      "issuerId": 38,
      "issuerName": "./node_modules/react-select/lib/Option.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 12,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/react-select/dist/react-select.es.js",
          "module": "./node_modules/react-select/dist/react-select.es.js",
          "moduleName": "./node_modules/react-select/dist/react-select.es.js",
          "type": "harmony import",
          "userRequest": "classnames",
          "loc": "2:0-36"
        },
        {
          "moduleId": 38,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/react-select/lib/Option.js",
          "module": "./node_modules/react-select/lib/Option.js",
          "moduleName": "./node_modules/react-select/lib/Option.js",
          "type": "cjs require",
          "userRequest": "classnames",
          "loc": "9:18-39"
        }
      ],
      "usedExports": true,
      "providedExports": null,
      "optimizationBailout": [],
      "depth": 3,
      "source": "/*!\n  Copyright (c) 2016 Jed Watson.\n  Licensed under the MIT License (MIT), see\n  http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n"
    },
    {
      "id": 14,
      "identifier": "multi ././index.js",
      "name": "multi ././index.js",
      "index": 0,
      "index2": 39,
      "size": 28,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": null,
      "issuerId": null,
      "issuerName": null,
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [],
      "usedExports": true,
      "providedExports": null,
      "optimizationBailout": [],
      "depth": 0
    },
    {
      "id": 15,
      "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
      "name": "./index.js",
      "index": 1,
      "index2": 38,
      "size": 1276,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "multi ././index.js",
      "issuerId": 14,
      "issuerName": "multi ././index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 14,
          "moduleIdentifier": "multi ././index.js",
          "module": "multi ././index.js",
          "moduleName": "multi ././index.js",
          "type": "single entry",
          "userRequest": "././index.js",
          "loc": "main:100000"
        }
      ],
      "usedExports": true,
      "providedExports": null,
      "optimizationBailout": [],
      "depth": 1,
      "source": "'use strict';\n\nvar _ReactDatum = {\n  // contextual components\n  ClickToEditForm: require('./lib/clickToEditForm'),\n  ContextualData: require('./lib/contextualData'),\n  Collection: require('./lib/collection'),\n  CollectionStats: require('./lib/collectionStats'),\n  Form: require('./lib/form'),\n  Model: require('./lib/model'),\n  SelectedModel: require('./lib/selectedModel'),\n\n  // Datums\n  Datum: require('./lib/datums/datum'),\n  Email: require('./lib/datums/email'),\n  LazyPhoto: require('./lib/datums/lazyPhoto'),\n  Link: require('./lib/datums/link'),\n  Number: require('./lib/datums/number'),\n  Percent: require('./lib/datums/percent'),\n  Text: require('./lib/datums/text'),\n  Label: require('./lib/datums/label'),\n  WholeNumber: require('./lib/datums/wholeNumber'),\n\n  // Global options\n  Options: require('./lib/options'),\n\n  // TODO : i think this and react-select will eventually go to a separate \n  //    npm package so that the core doesn't have dependency on react-select\n  CollectionPicker: require('./lib/datums/collectionPicker/collectionPicker'),\n  // react-select \n  ReactSelect: require('react-select'),\n  SelectOption: require('react-select/lib/Option.js')\n\n};\nif (window) {\n  window.ReactDatum = _ReactDatum;\n}\nif (module) {\n  module.exports = _ReactDatum;\n}"
    },
    {
      "id": 16,
      "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/webpack/buildin/module.js",
      "name": "(webpack)/buildin/module.js",
      "index": 2,
      "index2": 0,
      "size": 517,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
      "issuerId": 15,
      "issuerName": "./index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 15,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
          "module": "./index.js",
          "moduleName": "./index.js",
          "type": "cjs require",
          "userRequest": "module",
          "loc": "1:0-51"
        }
      ],
      "usedExports": true,
      "providedExports": null,
      "optimizationBailout": [],
      "depth": 2,
      "source": "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\tif(!module.children) module.children = [];\r\n\t\tObject.defineProperty(module, \"loaded\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.l;\r\n\t\t\t}\r\n\t\t});\r\n\t\tObject.defineProperty(module, \"id\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.i;\r\n\t\t\t}\r\n\t\t});\r\n\t\tmodule.webpackPolyfill = 1;\r\n\t}\r\n\treturn module;\r\n};\r\n"
    },
    {
      "id": 17,
      "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/clickToEditForm.js",
      "name": "./lib/clickToEditForm.js",
      "index": 3,
      "index2": 14,
      "size": 2575,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
      "issuerId": 15,
      "issuerName": "./index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 15,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
          "module": "./index.js",
          "moduleName": "./index.js",
          "type": "cjs require",
          "userRequest": "./lib/clickToEditForm",
          "loc": "5:19-51"
        }
      ],
      "usedExports": true,
      "providedExports": null,
      "optimizationBailout": [],
      "depth": 2,
      "source": "'use strict';\n\n(function () {\n  var ClickToEditForm,\n      Form,\n      React,\n      _,\n      bind = function bind(fn, me) {\n    return function () {\n      return fn.apply(me, arguments);\n    };\n  },\n      extend = function extend(child, parent) {\n    for (var key in parent) {\n      if (hasProp.call(parent, key)) child[key] = parent[key];\n    }function ctor() {\n      this.constructor = child;\n    }ctor.prototype = parent.prototype;child.prototype = new ctor();child.__super__ = parent.prototype;return child;\n  },\n      hasProp = {}.hasOwnProperty;\n\n  React = require('./lib/reactLegacy');\n\n  Form = require('./form');\n\n  _ = require('underscore');\n\n  module.exports = ClickToEditForm = function (superClass) {\n    extend(ClickToEditForm, superClass);\n\n    ClickToEditForm.displayName = \"react-datum.ClickToEditForm\";\n\n    ClickToEditForm.prototype.datumInputMode = 'readonly';\n\n    function ClickToEditForm(props) {\n      this.stopEditing = bind(this.stopEditing, this);\n      this.onCancelClick = bind(this.onCancelClick, this);\n      this.onSaveSuccess = bind(this.onSaveSuccess, this);\n      this.onEditClick = bind(this.onEditClick, this);\n      ClickToEditForm.__super__.constructor.apply(this, arguments);\n      this.isEditing = false;\n    }\n\n    ClickToEditForm.prototype.renderButtons = function (options) {\n      if (this.isEditing) {\n        return ClickToEditForm.__super__.renderButtons.apply(this, arguments);\n      }\n      if (this.props.readonly) {\n        return React.createElement(\"span\", null);\n      } else {\n        return React.createElement(\"button\", {\n          \"key\": \"edit\",\n          \"className\": \"btn btn-primary\",\n          \"onClick\": this.onEditClick\n        }, \"Edit\");\n      }\n    };\n\n    ClickToEditForm.prototype.onEditClick = function () {\n      this.isEditing = true;\n      this.datumInputMode = 'edit';\n      this.forceUpdate();\n      return _.defer(function (_this) {\n        return function () {\n          return _this.focus();\n        };\n      }(this));\n    };\n\n    ClickToEditForm.prototype.onSaveSuccess = function () {\n      ClickToEditForm.__super__.onSaveSuccess.apply(this, arguments);\n      return this.stopEditing();\n    };\n\n    ClickToEditForm.prototype.onCancelClick = function () {\n      this.stopEditing();\n      return ClickToEditForm.__super__.onCancelClick.apply(this, arguments);\n    };\n\n    ClickToEditForm.prototype.stopEditing = function () {\n      this.isEditing = false;\n      this.datumInputMode = 'readonly';\n      return this.forceUpdate();\n    };\n\n    return ClickToEditForm;\n  }(Form);\n}).call(undefined);"
    },
    {
      "id": 18,
      "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/prop-types/factoryWithThrowingShims.js",
      "name": "./node_modules/prop-types/factoryWithThrowingShims.js",
      "index": 7,
      "index2": 5,
      "size": 1492,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/prop-types/index.js",
      "issuerId": 5,
      "issuerName": "./node_modules/prop-types/index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 5,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/prop-types/index.js",
          "module": "./node_modules/prop-types/index.js",
          "moduleName": "./node_modules/prop-types/index.js",
          "type": "cjs require",
          "userRequest": "./factoryWithThrowingShims",
          "loc": "27:19-56"
        }
      ],
      "usedExports": true,
      "providedExports": null,
      "optimizationBailout": [],
      "depth": 4,
      "source": "/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nmodule.exports = function() {\n  function shim(props, propName, componentName, location, propFullName, secret) {\n    if (secret === ReactPropTypesSecret) {\n      // It is still safe when called from React.\n      return;\n    }\n    invariant(\n      false,\n      'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n      'Use PropTypes.checkPropTypes() to call them. ' +\n      'Read more at http://fb.me/use-check-prop-types'\n    );\n  };\n  shim.isRequired = shim;\n  function getShim() {\n    return shim;\n  };\n  // Important!\n  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n  var ReactPropTypes = {\n    array: shim,\n    bool: shim,\n    func: shim,\n    number: shim,\n    object: shim,\n    string: shim,\n    symbol: shim,\n\n    any: shim,\n    arrayOf: getShim,\n    element: shim,\n    instanceOf: getShim,\n    node: shim,\n    objectOf: getShim,\n    oneOf: getShim,\n    oneOfType: getShim,\n    shape: getShim,\n    exact: getShim\n  };\n\n  ReactPropTypes.checkPropTypes = emptyFunction;\n  ReactPropTypes.PropTypes = ReactPropTypes;\n\n  return ReactPropTypes;\n};\n"
    },
    {
      "id": 19,
      "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/fbjs/lib/emptyFunction.js",
      "name": "./node_modules/fbjs/lib/emptyFunction.js",
      "index": 8,
      "index2": 2,
      "size": 959,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/prop-types/factoryWithThrowingShims.js",
      "issuerId": 18,
      "issuerName": "./node_modules/prop-types/factoryWithThrowingShims.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 18,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/prop-types/factoryWithThrowingShims.js",
          "module": "./node_modules/prop-types/factoryWithThrowingShims.js",
          "moduleName": "./node_modules/prop-types/factoryWithThrowingShims.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/emptyFunction",
          "loc": "10:20-53"
        }
      ],
      "usedExports": true,
      "providedExports": null,
      "optimizationBailout": [],
      "depth": 5,
      "source": "\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n  return function () {\n    return arg;\n  };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n  return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n  return arg;\n};\n\nmodule.exports = emptyFunction;"
    },
    {
      "id": 20,
      "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/fbjs/lib/invariant.js",
      "name": "./node_modules/fbjs/lib/invariant.js",
      "index": 9,
      "index2": 3,
      "size": 1506,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/prop-types/factoryWithThrowingShims.js",
      "issuerId": 18,
      "issuerName": "./node_modules/prop-types/factoryWithThrowingShims.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 18,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/prop-types/factoryWithThrowingShims.js",
          "module": "./node_modules/prop-types/factoryWithThrowingShims.js",
          "moduleName": "./node_modules/prop-types/factoryWithThrowingShims.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "11:16-45"
        }
      ],
      "usedExports": true,
      "providedExports": null,
      "optimizationBailout": [],
      "depth": 5,
      "source": "/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n  validateFormat = function validateFormat(format) {\n    if (format === undefined) {\n      throw new Error('invariant requires an error message argument');\n    }\n  };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n  validateFormat(format);\n\n  if (!condition) {\n    var error;\n    if (format === undefined) {\n      error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n    } else {\n      var args = [a, b, c, d, e, f];\n      var argIndex = 0;\n      error = new Error(format.replace(/%s/g, function () {\n        return args[argIndex++];\n      }));\n      error.name = 'Invariant Violation';\n    }\n\n    error.framesToPop = 1; // we don't care about invariant's own frame\n    throw error;\n  }\n}\n\nmodule.exports = invariant;"
    },
    {
      "id": 21,
      "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/prop-types/lib/ReactPropTypesSecret.js",
      "name": "./node_modules/prop-types/lib/ReactPropTypesSecret.js",
      "index": 10,
      "index2": 4,
      "size": 314,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/prop-types/factoryWithThrowingShims.js",
      "issuerId": 18,
      "issuerName": "./node_modules/prop-types/factoryWithThrowingShims.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 18,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/prop-types/factoryWithThrowingShims.js",
          "module": "./node_modules/prop-types/factoryWithThrowingShims.js",
          "moduleName": "./node_modules/prop-types/factoryWithThrowingShims.js",
          "type": "cjs require",
          "userRequest": "./lib/ReactPropTypesSecret",
          "loc": "12:27-64"
        }
      ],
      "usedExports": true,
      "providedExports": null,
      "optimizationBailout": [],
      "depth": 5,
      "source": "/**\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"
    },
    {
      "id": 22,
      "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/collection.js",
      "name": "./lib/collection.js",
      "index": 18,
      "index2": 18,
      "size": 1922,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
      "issuerId": 15,
      "issuerName": "./index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 15,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
          "module": "./index.js",
          "moduleName": "./index.js",
          "type": "cjs require",
          "userRequest": "./lib/collection",
          "loc": "7:14-41"
        }
      ],
      "usedExports": true,
      "providedExports": null,
      "optimizationBailout": [],
      "depth": 2,
      "source": "'use strict';\n\n(function () {\n  var Backbone,\n      Collection,\n      ContextualData,\n      React,\n      SelectableCollection,\n      _,\n      extend = function extend(child, parent) {\n    for (var key in parent) {\n      if (hasProp.call(parent, key)) child[key] = parent[key];\n    }function ctor() {\n      this.constructor = child;\n    }ctor.prototype = parent.prototype;child.prototype = new ctor();child.__super__ = parent.prototype;return child;\n  },\n      hasProp = {}.hasOwnProperty;\n\n  React = require('./lib/reactLegacy');\n\n  Backbone = require('backbone');\n\n  _ = require('underscore');\n\n  SelectableCollection = require('selectable-collection');\n\n  ContextualData = require('./contextualData');\n\n  module.exports = Collection = function (superClass) {\n    extend(Collection, superClass);\n\n    function Collection() {\n      return Collection.__super__.constructor.apply(this, arguments);\n    }\n\n    Collection.displayName = \"react-datum.Collection\";\n\n    Collection.prototype.dataType = Backbone.Collection;\n\n    Collection.prototype.contextKey = 'collection';\n\n    Collection.collectionPropType = React.PropTypes.oneOfType([React.PropTypes.instanceOf(Backbone.Collection), React.PropTypes.array]);\n\n    Collection.propTypes = _.extend({}, ContextualData.propTypes, {\n      collection: Collection.collectionPropType.isRequired\n    });\n\n    Collection.childContextTypes = _.extend({}, ContextualData.childContextTypes, {\n      collection: Collection.collectionPropType\n    });\n\n    Collection.prototype.setCollectionOrModel = function () {\n      var collection;\n      Collection.__super__.setCollectionOrModel.apply(this, arguments);\n      collection = this.state.collectionOrModel;\n      if (!(collection == null || collection.hasSelectableCollectionMixin)) {\n        SelectableCollection.applyTo(collection);\n      }\n      return collection;\n    };\n\n    return Collection;\n  }(ContextualData);\n}).call(undefined);"
    },
    {
      "id": 23,
      "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/selectable-collection/index.js",
      "name": "./node_modules/selectable-collection/index.js",
      "index": 19,
      "index2": 17,
      "size": 58,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/collection.js",
      "issuerId": 22,
      "issuerName": "./lib/collection.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 22,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/collection.js",
          "module": "./lib/collection.js",
          "moduleName": "./lib/collection.js",
          "type": "cjs require",
          "userRequest": "selectable-collection",
          "loc": "25:25-57"
        }
      ],
      "usedExports": true,
      "providedExports": null,
      "optimizationBailout": [],
      "depth": 3,
      "source": "\nmodule.exports = require('./lib/selectableCollection')\n  "
    },
    {
      "id": 24,
      "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/selectable-collection/lib/selectableCollection.js",
      "name": "./node_modules/selectable-collection/lib/selectableCollection.js",
      "index": 20,
      "index2": 16,
      "size": 8123,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/selectable-collection/index.js",
      "issuerId": 23,
      "issuerName": "./node_modules/selectable-collection/index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 23,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/selectable-collection/index.js",
          "module": "./node_modules/selectable-collection/index.js",
          "moduleName": "./node_modules/selectable-collection/index.js",
          "type": "cjs require",
          "userRequest": "./lib/selectableCollection",
          "loc": "2:17-54"
        }
      ],
      "usedExports": true,
      "providedExports": null,
      "optimizationBailout": [],
      "depth": 4,
      "source": "(function() {\n  var SelectableCollection, _,\n    __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };\n\n  _ = require('underscore');\n\n  module.exports = SelectableCollection = (function() {\n    function SelectableCollection() {\n      this.setActiveModelById = __bind(this.setActiveModelById, this);\n      this.setActiveIndex = __bind(this.setActiveIndex, this);\n      this.getActiveModel = __bind(this.getActiveModel, this);\n      this.setActiveModel = __bind(this.setActiveModel, this);\n      this.selectNone = __bind(this.selectNone, this);\n      this.selectAll = __bind(this.selectAll, this);\n      this.selectModelByIndex = __bind(this.selectModelByIndex, this);\n      this.selectModelById = __bind(this.selectModelById, this);\n      this.selectModel = __bind(this.selectModel, this);\n    }\n\n\n    /*\n      This method is used to mix SelectableCollection features into a Backbone Collection.\n      \n      example:\n      ```javascript\n        kittensCollection = new Backbone.Collection()\n        SelectableCollection.applyTo(kittensCollection)\n      ```\n     */\n\n    SelectableCollection.applyTo = function(collection) {\n      if (collection.hasSelectableCollectionMixin) {\n        return;\n      }\n      collection.hasSelectableCollection = true;\n      this.warnIfReplacingMethods(collection);\n      return _.extend(collection, this.prototype);\n    };\n\n    SelectableCollection.warnIfReplacingMethods = function(collection) {\n      var intersect;\n      intersect = _.intersection(_.keys(collection), _.keys(this.prototype));\n      if (!(intersect.length > 0)) {\n        return;\n      }\n      return console.error(\"Warning: using SelectableCollection mixin will replace the following methods: \" + intersect.join(', '));\n    };\n\n    SelectableCollection.prototype.hasSelectableCollectionMixin = true;\n\n\n    /*\n      Collection instance method that returns an array of selected models\n     */\n\n    SelectableCollection.prototype.getSelectedModels = function() {\n      return _.filter(this.models, function(m) {\n        return m.selected;\n      });\n    };\n\n\n    /*\n      Collection instance method that selects a single model.\n     \n      The model will be given a `selected` property of true.\n     \n      The `selected` argument can be one of:\n      `true`    - model argument will be selected\n      `false`   - unselect model\n      \"toggle\"` - invert current selected state\n      \n      Example: \n      ```javascript\n        myCollection.selectModel(myModel)\n        console.log(myModel.selected)\n         * => true\n      ```\n     */\n\n    SelectableCollection.prototype.selectModel = function(model, selected, options) {\n      if (selected == null) {\n        selected = true;\n      }\n      if (options == null) {\n        options = {};\n      }\n      options = _.defaults(options, {\n        silent: false\n      });\n      if (model == null) {\n        console.warn(\"SelectableCollection: selectModel called on null model\");\n        return false;\n      }\n      if (selected === \"toggle\") {\n        model.selected = (model.selected == null) || model.selected === false;\n      } else {\n        model.selected = selected;\n      }\n      if (!options.silent) {\n        this.trigger('selectionsChanged');\n      }\n      return model.selected;\n    };\n\n\n    /*\n      Collection instance method that selects a single model by ID.\n      \n      collection.get(id) is used to get the model passed to selectModel method.\n      \n      See also [selectModel method](#selectModel) for options\n     */\n\n    SelectableCollection.prototype.selectModelById = function(id, selected, options) {\n      if (selected == null) {\n        selected = true;\n      }\n      if (options == null) {\n        options = {};\n      }\n      return this.selectModel(this.get(id), selected, options);\n    };\n\n\n    /*\n      Collection instance method that selects a single model by it's zero based index\n      in the collection.\n    \n      See also [selectModel method](#selectModel) for options\n     */\n\n    SelectableCollection.prototype.selectModelByIndex = function(index, selected, options) {\n      if (selected == null) {\n        selected = true;\n      }\n      if (options == null) {\n        options = {};\n      }\n      return this.selectModel(this.models[index], selected, options);\n    };\n\n\n    /*\n      Collection instance method that selects all models in the collection.\n    \n      A single *selectionsChanged* event is triggered unless options.silent==true\n     */\n\n    SelectableCollection.prototype.selectAll = function(options) {\n      var model, _i, _len, _ref;\n      if (options == null) {\n        options = {};\n      }\n      options = _.defaults(options, {\n        silent: false\n      });\n      _ref = this.models;\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        model = _ref[_i];\n        if (model == null) {\n          continue;\n        }\n        this.selectModel(model, true, {\n          silent: true\n        });\n      }\n      if (!options.silent) {\n        return this.trigger('selectionsChanged');\n      }\n    };\n\n\n    /*\n      Collection instance method that unselects all models.  Also sets activeModel to null.\n    \n      A *selectionsChanged* event is triggered unless options.silent==true. \n      A *activeModelChanged* event is also fired\n     */\n\n    SelectableCollection.prototype.selectNone = function(options) {\n      var model, _i, _len, _ref;\n      if (options == null) {\n        options = {};\n      }\n      options = _.defaults(options, {\n        silent: false\n      });\n      _ref = this.getSelectedModels();\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        model = _ref[_i];\n        if (model == null) {\n          continue;\n        }\n        this.selectModel(model, false, {\n          silent: true\n        });\n      }\n      if (!options.silent) {\n        this.trigger('selectionsChanged');\n      }\n      return this.setActiveModel(null);\n    };\n\n\n    /*\n      Collection instance method that sets the current 'active' Model.  Multiple models may be \n      selected in the collection, only one model can be 'active'.   The active model is also\n      selected in the collection if not already selected.  \n      \n      SetActiveModel() is an optional feature. Active model can be used, as it is by \n      [tilegrid](https://github.com/zulily/tilegrid), to provide both multiple selections and\n      a single selection within that set (the last tile added to the selections)\n        \n      pass in null for model argument to unset active model\n     */\n\n    SelectableCollection.prototype.setActiveModel = function(model, options) {\n      var currentActive;\n      if (options == null) {\n        options = {};\n      }\n      options = _.defaults(options, {\n        active: true,\n        silent: false\n      });\n      currentActive = this.getActiveModel();\n      if (currentActive != null) {\n        currentActive.active = false;\n      }\n      this.selectModel(model, options);\n      if (model != null) {\n        model.active = options.active;\n      }\n      this.activeModel = model;\n      if (!options.silent) {\n        return this.trigger('activeModelChanged', model);\n      }\n    };\n\n\n    /*\n      Collection instance method that returns the current active model.\n     */\n\n    SelectableCollection.prototype.getActiveModel = function() {\n      return this.activeModel;\n    };\n\n\n    /*\n      Collection instance method that sets the active model by index in collection.\n      \n      see [setActiveModel](#setActiveModel) for options\n     */\n\n    SelectableCollection.prototype.setActiveIndex = function(index, options) {\n      if (options == null) {\n        options = {};\n      }\n      return this.setActiveModel(this.models[index]);\n    };\n\n\n    /*\n      Collection instance method that sets the active model by id in collection.\n      \n      see [setActiveModel](#setActiveModel) for options\n     */\n\n    SelectableCollection.prototype.setActiveModelById = function(modelId, options) {\n      if (options == null) {\n        options = {};\n      }\n      return this.setActiveModel(this.get(modelId), options);\n    };\n\n    return SelectableCollection;\n\n  })();\n\n}).call(this);\n"
    },
    {
      "id": 25,
      "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/collectionStats.js",
      "name": "./lib/collectionStats.js",
      "index": 21,
      "index2": 19,
      "size": 3834,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
      "issuerId": 15,
      "issuerName": "./index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 15,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
          "module": "./index.js",
          "moduleName": "./index.js",
          "type": "cjs require",
          "userRequest": "./lib/collectionStats",
          "loc": "8:19-51"
        }
      ],
      "usedExports": true,
      "providedExports": null,
      "optimizationBailout": [],
      "depth": 2,
      "source": "'use strict';\n\n(function () {\n  var Backbone,\n      CollectionStats,\n      React,\n      extend = function extend(child, parent) {\n    for (var key in parent) {\n      if (hasProp.call(parent, key)) child[key] = parent[key];\n    }function ctor() {\n      this.constructor = child;\n    }ctor.prototype = parent.prototype;child.prototype = new ctor();child.__super__ = parent.prototype;return child;\n  },\n      hasProp = {}.hasOwnProperty;\n\n  React = require('./lib/reactLegacy');\n\n  Backbone = require('backbone');\n\n  module.exports = CollectionStats = function (superClass) {\n    extend(CollectionStats, superClass);\n\n    function CollectionStats() {\n      return CollectionStats.__super__.constructor.apply(this, arguments);\n    }\n\n    CollectionStats.displayName = \"react-datum.CollectionStats\";\n\n    CollectionStats.propTypes = {\n      collection: React.PropTypes.instanceOf(Backbone.Collection),\n      itemDisplayName: React.PropTypes.string\n    };\n\n    CollectionStats.defaultProps = {\n      itemDisplayName: \"item\"\n    };\n\n    CollectionStats.contextTypes = {\n      collection: React.PropTypes.instanceOf(Backbone.Collection)\n    };\n\n    CollectionStats.prototype.render = function () {\n      this.collection = this.props.collection || this.context.collection;\n      if (this.collection == null) {\n        throw this.constructor.displayName + \" needs a collection prop or react-datum Collection context parent\";\n      }\n      return React.createElement(\"div\", {\n        \"className\": 'collection-stats'\n      }, this._renderFound(), this._renderSelected(), this._renderViewing());\n    };\n\n    CollectionStats.prototype._renderFound = function () {\n      var base, displayName, things, total;\n      total = (typeof (base = this.collection).getTotalRows === \"function\" ? base.getTotalRows() : void 0) || this.collection.models.length;\n      displayName = this.props.itemDisplayName;\n      things = function () {\n        switch (false) {\n          case (typeof inflection !== \"undefined\" && inflection !== null ? inflection.inflect : void 0) == null:\n            return inflection.inflect(this.props.itemDisplayName, total);\n          case displayName.plural == null:\n            return displayName.plural(total);\n          default:\n            return displayName;\n        }\n      }.call(this);\n      return React.createElement(\"span\", {\n        \"className\": \"found stats fade in\"\n      }, \"Found \", this._renderCount(total), \" \", things);\n    };\n\n    CollectionStats.prototype._renderSelected = function () {\n      if (!this.collection.hasSelectableCollection) {\n        return null;\n      }\n      return React.createElement(\"span\", {\n        \"className\": \"selected stats fade in\"\n      }, \", \", this._renderCount(this.collection.getSelectedModels().length), \" selected\");\n    };\n\n    CollectionStats.prototype._renderViewing = function () {\n      var bottomIndex, ref, ref1, topIndex;\n      topIndex = this.collection.topDisplayIndex || ((ref = this.collection.statsModel) != null ? ref.get('topDisplayIndex') : void 0);\n      bottomIndex = this.collection.bottomDisplayIndex || ((ref1 = this.collection.statsModel) != null ? ref1.get('bottomDisplayIndex') : void 0);\n      if (!(topIndex != null && bottomIndex)) {\n        return null;\n      }\n      return React.createElement(\"span\", {\n        \"className\": \"viewing stats fade in\"\n      }, \"Viewing \", this._renderCount(topIndex, 'top-index'), \" - \", this._renderCount(bottomIndex, 'bottom-index'));\n    };\n\n    CollectionStats.prototype._renderCount = function (value, addClass) {\n      var className;\n      if (addClass == null) {\n        addClass = \"\";\n      }\n      className = [\"count\", addClass].join(' ');\n      return React.createElement(\"span\", {\n        \"className\": className\n      }, value);\n    };\n\n    return CollectionStats;\n  }(React.Component);\n}).call(undefined);"
    },
    {
      "id": 26,
      "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/model.js",
      "name": "./lib/model.js",
      "index": 22,
      "index2": 20,
      "size": 1457,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
      "issuerId": 15,
      "issuerName": "./index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 15,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
          "module": "./index.js",
          "moduleName": "./index.js",
          "type": "cjs require",
          "userRequest": "./lib/model",
          "loc": "10:9-31"
        }
      ],
      "usedExports": true,
      "providedExports": null,
      "optimizationBailout": [],
      "depth": 2,
      "source": "'use strict';\n\n(function () {\n  var Backbone,\n      ContextualData,\n      Model,\n      React,\n      _,\n      extend = function extend(child, parent) {\n    for (var key in parent) {\n      if (hasProp.call(parent, key)) child[key] = parent[key];\n    }function ctor() {\n      this.constructor = child;\n    }ctor.prototype = parent.prototype;child.prototype = new ctor();child.__super__ = parent.prototype;return child;\n  },\n      hasProp = {}.hasOwnProperty;\n\n  React = require('./lib/reactLegacy');\n\n  Backbone = require('backbone');\n\n  _ = require('underscore');\n\n  ContextualData = require('./contextualData');\n\n  module.exports = Model = function (superClass) {\n    extend(Model, superClass);\n\n    function Model() {\n      return Model.__super__.constructor.apply(this, arguments);\n    }\n\n    Model.displayName = \"react-datum.Model\";\n\n    Model.prototype.dataType = Backbone.Model;\n\n    Model.prototype.contextKey = 'model';\n\n    Model.modelPropType = React.PropTypes.oneOfType([React.PropTypes.instanceOf(Backbone.Model), React.PropTypes.object]);\n\n    Model.propTypes = _.extend({}, ContextualData.propTypes, {\n      model: Model.modelPropType.isRequired\n    });\n\n    Model.childContextTypes = _.extend({}, ContextualData.childContextTypes, {\n      model: Model.modelPropType\n    });\n\n    Model.prototype.update = function () {\n      return Model.__super__.update.apply(this, arguments);\n    };\n\n    return Model;\n  }(ContextualData);\n}).call(undefined);"
    },
    {
      "id": 27,
      "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/selectedModel.js",
      "name": "./lib/selectedModel.js",
      "index": 23,
      "index2": 21,
      "size": 3522,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
      "issuerId": 15,
      "issuerName": "./index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 15,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
          "module": "./index.js",
          "moduleName": "./index.js",
          "type": "cjs require",
          "userRequest": "./lib/selectedModel",
          "loc": "11:17-47"
        }
      ],
      "usedExports": true,
      "providedExports": null,
      "optimizationBailout": [],
      "depth": 2,
      "source": "'use strict';\n\n(function () {\n  var Backbone,\n      ContextualData,\n      React,\n      SelectedModel,\n      bind = function bind(fn, me) {\n    return function () {\n      return fn.apply(me, arguments);\n    };\n  },\n      extend = function extend(child, parent) {\n    for (var key in parent) {\n      if (hasProp.call(parent, key)) child[key] = parent[key];\n    }function ctor() {\n      this.constructor = child;\n    }ctor.prototype = parent.prototype;child.prototype = new ctor();child.__super__ = parent.prototype;return child;\n  },\n      hasProp = {}.hasOwnProperty;\n\n  React = require('./lib/reactLegacy');\n\n  Backbone = require('backbone');\n\n  ContextualData = require('./contextualData');\n\n  module.exports = SelectedModel = function (superClass) {\n    extend(SelectedModel, superClass);\n\n    function SelectedModel() {\n      this._onSelectionsChanged = bind(this._onSelectionsChanged, this);\n      return SelectedModel.__super__.constructor.apply(this, arguments);\n    }\n\n    SelectedModel.displayName = \"react-datum.SelectedModel\";\n\n    SelectedModel.prototype.dataType = Backbone.Model;\n\n    SelectedModel.prototype.contextKey = 'model';\n\n    SelectedModel.proptypes = {\n      collection: React.PropTypes.instanceOf(Backbone.Collection),\n      placeholder: React.PropTypes.node\n    };\n\n    SelectedModel.contextTypes = {\n      collection: React.PropTypes.instanceOf(Backbone.Collection)\n    };\n\n    SelectedModel.childContextTypes = {\n      model: React.PropTypes.instanceOf(Backbone.Model)\n    };\n\n    SelectedModel.prototype.renderContent = function () {\n      var superContent;\n      superContent = SelectedModel.__super__.renderContent.apply(this, arguments);\n      if (this.state.collectionOrModel != null) {\n        return superContent;\n      }\n      return React.createElement(\"div\", {\n        \"className\": \"large-placeholder\"\n      }, this.props.placeholder);\n    };\n\n    SelectedModel.prototype.needsReinitializing = function () {\n      var truth;\n      truth = SelectedModel.__super__.needsReinitializing.call(this) || this.context.collection !== this._lastContextCollection;\n      this._lastContextCollection = this.context.collection;\n      return truth;\n    };\n\n    /*\n      override - We are going to provide a 'model' context (contextKey), but we listen to a \n      collection\n     */\n\n    SelectedModel.prototype.getInputCollectionOrModel = function () {\n      return this.props.collection || this.context.collection;\n    };\n\n    SelectedModel.prototype.getCollectionOrModelToProvide = function () {\n      var collection;\n      collection = this.props.collection || this.context.collection;\n      return collection != null ? typeof collection.getSelectedModels === \"function\" ? collection.getSelectedModels()[0] : void 0 : void 0;\n    };\n\n    SelectedModel.prototype.bindEvents = function (model) {\n      var ref;\n      SelectedModel.__super__.bindEvents.apply(this, arguments);\n      return (ref = this.getInputCollectionOrModel()) != null ? ref.on(\"selectionsChanged\", this._onSelectionsChanged) : void 0;\n    };\n\n    SelectedModel.prototype.unbindEvents = function () {\n      var ref;\n      SelectedModel.__super__.unbindEvents.apply(this, arguments);\n      return (ref = this.getInputCollectionOrModel()) != null ? ref.off(\"selectionsChanged\", this._onSelectionsChanged) : void 0;\n    };\n\n    SelectedModel.prototype._onSelectionsChanged = function () {\n      this.setCollectionOrModel();\n      return this.forceUpdate();\n    };\n\n    return SelectedModel;\n  }(ContextualData);\n}).call(undefined);"
    },
    {
      "id": 28,
      "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/email.js",
      "name": "./lib/datums/email.js",
      "index": 24,
      "index2": 22,
      "size": 2081,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
      "issuerId": 15,
      "issuerName": "./index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 15,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
          "module": "./index.js",
          "moduleName": "./index.js",
          "type": "cjs require",
          "userRequest": "./lib/datums/email",
          "loc": "15:9-38"
        }
      ],
      "usedExports": true,
      "providedExports": null,
      "optimizationBailout": [],
      "depth": 2,
      "source": "'use strict';\n\n(function () {\n  var Datum,\n      Email,\n      React,\n      _,\n      bind = function bind(fn, me) {\n    return function () {\n      return fn.apply(me, arguments);\n    };\n  },\n      extend = function extend(child, parent) {\n    for (var key in parent) {\n      if (hasProp.call(parent, key)) child[key] = parent[key];\n    }function ctor() {\n      this.constructor = child;\n    }ctor.prototype = parent.prototype;child.prototype = new ctor();child.__super__ = parent.prototype;return child;\n  },\n      hasProp = {}.hasOwnProperty;\n\n  React = require('../lib/reactLegacy');\n\n  _ = require('underscore');\n\n  Datum = require('./datum');\n\n  /*\n    For rendering and input of email addresses.  Can render mailto: links like \n    `<a href=\"mailto:\">` in display mode\n    \n    Validates that email address is a semi valid email based on matching \n    `/^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$/`\n   */\n\n  module.exports = Email = function (superClass) {\n    extend(Email, superClass);\n\n    Email.displayName = \"react-datum.Email\";\n\n    Email.propTypes = _.extend({}, Datum.propTypes, {\n      displayAsLink: React.PropTypes.bool\n    });\n\n    function Email(props) {\n      this.validateEmail = bind(this.validateEmail, this);\n      Email.__super__.constructor.apply(this, arguments);\n      this.addValidations(this.validateEmail);\n    }\n\n    Email.prototype.renderValueForDisplay = function () {\n      var value;\n      value = Email.__super__.renderValueForDisplay.apply(this, arguments);\n      if (this.props.displayAsLink) {\n        return React.createElement(\"a\", {\n          \"href\": this.getMailToHref(value)\n        }, value);\n      } else {\n        return value;\n      }\n    };\n\n    Email.prototype.getMailToHref = function (value) {\n      return \"mailto:\" + value;\n    };\n\n    Email.prototype.validateEmail = function (value) {\n      if (value.match(/^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$/)) {\n        return true;\n      }\n      return \"Invalid email address.  Should be like 'bob@zulily.com'\";\n    };\n\n    return Email;\n  }(Datum);\n}).call(undefined);"
    },
    {
      "id": 29,
      "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/lazyPhoto.js",
      "name": "./lib/datums/lazyPhoto.js",
      "index": 25,
      "index2": 23,
      "size": 3016,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
      "issuerId": 15,
      "issuerName": "./index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 15,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
          "module": "./index.js",
          "moduleName": "./index.js",
          "type": "cjs require",
          "userRequest": "./lib/datums/lazyPhoto",
          "loc": "16:13-46"
        }
      ],
      "usedExports": true,
      "providedExports": null,
      "optimizationBailout": [],
      "depth": 2,
      "source": "'use strict';\n\n(function () {\n  var Datum,\n      LazyPhoto,\n      Options,\n      React,\n      bind = function bind(fn, me) {\n    return function () {\n      return fn.apply(me, arguments);\n    };\n  },\n      extend = function extend(child, parent) {\n    for (var key in parent) {\n      if (hasProp.call(parent, key)) child[key] = parent[key];\n    }function ctor() {\n      this.constructor = child;\n    }ctor.prototype = parent.prototype;child.prototype = new ctor();child.__super__ = parent.prototype;return child;\n  },\n      hasProp = {}.hasOwnProperty;\n\n  React = require('../lib/reactLegacy');\n\n  Datum = require('./datum');\n\n  Options = require('../options');\n\n  /*\n    This is a lazy loading image.\n  \n    To prevent a page heavily loaded with images preventing other content from loading, a small\n    blank image is downloaded and rendered first and then onLoad the real image src is used and\n    rerender.\n  \n    On error a notFoundUrl is set as the image src to prevent broken image display.\n  \n    The model attribute specified in @props.attr should return a fully qualified\n    url.  The image is only rendered if it's visible and in view. Otherwise the placeholder\n    image is rendered.\n   */\n\n  module.exports = LazyPhoto = function (superClass) {\n    extend(LazyPhoto, superClass);\n\n    function LazyPhoto() {\n      this.onError = bind(this.onError, this);\n      this.onLoad = bind(this.onLoad, this);\n      return LazyPhoto.__super__.constructor.apply(this, arguments);\n    }\n\n    LazyPhoto.displayName = \"react-datum.LazyPhoto\";\n\n    LazyPhoto.prototype.subClassName = 'lazy-image';\n\n    LazyPhoto.prototype.initialLoadComplete = false;\n\n    LazyPhoto.prototype.componentWillMount = function () {\n      LazyPhoto.__super__.componentWillMount.apply(this, arguments);\n      return this.setState({\n        notFound: false\n      });\n    };\n\n    LazyPhoto.prototype.isEditable = function () {\n      return false;\n    };\n\n    LazyPhoto.prototype.renderForDisplay = function () {\n      var modelValue, notFound, notFoundUrl, source;\n      modelValue = this.getModelValue();\n      notFound = modelValue == null ? true : this.state.notFound;\n      notFoundUrl = Options.get('LazyPhoto').notFoundUrl;\n      source = notFound ? notFoundUrl : modelValue;\n      return React.createElement(\"img\", {\n        \"src\": source,\n        \"onLoad\": this.onLoad,\n        \"onError\": this.onError\n      });\n    };\n\n    LazyPhoto.prototype.onLoad = function (evt) {\n      if (this.initialLoadComplete || this.notFound) {\n        return;\n      }\n      return this.initialLoadComplete = true;\n    };\n\n    LazyPhoto.prototype.onError = function (evt) {\n      if (this.state.notFound) {\n        return;\n      }\n      return this.setState({\n        notFound: true\n      });\n    };\n\n    LazyPhoto.prototype.onModelValueChange = function () {\n      this.setState({\n        notFound: false\n      });\n      return LazyPhoto.__super__.onModelValueChange.apply(this, arguments);\n    };\n\n    return LazyPhoto;\n  }(Datum);\n}).call(undefined);"
    },
    {
      "id": 30,
      "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/link.js",
      "name": "./lib/datums/link.js",
      "index": 26,
      "index2": 24,
      "size": 2660,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
      "issuerId": 15,
      "issuerName": "./index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 15,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
          "module": "./index.js",
          "moduleName": "./index.js",
          "type": "cjs require",
          "userRequest": "./lib/datums/link",
          "loc": "17:8-36"
        }
      ],
      "usedExports": true,
      "providedExports": null,
      "optimizationBailout": [],
      "depth": 2,
      "source": "'use strict';\n\n(function () {\n  var Datum,\n      Link,\n      React,\n      _,\n      extend = function extend(child, parent) {\n    for (var key in parent) {\n      if (hasProp.call(parent, key)) child[key] = parent[key];\n    }function ctor() {\n      this.constructor = child;\n    }ctor.prototype = parent.prototype;child.prototype = new ctor();child.__super__ = parent.prototype;return child;\n  },\n      hasProp = {}.hasOwnProperty;\n\n  React = require('../lib/reactLegacy');\n\n  _ = require('underscore');\n\n  Datum = require('./datum');\n\n  /*\n    see ./link.md\n   */\n\n  module.exports = Link = function (superClass) {\n    extend(Link, superClass);\n\n    function Link() {\n      return Link.__super__.constructor.apply(this, arguments);\n    }\n\n    Link.displayName = \"react-datum.Link\";\n\n    Link.propTypes = _.extend({}, Datum.propTypes, {\n      nameAttr: React.PropTypes.string,\n      target: React.PropTypes.string,\n      ellipsizeAt: React.PropTypes.oneOfType([React.PropTypes.number, React.PropTypes.bool]),\n      reverseEllipsis: React.PropTypes.bool,\n      hideProtocol: React.PropTypes.bool\n    });\n\n    Link.defaultProps = _.extend({}, Datum.defaultProps, {\n      ellipsizeAt: 35,\n      target: '_blank',\n      hideProtocol: false\n    });\n\n    Link.prototype.subClassName = 'link';\n\n    Link.prototype.renderValueForDisplay = function () {\n      return React.createElement(\"a\", {\n        \"href\": this._getHref(),\n        \"target\": this.props.target\n      }, this._getTagContent());\n    };\n\n    Link.prototype._getHref = function () {\n      return this.getModelValue();\n    };\n\n    Link.prototype._removeHttpForDisplay = function () {\n      var index, value;\n      value = this.getModelValue();\n      if (value.indexOf('://') >= 3) {\n        index = value.indexOf('://') + 3;\n        value = value.slice(index);\n      }\n      return value;\n    };\n\n    Link.prototype._getTagContent = function () {\n      var contentValue, value;\n      if (this.props.nameAttr != null) {\n        contentValue = this.getModel().get(this.props.nameAttr);\n        if (_.isArray(contentValue)) {\n          contentValue = contentValue.map(function (v) {\n            return v.toString();\n          }).join(', ');\n        }\n        return this.renderEllipsizedValue(contentValue);\n      } else if (this.props.children != null) {\n        return React.createElement(\"span\", null, this.props.children);\n      } else {\n        if (this.props.hideProtocol) {\n          value = this._removeHttpForDisplay();\n        } else {\n          value = this.getModelValue();\n        }\n        return this.renderEllipsizedValue(value);\n      }\n    };\n\n    return Link;\n  }(Datum);\n}).call(undefined);"
    },
    {
      "id": 31,
      "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/percent.js",
      "name": "./lib/datums/percent.js",
      "index": 28,
      "index2": 26,
      "size": 3117,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
      "issuerId": 15,
      "issuerName": "./index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 15,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
          "module": "./index.js",
          "moduleName": "./index.js",
          "type": "cjs require",
          "userRequest": "./lib/datums/percent",
          "loc": "19:11-42"
        }
      ],
      "usedExports": true,
      "providedExports": null,
      "optimizationBailout": [],
      "depth": 2,
      "source": "'use strict';\n\n(function () {\n  var Number,\n      Percent,\n      React,\n      extend = function extend(child, parent) {\n    for (var key in parent) {\n      if (hasProp.call(parent, key)) child[key] = parent[key];\n    }function ctor() {\n      this.constructor = child;\n    }ctor.prototype = parent.prototype;child.prototype = new ctor();child.__super__ = parent.prototype;return child;\n  },\n      hasProp = {}.hasOwnProperty;\n\n  React = require('../lib/reactLegacy');\n\n  Number = require('./number');\n\n  /*\n    This datum is an extension of [ReactDatum.Number](http://zulily.github.io/react-datum/docs/api/#Number) for\n    display and input of percent values.   \n    \n    - Display value is affixed with '%' \n    - Display and input value are model value * 100 (model value is assumed to be \n    fractional value)\n    - User input is assumed to be number percentage (* 100)\n    - props.decimalPlaces is respected for both display and input\n  \n  \n    Number datum has (maybe use to have) a format called  'percent' that will also\n    do a little part of what Percent datum does.  The Percent datum is meant to \n    supercede 'percent' format to Number datum.\n   */\n\n  module.exports = Percent = function (superClass) {\n    extend(Percent, superClass);\n\n    function Percent() {\n      return Percent.__super__.constructor.apply(this, arguments);\n    }\n\n    Percent.displayName = \"react-datum.Percent\";\n\n    /*\n      Model value returned is multiplied by 100.  Internal value for Percent\n      is always the whole number displayed percentage rounded to requested\n      decimal places.\n     */\n\n    Percent.prototype.getModelValue = function () {\n      var superValue;\n      superValue = Percent.__super__.getModelValue.apply(this, arguments);\n      if (superValue == null) {\n        return superValue;\n      }\n      return this.roundToDecimalPlaces(Number.safelyFloat(superValue) * 100);\n    };\n\n    /*\n      What get's saved to the model is the user entered value divided by 100\n     */\n\n    Percent.prototype.setModelValue = function (value, options) {\n      var floatValue;\n      if (value == null) {\n        value = this.getInputValue();\n      }\n      if (options == null) {\n        options = {};\n      }\n      if (value == null) {\n        return;\n      }\n      value || (value = 0);\n      floatValue = Number.safelyFloat(value) / 100;\n      return Percent.__super__.setModelValue.call(this, floatValue, options);\n    };\n\n    /*\n      Other formats like 'money' and 'abbreviate' are ignored.  Override react-datum.Money\n     */\n\n    Percent.prototype.getFormats = function () {\n      return [];\n    };\n\n    /*\n      Renders value for display as nn.n%.\n      \n      Base number has (maybe use to have) a format called  'percent' that will also\n      do this little part of it.  The Percent datum is meant to supercede 'percent' \n      format to Number datum.\n     */\n\n    Percent.prototype.renderValueForDisplay = function () {\n      var superVal;\n      superVal = Percent.__super__.renderValueForDisplay.apply(this, arguments);\n      return superVal + '%';\n    };\n\n    return Percent;\n  }(Number);\n}).call(undefined);"
    },
    {
      "id": 32,
      "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/label.js",
      "name": "./lib/datums/label.js",
      "index": 30,
      "index2": 28,
      "size": 1824,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
      "issuerId": 15,
      "issuerName": "./index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 15,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
          "module": "./index.js",
          "moduleName": "./index.js",
          "type": "cjs require",
          "userRequest": "./lib/datums/label",
          "loc": "21:9-38"
        }
      ],
      "usedExports": true,
      "providedExports": null,
      "optimizationBailout": [],
      "depth": 2,
      "source": "'use strict';\n\n(function () {\n  var Label,\n      React,\n      Text,\n      _,\n      extend = function extend(child, parent) {\n    for (var key in parent) {\n      if (hasProp.call(parent, key)) child[key] = parent[key];\n    }function ctor() {\n      this.constructor = child;\n    }ctor.prototype = parent.prototype;child.prototype = new ctor();child.__super__ = parent.prototype;return child;\n  },\n      hasProp = {}.hasOwnProperty;\n\n  React = require('../lib/reactLegacy');\n\n  _ = require('underscore');\n\n  Text = require('./text');\n\n  /*\n    see ./label.md\n   */\n\n  module.exports = Label = function (superClass) {\n    extend(Label, superClass);\n\n    function Label() {\n      return Label.__super__.constructor.apply(this, arguments);\n    }\n\n    Label.displayName = \"react-datum.Label\";\n\n    Label.prototype.render = function () {\n      return Label.__super__.render.apply(this, arguments);\n    };\n\n    Label.prototype.renderValueForDisplay = function () {\n      var label, labelProps, superVal, tooltip;\n      superVal = Label.__super__.renderValueForDisplay.apply(this, arguments);\n      labelProps = {\n        style: this.props.style\n      };\n      tooltip = this.getPropOrMetadata('tooltip');\n      label = superVal != null ? this.renderWithPopover(React.createElement(\"label\", Object.assign({}, labelProps), superVal), tooltip, 'datumLabelTooltip', 'datum-tooltip') : null;\n      return label;\n    };\n\n    Label.prototype.getModelValue = function (newProps, newContext) {\n      if (newProps == null) {\n        newProps = this.props;\n      }\n      if (newContext == null) {\n        newContext = this.context;\n      }\n      if (newProps.children != null) {\n        return newProps.children;\n      }\n      return Label.__super__.getModelValue.apply(this, arguments);\n    };\n\n    return Label;\n  }(Text);\n}).call(undefined);"
    },
    {
      "id": 33,
      "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/wholeNumber.js",
      "name": "./lib/datums/wholeNumber.js",
      "index": 31,
      "index2": 29,
      "size": 1056,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
      "issuerId": 15,
      "issuerName": "./index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 15,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
          "module": "./index.js",
          "moduleName": "./index.js",
          "type": "cjs require",
          "userRequest": "./lib/datums/wholeNumber",
          "loc": "22:15-50"
        }
      ],
      "usedExports": true,
      "providedExports": null,
      "optimizationBailout": [],
      "depth": 2,
      "source": "'use strict';\n\n(function () {\n  var Number,\n      React,\n      WholeNumber,\n      extend = function extend(child, parent) {\n    for (var key in parent) {\n      if (hasProp.call(parent, key)) child[key] = parent[key];\n    }function ctor() {\n      this.constructor = child;\n    }ctor.prototype = parent.prototype;child.prototype = new ctor();child.__super__ = parent.prototype;return child;\n  },\n      hasProp = {}.hasOwnProperty;\n\n  React = require('../lib/reactLegacy');\n\n  Number = require('./number');\n\n  /*\n    For whole numbers (no decimal input allowed).\n   */\n\n  module.exports = WholeNumber = function (superClass) {\n    extend(WholeNumber, superClass);\n\n    function WholeNumber() {\n      return WholeNumber.__super__.constructor.apply(this, arguments);\n    }\n\n    WholeNumber.displayName = \"react-datum.WholeNumber\";\n\n    WholeNumber.prototype.charactersMustMatch = /^\\-?[0-9]*$/;\n\n    WholeNumber.prototype.getInputValue = function () {\n      return parseInt(this.state.value, 10);\n    };\n\n    return WholeNumber;\n  }(Number);\n}).call(undefined);"
    },
    {
      "id": 34,
      "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/collectionPicker/collectionPicker.js",
      "name": "./lib/datums/collectionPicker/collectionPicker.js",
      "index": 32,
      "index2": 35,
      "size": 17268,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
      "issuerId": 15,
      "issuerName": "./index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 15,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
          "module": "./index.js",
          "moduleName": "./index.js",
          "type": "cjs require",
          "userRequest": "./lib/datums/collectionPicker/collectionPicker",
          "loc": "29:20-77"
        }
      ],
      "usedExports": true,
      "providedExports": null,
      "optimizationBailout": [],
      "depth": 2,
      "source": "'use strict';\n\n(function () {\n  var Backbone,\n      CollectionPicker,\n      Datum,\n      React,\n      Select,\n      Strhelp,\n      _,\n      bind = function bind(fn, me) {\n    return function () {\n      return fn.apply(me, arguments);\n    };\n  },\n      extend = function extend(child, parent) {\n    for (var key in parent) {\n      if (hasProp.call(parent, key)) child[key] = parent[key];\n    }function ctor() {\n      this.constructor = child;\n    }ctor.prototype = parent.prototype;child.prototype = new ctor();child.__super__ = parent.prototype;return child;\n  },\n      hasProp = {}.hasOwnProperty,\n      indexOf = [].indexOf || function (item) {\n    for (var i = 0, l = this.length; i < l; i++) {\n      if (i in this && this[i] === item) return i;\n    }return -1;\n  };\n\n  React = require('../../lib/reactLegacy');\n\n  Backbone = require('backbone');\n\n  _ = require('underscore');\n\n  Strhelp = require('bumble-strings');\n\n  Datum = require('../datum');\n\n  Select = require('react-select');\n\n  module.exports = CollectionPicker = function (superClass) {\n    extend(CollectionPicker, superClass);\n\n    CollectionPicker.displayName = \"react-datum.CollectionPicker\";\n\n    CollectionPicker.propTypes = _.extend({}, Datum.propTypes, {\n      collection: React.PropTypes.oneOfType([React.PropTypes.instanceOf(Backbone.Collection), React.PropTypes.string, React.PropTypes.array]),\n      ellipsizeAt: React.PropTypes.oneOfType([React.PropTypes.number, React.PropTypes.bool]),\n      reverseEllipsis: React.PropTypes.bool,\n      optionComponent: React.PropTypes.func,\n      valueComponent: React.PropTypes.func,\n      fetchUnknownModelsInCollection: React.PropTypes.bool,\n      displayAttr: React.PropTypes.string,\n      optionSaveAttr: React.PropTypes.string,\n      displayComponent: React.PropTypes.any,\n      synchronousLoading: React.PropTypes.bool,\n      isLoading: React.PropTypes.bool,\n      asyncSuggestionCallback: React.PropTypes.func,\n      multi: React.PropTypes.bool,\n      csvDisplay: React.PropTypes.bool,\n      editPlaceholder: React.PropTypes.string,\n      setAsString: React.PropTypes.bool,\n      displayModelValue: React.PropTypes.bool\n    });\n\n    CollectionPicker.defaultProps = _.extend({}, Datum.defaultProps, {\n      ellipsizeAt: 35,\n      fetchUnknownModelsInCollection: true,\n      loading: false,\n      attr: 'value'\n    });\n\n    CollectionPicker.contextTypes = _.extend({}, Datum.contextTypes, {\n      collection: React.PropTypes.oneOfType([React.PropTypes.instanceOf(Backbone.Collection), React.PropTypes.string])\n    });\n\n    CollectionPicker.prototype.subClassName = \"collection-picker\";\n\n    CollectionPicker.prototype.selectRef = \"reactSelect\";\n\n    function CollectionPicker() {\n      this.groupSuggestionModels = bind(this.groupSuggestionModels, this);\n      this.filterSuggestionModels = bind(this.filterSuggestionModels, this);\n      this.onLoadOptions = bind(this.onLoadOptions, this);\n      this.onChange = bind(this.onChange, this);\n      this.getOptionValuesForReactSelect = bind(this.getOptionValuesForReactSelect, this);\n      this.focus = bind(this.focus, this);\n      this.getInputComponent = bind(this.getInputComponent, this);\n      this._onFirstCollectionModelSync = bind(this._onFirstCollectionModelSync, this);\n      CollectionPicker.__super__.constructor.apply(this, arguments);\n    }\n\n    CollectionPicker.prototype.render = function () {\n      return CollectionPicker.__super__.render.apply(this, arguments);\n    };\n\n    CollectionPicker.prototype.renderValueForDisplay = function () {\n      var collection, collectionValues, modelValues;\n      collection = this.getCollection();\n      modelValues = this.getModelValue();\n      if (_.isString(modelValues) && modelValues.match(/\\d+\\,\\s*\\d+/)) {\n        modelValues = modelValues.split(/\\,\\s?/);\n      }\n      if (!_.isArray(modelValues)) {\n        modelValues = [modelValues];\n      }\n      modelValues = _.compact(_.unique(_.flatten(modelValues)));\n      if (this.props.csvDisplay) {\n        collectionValues = modelValues.map(function (_this) {\n          return function (modelId) {\n            var ref;\n            return (ref = _this.getCollectionModelDisplayValue(modelId, collection)) != null ? ref : modelId;\n          };\n        }(this));\n        return this.renderEllipsizedValue(collectionValues.join(', '));\n      } else {\n        return modelValues.map(function (_this) {\n          return function (modelValue) {\n            return _this.renderCollectionDisplayValue(modelValue, collection);\n          };\n        }(this));\n      }\n    };\n\n    CollectionPicker.prototype.renderCollectionDisplayValue = function (modelId, collection) {\n      var modelValue, valueProps;\n      if (collection == null) {\n        collection = this.getCollection();\n      }\n      modelValue = this.getCollectionModelDisplayValue(modelId, collection);\n      if (modelValue) {\n        modelValue = this.renderEllipsizedValue(modelValue);\n      }\n      valueProps = {\n        key: modelValue,\n        className: \"collection-picker-display-value\"\n      };\n      if (this.props.displayComponent != null) {\n        valueProps.value = this._getCollectionModelById(modelId);\n        return React.createElement(this.props.displayComponent, Object.assign({}, valueProps));\n      }\n      return React.createElement(\"span\", Object.assign({}, valueProps), modelValue || this.renderPlaceholder() || \"unknown\");\n    };\n\n    CollectionPicker.prototype.renderInput = function () {\n      if (this.props.synchronousLoading) {\n        return React.createElement(Select[\"default\"], Object.assign({}, this.getSelectOptions()));\n      } else {\n        return React.createElement(Select.Async, Object.assign({}, this.getSelectAsyncOptions()), function (_this) {\n          return function (props) {\n            var collection;\n            collection = _this.getCollection();\n            if (collection.filterForPicker != null || _this.props.asyncLoadCallback != null) {\n              props.filterOptions = null;\n            }\n            props.value = _this.getValueForInput();\n            props.ref = 'select';\n            return React.createElement(Select[\"default\"], Object.assign({}, props));\n          };\n        }(this));\n      }\n    };\n\n    CollectionPicker.prototype.getCollection = function () {\n      var collection;\n      collection = this.props.collection || this.context.collection;\n      if (collection == null) {\n        console.warn(this.constructor.displayName + (\" requires a collection prop or context. attr=\" + this.props.attr));\n      }\n      if (!(collection instanceof Backbone.Collection)) {\n        return new Backbone.Collection(collection);\n      }\n      return collection;\n    };\n\n    /*\n      TODO: make this method public.  useful for extensions and used by some\n     */\n\n    CollectionPicker.prototype._getCollectionModelById = function (modelOrId) {\n      var collectionModel, onSync, ref;\n      if (_.isNumber(modelOrId) || _.isString(modelOrId)) {\n        collectionModel = (ref = this.getCollection()) != null ? ref.get(modelOrId, {\n          add: this.props.fetchUnknownModelsInCollection\n        }) : void 0;\n        onSync = function (_this) {\n          return function () {\n            _.defer(function () {\n              return _this._onFirstCollectionModelSync(collectionModel);\n            });\n            return collectionModel != null ? typeof collectionModel.off === \"function\" ? collectionModel.off('sync', onSync) : void 0 : void 0;\n          };\n        }(this);\n        if (collectionModel != null) {\n          if (typeof collectionModel.on === \"function\") {\n            collectionModel.on('sync', onSync);\n          }\n        }\n        return collectionModel;\n      }\n      return modelOrId;\n    };\n\n    CollectionPicker.prototype._onFirstCollectionModelSync = function (collectionModel) {\n      var ref;\n      if ((ref = this.getModel()) != null) {\n        if (typeof ref.trigger === \"function\") {\n          ref.trigger('invalidate');\n        }\n      }\n      return this.forceUpdate();\n    };\n\n    CollectionPicker.prototype.getCollectionModelDisplayValue = function (modelId, collection) {\n      var displayValue, model, ref;\n      if (!modelId) {\n        return null;\n      }\n      if (this.props.displayModelValue) {\n        return modelId.toString();\n      }\n      model = this._getCollectionModelById(modelId);\n      if (model != null) {\n        if (!_.isFunction(model.toString) && this.props.displayAttr == null) {\n          throw new Error(this.constructor.displayName + \": You need to specify a displayAttr prop or model must have toString() method\");\n        }\n        displayValue = this.props.displayAttr != null ? (ref = typeof model.get === \"function\" ? model.get(this.props.displayAttr) : void 0) != null ? ref : model[this.props.displayAttr] : typeof model.toString === \"function\" ? model.toString() : void 0;\n      } else {\n        displayValue = null;\n      }\n      return displayValue;\n    };\n\n    CollectionPicker.prototype.getOptionSaveValue = function (modelId, collection) {\n      var model, ref, ref1, ref2;\n      model = this._getCollectionModelById(modelId);\n      if (model != null && this.props.optionSaveAttr == null) {\n        return model.id;\n      }\n      return (ref = (ref1 = (ref2 = model != null ? typeof model.get === \"function\" ? model.get(this.props.optionSaveAttr) : void 0 : void 0) != null ? ref2 : model != null ? model[this.props.optionSaveAttr] : void 0) != null ? ref1 : model != null ? model.id : void 0) != null ? ref : modelId;\n    };\n\n    CollectionPicker.prototype.getModelValue = function (newProps) {\n      var modelValue;\n      if (newProps == null) {\n        newProps = this.props;\n      }\n      modelValue = CollectionPicker.__super__.getModelValue.apply(this, arguments);\n      if (newProps.multi) {\n        modelValue = function () {\n          switch (false) {\n            case !(modelValue == null):\n              return [];\n            case !_.isString(modelValue):\n              return modelValue.split(',');\n            case !_.isArray(modelValue):\n              return modelValue;\n            default:\n              return [modelValue];\n          }\n        }();\n        modelValue = _.compact(_.unique(_.flatten(modelValue)));\n      }\n      return modelValue;\n    };\n\n    CollectionPicker.prototype.getSelectOptions = function () {\n      var collection;\n      collection = this.getCollection();\n      return _.extend({}, this.props, {\n        placeholder: this.props.editPlaceholder || this.getPropOrMetadata('placeholder') || this.renderPlaceholder(),\n        value: this.getValueForInput(),\n        onChange: this.onChange,\n        onBlur: this.onBlur,\n        options: this.getOptionValuesForReactSelect(collection.models),\n        labelKey: \"label\",\n        valueKey: \"value\",\n        ref: this.selectRef\n      });\n    };\n\n    CollectionPicker.prototype.getSelectAsyncOptions = function () {\n      var collection, selectOptions;\n      collection = this.getCollection();\n      selectOptions = this.getSelectOptions();\n      if (this.props.asyncSuggestionCallback != null) {\n        delete selectOptions.options;\n      }\n      return _.extend(selectOptions, {\n        loadOptions: this.onLoadOptions\n      });\n    };\n\n    CollectionPicker.prototype.hasInputValueChanged = function () {\n      return this.getInputValue() !== this.getModelValue();\n    };\n\n    CollectionPicker.prototype.getInputComponent = function () {\n      return ReactDOM.findDOMNode(this).querySelector('input');\n    };\n\n    CollectionPicker.prototype.getSelectedModels = function () {\n      var ref;\n      return (ref = this.getCollection()) != null ? ref.get(this.getInputValue()) : void 0;\n    };\n\n    CollectionPicker.prototype.focus = function () {\n      var ref;\n      return (ref = this.getInputComponent()) != null ? typeof ref.focus === \"function\" ? ref.focus() : void 0 : void 0;\n    };\n\n    CollectionPicker.prototype.getOptionValuesForReactSelect = function (models) {\n      if (models == null) {\n        models = [];\n      }\n      return _.map(models, function (_this) {\n        return function (m) {\n          return {\n            label: _this.getCollectionModelDisplayValue(m),\n            value: _this.getOptionSaveValue(m),\n            model: m\n          };\n        };\n      }(this));\n    };\n\n    /*\n     Extends Datum class - react-select returns array of options and not a synth event \n     super expects a synth event but only uses value.\n     \n     Also note that the value passed back to the usage through @props.onChange is\n     the option object(s) for the currently selected option(s)\n     */\n\n    CollectionPicker.prototype.onChange = function (optionsSelected) {\n      var ref, ref1, value, values;\n      if (this.props.multi) {\n        values = _.pluck(optionsSelected, 'value');\n        if (values.length === 1 && ((ref = this.state.value) != null ? ref.length : void 0) > 0 && (ref1 = values[0], indexOf.call(this.state.value, ref1) < 0)) {\n          values = this.state.value.concat(values);\n          optionsSelected = this.getOptionValuesForReactSelect(this.getSelectedModels());\n        }\n        if (this.props.setAsString) {\n          values = values.join(',');\n        }\n        return CollectionPicker.__super__.onChange.call(this, values, {\n          propsOnChangeValue: optionsSelected\n        });\n      } else {\n        value = optionsSelected === null ? null : optionsSelected != null ? optionsSelected.value : void 0;\n        return CollectionPicker.__super__.onChange.call(this, value, {\n          propsOnChangeValue: optionsSelected\n        });\n      }\n    };\n\n    CollectionPicker.prototype.onLoadOptions = function (userInput, callback) {\n      var chainedCallback, collection, ref, selectedModels;\n      collection = this.getCollection();\n      selectedModels = _.compact((ref = this.getSelectedModels()) != null ? ref : []);\n      this.lastAsyncCallback = callback;\n      chainedCallback = function (_this) {\n        return function (error, models) {\n          var optionsForReactSelect;\n          if (arguments.length < 2) {\n            models = error;\n            error = false;\n          }\n          models = _this.groupSuggestionModels(userInput, models);\n          if (_this.props.multi) {\n            models = models.concat(selectedModels);\n            collection.add(selectedModels);\n          }\n          optionsForReactSelect = _this.getOptionValuesForReactSelect(models);\n          return _this.lastAsyncCallback(null, {\n            options: optionsForReactSelect\n          });\n        };\n      }(this);\n      switch (false) {\n        case this.props.asyncSuggestionCallback == null:\n          this.props.asyncSuggestionCallback.call(this, collection, userInput, chainedCallback, this.props.asyncOptions);\n          break;\n        case collection.filterForPicker == null:\n          collection.filterForPicker.call(this, userInput, chainedCallback, this.props.asyncOptions);\n          break;\n        default:\n          this.filterSuggestionModels(collection, userInput, chainedCallback, this.props.asyncOptions);\n      }\n      return null;\n    };\n\n    /* weak string compare userInput to suggestion model's display value */\n\n    CollectionPicker.prototype.filterSuggestionModels = function (collection, userInput, callback) {\n      var filteredModels;\n      filteredModels = _.filter(collection.models, function (_this) {\n        return function (model) {\n          var displayValue;\n          displayValue = _this.getCollectionModelDisplayValue(model);\n          return displayValue != null && Strhelp.weaklyHas(displayValue, userInput);\n        };\n      }(this));\n      filteredModels = filteredModels.sort(function (_this) {\n        return function (a, b) {\n          return Strhelp.weaklyCompare(_this.getCollectionModelDisplayValue(a), _this.getCollectionModelDisplayValue(b));\n        };\n      }(this));\n      if (typeof callback === \"function\") {\n        callback(filteredModels);\n      }\n      return filteredModels;\n    };\n\n    CollectionPicker.prototype.groupSuggestionModels = function (userInput, models) {\n      var bottomHits, displayValue, i, len, model, topHits;\n      topHits = [];\n      bottomHits = [];\n      for (i = 0, len = models.length; i < len; i++) {\n        model = models[i];\n        displayValue = this.getCollectionModelDisplayValue(model);\n        if (displayValue != null && Strhelp.weaklyStartsWith(displayValue, userInput)) {\n          topHits.push(model);\n        } else {\n          bottomHits.push(model);\n        }\n      }\n      return topHits.concat(bottomHits);\n    };\n\n    /*\n      This is the model associated with the collectionPicker. This is required to exist because\n      this is the model in which the value is saved. If this does not exist or re-created every time we\n      will not be able to show the value option on the picker.\n     */\n\n    CollectionPicker.prototype.getModel = function (newProps, newContext) {\n      if (newProps == null) {\n        newProps = this.props;\n      }\n      if (newContext == null) {\n        newContext = this.context;\n      }\n      this.valueModel = (newProps != null ? newProps.model : void 0) || (newContext != null ? newContext.model : void 0) || this.valueModel || new Backbone.Model();\n      return this.valueModel;\n    };\n\n    return CollectionPicker;\n  }(Datum);\n}).call(undefined);"
    },
    {
      "id": 35,
      "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/bumble-strings/index.js",
      "name": "./node_modules/bumble-strings/index.js",
      "index": 33,
      "index2": 31,
      "size": 51,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/collectionPicker/collectionPicker.js",
      "issuerId": 34,
      "issuerName": "./lib/datums/collectionPicker/collectionPicker.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 34,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/lib/datums/collectionPicker/collectionPicker.js",
          "module": "./lib/datums/collectionPicker/collectionPicker.js",
          "moduleName": "./lib/datums/collectionPicker/collectionPicker.js",
          "type": "cjs require",
          "userRequest": "bumble-strings",
          "loc": "36:12-37"
        }
      ],
      "usedExports": true,
      "providedExports": null,
      "optimizationBailout": [],
      "depth": 3,
      "source": "\n\nmodule.exports = require('./lib/bumble-strings')\n"
    },
    {
      "id": 36,
      "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/bumble-strings/lib/bumble-strings.js",
      "name": "./node_modules/bumble-strings/lib/bumble-strings.js",
      "index": 34,
      "index2": 30,
      "size": 9024,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/bumble-strings/index.js",
      "issuerId": 35,
      "issuerName": "./node_modules/bumble-strings/index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 35,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/bumble-strings/index.js",
          "module": "./node_modules/bumble-strings/index.js",
          "moduleName": "./node_modules/bumble-strings/index.js",
          "type": "cjs require",
          "userRequest": "./lib/bumble-strings",
          "loc": "3:17-48"
        }
      ],
      "usedExports": true,
      "providedExports": null,
      "optimizationBailout": [],
      "depth": 4,
      "source": "// Generated by CoffeeScript 1.10.0\n(function() {\n  var StringHelpers, _;\n\n  _ = require('underscore');\n\n  module.exports = StringHelpers = (function() {\n    function StringHelpers() {}\n\n\n    /*\n      Trims leading and trailing spaces.  Also optionally trims internal excess spaces\n     */\n\n    StringHelpers.trim = function(str, options) {\n      if (options == null) {\n        options = {};\n      }\n      options = _.defaults(options, {\n        all: false\n      });\n      str = str.replace(/^\\s+|\\s+$/g, \"\");\n      if (options.all) {\n        str = str.replace(/\\s+/g, ' ');\n      }\n      return str;\n    };\n\n\n    /*\n      Adds elipsis to string, if neccessary, for maximum string length not\n      to exceed maxLength\n     */\n\n    StringHelpers.elipsize = function(str, maxLength) {\n      if ((maxLength == null) || str.length <= maxLength) {\n        return str;\n      }\n      return str.slice(0, maxLength - 3) + '...';\n    };\n\n\n    /*\n      Returns true if the string is all whitespace characters\n     */\n\n    StringHelpers.isEmpty = function(str) {\n      if (this.weaklyEqual(str, \"\")) {\n        return true;\n      }\n    };\n\n\n    /*\n      Returns true if string starts with any of otherStrings.  \n      otherStrings = one or array to compare to\n     */\n\n    StringHelpers.startsWith = function(str, otherStrings) {\n      return this._withOneOrArray(otherStrings, function(otherStr) {\n        if (str.slice(0, otherStr.length) === otherStr) {\n          return true;\n        }\n      });\n    };\n\n\n    /*\n      Returns true if string ends with any of otherStrings.  \n      otherStrings = one or array to compare to\n     */\n\n    StringHelpers.endsWith = function(str, otherStrings) {\n      return this._withOneOrArray(otherStrings, function(otherStr) {\n        if (!((otherStr != null ? otherStr.length : void 0) > 0)) {\n          return true;\n        }\n        if (str.slice(-1 * otherStr.length) === otherStr) {\n          return true;\n        }\n      });\n    };\n\n\n    /*\n      Returns true if string contains any of otherStrings.  \n      otherStrings = one or array to compare to\n     */\n\n    StringHelpers.has = function(str, otherStrings) {\n      return this._withOneOrArray(otherStrings, function(otherStr) {\n        if (str.indexOf(otherStr) !== -1) {\n          return true;\n        }\n      });\n    };\n\n\n    /*\n      Returns the weak value of the string -- all lowercase, plus trimmed\n      and with excess inner whitespace ignored, locale ignored by default. \n      \n      The weakly... functions below use this method on both strings being\n      compared to return positive match of mismatched case, etc.\n     */\n\n    StringHelpers.weakValue = function(str, options) {\n      if (options == null) {\n        options = {};\n      }\n      _.defaults(options, {\n        ignoreCase: true,\n        useLocale: false,\n        trim: true\n      });\n      if (options.trim) {\n        str = this.trim(str, {\n          all: true\n        });\n      }\n      if (options.ignoreCase) {\n        if (options.useLocale) {\n          return str = str.toLocaleLowerCase();\n        } else {\n          return str = str.toLowerCase();\n        }\n      }\n    };\n\n\n    /*\n      Returns true if the first string weakly equals any of the otherStrings. \n      see weakValue() comments\n     */\n\n    StringHelpers.weaklyEqual = function(str, otherStrings, options) {\n      if (options == null) {\n        options = {};\n      }\n      return this._withOneOrArray(otherStrings, (function(_this) {\n        return function(otherStr) {\n          if (_this.weakValue(str, options) === _this.weakValue(otherStr, options)) {\n            return true;\n          }\n        };\n      })(this));\n    };\n\n\n    /*\n      Returns -1, 0 or 1 like javascript localeCompare.  Comppares the weak values.  \n      see weakValue() comments\n     */\n\n    StringHelpers.weaklyCompare = function(str, otherStrings, options) {\n      if (options == null) {\n        options = {};\n      }\n      return this._withOneOrArray(otherStrings, (function(_this) {\n        return function(otherStr) {\n          if (_this.weakValue(str, options).localeCompare(_this.weakValue(otherStr, options))) {\n            return true;\n          }\n        };\n      })(this));\n    };\n\n\n    /*\n      Returns true if the first string weakly contains any of the otherStrings. \n      see weakValue() comments\n     */\n\n    StringHelpers.weaklyHas = function(str, otherStrings) {\n      return this._withOneOrArray(otherStrings, (function(_this) {\n        return function(otherStr) {\n          if (_this.weakValue(str).indexOf(_this.weakValue(otherStr)) !== -1) {\n            return true;\n          }\n        };\n      })(this));\n    };\n\n\n    /*\n      Returns true if the first string weakly starts with any of the otherStrings. \n      see weakValue() comments\n     */\n\n    StringHelpers.weaklyStartsWith = function(str, otherStrings) {\n      return this._withOneOrArray(otherStrings, (function(_this) {\n        return function(otherStr) {\n          if (_this.startsWith(_this.weakValue(str), _this.weakValue(otherStr))) {\n            return true;\n          }\n        };\n      })(this));\n    };\n\n\n    /*\n      Returns true if the first string weakly ends with any of the otherStrings. \n      see weakValue() comments\n     */\n\n    StringHelpers.weaklyEndsWith = function(str, otherStrings) {\n      return this._withOneOrArray(otherStrings, (function(_this) {\n        return function(otherStr) {\n          if (_this.endsWith(_this.weakValue(str), _this.weakValue(otherStr))) {\n            return true;\n          }\n        };\n      })(this));\n    };\n\n\n    /*\n      makes strings like \"this_string\", \"ThisString\", \"this-string\", \"this.string\" into\n      \"this string\"\n     */\n\n    StringHelpers.humanize = function(str) {\n      var out;\n      out = str.replace(/([A-Z])/g, \" $1\").replace(/[_\\-\\.](.)/g, \" $1\");\n      return out.trim().toLowerCase();\n    };\n\n\n    /*  \n      converts a string like \"dropCamelCase\".decamelize() => \"Drop Camel Case\"\n     */\n\n    StringHelpers.decamelize = function(str) {\n      var result;\n      result = str.replace(/_?([A-Z])/g, \" $1\");\n      result = result.charAt(0).toUpperCase() + result.slice(1);\n      return result.toLowerCase();\n    };\n\n\n    /*\n      converts a string like \"Drop Camel Case\".dropcamelize() => \"dropCamelCase\"\n     */\n\n    StringHelpers.dropcamelize = function(str) {\n      var result;\n      result = str.replace(/\\s/g, \"\");\n      return result.charAt(0).toLowerCase() + result.slice(1);\n    };\n\n\n    /*\n      capitalize the first letter of a string\n     */\n\n    StringHelpers.capitalize = function(str) {\n      return str.charAt(0).toUpperCase() + str.substring(1);\n    };\n\n\n    /*\n      decapitalize the first letter of a string\n     */\n\n    StringHelpers.decapitalize = function(str) {\n      return str.charAt(0).toLowerCase() + str.substring(1);\n    };\n\n\n    /*\n      returns true if the first letter of a string is capitalized\n     */\n\n    StringHelpers.isCapitalized = function(str) {\n      return str.match(/^[A-Z].*/) !== null;\n    };\n\n\n    /*\n      returns true if all alphabetic characters of string are upper case letters.\n      ignores numbers and punctuation\n     */\n\n    StringHelpers.isAllCaps = function(str) {\n      return str.match(/^[A-Z\\s0-9]*$/) !== null;\n    };\n\n\n    /*\n      returns true if string is numeric\n     */\n\n    StringHelpers.isNumeric = function(str) {\n      return str.toString().match(/^[\\-,\\+]?[\\s\\d\\.]*$/) !== null;\n    };\n\n\n    /*\n      adds thousands separaters optionally truncates decimal portion to decimalPlaces characters\n      slightly enhanced from\n      http://stackoverflow.com/questions/2901102/how-to-print-a-number-with-commas-as-thousands-separators-in-javascript\n     */\n\n    StringHelpers.numerize = function(str, decimalPlaces, zeroFill) {\n      var parts, pow;\n      if (decimalPlaces == null) {\n        decimalPlaces = null;\n      }\n      if (zeroFill == null) {\n        zeroFill = false;\n      }\n      if (decimalPlaces) {\n        pow = Math.pow(10, decimalPlaces);\n        parts = (Math.round(parseFloat(str) * pow) / pow).toString().split(\".\");\n      } else {\n        parts = str.toString().split('.');\n      }\n      parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n      if (decimalPlaces) {\n        if (parts.length > 1) {\n          parts[1] = parts[1].slice(0, decimalPlaces);\n          if (zeroFill) {\n            while (parts[1].length < decimalPlaces) {\n              parts[1] += '0';\n            }\n          }\n        } else if (zeroFill) {\n          parts.push(Array(decimalPlaces + 1).join('0'));\n        }\n      }\n      return parts.join(\".\");\n    };\n\n    StringHelpers._withOneOrArray = function(strOrArray, fn) {\n      var array, i, len, str, truth;\n      array = _.isArray(strOrArray) ? strOrArray : [strOrArray];\n      truth = false;\n      for (i = 0, len = array.length; i < len; i++) {\n        str = array[i];\n        if (fn(str) === true) {\n          truth = true;\n          break;\n        }\n      }\n      return truth;\n    };\n\n    return StringHelpers;\n\n  })();\n\n}).call(this);\n"
    },
    {
      "id": 37,
      "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/react-input-autosize/lib/AutosizeInput.js",
      "name": "./node_modules/react-input-autosize/lib/AutosizeInput.js",
      "index": 36,
      "index2": 32,
      "size": 9990,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/react-select/dist/react-select.es.js",
      "issuerId": 12,
      "issuerName": "./node_modules/react-select/dist/react-select.es.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 12,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/react-select/dist/react-select.es.js",
          "module": "./node_modules/react-select/dist/react-select.es.js",
          "moduleName": "./node_modules/react-select/dist/react-select.es.js",
          "type": "harmony import",
          "userRequest": "react-input-autosize",
          "loc": "1:0-49"
        }
      ],
      "usedExports": [
        "default"
      ],
      "providedExports": null,
      "optimizationBailout": [],
      "depth": 3,
      "source": "'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 = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\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;"
    },
    {
      "id": 38,
      "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/react-select/lib/Option.js",
      "name": "./node_modules/react-select/lib/Option.js",
      "index": 38,
      "index2": 37,
      "size": 5809,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
      "issuerId": 15,
      "issuerName": "./index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 15,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/cache-loader/dist/cjs.js!/Users/bwilkerson/projects/zulily/react-datum/node_modules/babel-loader/lib/index.js!/Users/bwilkerson/projects/zulily/react-datum/index.js",
          "module": "./index.js",
          "moduleName": "./index.js",
          "type": "cjs require",
          "userRequest": "react-select/lib/Option.js",
          "loc": "32:16-53"
        }
      ],
      "usedExports": true,
      "providedExports": null,
      "optimizationBailout": [],
      "depth": 2,
      "source": "'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 = require('classnames');\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _blockEvent = require('./utils/blockEvent');\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;"
    },
    {
      "id": 39,
      "identifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/react-select/lib/utils/blockEvent.js",
      "name": "./node_modules/react-select/lib/utils/blockEvent.js",
      "index": 39,
      "index2": 36,
      "size": 389,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/react-select/lib/Option.js",
      "issuerId": 38,
      "issuerName": "./node_modules/react-select/lib/Option.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 38,
          "moduleIdentifier": "/Users/bwilkerson/projects/zulily/react-datum/node_modules/react-select/lib/Option.js",
          "module": "./node_modules/react-select/lib/Option.js",
          "moduleName": "./node_modules/react-select/lib/Option.js",
          "type": "cjs require",
          "userRequest": "./utils/blockEvent",
          "loc": "21:18-47"
        }
      ],
      "usedExports": true,
      "providedExports": null,
      "optimizationBailout": [],
      "depth": 3,
      "source": "'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};"
    }
  ],
  "filteredModules": 0,
  "children": []
}