forked from erizocosmico/react-categorized-tag-input
-
Notifications
You must be signed in to change notification settings - Fork 0
/
categorized-tag-input.js.map
1 lines (1 loc) · 51.3 KB
/
categorized-tag-input.js.map
1
{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///categorized-tag-input.js","webpack:///webpack/bootstrap 432c94f4b1725e9da616","webpack:///./src/index.js","webpack:///external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","webpack:///./src/Tag.jsx","webpack:///./src/CategorizedTagInput.jsx","webpack:///./src/Category.jsx","webpack:///./src/Input.jsx","webpack:///./src/Panel.jsx","webpack:///./src/keyboard.js"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_1__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","_interopRequireDefault","obj","__esModule","default","Object","defineProperty","value","_CategorizedTagInputJsx","_CategorizedTagInputJsx2","_react","_react2","PropTypes","Tag","createClass","displayName","propTypes","selected","bool","input","string","isRequired","text","addable","deletable","onAdd","func","onDelete","tagContent","content","startIndex","props","trim","toLowerCase","indexOf","endIndex","length","push","createElement","key","className","substring","onClick","e","preventDefault","stopPropagation","getDeleteBtn","dangerouslySetInnerHTML","__html","render","deleteBtn","cls","_interopRequireWildcard","newObj","prototype","hasOwnProperty","isCategoryItemValid","i","isCategoryValid","title","items","Array","isArray","every","type","single","_InputJsx","_InputJsx2","_PanelJsx","_PanelJsx2","_keyboard","CategorizedTagInput","addNew","categories","arrayOf","object","transformTag","onBlur","onChange","getInitialState","selection","item","category","panelOpened","tags","undefined","componentWillMount","Error","filterCategories","_this","map","assign","filter","filterItems","state","setState","openPanel","closePanel","_this2","setTimeout","onValueChange","target","isNaN","Number","onTagDeleted","newTags","slice","concat","newTag","refs","focusInput","addSelectedTag","handleBackspace","handleArrowLeft","result","handleArrowUp","handleArrowRight","cat","handleArrowDown","cats","onKeyDown","keyCode","TAB","ENTER","COMMA","BACKSPACE","LEFT","UP","RIGHT","DOWN","ref","_TagJsx","_TagJsx2","Category","array","oneOfType","number","selectedItem","onCreateNew","itemToTag","isSelected","fullMatchInItems","len","getItems","fullMatch","getAddBtn","_getItems","addBtn","Input","focus","resizeInput","node","style","width","scrollWidth","getTags","t","size","onFocus","_CategoryJsx","_CategoryJsx2","Panel","getCategories"],"mappings":"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","file":"categorized-tag-input.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"CategorizedTagInput\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"CategorizedTagInput\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_1__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"CategorizedTagInput\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"CategorizedTagInput\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_1__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _CategorizedTagInputJsx = __webpack_require__(3);\n\t\n\tvar _CategorizedTagInputJsx2 = _interopRequireDefault(_CategorizedTagInputJsx);\n\n\texports['default'] = _CategorizedTagInputJsx2['default'];\n\tmodule.exports = exports['default'];\n\n/***/ },\n/* 1 */\n/***/ function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _react = __webpack_require__(1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar PropTypes = _react2['default'].PropTypes;\n\t\n\tvar Tag = _react2['default'].createClass({\n\t displayName: 'Tag',\n\t\n\t propTypes: {\n\t selected: PropTypes.bool,\n\t input: PropTypes.string.isRequired,\n\t text: PropTypes.string.isRequired,\n\t addable: PropTypes.bool,\n\t deletable: PropTypes.bool,\n\t onAdd: PropTypes.func,\n\t onDelete: PropTypes.func\n\t },\n\t\n\t tagContent: function tagContent() {\n\t var content = [];\n\t var startIndex = this.props.text.trim().toLowerCase().indexOf(this.props.input.trim().toLowerCase());\n\t var endIndex = startIndex + this.props.input.length;\n\t\n\t if (startIndex > 0) {\n\t content.push(_react2['default'].createElement(\n\t 'span',\n\t { key: 1, className: 'cti__tag__content--regular' },\n\t this.props.text.substring(0, startIndex)\n\t ));\n\t }\n\t\n\t content.push(_react2['default'].createElement(\n\t 'span',\n\t { key: 2, className: 'cti__tag__content--match' },\n\t this.props.text.substring(startIndex, endIndex)\n\t ));\n\t\n\t if (endIndex < this.props.text.length) {\n\t content.push(_react2['default'].createElement(\n\t 'span',\n\t { key: 3, className: 'cti__tag__content--regular' },\n\t this.props.text.substring(endIndex)\n\t ));\n\t }\n\t\n\t return content;\n\t },\n\t\n\t onClick: function onClick(e) {\n\t e.preventDefault();\n\t if (this.props.addable) {\n\t this.props.onAdd(e);\n\t }\n\t },\n\t\n\t onDelete: function onDelete(e) {\n\t // Prevents onClick event of the whole tag from being triggered\n\t e.preventDefault();\n\t e.stopPropagation();\n\t this.props.onDelete(e);\n\t },\n\t\n\t getDeleteBtn: function getDeleteBtn() {\n\t return _react2['default'].createElement('span', { className: 'cti__tag__delete', onClick: this.onDelete,\n\t dangerouslySetInnerHTML: { __html: '×' } });\n\t },\n\t\n\t render: function render() {\n\t var deleteBtn = null;\n\t if (this.props.deletable) {\n\t deleteBtn = this.getDeleteBtn();\n\t }\n\t var cls = 'cti__tag' + (this.props.selected ? ' cti-selected' : '');\n\t\n\t return _react2['default'].createElement(\n\t 'div',\n\t { className: cls, onClick: this.onClick },\n\t _react2['default'].createElement(\n\t 'div',\n\t { className: 'cti__tag__content' },\n\t this.tagContent()\n\t ),\n\t deleteBtn\n\t );\n\t }\n\t});\n\t\n\texports['default'] = Tag;\n\tmodule.exports = exports['default'];\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\texports.isCategoryItemValid = isCategoryItemValid;\n\texports.isCategoryValid = isCategoryValid;\n\t\n\tfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _react = __webpack_require__(1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _InputJsx = __webpack_require__(5);\n\t\n\tvar _InputJsx2 = _interopRequireDefault(_InputJsx);\n\t\n\tvar _PanelJsx = __webpack_require__(6);\n\t\n\tvar _PanelJsx2 = _interopRequireDefault(_PanelJsx);\n\t\n\tvar _keyboard = __webpack_require__(7);\n\t\n\tvar key = _interopRequireWildcard(_keyboard);\n\t\n\tvar PropTypes = _react2['default'].PropTypes;\n\t\n\tfunction isCategoryItemValid(i) {\n\t return typeof i === 'string' && i.trim().length > 0;\n\t}\n\t\n\tfunction isCategoryValid(c) {\n\t return typeof c === 'object' && c.id && c.title && c.items && Array.isArray(c.items) && c.items.every(isCategoryItemValid) && (c.type || c.single);\n\t}\n\t\n\tvar CategorizedTagInput = _react2['default'].createClass({\n\t displayName: 'CategorizedTagInput',\n\t\n\t propTypes: {\n\t addNew: PropTypes.bool,\n\t categories: PropTypes.arrayOf(PropTypes.object).isRequired,\n\t transformTag: PropTypes.func,\n\t value: PropTypes.arrayOf(PropTypes.string),\n\t onBlur: PropTypes.func,\n\t onChange: PropTypes.func\n\t },\n\t\n\t getInitialState: function getInitialState() {\n\t return {\n\t value: '',\n\t selection: {\n\t item: 0,\n\t category: 0\n\t },\n\t panelOpened: false,\n\t tags: this.props.value || [],\n\t categories: [],\n\t addNew: this.props.addNew === undefined ? true : this.props.addNew\n\t };\n\t },\n\t\n\t componentWillMount: function componentWillMount() {\n\t if (!this.props.categories.every(isCategoryValid)) {\n\t throw new Error('invalid categories source provided for react-categorized-tag-input');\n\t }\n\t },\n\t\n\t filterCategories: function filterCategories(input) {\n\t var _this = this;\n\t\n\t var categories = this.props.categories.map(function (c) {\n\t c = Object.assign({}, c, {\n\t items: c.items.filter(_this.filterItems(input))\n\t });\n\t return c.items.length === 0 && (!_this.state.addNew || c.single) ? null : c;\n\t }).filter(function (c) {\n\t return c !== null;\n\t });\n\t\n\t var selection = this.state.selection;\n\t if (this.state.selection.category >= categories.length) {\n\t selection = {\n\t category: 0,\n\t item: 0\n\t };\n\t } else {\n\t if (selection.item >= categories[selection.category].items.length) {\n\t selection.item = 0;\n\t }\n\t }\n\t\n\t this.setState({\n\t categories: categories,\n\t selection: selection\n\t });\n\t },\n\t\n\t filterItems: function filterItems(input) {\n\t return function (i) {\n\t if (input.length === 1) {\n\t return i.toLowerCase().trim() === input;\n\t }\n\t return i.toLowerCase().indexOf(input.trim().toLowerCase()) >= 0;\n\t };\n\t },\n\t\n\t openPanel: function openPanel() {\n\t this.setState({ panelOpened: true });\n\t },\n\t\n\t closePanel: function closePanel() {\n\t var _this2 = this;\n\t\n\t // Prevent the panel from hiding before the click action takes place\n\t setTimeout(function () {\n\t _this2.setState({ panelOpened: false });\n\t }, 150);\n\t },\n\t\n\t onValueChange: function onValueChange(e) {\n\t var value = e.target.value;\n\t this.setState({ value: value, panelOpened: value.trim().length > 0 || !isNaN(Number(value.trim())) });\n\t this.filterCategories(value);\n\t },\n\t\n\t onTagDeleted: function onTagDeleted(i) {\n\t var newTags = this.state.tags.slice(0, i).concat(this.state.tags.slice(i + 1));\n\t this.setState({\n\t tags: newTags\n\t });\n\t\n\t if (typeof this.props.onChange === 'function') {\n\t this.props.onChange(newTags);\n\t }\n\t },\n\t\n\t onAdd: function onAdd(newTag) {\n\t var category = newTag.category;\n\t var item = newTag.item;\n\t\n\t if (typeof this.props.transformTag === 'function') {\n\t item = this.props.transformTag(category, item);\n\t }\n\t\n\t var newTags = this.state.tags.concat([item]);\n\t this.setState({\n\t tags: newTags,\n\t value: '',\n\t panelOpened: true\n\t });\n\t\n\t this.refs.input.focusInput();\n\t if (typeof this.props.onChange === 'function') {\n\t this.props.onChange(newTags);\n\t }\n\t },\n\t\n\t addSelectedTag: function addSelectedTag() {\n\t var category = this.state.categories[this.state.selection.category];\n\t var item = category.items[this.state.selection.item];\n\t this.onAdd({\n\t category: category.id,\n\t item: item || this.state.value\n\t });\n\t },\n\t\n\t handleBackspace: function handleBackspace(e) {\n\t if (this.state.value.trim().length === 0) {\n\t e.preventDefault();\n\t this.onTagDeleted(this.state.tags.length - 1);\n\t }\n\t },\n\t\n\t handleArrowLeft: function handleArrowLeft() {\n\t var result = this.state.selection.item - 1;\n\t this.setState({ selection: {\n\t category: this.state.selection.category,\n\t item: result >= 0 ? result : 0\n\t } });\n\t },\n\t\n\t handleArrowUp: function handleArrowUp() {\n\t var result = this.state.selection.category - 1;\n\t this.setState({ selection: {\n\t category: result >= 0 ? result : 0,\n\t item: 0\n\t } });\n\t },\n\t\n\t handleArrowRight: function handleArrowRight() {\n\t var result = this.state.selection.item + 1;\n\t var cat = this.state.categories[this.state.selection.category];\n\t this.setState({ selection: {\n\t category: this.state.selection.category,\n\t item: result <= cat.items.length ? result : cat.items.length\n\t } });\n\t },\n\t\n\t handleArrowDown: function handleArrowDown() {\n\t var result = this.state.selection.category + 1;\n\t var cats = this.state.categories;\n\t this.setState({ selection: {\n\t category: result < cats.length ? result : cats.length - 1,\n\t item: 0\n\t } });\n\t },\n\t\n\t onKeyDown: function onKeyDown(e) {\n\t var result = undefined;\n\t switch (e.keyCode) {\n\t case key.TAB:\n\t case key.ENTER:\n\t case key.COMMA:\n\t e.preventDefault();\n\t this.addSelectedTag();\n\t break;\n\t case key.BACKSPACE:\n\t this.handleBackspace(e);\n\t break;\n\t case key.LEFT:\n\t this.handleArrowLeft();\n\t break;\n\t case key.UP:\n\t this.handleArrowUp();\n\t break;\n\t case key.RIGHT:\n\t this.handleArrowRight();\n\t break;\n\t case key.DOWN:\n\t this.handleArrowDown();\n\t break;\n\t }\n\t },\n\t\n\t value: function value() {\n\t return this.state.tags;\n\t },\n\t\n\t render: function render() {\n\t return _react2['default'].createElement(\n\t 'div',\n\t { className: 'cti__root' },\n\t _react2['default'].createElement(_InputJsx2['default'], { openPanel: this.openPanel, closePanel: this.closePanel,\n\t onValueChange: this.onValueChange, onTagDeleted: this.onTagDeleted,\n\t onKeyDown: this.onKeyDown, value: this.state.value,\n\t tags: this.state.tags, onBlur: this.props.onBlur, ref: 'input' }),\n\t this.state.panelOpened && this.state.value.length > 0 ? _react2['default'].createElement(_PanelJsx2['default'], { categories: this.state.categories,\n\t selection: this.state.selection, onAdd: this.onAdd,\n\t input: this.state.value,\n\t addNew: this.props.addNew === undefined ? true : this.props.addNew }) : ''\n\t );\n\t }\n\t});\n\t\n\texports['default'] = CategorizedTagInput;\n\n/***/ },\n/* 4 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _react = __webpack_require__(1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _TagJsx = __webpack_require__(2);\n\t\n\tvar _TagJsx2 = _interopRequireDefault(_TagJsx);\n\t\n\tvar PropTypes = _react2['default'].PropTypes;\n\t\n\tvar Category = _react2['default'].createClass({\n\t displayName: 'Category',\n\t\n\t propTypes: {\n\t items: PropTypes.array.isRequired,\n\t category: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n\t title: PropTypes.string.isRequired,\n\t selected: PropTypes.bool.isRequired,\n\t selectedItem: PropTypes.number.isRequired,\n\t input: PropTypes.string.isRequired,\n\t addNew: PropTypes.bool,\n\t type: PropTypes.string,\n\t onAdd: PropTypes.func.isRequired,\n\t single: PropTypes.bool\n\t },\n\t\n\t onAdd: function onAdd(item) {\n\t var _this = this;\n\t\n\t return function () {\n\t _this.props.onAdd({\n\t category: _this.props.category,\n\t item: item\n\t });\n\t };\n\t },\n\t\n\t onCreateNew: function onCreateNew(e) {\n\t e.preventDefault();\n\t this.onAdd(this.props.input)();\n\t },\n\t\n\t itemToTag: function itemToTag(item, i) {\n\t return _react2['default'].createElement(_TagJsx2['default'], { selected: this.isSelected(i),\n\t input: this.props.input, text: item, addable: true, deletable: false,\n\t onAdd: this.onAdd(item), key: item + '_' + i });\n\t },\n\t\n\t fullMatchInItems: function fullMatchInItems() {\n\t for (var i = 0, len = this.props.items.length; i < len; i++) {\n\t if (this.props.items[i] === this.props.input) {\n\t return true;\n\t }\n\t }\n\t return false;\n\t },\n\t\n\t getItems: function getItems() {\n\t return {\n\t items: this.props.items.map(this.itemToTag),\n\t fullMatch: this.fullMatchInItems()\n\t };\n\t },\n\t\n\t isSelected: function isSelected(i) {\n\t return this.props.selected && (i === this.props.selectedItem || this.props.single);\n\t },\n\t\n\t getAddBtn: function getAddBtn(fullMatch, selected) {\n\t if (this.props.addNew && !fullMatch && !this.props.single) {\n\t return [this.props.items.length > 0 ? _react2['default'].createElement(\n\t 'span',\n\t { key: 'cat_or', className: 'cti__category__or' },\n\t 'or'\n\t ) : null, _react2['default'].createElement(\n\t 'button',\n\t { key: 'add_btn', className: 'cti__category__add-item' + (selected ? ' cti-selected' : ''),\n\t onClick: this.onCreateNew },\n\t 'Create new ' + (this.props.type || this.props.title) + (' \"' + this.props.input + '\"')\n\t )];\n\t }\n\t\n\t return null;\n\t },\n\t\n\t render: function render() {\n\t var _getItems = this.getItems();\n\t\n\t var items = _getItems.items;\n\t var fullMatch = _getItems.fullMatch;\n\t\n\t var addBtn = this.getAddBtn(fullMatch, (items.length === 0 || this.props.selectedItem >= items.length) && this.props.selected);\n\t\n\t return _react2['default'].createElement(\n\t 'div',\n\t { className: 'cti__category' },\n\t _react2['default'].createElement(\n\t 'h5',\n\t { className: 'cti__category__title' },\n\t this.props.title\n\t ),\n\t _react2['default'].createElement(\n\t 'div',\n\t { className: 'cti__category__tags' },\n\t items,\n\t addBtn\n\t )\n\t );\n\t }\n\t});\n\t\n\texports['default'] = Category;\n\tmodule.exports = exports['default'];\n\n/***/ },\n/* 5 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _react = __webpack_require__(1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _TagJsx = __webpack_require__(2);\n\t\n\tvar _TagJsx2 = _interopRequireDefault(_TagJsx);\n\t\n\tvar PropTypes = _react2['default'].PropTypes;\n\t\n\tvar Input = _react2['default'].createClass({\n\t displayName: 'Input',\n\t\n\t propTypes: {\n\t openPanel: PropTypes.func.isRequired,\n\t closePanel: PropTypes.func.isRequired,\n\t onValueChange: PropTypes.func.isRequired,\n\t onTagDeleted: PropTypes.func.isRequired,\n\t onKeyDown: PropTypes.func.isRequired,\n\t value: PropTypes.string.isRequired,\n\t tags: PropTypes.arrayOf(PropTypes.string).isRequired,\n\t onBlur: PropTypes.func\n\t },\n\t\n\t focusInput: function focusInput() {\n\t this.refs.input.focus();\n\t },\n\t\n\t resizeInput: function resizeInput() {\n\t var node = this.refs.input;\n\t node.style.width = node.scrollWidth + 8 + 'px';\n\t },\n\t\n\t getTags: function getTags() {\n\t var _this = this;\n\t\n\t return this.props.tags.map(function (t, i) {\n\t return _react2['default'].createElement(_TagJsx2['default'], { selected: false, input: '', text: t, addable: false,\n\t deletable: true, key: t + '_' + i,\n\t onDelete: function () {\n\t return _this.props.onTagDeleted(i);\n\t } });\n\t });\n\t },\n\t\n\t onBlur: function onBlur(e) {\n\t this.props.closePanel();\n\t if (typeof this.props.onBlur === 'function') {\n\t this.props.onBlur(e);\n\t }\n\t },\n\t\n\t render: function render() {\n\t return _react2['default'].createElement(\n\t 'div',\n\t { className: 'cti__input', onClick: this.focusInput },\n\t this.getTags(),\n\t _react2['default'].createElement('input', { type: 'text', ref: 'input', value: this.props.value,\n\t size: this.props.value.length + 2,\n\t onFocus: this.props.openPanel, onBlur: this.onBlur,\n\t onChange: this.props.onValueChange, onKeyDown: this.props.onKeyDown,\n\t className: 'cti__input__input' }),\n\t _react2['default'].createElement('div', { className: 'cti__input__arrow' })\n\t );\n\t }\n\t});\n\t\n\texports['default'] = Input;\n\tmodule.exports = exports['default'];\n\n/***/ },\n/* 6 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _react = __webpack_require__(1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _CategoryJsx = __webpack_require__(4);\n\t\n\tvar _CategoryJsx2 = _interopRequireDefault(_CategoryJsx);\n\t\n\tvar PropTypes = _react2['default'].PropTypes;\n\t\n\tvar Panel = _react2['default'].createClass({\n\t displayName: 'Panel',\n\t\n\t propTypes: {\n\t categories: PropTypes.arrayOf(PropTypes.object).isRequired,\n\t selection: PropTypes.object.isRequired,\n\t onAdd: PropTypes.func.isRequired,\n\t input: PropTypes.string.isRequired,\n\t addNew: PropTypes.bool\n\t },\n\t\n\t getCategories: function getCategories() {\n\t var _this = this;\n\t\n\t return this.props.categories.map(function (c, i) {\n\t return _react2['default'].createElement(_CategoryJsx2['default'], { key: c.id, items: c.items, category: c.id, title: c.title,\n\t selected: _this.props.selection.category === i,\n\t selectedItem: _this.props.selection.item,\n\t input: _this.props.input, addNew: _this.props.addNew,\n\t type: c.type, onAdd: _this.props.onAdd, single: c.single });\n\t });\n\t },\n\t\n\t render: function render() {\n\t return _react2['default'].createElement(\n\t 'div',\n\t { className: 'cti__panel' },\n\t this.getCategories()\n\t );\n\t }\n\t});\n\t\n\texports['default'] = Panel;\n\tmodule.exports = exports['default'];\n\n/***/ },\n/* 7 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\tvar TAB = 9;\n\texports.TAB = TAB;\n\tvar ENTER = 13;\n\texports.ENTER = ENTER;\n\tvar BACKSPACE = 8;\n\texports.BACKSPACE = BACKSPACE;\n\tvar LEFT = 37;\n\texports.LEFT = LEFT;\n\tvar UP = 38;\n\texports.UP = UP;\n\tvar RIGHT = 39;\n\texports.RIGHT = RIGHT;\n\tvar DOWN = 40;\n\texports.DOWN = DOWN;\n\tvar COMMA = 188;\n\texports.COMMA = COMMA;\n\n/***/ }\n/******/ ])\n});\n;\n\n\n/** WEBPACK FOOTER **\n ** categorized-tag-input.js\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 432c94f4b1725e9da616\n **/","import CategorizedTagInput from './CategorizedTagInput.jsx';\nexport default CategorizedTagInput;\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/index.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}\n ** module id = 1\n ** module chunks = 0\n **/","import React from 'react';\n\nconst { PropTypes } = React;\n\nconst Tag = React.createClass({\n propTypes: {\n selected: PropTypes.bool,\n input: PropTypes.string.isRequired,\n text: PropTypes.string.isRequired,\n addable: PropTypes.bool,\n deletable: PropTypes.bool,\n onAdd: PropTypes.func,\n onDelete: PropTypes.func\n },\n\n tagContent() {\n let content = [];\n let startIndex = this.props.text.trim().toLowerCase()\n .indexOf(this.props.input.trim().toLowerCase());\n let endIndex = startIndex + this.props.input.length;\n\n if (startIndex > 0) {\n content.push(<span key={1} className='cti__tag__content--regular'>\n {this.props.text.substring(0, startIndex)}\n </span>);\n }\n\n content.push(<span key={2} className='cti__tag__content--match'>\n {this.props.text.substring(startIndex, endIndex)}\n </span>);\n\n if (endIndex < this.props.text.length) {\n content.push(<span key={3} className='cti__tag__content--regular'>\n {this.props.text.substring(endIndex)}\n </span>);\n }\n\n return content;\n },\n\n onClick(e) {\n e.preventDefault();\n if (this.props.addable) {\n this.props.onAdd(e);\n }\n },\n\n onDelete(e) {\n // Prevents onClick event of the whole tag from being triggered\n e.preventDefault();\n e.stopPropagation();\n this.props.onDelete(e);\n },\n\n getDeleteBtn() {\n return (\n <span className='cti__tag__delete' onClick={this.onDelete}\n dangerouslySetInnerHTML={{ __html: '×' }} />\n );\n },\n\n render() {\n let deleteBtn = null;\n if (this.props.deletable) {\n deleteBtn = this.getDeleteBtn();\n }\n let cls = 'cti__tag' + (this.props.selected ? ' cti-selected' : '');\n\n return (\n <div className={cls} onClick={this.onClick}>\n <div className='cti__tag__content'>\n {this.tagContent()}\n </div>\n {deleteBtn}\n </div>\n );\n }\n});\n\nexport default Tag;\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/Tag.jsx\n **/","import React from 'react';\n\nimport Input from './Input.jsx';\nimport Panel from './Panel.jsx';\nimport * as key from './keyboard';\n\nconst { PropTypes } = React;\n\nexport function isCategoryItemValid(i) {\n return typeof i === 'string' && i.trim().length > 0;\n}\n\nexport function isCategoryValid(c) {\n return typeof c === 'object'\n && c.id\n && c.title\n && c.items\n && Array.isArray(c.items)\n && c.items.every(isCategoryItemValid)\n && (c.type || c.single);\n}\n\nconst CategorizedTagInput = React.createClass({\n propTypes: {\n addNew: PropTypes.bool,\n categories: PropTypes.arrayOf(PropTypes.object).isRequired,\n transformTag: PropTypes.func,\n value: PropTypes.arrayOf(PropTypes.string),\n onBlur: PropTypes.func,\n onChange: PropTypes.func\n },\n\n getInitialState() {\n return {\n value: '',\n selection: {\n item: 0,\n category: 0\n },\n panelOpened: false,\n tags: this.props.value || [],\n categories: [],\n addNew: this.props.addNew === undefined ? true : this.props.addNew\n };\n },\n\n componentWillMount() {\n if (!this.props.categories.every(isCategoryValid)) {\n throw new Error('invalid categories source provided for react-categorized-tag-input');\n }\n },\n\n filterCategories(input) {\n let categories = this.props.categories.map(c => {\n c = Object.assign({}, c, {\n items: c.items.filter(this.filterItems(input))\n });\n return (c.items.length === 0 && (!this.state.addNew || c.single)) ? null : c;\n }).filter(c => c !== null);\n\n let selection = this.state.selection;\n if (this.state.selection.category >= categories.length) {\n selection = {\n category: 0,\n item: 0\n };\n } else {\n if (selection.item >= categories[selection.category].items.length) {\n selection.item = 0;\n }\n }\n\n this.setState({\n categories,\n selection\n });\n },\n\n filterItems(input) {\n return function (i) {\n if (input.length === 1) {\n return i.toLowerCase().trim() === input;\n }\n return i.toLowerCase().indexOf(input.trim().toLowerCase()) >= 0;\n };\n },\n\n openPanel() {\n this.setState({ panelOpened: true });\n },\n\n closePanel() {\n // Prevent the panel from hiding before the click action takes place\n setTimeout(() => {\n this.setState({ panelOpened: false });\n }, 150);\n },\n\n onValueChange(e) {\n let value = e.target.value;\n this.setState({ value, panelOpened: value.trim().length > 0 || !isNaN(Number(value.trim())) });\n this.filterCategories(value);\n },\n\n onTagDeleted(i) {\n let newTags = this.state.tags.slice(0, i)\n .concat(this.state.tags.slice(i+1));\n this.setState({\n tags: newTags\n });\n\n if (typeof this.props.onChange === 'function') {\n this.props.onChange(newTags);\n }\n },\n\n onAdd(newTag) {\n let { category, item } = newTag;\n if (typeof this.props.transformTag === 'function') {\n item = this.props.transformTag(category, item);\n }\n\n let newTags = this.state.tags.concat([item]);\n this.setState({\n tags: newTags,\n value: '',\n panelOpened: true\n });\n\n this.refs.input.focusInput();\n if (typeof this.props.onChange === 'function') {\n this.props.onChange(newTags);\n }\n },\n\n addSelectedTag() {\n let category = this.state.categories[this.state.selection.category];\n let item = category.items[this.state.selection.item];\n this.onAdd({\n category: category.id,\n item: item || this.state.value\n });\n },\n\n handleBackspace(e) {\n if (this.state.value.trim().length === 0) {\n e.preventDefault();\n this.onTagDeleted(this.state.tags.length - 1);\n }\n },\n\n handleArrowLeft() {\n let result = this.state.selection.item - 1;\n this.setState({selection: {\n category: this.state.selection.category,\n item: result >= 0 ? result : 0\n }});\n },\n\n handleArrowUp() {\n let result = this.state.selection.category - 1;\n this.setState({selection: {\n category: result >= 0 ? result : 0,\n item: 0\n }});\n },\n\n handleArrowRight() {\n let result = this.state.selection.item + 1;\n let cat = this.state.categories[this.state.selection.category];\n this.setState({selection: {\n category: this.state.selection.category,\n item: result <= cat.items.length ? result : cat.items.length\n }});\n },\n\n handleArrowDown() {\n let result = this.state.selection.category + 1;\n let cats = this.state.categories;\n this.setState({selection: {\n category: result < cats.length ? result : cats.length - 1,\n item: 0\n }});\n },\n\n onKeyDown(e) {\n let result;\n switch (e.keyCode) {\n case key.TAB:\n case key.ENTER:\n case key.COMMA:\n e.preventDefault();\n this.addSelectedTag();\n break;\n case key.BACKSPACE:\n this.handleBackspace(e);\n break;\n case key.LEFT:\n this.handleArrowLeft();\n break;\n case key.UP:\n this.handleArrowUp();\n break;\n case key.RIGHT:\n this.handleArrowRight();\n break;\n case key.DOWN:\n this.handleArrowDown();\n break;\n }\n },\n\n value() {\n return this.state.tags;\n },\n\n render() {\n return (\n <div className='cti__root'>\n <Input openPanel={this.openPanel} closePanel={this.closePanel}\n onValueChange={this.onValueChange} onTagDeleted={this.onTagDeleted}\n onKeyDown={this.onKeyDown} value={this.state.value}\n tags={this.state.tags} onBlur={this.props.onBlur} ref='input' />\n {this.state.panelOpened && this.state.value.length > 0 ? <Panel categories={this.state.categories}\n selection={this.state.selection} onAdd={this.onAdd}\n input={this.state.value}\n addNew={this.props.addNew === undefined ? true : this.props.addNew} /> : ''}\n </div>\n );\n }\n});\n\nexport default CategorizedTagInput;\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/CategorizedTagInput.jsx\n **/","import React from 'react';\n\nimport Tag from './Tag.jsx';\n\nconst { PropTypes } = React;\n\nconst Category = React.createClass({\n propTypes: {\n items: PropTypes.array.isRequired,\n category: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number\n ]).isRequired,\n title: PropTypes.string.isRequired,\n selected: PropTypes.bool.isRequired,\n selectedItem: PropTypes.number.isRequired,\n input: PropTypes.string.isRequired,\n addNew: PropTypes.bool,\n type: PropTypes.string,\n onAdd: PropTypes.func.isRequired,\n single: PropTypes.bool\n },\n\n onAdd(item) {\n return () => {\n this.props.onAdd({\n category: this.props.category,\n item: item\n });\n };\n },\n\n onCreateNew(e) {\n e.preventDefault();\n this.onAdd(this.props.input)();\n },\n\n itemToTag(item, i) {\n return (\n <Tag selected={this.isSelected(i)}\n input={this.props.input} text={item} addable={true} deletable={false}\n onAdd={this.onAdd(item)} key={item + '_' + i} />\n );\n },\n\n fullMatchInItems() {\n for (let i = 0, len = this.props.items.length; i < len; i++) {\n if (this.props.items[i] === this.props.input) {\n return true;\n }\n }\n return false;\n },\n\n getItems() {\n return {\n items: this.props.items.map(this.itemToTag),\n fullMatch: this.fullMatchInItems(),\n };\n },\n\n isSelected(i) {\n return this.props.selected &&\n (i === this.props.selectedItem || this.props.single);\n },\n\n getAddBtn(fullMatch, selected) {\n if (this.props.addNew && !fullMatch && !this.props.single) {\n return [\n this.props.items.length > 0 ?\n <span key='cat_or' className='cti__category__or'>or</span> :\n null,\n <button key='add_btn' className={'cti__category__add-item' + (selected ? ' cti-selected' : '')}\n onClick={this.onCreateNew}>\n {'Create new ' + (this.props.type || this.props.title) + ` \"${this.props.input}\"`}\n </button>\n ];\n }\n\n return null;\n },\n\n render() {\n let { items, fullMatch } = this.getItems();\n let addBtn = this.getAddBtn(\n fullMatch,\n (items.length === 0 || this.props.selectedItem >= items.length) &&\n this.props.selected\n );\n\n return (\n <div className='cti__category'>\n <h5 className='cti__category__title'>{this.props.title}</h5>\n <div className='cti__category__tags'>\n {items}\n {addBtn}\n </div>\n </div>\n );\n }\n});\n\nexport default Category;\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/Category.jsx\n **/","import React from 'react';\n\nimport Tag from './Tag.jsx';\n\nconst { PropTypes } = React;\n\nconst Input = React.createClass({\n propTypes: {\n openPanel: PropTypes.func.isRequired,\n closePanel: PropTypes.func.isRequired,\n onValueChange: PropTypes.func.isRequired,\n onTagDeleted: PropTypes.func.isRequired,\n onKeyDown: PropTypes.func.isRequired,\n value: PropTypes.string.isRequired,\n tags: PropTypes.arrayOf(PropTypes.string).isRequired,\n onBlur: PropTypes.func,\n },\n\n focusInput() {\n this.refs.input.focus();\n },\n\n resizeInput() {\n let node = this.refs.input;\n node.style.width = (node.scrollWidth + 8) + 'px';\n },\n\n getTags() {\n return this.props.tags.map((t, i) => {\n return (\n <Tag selected={false} input='' text={t} addable={false}\n deletable={true} key={t + '_' + i}\n onDelete={() => this.props.onTagDeleted(i)} />\n );\n });\n },\n\n onBlur(e) {\n this.props.closePanel();\n if (typeof this.props.onBlur === 'function') {\n this.props.onBlur(e);\n }\n },\n\n render() {\n return (\n <div className='cti__input' onClick={this.focusInput}>\n {this.getTags()}\n <input type='text' ref='input' value={this.props.value}\n size={this.props.value.length + 2}\n onFocus={this.props.openPanel} onBlur={this.onBlur}\n onChange={this.props.onValueChange} onKeyDown={this.props.onKeyDown}\n className='cti__input__input' />\n <div className='cti__input__arrow' />\n </div>\n );\n }\n});\n\nexport default Input;\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/Input.jsx\n **/","import React from 'react';\n\nimport Category from './Category.jsx';\n\nconst { PropTypes } = React;\n\nconst Panel = React.createClass({\n propTypes: {\n categories: PropTypes.arrayOf(PropTypes.object).isRequired,\n selection: PropTypes.object.isRequired,\n onAdd: PropTypes.func.isRequired,\n input: PropTypes.string.isRequired,\n addNew: PropTypes.bool,\n },\n\n getCategories() {\n return this.props.categories.map((c, i) => {\n return (\n <Category key={c.id} items={c.items} category={c.id} title={c.title}\n selected={this.props.selection.category === i}\n selectedItem={this.props.selection.item}\n input={this.props.input} addNew={this.props.addNew}\n type={c.type} onAdd={this.props.onAdd} single={c.single} />\n );\n });\n },\n\n render() {\n return (\n <div className='cti__panel'>\n {this.getCategories()}\n </div>\n );\n }\n});\n\nexport default Panel;\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/Panel.jsx\n **/","export var TAB = 9;\nexport var ENTER = 13;\nexport var BACKSPACE = 8;\nexport var LEFT = 37;\nexport var UP = 38;\nexport var RIGHT = 39;\nexport var DOWN = 40;\nexport var COMMA = 188;\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/keyboard.js\n **/"],"sourceRoot":""}