/* eslint-disable max-len, no-return-assign, */ // TODO: This file was created by bulk-decaffeinate. // Fix any style issues and re-enable lint. /* * decaffeinate suggestions: * DS102: Remove unnecessary code created because of implicit returns * DS207: Consider shorter variations of null checks * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md */ import App from '../base' const inputSuggestionsController = function($scope, $element, $attrs, Keys) { const ctrl = this ctrl.showHint = false ctrl.hasFocus = false ctrl.handleFocus = function() { ctrl.hasFocus = true return (ctrl.suggestion = null) } ctrl.handleBlur = function() { ctrl.showHint = false ctrl.hasFocus = false ctrl.suggestion = null return ctrl.onBlur() } ctrl.handleKeyDown = function($event) { if ( ($event.which === Keys.TAB || $event.which === Keys.ENTER) && ctrl.suggestion != null && ctrl.suggestion !== '' ) { $event.preventDefault() ctrl.localNgModel += ctrl.suggestion } ctrl.suggestion = null return (ctrl.showHint = false) } $scope.$watch('$ctrl.localNgModel', function(newVal, oldVal) { if (ctrl.hasFocus && newVal !== oldVal) { ctrl.suggestion = null ctrl.showHint = false return ctrl .getSuggestion({ userInput: newVal }) .then(function(suggestion) { if (suggestion != null && newVal === ctrl.localNgModel) { ctrl.showHint = true return (ctrl.suggestion = suggestion.replace(newVal, '')) } }) .catch(() => (ctrl.suggestion = null)) } }) } export default App.component('inputSuggestions', { bindings: { localNgModel: '=ngModel', localNgModelOptions: '=?ngModelOptions', getSuggestion: '&', onBlur: '&?', inputId: '@?', inputName: '@?', inputPlaceholder: '@?', inputType: '@?', inputRequired: '=?' }, controller: inputSuggestionsController, template: [ '