/* * Copyright 2007-2017 Charles du Jeu - Abstrium SAS * This file is part of Pydio. * * Pydio is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Pydio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with Pydio. If not, see . * * The latest code can be found at . */ 'use strict'; exports.__esModule = true; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var _mixinsFormMixin = require('../mixins/FormMixin'); var _mixinsFormMixin2 = _interopRequireDefault(_mixinsFormMixin); var _mixinsFieldWithChoices = require('../mixins/FieldWithChoices'); var _mixinsFieldWithChoices2 = _interopRequireDefault(_mixinsFieldWithChoices); var React = require('react'); var _require = require('material-ui'); var AutoComplete = _require.AutoComplete; var MenuItem = _require.MenuItem; var RefreshIndicator = _require.RefreshIndicator; var AutocompleteBox = React.createClass({ displayName: 'AutocompleteBox', mixins: [_mixinsFormMixin2['default']], handleUpdateInput: function handleUpdateInput(searchText) { //this.setState({searchText: searchText}); }, handleNewRequest: function handleNewRequest(chosenValue) { this.onChange(null, chosenValue.key); }, render: function render() { var choices = this.props.choices; var dataSource = []; var labels = {}; choices.forEach(function (choice, key) { dataSource.push({ key: key, text: choice, value: React.createElement( MenuItem, null, choice ) }); labels[key] = choice; }); var displayText = this.state.value; if (labels && labels[displayText]) { displayText = labels[displayText]; } return React.createElement( 'div', { className: 'pydioform_autocomplete', style: { position: 'relative' } }, !dataSource.length && React.createElement(RefreshIndicator, { size: 30, right: 10, top: 0, status: 'loading' }), dataSource.length && React.createElement(AutoComplete, { fullWidth: true, searchText: displayText, onUpdateInput: this.handleUpdateInput, onNewRequest: this.handleNewRequest, dataSource: dataSource, floatingLabelText: this.props.attributes['label'], filter: function (searchText, key) { return key.toLowerCase().indexOf(searchText.toLowerCase()) === 0; }, openOnFocus: true, menuProps: { maxHeight: 200 } }) ); } }); exports['default'] = AutocompleteBox = _mixinsFieldWithChoices2['default'](AutocompleteBox); exports['default'] = AutocompleteBox; module.exports = exports['default'];