UNPKG

elliptical

Version:

Interactive natural-language interfaces

38 lines (27 loc) 988 B
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _element = require('../element'); var _element2 = _interopRequireDefault(_element); var _utils = require('../utils'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** @jsx createElement */ function describe(_ref) { let props = _ref.props; return (0, _element2.default)('raw', { func: option => filterInput(option.text, props), limit: props.limit }); } function* filterInput(input, props) { for (let substring of (0, _utils.substrings)(input || '', props)) { if (!props.filter || props.filter(substring)) { const score = props.greedy ? 0.1 + (1 - 1 / substring.length) : 0.1 + 1 / substring.length; yield { words: [{ text: substring, input: true }], result: substring, remaining: input.substring(substring.length), score: score }; } } } exports.default = { describe: describe };