UNPKG

elliptical

Version:

Interactive natural-language interfaces

112 lines (83 loc) 2.89 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _regenerator = require('babel-runtime/regenerator'); var _regenerator2 = _interopRequireDefault(_regenerator); var _element = require('../element'); var _element2 = _interopRequireDefault(_element); var _utils = require('../utils'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var _marked = [filterInput].map(_regenerator2.default.mark); /** @jsx createElement */ function describe(_ref) { var props = _ref.props; return (0, _element2.default)('raw', { func: function func(option) { return filterInput(option.text, props); }, limit: props.limit }); } function filterInput(input, props) { var _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, substring, score; return _regenerator2.default.wrap(function filterInput$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _iteratorNormalCompletion = true; _didIteratorError = false; _iteratorError = undefined; _context.prev = 3; _iterator = (0, _utils.substrings)(input || '', props)[Symbol.iterator](); case 5: if (_iteratorNormalCompletion = (_step = _iterator.next()).done) { _context.next = 14; break; } substring = _step.value; if (!(!props.filter || props.filter(substring))) { _context.next = 11; break; } score = props.greedy ? 0.1 + (1 - 1 / substring.length) : 0.1 + 1 / substring.length; _context.next = 11; return { words: [{ text: substring, input: true }], result: substring, remaining: input.substring(substring.length), score: score }; case 11: _iteratorNormalCompletion = true; _context.next = 5; break; case 14: _context.next = 20; break; case 16: _context.prev = 16; _context.t0 = _context['catch'](3); _didIteratorError = true; _iteratorError = _context.t0; case 20: _context.prev = 20; _context.prev = 21; if (!_iteratorNormalCompletion && _iterator.return) { _iterator.return(); } case 23: _context.prev = 23; if (!_didIteratorError) { _context.next = 26; break; } throw _iteratorError; case 26: return _context.finish(23); case 27: return _context.finish(20); case 28: case 'end': return _context.stop(); } } }, _marked[0], this, [[3, 16, 20, 28], [21,, 23, 27]]); } exports.default = { describe: describe };