diff --git a/package.json b/package.json index f0c42b0..43c7ca3 100644 --- a/package.json +++ b/package.json @@ -34,26 +34,29 @@ "pump": "^3.0.x" }, "devDependencies": { - "angular": "^1.7.5", + "angular": "1.7.5", "angular-route": "^1.7.5", - "angular-sanitize": "^1.7.5", - "bootstrap": "^4.1.3", - "font-awesome": "^4.7.0", - "gulp": "^3.9.1", - "gulp-angular-templatecache": "^2.2.2", - "gulp-clean": "^0.4.0", - "gulp-concat": "^2.6.1", - "gulp-connect": "^5.6.1", - "gulp-htmlmin": "^5.0.1", - "gulp-jshint": "^2.1.0", - "gulp-rename": "^1.4.0", - "gulp-replace": "^1.0.0", - "gulp-sass": "^4.0.2", - "gulp-uglify-es": "^1.0.4", - "jasmine-core": "^3.2.1", - "jquery": "^3.3.1", - "jshint": "^2.9.6", - "pre-commit": "^1.2.2", - "pump": "^3.0.0" + "angular-sanitize": "1.7.5", + "bootstrap": "4.1.3", + "font-awesome": "4.7.0", + "gulp": "3.9.1", + "gulp-angular-templatecache": "2.2.5", + "gulp-clean": "0.4.0", + "gulp-concat": "2.6.1", + "gulp-connect": "5.6.1", + "gulp-htmlmin": "5.0.1", + "gulp-jshint": "2.1.0", + "gulp-rename": "1.4.0", + "gulp-replace": "1.0.0", + "gulp-sass": "4.0.2", + "gulp-uglify-es": "1.0.4", + "jasmine-core": "3.3.0", + "jquery": "3.3.1", + "jshint": "2.9.6", + "pre-commit": "1.2.2", + "pump": "3.0.0" + }, + "dependencies": { + "angular-on-screen-keyboard": "git+https://github.com/ericf97/angular-on-screen-keyboard.git" } } diff --git a/src/js/angular-on-screen-keyboard-directive.js b/src/js/angular-on-screen-keyboard-directive.js index ac75f39..f4b110e 100644 --- a/src/js/angular-on-screen-keyboard-directive.js +++ b/src/js/angular-on-screen-keyboard-directive.js @@ -84,6 +84,9 @@ angular.module('onScreenKeyboard', ['ngSanitize']) } else if (key.type === 'shift') { ctrl.isUpperCase = !ctrl.isUpperCase; return; + } else if (key.type === 'enter'){ + ctrl.pressEnterKey(); + return; } var htmlKeyVal = angular.element(event.target || event.srcElement).text(); @@ -171,6 +174,42 @@ angular.module('onScreenKeyboard', ['ngSanitize']) } }; + ctrl.pressEnterKey = function () { + + $timeout(function () { + if (angular.element(':focus').length > 0) { + + let el = angular.element(':focus')[0], + down = new KeyboardEvent('keydown', + { + which: 13, + keyCode: 13, + bubbles: true, + cancelable: true, + }), + press = new KeyboardEvent('keypress', + { + which: 13, + keyCode: 13, + bubbles: true, + cancelable: true, + }), + up = new KeyboardEvent('keyup', + { + which: 13, + keyCode: 13, + bubbles: true, + cancelable: true, + }); + + el.dispatchEvent(down); + el.dispatchEvent(press); + el.dispatchEvent(up); + } + }); + + }; + var focusin = function(event) { var e = event.target || event.srcElement; diff --git a/src/js/controller.js b/src/js/controller.js index a6dedb9..df87664 100644 --- a/src/js/controller.js +++ b/src/js/controller.js @@ -11,7 +11,8 @@ angular.module('focaTeclado') ], [ {type: 'margin', colspan: 1}, - {type: 'button', colspan: 6, text: ' '} + {type: 'button', colspan: 6, text: ' '}, + {type: 'enter', colspan: 3, text: 'Enter'} ] ];