UNPKG

patternplate-client

Version:

Universal javascript client application for patternplate

84 lines (58 loc) 7.1 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _slicedToArray2 = require('babel-runtime/helpers/slicedToArray'); var _slicedToArray3 = _interopRequireDefault(_slicedToArray2); var _fuse = require('fuse.js'); var _fuse2 = _interopRequireDefault(_fuse); var _helpers = require('./helpers'); var helpers = _interopRequireWildcard(_helpers); var _handleDependentActions = require('../../actions/handle-dependent-actions'); var _handleDependentActions2 = _interopRequireDefault(_handleDependentActions); function _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; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var defaultValue = []; var dependencies = ['expanded', 'navigation']; var searchMatchReducer = (0, _handleDependentActions2.default)({ '@@router/LOCATION_CHANGE': locationChangeHandler }, { defaultValue: defaultValue, dependencies: dependencies }); exports.default = searchMatchReducer; function locationChangeHandler(state, action, dependencies) { var navigation = dependencies.navigation, expanded = dependencies.expanded; var _action$payload$query = action.payload.query.search, search = _action$payload$query === undefined ? '' : _action$payload$query; if (!expanded) { return navigation; } // Check for a matching folder first // e.g. atoms/ => atoms /* const folder = helpers.searchFolder(search, navigation, {expanded: true}); if (folder) { return folder; } */ var stems = helpers.createStems(search); var tokens = helpers.createTokens(search); var patterns = helpers.getPatterns(navigation, tokens); var ids = stems.length > 0 ? createFuse(patterns, stems).search(stems.join(' ')) : patterns.map(function (pattern) { return pattern.id; }); // Boil down to single pattern if a fully qualified id has been entered var _ids$filter = ids.filter(function (id) { return id === search; }), _ids$filter2 = (0, _slicedToArray3.default)(_ids$filter, 1), direct = _ids$filter2[0]; var matches = direct ? [direct] : ids; return helpers.filterPatterns(navigation, matches); } function createFuse(patterns) { return new _fuse2.default(patterns, { id: 'id', threshold: 0.3, keys: ['id', 'manifest.name', 'manifest.displayName', 'manifest.tags', 'manifest.flag'] }); } module.exports = exports['default']; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NvdXJjZS9hcHBsaWNhdGlvbi9yZWR1Y2Vycy9zZWFyY2gtbWF0Y2hlcy9pbmRleC5qcyJdLCJuYW1lcyI6WyJoZWxwZXJzIiwiZGVmYXVsdFZhbHVlIiwiZGVwZW5kZW5jaWVzIiwic2VhcmNoTWF0Y2hSZWR1Y2VyIiwibG9jYXRpb25DaGFuZ2VIYW5kbGVyIiwic3RhdGUiLCJhY3Rpb24iLCJuYXZpZ2F0aW9uIiwiZXhwYW5kZWQiLCJwYXlsb2FkIiwicXVlcnkiLCJzZWFyY2giLCJzdGVtcyIsImNyZWF0ZVN0ZW1zIiwidG9rZW5zIiwiY3JlYXRlVG9rZW5zIiwicGF0dGVybnMiLCJnZXRQYXR0ZXJucyIsImlkcyIsImxlbmd0aCIsImNyZWF0ZUZ1c2UiLCJqb2luIiwibWFwIiwicGF0dGVybiIsImlkIiwiZmlsdGVyIiwiZGlyZWN0IiwibWF0Y2hlcyIsImZpbHRlclBhdHRlcm5zIiwidGhyZXNob2xkIiwia2V5cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBOzs7O0FBRUE7O0lBQVlBLE87O0FBQ1o7Ozs7Ozs7O0FBRUEsSUFBTUMsZUFBZSxFQUFyQjtBQUNBLElBQU1DLGVBQWUsQ0FBQyxVQUFELEVBQWEsWUFBYixDQUFyQjs7QUFFQSxJQUFNQyxxQkFBcUIsc0NBQXVCO0FBQ2pELDZCQUE0QkM7QUFEcUIsQ0FBdkIsRUFFeEIsRUFBQ0gsMEJBQUQsRUFBZUMsMEJBQWYsRUFGd0IsQ0FBM0I7O2tCQUllQyxrQjs7O0FBRWYsU0FBU0MscUJBQVQsQ0FBK0JDLEtBQS9CLEVBQXNDQyxNQUF0QyxFQUE4Q0osWUFBOUMsRUFBNEQ7QUFBQSxLQUNwREssVUFEb0QsR0FDNUJMLFlBRDRCLENBQ3BESyxVQURvRDtBQUFBLEtBQ3hDQyxRQUR3QyxHQUM1Qk4sWUFENEIsQ0FDeENNLFFBRHdDO0FBQUEsNkJBRXJDRixPQUFPRyxPQUFQLENBQWVDLEtBRnNCLENBRXBEQyxNQUZvRDtBQUFBLEtBRXBEQSxNQUZvRCx5Q0FFM0MsRUFGMkM7OztBQUkzRCxLQUFJLENBQUNILFFBQUwsRUFBZTtBQUNkLFNBQU9ELFVBQVA7QUFDQTs7QUFFRDtBQUNBO0FBQ0E7Ozs7O0FBTUEsS0FBTUssUUFBUVosUUFBUWEsV0FBUixDQUFvQkYsTUFBcEIsQ0FBZDtBQUNBLEtBQU1HLFNBQVNkLFFBQVFlLFlBQVIsQ0FBcUJKLE1BQXJCLENBQWY7QUFDQSxLQUFNSyxXQUFXaEIsUUFBUWlCLFdBQVIsQ0FBb0JWLFVBQXBCLEVBQWdDTyxNQUFoQyxDQUFqQjs7QUFFQSxLQUFNSSxNQUFNTixNQUFNTyxNQUFOLEdBQWUsQ0FBZixHQUNYQyxXQUFXSixRQUFYLEVBQXFCSixLQUFyQixFQUE0QkQsTUFBNUIsQ0FBbUNDLE1BQU1TLElBQU4sQ0FBVyxHQUFYLENBQW5DLENBRFcsR0FFWEwsU0FBU00sR0FBVCxDQUFhO0FBQUEsU0FBV0MsUUFBUUMsRUFBbkI7QUFBQSxFQUFiLENBRkQ7O0FBSUE7O0FBeEIyRCxtQkF5QjFDTixJQUFJTyxNQUFKLENBQVc7QUFBQSxTQUFNRCxPQUFPYixNQUFiO0FBQUEsRUFBWCxDQXpCMEM7QUFBQTtBQUFBLEtBeUJwRGUsTUF6Qm9EOztBQTBCM0QsS0FBTUMsVUFBVUQsU0FBUyxDQUFDQSxNQUFELENBQVQsR0FBb0JSLEdBQXBDOztBQUVBLFFBQU9sQixRQUFRNEIsY0FBUixDQUF1QnJCLFVBQXZCLEVBQW1Db0IsT0FBbkMsQ0FBUDtBQUNBOztBQUVELFNBQVNQLFVBQVQsQ0FBb0JKLFFBQXBCLEVBQThCO0FBQzdCLFFBQU8sbUJBQVNBLFFBQVQsRUFBbUI7QUFDekJRLE1BQUksSUFEcUI7QUFFekJLLGFBQVcsR0FGYztBQUd6QkMsUUFBTSxDQUNMLElBREssRUFFTCxlQUZLLEVBR0wsc0JBSEssRUFJTCxlQUpLLEVBS0wsZUFMSztBQUhtQixFQUFuQixDQUFQO0FBV0EiLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRnVzZSBmcm9tICdmdXNlLmpzJztcblxuaW1wb3J0ICogYXMgaGVscGVycyBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IGhhbmRsZURlcGVuZGVudEFjdGlvbnMgZnJvbSAnLi4vLi4vYWN0aW9ucy9oYW5kbGUtZGVwZW5kZW50LWFjdGlvbnMnO1xuXG5jb25zdCBkZWZhdWx0VmFsdWUgPSBbXTtcbmNvbnN0IGRlcGVuZGVuY2llcyA9IFsnZXhwYW5kZWQnLCAnbmF2aWdhdGlvbiddO1xuXG5jb25zdCBzZWFyY2hNYXRjaFJlZHVjZXIgPSBoYW5kbGVEZXBlbmRlbnRBY3Rpb25zKHtcblx0J0BAcm91dGVyL0xPQ0FUSU9OX0NIQU5HRSc6IGxvY2F0aW9uQ2hhbmdlSGFuZGxlclxufSwge2RlZmF1bHRWYWx1ZSwgZGVwZW5kZW5jaWVzfSk7XG5cbmV4cG9ydCBkZWZhdWx0IHNlYXJjaE1hdGNoUmVkdWNlcjtcblxuZnVuY3Rpb24gbG9jYXRpb25DaGFuZ2VIYW5kbGVyKHN0YXRlLCBhY3Rpb24sIGRlcGVuZGVuY2llcykge1xuXHRjb25zdCB7bmF2aWdhdGlvbiwgZXhwYW5kZWR9ID0gZGVwZW5kZW5jaWVzO1xuXHRjb25zdCB7c2VhcmNoID0gJyd9ID0gYWN0aW9uLnBheWxvYWQucXVlcnk7XG5cblx0aWYgKCFleHBhbmRlZCkge1xuXHRcdHJldHVybiBuYXZpZ2F0aW9uO1xuXHR9XG5cblx0Ly8gQ2hlY2sgZm9yIGEgbWF0Y2hpbmcgZm9sZGVyIGZpcnN0XG5cdC8vIGUuZy4gYXRvbXMvID0+IGF0b21zXG5cdC8qIGNvbnN0IGZvbGRlciA9IGhlbHBlcnMuc2VhcmNoRm9sZGVyKHNlYXJjaCwgbmF2aWdhdGlvbiwge2V4cGFuZGVkOiB0cnVlfSk7XG5cblx0aWYgKGZvbGRlcikge1xuXHRcdHJldHVybiBmb2xkZXI7XG5cdH0gKi9cblxuXHRjb25zdCBzdGVtcyA9IGhlbHBlcnMuY3JlYXRlU3RlbXMoc2VhcmNoKTtcblx0Y29uc3QgdG9rZW5zID0gaGVscGVycy5jcmVhdGVUb2tlbnMoc2VhcmNoKTtcblx0Y29uc3QgcGF0dGVybnMgPSBoZWxwZXJzLmdldFBhdHRlcm5zKG5hdmlnYXRpb24sIHRva2Vucyk7XG5cblx0Y29uc3QgaWRzID0gc3RlbXMubGVuZ3RoID4gMCA/XG5cdFx0Y3JlYXRlRnVzZShwYXR0ZXJucywgc3RlbXMpLnNlYXJjaChzdGVtcy5qb2luKCcgJykpIDpcblx0XHRwYXR0ZXJucy5tYXAocGF0dGVybiA9PiBwYXR0ZXJuLmlkKTtcblxuXHQvLyBCb2lsIGRvd24gdG8gc2luZ2xlIHBhdHRlcm4gaWYgYSBmdWxseSBxdWFsaWZpZWQgaWQgaGFzIGJlZW4gZW50ZXJlZFxuXHRjb25zdCBbZGlyZWN0XSA9IGlkcy5maWx0ZXIoaWQgPT4gaWQgPT09IHNlYXJjaCk7XG5cdGNvbnN0IG1hdGNoZXMgPSBkaXJlY3QgPyBbZGlyZWN0XSA6IGlkcztcblxuXHRyZXR1cm4gaGVscGVycy5maWx0ZXJQYXR0ZXJucyhuYXZpZ2F0aW9uLCBtYXRjaGVzKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlRnVzZShwYXR0ZXJucykge1xuXHRyZXR1cm4gbmV3IEZ1c2UocGF0dGVybnMsIHtcblx0XHRpZDogJ2lkJyxcblx0XHR0aHJlc2hvbGQ6IDAuMyxcblx0XHRrZXlzOiBbXG5cdFx0XHQnaWQnLFxuXHRcdFx0J21hbmlmZXN0Lm5hbWUnLFxuXHRcdFx0J21hbmlmZXN0LmRpc3BsYXlOYW1lJyxcblx0XHRcdCdtYW5pZmVzdC50YWdzJyxcblx0XHRcdCdtYW5pZmVzdC5mbGFnJ1xuXHRcdF1cblx0fSk7XG59XG4iXX0=