Socket
Socket
Sign inDemoInstall

angular-virtual-keyboard

Package Overview
Dependencies
0
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.4.1 to 0.4.2

6

bower.json
{
"name": "angular-virtual-keyboard",
"version": "0.4.1",
"version": "0.4.2",
"homepage": "https://github.com/the-darc/angular-virtual-keyboard",
"authors": [
"the-darc <darc.tec@gmail.com>"
],
"author": "the-darc <darc.tec@gmail.com>",
"description": "An AngularJs Virtual Keyboard Interface based on GreyWyvern VKI",

@@ -9,0 +7,0 @@ "main": "release/angular-virtual-keyboard.min.js",

@@ -0,1 +1,12 @@

<a name"0.4.2"></a>
### 0.4.2 (2015-07-21)
#### Bug Fixes
* **VKI_CONFIG:** exposes sizeAdj configuration (issue #13) ([37e5230f](https://github.com/the-darc/angular-virtual-keyboard/commit/37e5230f))
* **auto-close:** auto-close others VKIs when a new one is focused (issue #10) ([8bf63d74](https://github.com/the-darc/angular-virtual-keyboard/commit/8bf63d74))
* **focus:** keep input focus when keyboard buttons (like shift, alt, caps, and others..) are ([f3b4f3c0](https://github.com/the-darc/angular-virtual-keyboard/commit/f3b4f3c0))
<a name"0.4.1"></a>

@@ -2,0 +13,0 @@ ### 0.4.1 (2015-05-11)

@@ -28,3 +28,3 @@ var gulp = require('gulp'),

' * @version v<%= pkg.version %>',
' * @author <%= pkg.authors[0]%>',
' * @author <%= pkg.author %>',
' * @link <%= pkg.homepage %>',

@@ -31,0 +31,0 @@ ' * @license <%= pkg.license %>',

{
"name": "angular-virtual-keyboard",
"version": "0.4.1",
"version": "0.4.2",
"description": "",

@@ -5,0 +5,0 @@ "main": "index.js",

@@ -39,7 +39,8 @@ [![Bower version](https://badge.fury.io/bo/angular-virtual-keyboard.svg)](http://badge.fury.io/bo/angular-virtual-keyboard)

- __Keyboard layouts configurations__ ``VKI_CONFIG.layout``: Array of Keyboard Layout configurations. See [vki-layouts.js](https://github.com/the-darc/angular-virtual-keyboard/blob/master/src/vki-layouts.js) for keyboard layout configuration examples.
- __Keyboard layouts configurations__ ``VKI_CONFIG.layout`` Array of Keyboard Layout configurations. See [vki-layouts.js](https://github.com/the-darc/angular-virtual-keyboard/blob/master/src/vki-layouts.js) for keyboard layout configuration examples.
- __Deadkeys configurations__ ``VKI_CONFIG.deadkey`` Array of Deadkeys configurations. See [vki-deadkeys.js](https://github.com/the-darc/angular-virtual-keyboard/blob/master/src/vki-deadkeys.js) for deadkeys configuration examples.
- __Default keyboard layout__ ``VKI_CONFIG.kt`` Name of the layout configuration to be used as default (if no specific layout configuration is provided in the directive instance configuration). _Default: 'US International'_
- __Relative position__ ``VKI_CONFIG.relative``: ``true`` to position the keyboard next to the input, ``false`` to place in the bottom of page. _Default: ``true``_
- __i18n configuration__ ``VKI_CONFIG.i18n``: An array to replace the default labels of the keyboard interface. See example below:
- __Relative position__ ``VKI_CONFIG.relative`` Use ``true`` to position the keyboard next to the input, ``false`` to place in the bottom of page. _Default: ``true``_
- __Adjust keyboard size__ ``VKI_CONFIG.sizeAdj`` Allow user to adjust keyboard size. _Default: ``true``_
- __i18n configuration__ ``VKI_CONFIG.i18n`` An array to replace the default labels of the keyboard interface. See example below:
```javascript

@@ -71,7 +72,8 @@ VKI_CONFIG.i18n = {

- __Imageless mode__ ``imageURI`` By default the keyboard will be show on input field focus. Pass a image URI to add a clickable image next to inputs and replace the on focus default behavior. _Default: false_
- __Keyboard size control__ ``size`` Five sizes based on font-size have been pre-programmed: 13px, 16px (default), 20px, 24px and 28px; corresponding to the sizes 1 to 5 respectively. _Default: 3_
- __Show in mobile__ ``showInMobile`` True to display the interface on mobiles devices. _Default: false_
- __Foce position__ ``forcePosition`` Force to position the virtual keyborad above (_use ``"top"``_) or below (_use ``"bottom"``_) the input field. Use ``false`` to let the directive choose the better position. _Default: false_
- __Enter callback__ ``enterSubmit`` Define a callback function for the enter key. Use ``true`` to submit forms when Enter is pressed or a function to execute a custom function. _Default: false_ (See _[enterSubmit issues #5](https://github.com/the-darc/angular-virtual-keyboard/issues/5)_)
- __Relative position__ ``relative``: ``true`` to position the keyboard next to the input, ``false`` to place in the bottom of page. _Default: ``true``_
- __Enter callback__ ``enterSubmit`` Define a callback function for the enter key. Use ~~true to submit forms when Enter is pressed or~~ a function to execute a custom function. _Default: false_ (See _[enterSubmit issues #5](https://github.com/the-darc/angular-virtual-keyboard/issues/5)_)
- __Relative position__ ``relative`` Use ``true`` to position the keyboard next to the input, and ``false`` to place in the bottom of page. _Default: ``true``_
- __Keyboard size control__ ``size`` Five sizes based on font-size have been pre-programmed: 13px, 16px (default), 20px, 24px and 28px; corresponding to the sizes 1 to 5 respectively. _Default: 3_
- __Adjust keyboard size__ ``sizeAdj`` Allow user to adjust keyboard size. _Default: ``true``_

@@ -78,0 +80,0 @@ ### Example of use

/**
* angular-virtual-keyboard
* An AngularJs Virtual Keyboard Interface based on GreyWyvern VKI
* @version v0.4.1
* @version v0.4.2
* @author the-darc <darc.tec@gmail.com>

@@ -82,3 +82,3 @@ * @link https://github.com/the-darc/angular-virtual-keyboard

this.VKI_size = config.size >=1 && config.size <= 5 ? config.size : 3; // Default keyboard size (1-5)
this.VKI_sizeAdj = true; // Allow user to adjust keyboard size
this.VKI_sizeAdj = config.sizeAdj === false ? false : true; // Allow user to adjust keyboard size
this.VKI_clearPasswords = false; // Clear password fields on focus

@@ -218,3 +218,3 @@ this.VKI_imageURI = config.imageURI !== undefined ? config.imageURI : ""; // If empty string, use imageless mode

if (self.VKI_target != this) {
if (self.VKI_target) self.VKI_close();
if (self.VKI_target) self.VKI_close(false);
self.VKI_show(this);

@@ -243,3 +243,6 @@ }

VKI_addListener(document.documentElement, 'click', function(e) { self.VKI_close(); }, false);
VKI_addListener(document.documentElement, 'click', function(e) { self.VKI_close(false); }, false);
// Attach close event handler.
angular.element(elem).bind('VKI_close', function(){self.VKI_close(false);});
};

@@ -371,2 +374,3 @@

self.VKI_position(true);
self.VKI_target.focus();
}, false);

@@ -390,2 +394,3 @@ VKI_mouseEvents(span);

self.VKI_kbsize();
self.VKI_target.focus();
}, false);

@@ -400,2 +405,3 @@ VKI_mouseEvents(small);

self.VKI_kbsize();
self.VKI_target.focus();
}, false);

@@ -422,3 +428,3 @@ VKI_mouseEvents(big);

strong.title = this.VKI_i18n['06'];
VKI_addListener(strong, 'click', function() { self.VKI_close(); }, false);
VKI_addListener(strong, 'click', function() { self.VKI_close(true); }, false);
VKI_mouseEvents(strong);

@@ -592,3 +598,3 @@ th.appendChild(strong);

var target = self.VKI_target, elems = target.form.elements;
self.VKI_close();
self.VKI_close(false);
for (var z = 0, me = false, j = -1; z < elems.length; z++) {

@@ -641,3 +647,3 @@ if (j == -1 && elems[z].getAttribute("VKI_attached")) j = z;

}
self.VKI_close();
self.VKI_close(false);
} else self.VKI_insert("\n");

@@ -698,13 +704,21 @@ return true;

if (this.VKI_altgr) className.push("pressed");
self.VKI_target.focus();
break;
case "AltLk":
if (this.VKI_altgrlock) className.push("pressed");
self.VKI_target.focus();
break;
case "Shift":
if (this.VKI_shift) className.push("pressed");
self.VKI_target.focus();
break;
case "Caps":
if (this.VKI_shiftlock) className.push("pressed");
self.VKI_target.focus();
break;
case "Tab": case "Enter": case "Bksp": break;
case "Tab":
case "Bksp":
self.VKI_target.focus();
case "Enter":
break;
default:

@@ -814,5 +828,21 @@ if (type) {

this.VKI_target.focus();
} else this.VKI_close();
this.VKI_closeOthers();
} else this.VKI_close(false);
};
/* ****************************************************************
* For triggering close to non-focused virtual keyboard elements
*
*/
this.VKI_closeOthers = function() {
function fireCloseEvent(angularElement) {
if(angularElement.getAttribute('VKI_attached') === 'true' && !angular.equals(self.VKI_target, angularElement)) {
var inputChild = angular.element(angularElement);
inputChild.triggerHandler('VKI_close');
}
}
angular.forEach(angular.element(document).find('input'), fireCloseEvent);
angular.forEach(angular.element(document).find('textarea'), fireCloseEvent);
};

@@ -879,3 +909,3 @@ /* ****************************************************************

*/
this.VKI_close = function() {
this.VKI_close = function(keepFocus) {
if (this.VKI_target) {

@@ -892,3 +922,5 @@ try {

}
this.VKI_target.focus();
if (keepFocus) {
this.VKI_target.focus();
}
if (this.VKI_isIE) {

@@ -973,3 +1005,3 @@ setTimeout(function() { self.VKI_target = false; }, 0);

// VKI_addListener(document.documentElement, 'click', function(e) { self.VKI_close(); }, false);
// VKI_addListener(document.documentElement, 'click', function(e) { self.VKI_close(true); }, false);
// }

@@ -1046,3 +1078,4 @@ // VKI_addListener(window, 'load', VKI_buildKeyboardInputs, false);

},
relative: true
relative: true,
sizeAdj: true
})

@@ -1058,2 +1091,3 @@ .service('ngVirtualKeyboardService', ['VKI_CONFIG', function(VKI_CONFIG) {

config.keyCenter = config.keyCenter || VKI_CONFIG.keyCenter;
config.sizeAdj = config.sizeAdj === false ? false : VKI_CONFIG.sizeAdj;

@@ -1060,0 +1094,0 @@ var vki = new VKI(config, VKI_CONFIG.layout, VKI_CONFIG.deadkey, inputCallback);

@@ -1,1 +0,1 @@

!function(e){var t=function(e,t,i,a){function s(e){var t=!1;try{t=!isNaN(e.selectionStart)&&!isNaN(e.selectionEnd)}catch(i){}return t}function n(e){"TD"==e.nodeName&&(e.click||(e.click=function(){var e=this.ownerDocument.createEvent("MouseEvents");e.initMouseEvent("click",!0,!0,this.ownerDocument.defaultView,1,0,0,0,0,!1,!1,!1,!1,0,null),this.dispatchEvent(e)}),e.VKI_clickless=0,o(e,"dblclick",function(){return!1},!1)),o(e,"mouseover",function(){if("TD"==this.nodeName&&I.VKI_clickless){var e=this;clearTimeout(this.VKI_clickless),this.VKI_clickless=setTimeout(function(){e.click()},I.VKI_clickless)}I.VKI_isIE&&(this.className+=" hover")},!1),o(e,"mouseout",function(){"TD"==this.nodeName&&clearTimeout(this.VKI_clickless),I.VKI_isIE&&(this.className=this.className.replace(/ ?(hover|pressed) ?/g,""))},!1),o(e,"mousedown",function(){"TD"==this.nodeName&&clearTimeout(this.VKI_clickless),I.VKI_isIE&&(this.className+=" pressed")},!1),o(e,"mouseup",function(){"TD"==this.nodeName&&clearTimeout(this.VKI_clickless),I.VKI_isIE&&(this.className=this.className.replace(/ ?pressed ?/g,""))},!1)}function r(){var e=!1,t=" ";if("small"!=this.firstChild.nodeName.toLowerCase()){if(" "==(t=this.firstChild.nodeValue))return!1}else t=this.firstChild.getAttribute("char");return I.VKI_deadkeysOn.checked&&I.VKI_dead&&(I.VKI_dead!=t?" "!=t?I.VKI_deadkey[I.VKI_dead][t]&&(I.VKI_insert(I.VKI_deadkey[I.VKI_dead][t]),e=!0):(I.VKI_insert(I.VKI_dead),e=!0):e=!0),I.VKI_dead=!1,e||(I.VKI_deadkeysOn.checked&&I.VKI_deadkey[t]?(I.VKI_dead=t,this.className+=" dead",I.VKI_shift&&I.VKI_modify("Shift"),I.VKI_altgr&&I.VKI_modify("AltGr")):I.VKI_insert(t)),I.VKI_modify(""),!1}function o(e,t,i,a){e.addEventListener?e.addEventListener(t,function(t){i.call(e,t)},a):e.attachEvent&&e.attachEvent("on"+t,function(){i.call(e)})}function l(e){for(var t=curtop=0,i=e;(i=i.parentNode)&&i!=document.body;)t-=i.scrollLeft||0,curtop-=i.scrollTop||0;do t+=e.offsetLeft,curtop+=e.offsetTop;while(e=e.offsetParent);return[t,curtop]}function d(){return I.innerHeight?[I.innerWidth,I.innerHeight]:document.documentElement&&document.documentElement.clientHeight?[document.documentElement.clientWidth,document.documentElement.clientHeight]:document.body?[document.body.clientWidth,document.body.clientHeight]:[0,0]}function h(){var e=document.getElementsByTagName("html")[0];return e.scrollTop&&document.documentElement.scrollTop?[e.scrollLeft,e.scrollTop]:e.scrollTop||document.documentElement.scrollTop?[e.scrollLeft+document.documentElement.scrollLeft,e.scrollTop+document.documentElement.scrollTop]:document.body.scrollTop?[document.body.scrollLeft,document.body.scrollTop]:[0,0]}function c(e,t){if(e.currentStyle)var i=e.currentStyle[t];else if(window.getComputedStyle)var i=window.getComputedStyle(e,null)[t];return i}var I=this,V=e||{};if(I.keyInputCallback=a||function(){},this.VKI_version="1.49",this.VKI_showVersion=void 0!==V.showVersion?V.showVersion:!1,this.VKI_target=!1,this.VKI_shift=this.VKI_shiftlock=!1,this.VKI_altgr=this.VKI_altgrlock=!1,this.VKI_dead=!1,this.VKI_deadBox=!0,this.VKI_deadkeysOn=void 0!==V.deadkeysOn?V.deadkeysOn:!0,this.VKI_numberPad=void 0!==V.numberPad?V.numberPad:!1,this.VKI_numberPadOn=!1,this.VKI_kts=this.VKI_kt=V.kt||"US International",this.VKI_langAdapt=!V.kt,this.VKI_size=V.size>=1&&V.size<=5?V.size:3,this.VKI_sizeAdj=!0,this.VKI_clearPasswords=!1,this.VKI_imageURI=void 0!==V.imageURI?V.imageURI:"",this.VKI_clickless=0,this.VKI_activeTab=0,this.VKI_keyCenter=V.keyCenter||3,this.VKI_forcePosition=V.forcePosition||!1,this.VKI_relative=V.relative===!1?!1:!0,this.VKI_isIE=!1,this.VKI_isIE6=!1,this.VKI_isIElt8=!1,this.VKI_isWebKit=RegExp("KHTML").test(navigator.userAgent),this.VKI_isOpera=RegExp("Opera").test(navigator.userAgent),this.VKI_isMoz=!this.VKI_isWebKit&&"Gecko"==navigator.product,this.VKI_enterSubmit=V.enterSubmit||!1,this.VKI_showKbSelect=V.showKbSelect||!1,this.VKI_i18n=V.i18n,this.VKI_layout=t,this.VKI_deadkey=i,this.VKI_symbol={" ":"NB\nSP","​":"ZW\nSP","‌":"ZW\nNJ","‍":"ZW\nJ"},this.VKI_numpad=[[["$"],["£"],["€"],["¥"]],[["7"],["8"],["9"],["/"]],[["4"],["5"],["6"],["*"]],[["1"],["2"],["3"],["-"]],[["0"],["."],["="],["+"]]],I.attachVki=function(e){if(e.getAttribute("VKI_attached"))return!1;if(I.VKI_imageURI){var t=document.createElement("img");t.src=I.VKI_imageURI,t.alt=I.VKI_i18n["01"],t.className="keyboardInputInitiator",t.title=I.VKI_i18n["01"],t.elem=e,t.onclick=function(e){e=e||event,e.stopPropagation?e.stopPropagation():e.cancelBubble=!0,I.VKI_show(this.elem)},e.parentNode.insertBefore(t,"rtl"==e.dir?e:e.nextSibling)}else e.onfocus=function(){I.VKI_target!=this&&(I.VKI_target&&I.VKI_close(),I.VKI_show(this))},e.onclick=function(){I.VKI_target||I.VKI_show(this)};e.setAttribute("VKI_attached","true"),I.VKI_isIE&&(e.onclick=e.onselect=e.onkeyup=function(e){"keyup"==(e||event).type&&this.readOnly||(this.range=document.selection.createRange())}),o(e,"click",function(e){return I.VKI_target==this&&(e=e||event,e.stopPropagation?e.stopPropagation():e.cancelBubble=!0),!1},!1),I.VKI_isMoz&&e.addEventListener("blur",function(){this.setAttribute("_scrollTop",this.scrollTop)},!1),o(document.documentElement,"click",function(){I.VKI_close()},!1)},this.VKI_keyboard=document.createElement("table"),this.VKI_keyboard.className="keyboardInputMaster",this.VKI_relative&&(I.VKI_keyboard.className+=" relativeKeyboard"),this.VKI_keyboard.dir="ltr",this.VKI_keyboard.cellSpacing="0",this.VKI_keyboard.reflow=function(){this.style.width="50px";this.offsetWidth;this.style.width=""},o(this.VKI_keyboard,"click",function(e){return e=e||event,e.stopPropagation?e.stopPropagation():e.cancelBubble=!0,!1},!1),!this.VKI_layout[this.VKI_kt])return alert('No keyboard named "'+this.VKI_kt+'"');this.VKI_langCode={};var K=document.createElement("thead"),_=document.createElement("tr"),u=document.createElement("th");if(u.colSpan="2",I.VKI_showKbSelect){var m=document.createElement("div");m.title=this.VKI_i18n["02"],o(m,"click",function(){var e=this.getElementsByTagName("ol")[0];if(e.style.display)e.style.display="";else{e.style.display="block";for(var t=e.getElementsByTagName("li"),i=0,a=0;i<t.length;i++)VKI_kt==t[i].firstChild.nodeValue?(t[i].className="selected",a=t[i].offsetTop-2*t[i].offsetHeight):t[i].className="";setTimeout(function(){e.scrollTop=a},0)}},!1),m.appendChild(document.createTextNode(this.VKI_kt)),m.appendChild(document.createTextNode(this.VKI_isIElt8?" ↓":" ▾")),m.langCount=0;var p=document.createElement("ol");for(ktype in this.VKI_layout)if("object"==typeof this.VKI_layout[ktype]){this.VKI_layout[ktype].lang||(this.VKI_layout[ktype].lang=[]);for(var f=0;f<this.VKI_layout[ktype].lang.length;f++)this.VKI_langCode[this.VKI_layout[ktype].lang[f].toLowerCase().replace(/-/g,"_")]=ktype;var g=document.createElement("li");g.title=this.VKI_layout[ktype].name,o(g,"click",function(e){e=e||event,e.stopPropagation?e.stopPropagation():e.cancelBubble=!0,this.parentNode.style.display="",I.VKI_kts=I.VKI_kt=m.firstChild.nodeValue=this.firstChild.nodeValue,I.VKI_buildKeys(),I.VKI_position(!0)},!1),n(g),g.appendChild(document.createTextNode(ktype)),p.appendChild(g),m.langCount++}m.appendChild(p),m.langCount>1&&u.appendChild(m),this.VKI_langCode.index=[];for(prop in this.VKI_langCode)"index"!=prop&&"string"==typeof this.VKI_langCode[prop]&&this.VKI_langCode.index.push(prop);this.VKI_langCode.index.sort(),this.VKI_langCode.index.reverse()}if(this.VKI_numberPad){var y=document.createElement("span");y.appendChild(document.createTextNode("#")),y.title=this.VKI_i18n["00"],o(y,"click",function(){P.style.display=P.style.display?"":"none",I.VKI_position(!0)},!1),n(y),u.appendChild(y)}if(this.VKI_kbsize=function(){I.VKI_size=Math.min(5,Math.max(1,I.VKI_size)),I.VKI_keyboard.className=I.VKI_keyboard.className.replace(/ ?keyboardInputSize\d ?/,""),2!=I.VKI_size&&(I.VKI_keyboard.className+=" keyboardInputSize"+I.VKI_size),I.VKI_position(!0),I.VKI_isOpera&&I.VKI_keyboard.reflow()},this.VKI_sizeAdj){var k=document.createElement("small");k.title=this.VKI_i18n[10],o(k,"click",function(){--I.VKI_size,I.VKI_kbsize()},!1),n(k),k.appendChild(document.createTextNode(this.VKI_isIElt8?"↓":"⇓")),u.appendChild(k);var b=document.createElement("big");b.title=this.VKI_i18n[11],o(b,"click",function(){++I.VKI_size,I.VKI_kbsize()},!1),n(b),b.appendChild(document.createTextNode(this.VKI_isIElt8?"↑":"⇑")),u.appendChild(b)}var y=document.createElement("span");y.appendChild(document.createTextNode(this.VKI_i18n["07"])),y.title=this.VKI_i18n["08"],o(y,"click",function(){return I.VKI_target.value="",I.VKI_target.focus(),I.keyInputCallback(),!1},!1),n(y),u.appendChild(y);var v=document.createElement("strong");v.appendChild(document.createTextNode("X")),v.title=this.VKI_i18n["06"],o(v,"click",function(){I.VKI_close()},!1),n(v),u.appendChild(v),_.appendChild(u),K.appendChild(_),this.VKI_keyboard.appendChild(K);var C=document.createElement("tbody"),_=document.createElement("tr"),E=document.createElement("td");E.className="keyboardsArea";var N=document.createElement("table"),T=document.createElement("tr"),x=document.createElement("td");x.className="keyboardInputTextPad";var w=document.createElement("div");if(this.VKI_deadBox){var S=document.createElement("label"),A=document.createElement("input");A.type="checkbox",A.title=this.VKI_i18n["03"]+": "+(this.VKI_deadkeysOn?this.VKI_i18n["04"]:this.VKI_i18n["05"]),A.defaultChecked=this.VKI_deadkeysOn,o(A,"click",function(){return this.title=I.VKI_i18n["03"]+": "+(this.checked?I.VKI_i18n["04"]:I.VKI_i18n["05"]),I.VKI_modify(""),!0},!1),S.appendChild(A),A.checked=this.VKI_deadkeysOn,w.appendChild(S),this.VKI_deadkeysOn=A}else this.VKI_deadkeysOn.checked=this.VKI_deadkeysOn;if(this.VKI_showVersion){var O=document.createElement("var");O.title=this.VKI_i18n["09"]+" "+this.VKI_version,O.appendChild(document.createTextNode("v"+this.VKI_version)),w.appendChild(O)}x.appendChild(w);var P=document.createElement("td");P.className="keyboardInputNumpad",this.VKI_numberPadOn||(P.style.display="none");var z=document.createElement("table");z.cellSpacing="0";for(var B=document.createElement("tbody"),f=0;f<this.VKI_numpad.length;f++){for(var L=document.createElement("tr"),R=0;R<this.VKI_numpad[f].length;R++){var W=document.createElement("td");o(W,"click",r,!1),n(W),W.appendChild(document.createTextNode(this.VKI_numpad[f][R])),L.appendChild(W)}B.appendChild(L)}return z.appendChild(B),P.appendChild(z),T.appendChild(x),T.appendChild(P),N.appendChild(T),E.appendChild(N),_.appendChild(E),C.appendChild(_),this.VKI_keyboard.appendChild(C),this.VKI_isIE6&&(this.VKI_iframe=document.createElement("iframe"),this.VKI_iframe.style.position="absolute",this.VKI_iframe.style.border="0px none",this.VKI_iframe.style.filter="mask()",this.VKI_iframe.style.zIndex="999999",this.VKI_iframe.src=this.VKI_imageURI),this.VKI_buildKeys=function(){this.VKI_shift=this.VKI_shiftlock=this.VKI_altgr=this.VKI_altgrlock=this.VKI_dead=!1;for(var e=this.VKI_keyboard.tBodies[0].getElementsByTagName("div")[0],t=e.getElementsByTagName("table"),i=t.length-1;i>=0;i--)e.removeChild(t[i]);for(var a,i=0,l=!1;a=this.VKI_layout[this.VKI_kt].keys[i++];){var d=document.createElement("table");d.cellSpacing="0",a.length<=this.VKI_keyCenter&&(d.className="keyboardInputCenter");for(var h,c=document.createElement("tbody"),V=document.createElement("tr"),K=0;h=a[K++];){var _=document.createElement("td");if(this.VKI_symbol[h[0]]){var u=this.VKI_symbol[h[0]].split("\n"),m=document.createElement("small");m.setAttribute("char",h[0]);for(var p=0;p<u.length;p++)p&&m.appendChild(document.createElement("br")),m.appendChild(document.createTextNode(u[p]));_.appendChild(m)}else _.appendChild(document.createTextNode(h[0]||" "));var f=[];if(this.VKI_deadkeysOn.checked)for(key in this.VKI_deadkey)if(key===h[0]){f.push("deadkey");break}switch(a.length>this.VKI_keyCenter&&K==a.length&&f.push("last"),(" "==h[0]||" "==h[1])&&f.push("space"),_.className=f.join(" "),h[1]){case"Caps":case"Shift":case"Alt":case"AltGr":case"AltLk":o(_,"click",function(e){return function(){return I.VKI_modify(e),!1}}(h[1]),!1);break;case"Tab":o(_,"click",function(){if(I.VKI_activeTab)if(I.VKI_target.form){var e=I.VKI_target,t=e.form.elements;I.VKI_close();for(var i=0,a=!1,s=-1;i<t.length;i++)if(-1==s&&t[i].getAttribute("VKI_attached")&&(s=i),a){if(1==I.VKI_activeTab&&t[i])break;if(t[i].getAttribute("VKI_attached"))break}else t[i]==e&&(a=!0);i==t.length&&(i=Math.max(s,0)),t[i].getAttribute("VKI_attached")?I.VKI_show(t[i]):t[i].focus()}else I.VKI_target.focus();else I.VKI_insert(" ");return!1},!1);break;case"Bksp":o(_,"click",function(){if(I.VKI_target.focus(),I.VKI_target.setSelectionRange&&s(I.VKI_target)&&!I.VKI_target.readOnly){var e=[I.VKI_target.selectionStart,I.VKI_target.selectionEnd];e[0]<e[1]&&e[0]++,I.VKI_target.value=I.VKI_target.value.substr(0,e[0]-1)+I.VKI_target.value.substr(e[1]),I.VKI_target.setSelectionRange(e[0]-1,e[0]-1)}else if(I.VKI_target.createTextRange&&!I.VKI_target.readOnly){try{I.VKI_target.range.select()}catch(t){I.VKI_target.range=document.selection.createRange()}I.VKI_target.range.text.length||I.VKI_target.range.moveStart("character",-1),I.VKI_target.range.text=""}else I.VKI_target.value=I.VKI_target.value.substr(0,I.VKI_target.value.length-1);return I.VKI_shift&&I.VKI_modify("Shift"),I.VKI_altgr&&I.VKI_modify("AltGr"),I.VKI_target.focus(),I.keyInputCallback(),!0},!1);break;case"Enter":o(_,"click",function(){if("TEXTAREA"!=I.VKI_target.nodeName){if("function"==typeof I.VKI_enterSubmit)I.VKI_enterSubmit.apply({},[I.VKI_target.value]);else if(I.VKI_enterSubmit&&I.VKI_target.form){for(var e=0,t=!1;e<I.VKI_target.form.elements.length;e++)"submit"==I.VKI_target.form.elements[e].type&&(t=!0);t||I.VKI_target.form.submit()}I.VKI_close()}else I.VKI_insert("\n");return!0},!1);break;default:o(_,"click",r,!1)}n(_),V.appendChild(_);for(var p=0;4>p;p++)this.VKI_deadkey[h[p]=h[p]||""]&&(l=!0)}c.appendChild(V),d.appendChild(c),e.appendChild(d)}this.VKI_deadBox&&(this.VKI_deadkeysOn.style.display=l?"inline":"none"),this.VKI_isIE6&&(this.VKI_iframe.style.width=this.VKI_keyboard.offsetWidth+"px",this.VKI_iframe.style.height=this.VKI_keyboard.offsetHeight+"px")},this.VKI_buildKeys(),o(this.VKI_keyboard,"selectstart",function(){return!1},!1),this.VKI_keyboard.unselectable="on",this.VKI_isOpera&&o(this.VKI_keyboard,"mousedown",function(){return!1},!1),this.VKI_modify=function(e){switch(e){case"Alt":case"AltGr":this.VKI_altgr=!this.VKI_altgr;break;case"AltLk":this.VKI_altgr=0,this.VKI_altgrlock=!this.VKI_altgrlock;break;case"Caps":this.VKI_shift=0,this.VKI_shiftlock=!this.VKI_shiftlock;break;case"Shift":this.VKI_shift=!this.VKI_shift}var t=0;!this.VKI_shift!=!this.VKI_shiftlock&&(t+=1),!this.VKI_altgr!=!this.VKI_altgrlock&&(t+=2);for(var i=this.VKI_keyboard.tBodies[0].getElementsByTagName("div")[0].getElementsByTagName("table"),a=0;a<i.length;a++)for(var s=i[a].getElementsByTagName("td"),n=0;n<s.length;n++){var r=[],o=this.VKI_layout[this.VKI_kt].keys[a][n];switch(o[1]){case"Alt":case"AltGr":this.VKI_altgr&&r.push("pressed");break;case"AltLk":this.VKI_altgrlock&&r.push("pressed");break;case"Shift":this.VKI_shift&&r.push("pressed");break;case"Caps":this.VKI_shiftlock&&r.push("pressed");break;case"Tab":case"Enter":case"Bksp":break;default:if(e)if(s[n].removeChild(s[n].firstChild),this.VKI_symbol[o[t]]){var l=this.VKI_symbol[o[t]].split("\n"),d=document.createElement("small");d.setAttribute("char",o[t]);for(var h=0;h<l.length;h++)h&&d.appendChild(document.createElement("br")),d.appendChild(document.createTextNode(l[h]));s[n].appendChild(d)}else s[n].appendChild(document.createTextNode(o[t]||" "));if(this.VKI_deadkeysOn.checked){var c=s[n].firstChild.nodeValue||s[n].firstChild.className;this.VKI_dead&&(c==this.VKI_dead&&r.push("pressed"),this.VKI_deadkey[this.VKI_dead][c]&&r.push("target")),this.VKI_deadkey[c]&&r.push("deadkey")}}n==s.length-1&&s.length>this.VKI_keyCenter&&r.push("last"),(" "==o[0]||" "==o[1])&&r.push("space"),s[n].className=r.join(" ")}},this.VKI_insert=function(e){if(this.VKI_target.focus(),this.VKI_target.maxLength&&(this.VKI_target.maxlength=this.VKI_target.maxLength),"undefined"==typeof this.VKI_target.maxlength||this.VKI_target.maxlength<0||this.VKI_target.value.length<this.VKI_target.maxlength){if(this.VKI_target.setSelectionRange&&s(this.VKI_target)&&!this.VKI_target.readOnly&&!this.VKI_isIE){var t=[this.VKI_target.selectionStart,this.VKI_target.selectionEnd];this.VKI_target.value=this.VKI_target.value.substr(0,t[0])+e+this.VKI_target.value.substr(t[1]),"\n"==e&&this.VKI_isOpera&&t[0]++,this.VKI_target.setSelectionRange(t[0]+e.length,t[0]+e.length)}else if(this.VKI_target.createTextRange&&!this.VKI_target.readOnly){try{this.VKI_target.range.select()}catch(i){this.VKI_target.range=document.selection.createRange()}this.VKI_target.range.text=e,this.VKI_target.range.collapse(!0),this.VKI_target.range.select()}else this.VKI_target.value+=e;this.VKI_shift&&this.VKI_modify("Shift"),this.VKI_altgr&&this.VKI_modify("AltGr"),this.VKI_target.focus(),this.keyInputCallback()}else this.VKI_target.createTextRange&&this.VKI_target.range&&this.VKI_target.range.select()},this.VKI_show=function(e){if(this.VKI_target)this.VKI_close();else{if(this.VKI_target=e,this.VKI_langAdapt&&this.VKI_target.lang){for(var t=!1,i=this.VKI_target.lang.toLowerCase().replace(/-/g,"_"),a=0,t=!1;!t&&a<this.VKI_langCode.index.length;a++)0==i.indexOf(this.VKI_langCode.index[a])&&I.VKI_showKbSelect&&(t=m.firstChild.nodeValue=this.VKI_kt=this.VKI_langCode[this.VKI_langCode.index[a]]);t&&this.VKI_buildKeys()}this.VKI_isIE&&(this.VKI_target.range||(this.VKI_target.range=this.VKI_target.createTextRange(),this.VKI_target.range.moveStart("character",this.VKI_target.value.length)),this.VKI_target.range.select());try{this.VKI_keyboard.parentNode.removeChild(this.VKI_keyboard)}catch(s){}this.VKI_clearPasswords&&"password"==this.VKI_target.type&&(this.VKI_target.value="");var e=this.VKI_target;this.VKI_target.keyboardPosition="absolute";do if("fixed"==c(e,"position")){this.VKI_target.keyboardPosition="fixed";break}while(e=e.offsetParent);this.VKI_isIE6&&document.body.appendChild(this.VKI_iframe),document.body.appendChild(this.VKI_keyboard),this.VKI_keyboard.style.position=this.VKI_target.keyboardPosition,this.VKI_isOpera&&this.VKI_keyboard.reflow(),this.VKI_position(!0),(I.VKI_isMoz||I.VKI_isWebKit)&&this.VKI_position(!0),this.VKI_target.blur(),this.VKI_target.focus()}},this.VKI_position=function(e){if(!I.VKI_relative)return I.VKI_keyboard.style.position="fixed",I.VKI_keyboard.style.bottom="0px",I.VKI_keyboard.style.left="0px",void(I.VKI_keyboard.style.width="100%");if(I.VKI_target){var t=l(I.VKI_keyboard),i=d(),a=h(),s=!1,n=I.VKI_target.offsetHeight+3;if("top"===I.VKI_forcePosition&&(n=-I.VKI_keyboard.offsetHeight-3),e!==!0&&(t[1]+I.VKI_keyboard.offsetHeight-a[1]-i[1]>0&&"bottom"!==I.VKI_forcePosition?(s=!0,n=-I.VKI_keyboard.offsetHeight-3):t[1]-a[1]<0&&(s=!0)),s||e===!0){for(var r=l(I.VKI_target),c=I.VKI_target;(c=c.parentNode)&&c!=document.body;)if(c.scrollHeight>c.offsetHeight||c.scrollWidth>c.offsetWidth){c.getAttribute("VKI_scrollListener")||(c.setAttribute("VKI_scrollListener",!0),o(c,"scroll",function(){I.VKI_position(!0)},!1));var V=l(c),K=r[1]-V[1],_=r[0]-V[0],u=K+I.VKI_target.offsetHeight,m=_+I.VKI_target.offsetWidth,p=c.offsetHeight-K-I.VKI_target.offsetHeight,f=c.offsetWidth-_-I.VKI_target.offsetWidth;I.VKI_keyboard.style.display=0>u||0>m||0>p||0>f?"none":"",I.VKI_isIE6&&(I.VKI_iframe.style.display=0>u||0>m||0>p||0>f?"none":"")}I.VKI_keyboard.style.top=r[1]-("fixed"!=I.VKI_target.keyboardPosition||I.VKI_isIE||I.VKI_isMoz?0:a[1])+n+"px",I.VKI_keyboard.style.left=Math.max(10,Math.min(i[0]-I.VKI_keyboard.offsetWidth-25,r[0]))+"px",I.VKI_isIE6&&(I.VKI_iframe.style.width=I.VKI_keyboard.offsetWidth+"px",I.VKI_iframe.style.height=I.VKI_keyboard.offsetHeight+"px",I.VKI_iframe.style.top=I.VKI_keyboard.style.top,I.VKI_iframe.style.left=I.VKI_keyboard.style.left)}e===!0&&I.VKI_position()}},this.VKI_close=function(){if(this.VKI_target){try{this.VKI_keyboard.parentNode.removeChild(this.VKI_keyboard),this.VKI_isIE6&&this.VKI_iframe.parentNode.removeChild(this.VKI_iframe)}catch(e){}this.VKI_showKbSelect&&(this.VKI_kt!=this.VKI_kts&&(m.firstChild.nodeValue=this.VKI_kt=this.VKI_kts,this.VKI_buildKeys()),m.getElementsByTagName("ol")[0].style.display=""),this.VKI_target.focus(),this.VKI_isIE?setTimeout(function(){I.VKI_target=!1},0):this.VKI_target=!1}},o(window,"resize",this.VKI_position,!1),o(window,"scroll",this.VKI_position,!1),this.VKI_kbsize(),I};e.module("angular-virtual-keyboard",[]).constant("VKI_CONFIG",{layout:{"US International":{name:"US International",keys:[[["`","~"],["1","!","¡","¹"],["2","@","²"],["3","#","³"],["4","$","¤","£"],["5","%","€"],["6","^","¼"],["7","&","½"],["8","*","¾"],["9","(","‘"],["0",")","’"],["-","_","¥"],["=","+","×","÷"],["Bksp","Bksp"]],[["Tab","Tab"],["q","Q","ä","Ä"],["w","W","å","Å"],["e","E","é","É"],["r","R","®"],["t","T","þ","Þ"],["y","Y","ü","Ü"],["u","U","ú","Ú"],["i","I","í","Í"],["o","O","ó","Ó"],["p","P","ö","Ö"],["[","{","«"],["]","}","»"],["\\","|","¬","¦"]],[["Caps","Caps"],["a","A","á","Á"],["s","S","ß","§"],["d","D","ð","Ð"],["f","F"],["g","G"],["h","H"],["j","J"],["k","K"],["l","L","ø","Ø"],[";",":","¶","°"],["'",'"',"´","¨"],["Enter","Enter"]],[["Shift","Shift"],["z","Z","æ","Æ"],["x","X"],["c","C","©","¢"],["v","V"],["b","B"],["n","N","ñ","Ñ"],["m","M","µ"],[",","<","ç","Ç"],[".",">"],["/","?","¿"],["Shift","Shift"]],[[" "," "," "," "],["Alt","Alt"]]],lang:["en"]}},deadkey:{"~":{a:"ã",l:"ł",n:"ñ",o:"õ",A:"Ã",L:"Ł",N:"Ñ",O:"Õ"},"^":{a:"â",e:"ê",i:"î",o:"ô",u:"û",w:"ŵ",y:"ŷ",A:"Â",E:"Ê",I:"Î",O:"Ô",U:"Û",W:"Ŵ",Y:"Ŷ"},"`":{a:"à",e:"è",i:"ì",o:"ò",u:"ù","ü":"ǜ",A:"À",E:"È",I:"Ì",O:"Ò",U:"Ù","Ü":"Ǜ"},"'":{a:"á",e:"é",i:"í",o:"ó",u:"ú",y:"ý","α":"ά","ε":"έ","η":"ή","ι":"ί","ο":"ό","υ":"ύ","ω":"ώ","ü":"ǘ",A:"Á",E:"É",I:"Í",O:"Ó",U:"Ú",Y:"Ý","Α":"Ά","Ε":"Έ","Η":"Ή","Ι":"Ί","Ο":"Ό","Υ":"Ύ","Ω":"Ώ","Ü":"Ǘ"},"´":{a:"á",e:"é",i:"í",o:"ó",u:"ú",y:"ý","α":"ά","ε":"έ","η":"ή","ι":"ί","ο":"ό","υ":"ύ","ω":"ώ","ü":"ǘ",A:"Á",E:"É",I:"Í",O:"Ó",U:"Ú",Y:"Ý","Α":"Ά","Ε":"Έ","Η":"Ή","Ι":"Ί","Ο":"Ό","Υ":"Ύ","Ω":"Ώ","Ü":"Ǘ"},"¨":{a:"ä",e:"ë",i:"ï",o:"ö",u:"ü",y:"ÿ","ι":"ϊ","υ":"ϋ","ū":"ǖ","ú":"ǘ","ǔ":"ǚ","ù":"ǜ",A:"Ä",E:"Ë",I:"Ï",O:"Ö",U:"Ü",Y:"Ÿ","Ι":"Ϊ","Υ":"Ϋ","Ū":"Ǖ","Ú":"Ǘ","Ǔ":"Ǚ","Ù":"Ǜ","か":"が","き":"ぎ","く":"ぐ","け":"げ","こ":"ご","た":"だ","ち":"ぢ","つ":"づ","て":"で","と":"ど","さ":"ざ","し":"じ","す":"ず","せ":"ぜ","そ":"ぞ","は":"ば","ひ":"び","ふ":"ぶ","へ":"べ","ほ":"ぼ","カ":"ガ","キ":"ギ","ク":"グ","ケ":"ゲ","コ":"ゴ","タ":"ダ","チ":"ヂ","ツ":"ヅ","テ":"デ","ト":"ド","サ":"ザ","シ":"ジ","ス":"ズ","セ":"ゼ","ソ":"ゾ","ハ":"バ","ヒ":"ビ","フ":"ブ","ヘ":"ベ","ホ":"ボ"}},kt:"US International",i18n:{"00":"Display Number Pad","01":"Display virtual keyboard interface","02":"Select keyboard layout","03":"Dead keys","04":"On","05":"Off","06":"Close the keyboard","07":"Clear","08":"Clear this input","09":"Version",10:"Decrease keyboard size",11:"Increase keyboard size"},relative:!0}).service("ngVirtualKeyboardService",["VKI_CONFIG",function(e){return{attach:function(i,a,s){a=a||{},a.i18n=a.i18n||e.i18n,a.kt=a.kt||e.kt,a.relative=a.relative===!1?!1:e.relative,a.keyCenter=a.keyCenter||e.keyCenter;var n=new t(a,e.layout,e.deadkey,s);n.attachVki(i)}}}]).directive("ngVirtualKeyboard",["ngVirtualKeyboardService","$timeout","$injector",function(e,t,i){return{restrict:"A",require:"?ngModel",scope:{config:"=ngVirtualKeyboard"},link:function(a,s,n,r){if(r){if(i.has("UAParser")){var o=i.get("UAParser"),l=(new o).getResult(),d="mobile"===l.device.type||"tablet"===l.device.type;if(d=d||l.os&&"Android"===l.os.name,d=d||l.os&&"iOS"===l.os.name,d&&a.config.showInMobile!==!0)return}e.attach(s[0],a.config,function(){t(function(){r.$setViewValue(s[0].value)})})}}}}])}(angular);
!function(e){var t=function(t,i,a,s){function n(e){var t=!1;try{t=!isNaN(e.selectionStart)&&!isNaN(e.selectionEnd)}catch(i){}return t}function r(e){"TD"==e.nodeName&&(e.click||(e.click=function(){var e=this.ownerDocument.createEvent("MouseEvents");e.initMouseEvent("click",!0,!0,this.ownerDocument.defaultView,1,0,0,0,0,!1,!1,!1,!1,0,null),this.dispatchEvent(e)}),e.VKI_clickless=0,l(e,"dblclick",function(){return!1},!1)),l(e,"mouseover",function(){if("TD"==this.nodeName&&V.VKI_clickless){var e=this;clearTimeout(this.VKI_clickless),this.VKI_clickless=setTimeout(function(){e.click()},V.VKI_clickless)}V.VKI_isIE&&(this.className+=" hover")},!1),l(e,"mouseout",function(){"TD"==this.nodeName&&clearTimeout(this.VKI_clickless),V.VKI_isIE&&(this.className=this.className.replace(/ ?(hover|pressed) ?/g,""))},!1),l(e,"mousedown",function(){"TD"==this.nodeName&&clearTimeout(this.VKI_clickless),V.VKI_isIE&&(this.className+=" pressed")},!1),l(e,"mouseup",function(){"TD"==this.nodeName&&clearTimeout(this.VKI_clickless),V.VKI_isIE&&(this.className=this.className.replace(/ ?pressed ?/g,""))},!1)}function o(){var e=!1,t=" ";if("small"!=this.firstChild.nodeName.toLowerCase()){if(" "==(t=this.firstChild.nodeValue))return!1}else t=this.firstChild.getAttribute("char");return V.VKI_deadkeysOn.checked&&V.VKI_dead&&(V.VKI_dead!=t?" "!=t?V.VKI_deadkey[V.VKI_dead][t]&&(V.VKI_insert(V.VKI_deadkey[V.VKI_dead][t]),e=!0):(V.VKI_insert(V.VKI_dead),e=!0):e=!0),V.VKI_dead=!1,e||(V.VKI_deadkeysOn.checked&&V.VKI_deadkey[t]?(V.VKI_dead=t,this.className+=" dead",V.VKI_shift&&V.VKI_modify("Shift"),V.VKI_altgr&&V.VKI_modify("AltGr")):V.VKI_insert(t)),V.VKI_modify(""),!1}function l(e,t,i,a){e.addEventListener?e.addEventListener(t,function(t){i.call(e,t)},a):e.attachEvent&&e.attachEvent("on"+t,function(){i.call(e)})}function d(e){for(var t=curtop=0,i=e;(i=i.parentNode)&&i!=document.body;)t-=i.scrollLeft||0,curtop-=i.scrollTop||0;do t+=e.offsetLeft,curtop+=e.offsetTop;while(e=e.offsetParent);return[t,curtop]}function h(){return V.innerHeight?[V.innerWidth,V.innerHeight]:document.documentElement&&document.documentElement.clientHeight?[document.documentElement.clientWidth,document.documentElement.clientHeight]:document.body?[document.body.clientWidth,document.body.clientHeight]:[0,0]}function c(){var e=document.getElementsByTagName("html")[0];return e.scrollTop&&document.documentElement.scrollTop?[e.scrollLeft,e.scrollTop]:e.scrollTop||document.documentElement.scrollTop?[e.scrollLeft+document.documentElement.scrollLeft,e.scrollTop+document.documentElement.scrollTop]:document.body.scrollTop?[document.body.scrollLeft,document.body.scrollTop]:[0,0]}function I(e,t){if(e.currentStyle)var i=e.currentStyle[t];else if(window.getComputedStyle)var i=window.getComputedStyle(e,null)[t];return i}var V=this,K=t||{};if(V.keyInputCallback=s||function(){},this.VKI_version="1.49",this.VKI_showVersion=void 0!==K.showVersion?K.showVersion:!1,this.VKI_target=!1,this.VKI_shift=this.VKI_shiftlock=!1,this.VKI_altgr=this.VKI_altgrlock=!1,this.VKI_dead=!1,this.VKI_deadBox=!0,this.VKI_deadkeysOn=void 0!==K.deadkeysOn?K.deadkeysOn:!0,this.VKI_numberPad=void 0!==K.numberPad?K.numberPad:!1,this.VKI_numberPadOn=!1,this.VKI_kts=this.VKI_kt=K.kt||"US International",this.VKI_langAdapt=!K.kt,this.VKI_size=K.size>=1&&K.size<=5?K.size:3,this.VKI_sizeAdj=K.sizeAdj===!1?!1:!0,this.VKI_clearPasswords=!1,this.VKI_imageURI=void 0!==K.imageURI?K.imageURI:"",this.VKI_clickless=0,this.VKI_activeTab=0,this.VKI_keyCenter=K.keyCenter||3,this.VKI_forcePosition=K.forcePosition||!1,this.VKI_relative=K.relative===!1?!1:!0,this.VKI_isIE=!1,this.VKI_isIE6=!1,this.VKI_isIElt8=!1,this.VKI_isWebKit=RegExp("KHTML").test(navigator.userAgent),this.VKI_isOpera=RegExp("Opera").test(navigator.userAgent),this.VKI_isMoz=!this.VKI_isWebKit&&"Gecko"==navigator.product,this.VKI_enterSubmit=K.enterSubmit||!1,this.VKI_showKbSelect=K.showKbSelect||!1,this.VKI_i18n=K.i18n,this.VKI_layout=i,this.VKI_deadkey=a,this.VKI_symbol={" ":"NB\nSP","​":"ZW\nSP","‌":"ZW\nNJ","‍":"ZW\nJ"},this.VKI_numpad=[[["$"],["£"],["€"],["¥"]],[["7"],["8"],["9"],["/"]],[["4"],["5"],["6"],["*"]],[["1"],["2"],["3"],["-"]],[["0"],["."],["="],["+"]]],V.attachVki=function(t){if(t.getAttribute("VKI_attached"))return!1;if(V.VKI_imageURI){var i=document.createElement("img");i.src=V.VKI_imageURI,i.alt=V.VKI_i18n["01"],i.className="keyboardInputInitiator",i.title=V.VKI_i18n["01"],i.elem=t,i.onclick=function(e){e=e||event,e.stopPropagation?e.stopPropagation():e.cancelBubble=!0,V.VKI_show(this.elem)},t.parentNode.insertBefore(i,"rtl"==t.dir?t:t.nextSibling)}else t.onfocus=function(){V.VKI_target!=this&&(V.VKI_target&&V.VKI_close(!1),V.VKI_show(this))},t.onclick=function(){V.VKI_target||V.VKI_show(this)};t.setAttribute("VKI_attached","true"),V.VKI_isIE&&(t.onclick=t.onselect=t.onkeyup=function(e){"keyup"==(e||event).type&&this.readOnly||(this.range=document.selection.createRange())}),l(t,"click",function(e){return V.VKI_target==this&&(e=e||event,e.stopPropagation?e.stopPropagation():e.cancelBubble=!0),!1},!1),V.VKI_isMoz&&t.addEventListener("blur",function(){this.setAttribute("_scrollTop",this.scrollTop)},!1),l(document.documentElement,"click",function(){V.VKI_close(!1)},!1),e.element(t).bind("VKI_close",function(){V.VKI_close(!1)})},this.VKI_keyboard=document.createElement("table"),this.VKI_keyboard.className="keyboardInputMaster",this.VKI_relative&&(V.VKI_keyboard.className+=" relativeKeyboard"),this.VKI_keyboard.dir="ltr",this.VKI_keyboard.cellSpacing="0",this.VKI_keyboard.reflow=function(){this.style.width="50px";this.offsetWidth;this.style.width=""},l(this.VKI_keyboard,"click",function(e){return e=e||event,e.stopPropagation?e.stopPropagation():e.cancelBubble=!0,!1},!1),!this.VKI_layout[this.VKI_kt])return alert('No keyboard named "'+this.VKI_kt+'"');this.VKI_langCode={};var _=document.createElement("thead"),u=document.createElement("tr"),f=document.createElement("th");if(f.colSpan="2",V.VKI_showKbSelect){var m=document.createElement("div");m.title=this.VKI_i18n["02"],l(m,"click",function(){var e=this.getElementsByTagName("ol")[0];if(e.style.display)e.style.display="";else{e.style.display="block";for(var t=e.getElementsByTagName("li"),i=0,a=0;i<t.length;i++)VKI_kt==t[i].firstChild.nodeValue?(t[i].className="selected",a=t[i].offsetTop-2*t[i].offsetHeight):t[i].className="";setTimeout(function(){e.scrollTop=a},0)}},!1),m.appendChild(document.createTextNode(this.VKI_kt)),m.appendChild(document.createTextNode(this.VKI_isIElt8?" ↓":" ▾")),m.langCount=0;var g=document.createElement("ol");for(ktype in this.VKI_layout)if("object"==typeof this.VKI_layout[ktype]){this.VKI_layout[ktype].lang||(this.VKI_layout[ktype].lang=[]);for(var p=0;p<this.VKI_layout[ktype].lang.length;p++)this.VKI_langCode[this.VKI_layout[ktype].lang[p].toLowerCase().replace(/-/g,"_")]=ktype;var y=document.createElement("li");y.title=this.VKI_layout[ktype].name,l(y,"click",function(e){e=e||event,e.stopPropagation?e.stopPropagation():e.cancelBubble=!0,this.parentNode.style.display="",V.VKI_kts=V.VKI_kt=m.firstChild.nodeValue=this.firstChild.nodeValue,V.VKI_buildKeys(),V.VKI_position(!0)},!1),r(y),y.appendChild(document.createTextNode(ktype)),g.appendChild(y),m.langCount++}m.appendChild(g),m.langCount>1&&f.appendChild(m),this.VKI_langCode.index=[];for(prop in this.VKI_langCode)"index"!=prop&&"string"==typeof this.VKI_langCode[prop]&&this.VKI_langCode.index.push(prop);this.VKI_langCode.index.sort(),this.VKI_langCode.index.reverse()}if(this.VKI_numberPad){var k=document.createElement("span");k.appendChild(document.createTextNode("#")),k.title=this.VKI_i18n["00"],l(k,"click",function(){z.style.display=z.style.display?"":"none",V.VKI_position(!0),V.VKI_target.focus()},!1),r(k),f.appendChild(k)}if(this.VKI_kbsize=function(){V.VKI_size=Math.min(5,Math.max(1,V.VKI_size)),V.VKI_keyboard.className=V.VKI_keyboard.className.replace(/ ?keyboardInputSize\d ?/,""),2!=V.VKI_size&&(V.VKI_keyboard.className+=" keyboardInputSize"+V.VKI_size),V.VKI_position(!0),V.VKI_isOpera&&V.VKI_keyboard.reflow()},this.VKI_sizeAdj){var b=document.createElement("small");b.title=this.VKI_i18n[10],l(b,"click",function(){--V.VKI_size,V.VKI_kbsize(),V.VKI_target.focus()},!1),r(b),b.appendChild(document.createTextNode(this.VKI_isIElt8?"↓":"⇓")),f.appendChild(b);var v=document.createElement("big");v.title=this.VKI_i18n[11],l(v,"click",function(){++V.VKI_size,V.VKI_kbsize(),V.VKI_target.focus()},!1),r(v),v.appendChild(document.createTextNode(this.VKI_isIElt8?"↑":"⇑")),f.appendChild(v)}var k=document.createElement("span");k.appendChild(document.createTextNode(this.VKI_i18n["07"])),k.title=this.VKI_i18n["08"],l(k,"click",function(){return V.VKI_target.value="",V.VKI_target.focus(),V.keyInputCallback(),!1},!1),r(k),f.appendChild(k);var C=document.createElement("strong");C.appendChild(document.createTextNode("X")),C.title=this.VKI_i18n["06"],l(C,"click",function(){V.VKI_close(!0)},!1),r(C),f.appendChild(C),u.appendChild(f),_.appendChild(u),this.VKI_keyboard.appendChild(_);var E=document.createElement("tbody"),u=document.createElement("tr"),N=document.createElement("td");N.className="keyboardsArea";var T=document.createElement("table"),x=document.createElement("tr"),w=document.createElement("td");w.className="keyboardInputTextPad";var A=document.createElement("div");if(this.VKI_deadBox){var S=document.createElement("label"),O=document.createElement("input");O.type="checkbox",O.title=this.VKI_i18n["03"]+": "+(this.VKI_deadkeysOn?this.VKI_i18n["04"]:this.VKI_i18n["05"]),O.defaultChecked=this.VKI_deadkeysOn,l(O,"click",function(){return this.title=V.VKI_i18n["03"]+": "+(this.checked?V.VKI_i18n["04"]:V.VKI_i18n["05"]),V.VKI_modify(""),!0},!1),S.appendChild(O),O.checked=this.VKI_deadkeysOn,A.appendChild(S),this.VKI_deadkeysOn=O}else this.VKI_deadkeysOn.checked=this.VKI_deadkeysOn;if(this.VKI_showVersion){var P=document.createElement("var");P.title=this.VKI_i18n["09"]+" "+this.VKI_version,P.appendChild(document.createTextNode("v"+this.VKI_version)),A.appendChild(P)}w.appendChild(A);var z=document.createElement("td");z.className="keyboardInputNumpad",this.VKI_numberPadOn||(z.style.display="none");var B=document.createElement("table");B.cellSpacing="0";for(var L=document.createElement("tbody"),p=0;p<this.VKI_numpad.length;p++){for(var R=document.createElement("tr"),H=0;H<this.VKI_numpad[p].length;H++){var W=document.createElement("td");l(W,"click",o,!1),r(W),W.appendChild(document.createTextNode(this.VKI_numpad[p][H])),R.appendChild(W)}L.appendChild(R)}return B.appendChild(L),z.appendChild(B),x.appendChild(w),x.appendChild(z),T.appendChild(x),N.appendChild(T),u.appendChild(N),E.appendChild(u),this.VKI_keyboard.appendChild(E),this.VKI_isIE6&&(this.VKI_iframe=document.createElement("iframe"),this.VKI_iframe.style.position="absolute",this.VKI_iframe.style.border="0px none",this.VKI_iframe.style.filter="mask()",this.VKI_iframe.style.zIndex="999999",this.VKI_iframe.src=this.VKI_imageURI),this.VKI_buildKeys=function(){this.VKI_shift=this.VKI_shiftlock=this.VKI_altgr=this.VKI_altgrlock=this.VKI_dead=!1;for(var e=this.VKI_keyboard.tBodies[0].getElementsByTagName("div")[0],t=e.getElementsByTagName("table"),i=t.length-1;i>=0;i--)e.removeChild(t[i]);for(var a,i=0,s=!1;a=this.VKI_layout[this.VKI_kt].keys[i++];){var d=document.createElement("table");d.cellSpacing="0",a.length<=this.VKI_keyCenter&&(d.className="keyboardInputCenter");for(var h,c=document.createElement("tbody"),I=document.createElement("tr"),K=0;h=a[K++];){var _=document.createElement("td");if(this.VKI_symbol[h[0]]){var u=this.VKI_symbol[h[0]].split("\n"),f=document.createElement("small");f.setAttribute("char",h[0]);for(var m=0;m<u.length;m++)m&&f.appendChild(document.createElement("br")),f.appendChild(document.createTextNode(u[m]));_.appendChild(f)}else _.appendChild(document.createTextNode(h[0]||" "));var g=[];if(this.VKI_deadkeysOn.checked)for(key in this.VKI_deadkey)if(key===h[0]){g.push("deadkey");break}switch(a.length>this.VKI_keyCenter&&K==a.length&&g.push("last"),(" "==h[0]||" "==h[1])&&g.push("space"),_.className=g.join(" "),h[1]){case"Caps":case"Shift":case"Alt":case"AltGr":case"AltLk":l(_,"click",function(e){return function(){return V.VKI_modify(e),!1}}(h[1]),!1);break;case"Tab":l(_,"click",function(){if(V.VKI_activeTab)if(V.VKI_target.form){var e=V.VKI_target,t=e.form.elements;V.VKI_close(!1);for(var i=0,a=!1,s=-1;i<t.length;i++)if(-1==s&&t[i].getAttribute("VKI_attached")&&(s=i),a){if(1==V.VKI_activeTab&&t[i])break;if(t[i].getAttribute("VKI_attached"))break}else t[i]==e&&(a=!0);i==t.length&&(i=Math.max(s,0)),t[i].getAttribute("VKI_attached")?V.VKI_show(t[i]):t[i].focus()}else V.VKI_target.focus();else V.VKI_insert(" ");return!1},!1);break;case"Bksp":l(_,"click",function(){if(V.VKI_target.focus(),V.VKI_target.setSelectionRange&&n(V.VKI_target)&&!V.VKI_target.readOnly){var e=[V.VKI_target.selectionStart,V.VKI_target.selectionEnd];e[0]<e[1]&&e[0]++,V.VKI_target.value=V.VKI_target.value.substr(0,e[0]-1)+V.VKI_target.value.substr(e[1]),V.VKI_target.setSelectionRange(e[0]-1,e[0]-1)}else if(V.VKI_target.createTextRange&&!V.VKI_target.readOnly){try{V.VKI_target.range.select()}catch(t){V.VKI_target.range=document.selection.createRange()}V.VKI_target.range.text.length||V.VKI_target.range.moveStart("character",-1),V.VKI_target.range.text=""}else V.VKI_target.value=V.VKI_target.value.substr(0,V.VKI_target.value.length-1);return V.VKI_shift&&V.VKI_modify("Shift"),V.VKI_altgr&&V.VKI_modify("AltGr"),V.VKI_target.focus(),V.keyInputCallback(),!0},!1);break;case"Enter":l(_,"click",function(){if("TEXTAREA"!=V.VKI_target.nodeName){if("function"==typeof V.VKI_enterSubmit)V.VKI_enterSubmit.apply({},[V.VKI_target.value]);else if(V.VKI_enterSubmit&&V.VKI_target.form){for(var e=0,t=!1;e<V.VKI_target.form.elements.length;e++)"submit"==V.VKI_target.form.elements[e].type&&(t=!0);t||V.VKI_target.form.submit()}V.VKI_close(!1)}else V.VKI_insert("\n");return!0},!1);break;default:l(_,"click",o,!1)}r(_),I.appendChild(_);for(var m=0;4>m;m++)this.VKI_deadkey[h[m]=h[m]||""]&&(s=!0)}c.appendChild(I),d.appendChild(c),e.appendChild(d)}this.VKI_deadBox&&(this.VKI_deadkeysOn.style.display=s?"inline":"none"),this.VKI_isIE6&&(this.VKI_iframe.style.width=this.VKI_keyboard.offsetWidth+"px",this.VKI_iframe.style.height=this.VKI_keyboard.offsetHeight+"px")},this.VKI_buildKeys(),l(this.VKI_keyboard,"selectstart",function(){return!1},!1),this.VKI_keyboard.unselectable="on",this.VKI_isOpera&&l(this.VKI_keyboard,"mousedown",function(){return!1},!1),this.VKI_modify=function(e){switch(e){case"Alt":case"AltGr":this.VKI_altgr=!this.VKI_altgr;break;case"AltLk":this.VKI_altgr=0,this.VKI_altgrlock=!this.VKI_altgrlock;break;case"Caps":this.VKI_shift=0,this.VKI_shiftlock=!this.VKI_shiftlock;break;case"Shift":this.VKI_shift=!this.VKI_shift}var t=0;!this.VKI_shift!=!this.VKI_shiftlock&&(t+=1),!this.VKI_altgr!=!this.VKI_altgrlock&&(t+=2);for(var i=this.VKI_keyboard.tBodies[0].getElementsByTagName("div")[0].getElementsByTagName("table"),a=0;a<i.length;a++)for(var s=i[a].getElementsByTagName("td"),n=0;n<s.length;n++){var r=[],o=this.VKI_layout[this.VKI_kt].keys[a][n];switch(o[1]){case"Alt":case"AltGr":this.VKI_altgr&&r.push("pressed"),V.VKI_target.focus();break;case"AltLk":this.VKI_altgrlock&&r.push("pressed"),V.VKI_target.focus();break;case"Shift":this.VKI_shift&&r.push("pressed"),V.VKI_target.focus();break;case"Caps":this.VKI_shiftlock&&r.push("pressed"),V.VKI_target.focus();break;case"Tab":case"Bksp":V.VKI_target.focus();case"Enter":break;default:if(e)if(s[n].removeChild(s[n].firstChild),this.VKI_symbol[o[t]]){var l=this.VKI_symbol[o[t]].split("\n"),d=document.createElement("small");d.setAttribute("char",o[t]);for(var h=0;h<l.length;h++)h&&d.appendChild(document.createElement("br")),d.appendChild(document.createTextNode(l[h]));s[n].appendChild(d)}else s[n].appendChild(document.createTextNode(o[t]||" "));if(this.VKI_deadkeysOn.checked){var c=s[n].firstChild.nodeValue||s[n].firstChild.className;this.VKI_dead&&(c==this.VKI_dead&&r.push("pressed"),this.VKI_deadkey[this.VKI_dead][c]&&r.push("target")),this.VKI_deadkey[c]&&r.push("deadkey")}}n==s.length-1&&s.length>this.VKI_keyCenter&&r.push("last"),(" "==o[0]||" "==o[1])&&r.push("space"),s[n].className=r.join(" ")}},this.VKI_insert=function(e){if(this.VKI_target.focus(),this.VKI_target.maxLength&&(this.VKI_target.maxlength=this.VKI_target.maxLength),"undefined"==typeof this.VKI_target.maxlength||this.VKI_target.maxlength<0||this.VKI_target.value.length<this.VKI_target.maxlength){if(this.VKI_target.setSelectionRange&&n(this.VKI_target)&&!this.VKI_target.readOnly&&!this.VKI_isIE){var t=[this.VKI_target.selectionStart,this.VKI_target.selectionEnd];this.VKI_target.value=this.VKI_target.value.substr(0,t[0])+e+this.VKI_target.value.substr(t[1]),"\n"==e&&this.VKI_isOpera&&t[0]++,this.VKI_target.setSelectionRange(t[0]+e.length,t[0]+e.length)}else if(this.VKI_target.createTextRange&&!this.VKI_target.readOnly){try{this.VKI_target.range.select()}catch(i){this.VKI_target.range=document.selection.createRange()}this.VKI_target.range.text=e,this.VKI_target.range.collapse(!0),this.VKI_target.range.select()}else this.VKI_target.value+=e;this.VKI_shift&&this.VKI_modify("Shift"),this.VKI_altgr&&this.VKI_modify("AltGr"),this.VKI_target.focus(),this.keyInputCallback()}else this.VKI_target.createTextRange&&this.VKI_target.range&&this.VKI_target.range.select()},this.VKI_show=function(e){if(this.VKI_target)this.VKI_close(!1);else{if(this.VKI_target=e,this.VKI_langAdapt&&this.VKI_target.lang){for(var t=!1,i=this.VKI_target.lang.toLowerCase().replace(/-/g,"_"),a=0,t=!1;!t&&a<this.VKI_langCode.index.length;a++)0==i.indexOf(this.VKI_langCode.index[a])&&V.VKI_showKbSelect&&(t=m.firstChild.nodeValue=this.VKI_kt=this.VKI_langCode[this.VKI_langCode.index[a]]);t&&this.VKI_buildKeys()}this.VKI_isIE&&(this.VKI_target.range||(this.VKI_target.range=this.VKI_target.createTextRange(),this.VKI_target.range.moveStart("character",this.VKI_target.value.length)),this.VKI_target.range.select());try{this.VKI_keyboard.parentNode.removeChild(this.VKI_keyboard)}catch(s){}this.VKI_clearPasswords&&"password"==this.VKI_target.type&&(this.VKI_target.value="");var e=this.VKI_target;this.VKI_target.keyboardPosition="absolute";do if("fixed"==I(e,"position")){this.VKI_target.keyboardPosition="fixed";break}while(e=e.offsetParent);this.VKI_isIE6&&document.body.appendChild(this.VKI_iframe),document.body.appendChild(this.VKI_keyboard),this.VKI_keyboard.style.position=this.VKI_target.keyboardPosition,this.VKI_isOpera&&this.VKI_keyboard.reflow(),this.VKI_position(!0),(V.VKI_isMoz||V.VKI_isWebKit)&&this.VKI_position(!0),this.VKI_target.blur(),this.VKI_target.focus(),this.VKI_closeOthers()}},this.VKI_closeOthers=function(){function t(t){if("true"===t.getAttribute("VKI_attached")&&!e.equals(V.VKI_target,t)){var i=e.element(t);i.triggerHandler("VKI_close")}}e.forEach(e.element(document).find("input"),t),e.forEach(e.element(document).find("textarea"),t)},this.VKI_position=function(e){if(!V.VKI_relative)return V.VKI_keyboard.style.position="fixed",V.VKI_keyboard.style.bottom="0px",V.VKI_keyboard.style.left="0px",void(V.VKI_keyboard.style.width="100%");if(V.VKI_target){var t=d(V.VKI_keyboard),i=h(),a=c(),s=!1,n=V.VKI_target.offsetHeight+3;if("top"===V.VKI_forcePosition&&(n=-V.VKI_keyboard.offsetHeight-3),e!==!0&&(t[1]+V.VKI_keyboard.offsetHeight-a[1]-i[1]>0&&"bottom"!==V.VKI_forcePosition?(s=!0,n=-V.VKI_keyboard.offsetHeight-3):t[1]-a[1]<0&&(s=!0)),s||e===!0){for(var r=d(V.VKI_target),o=V.VKI_target;(o=o.parentNode)&&o!=document.body;)if(o.scrollHeight>o.offsetHeight||o.scrollWidth>o.offsetWidth){o.getAttribute("VKI_scrollListener")||(o.setAttribute("VKI_scrollListener",!0),l(o,"scroll",function(){V.VKI_position(!0)},!1));var I=d(o),K=r[1]-I[1],_=r[0]-I[0],u=K+V.VKI_target.offsetHeight,f=_+V.VKI_target.offsetWidth,m=o.offsetHeight-K-V.VKI_target.offsetHeight,g=o.offsetWidth-_-V.VKI_target.offsetWidth;V.VKI_keyboard.style.display=0>u||0>f||0>m||0>g?"none":"",V.VKI_isIE6&&(V.VKI_iframe.style.display=0>u||0>f||0>m||0>g?"none":"")}V.VKI_keyboard.style.top=r[1]-("fixed"!=V.VKI_target.keyboardPosition||V.VKI_isIE||V.VKI_isMoz?0:a[1])+n+"px",V.VKI_keyboard.style.left=Math.max(10,Math.min(i[0]-V.VKI_keyboard.offsetWidth-25,r[0]))+"px",V.VKI_isIE6&&(V.VKI_iframe.style.width=V.VKI_keyboard.offsetWidth+"px",V.VKI_iframe.style.height=V.VKI_keyboard.offsetHeight+"px",V.VKI_iframe.style.top=V.VKI_keyboard.style.top,V.VKI_iframe.style.left=V.VKI_keyboard.style.left)}e===!0&&V.VKI_position()}},this.VKI_close=function(e){if(this.VKI_target){try{this.VKI_keyboard.parentNode.removeChild(this.VKI_keyboard),this.VKI_isIE6&&this.VKI_iframe.parentNode.removeChild(this.VKI_iframe)}catch(t){}this.VKI_showKbSelect&&(this.VKI_kt!=this.VKI_kts&&(m.firstChild.nodeValue=this.VKI_kt=this.VKI_kts,this.VKI_buildKeys()),m.getElementsByTagName("ol")[0].style.display=""),e&&this.VKI_target.focus(),this.VKI_isIE?setTimeout(function(){V.VKI_target=!1},0):this.VKI_target=!1}},l(window,"resize",this.VKI_position,!1),l(window,"scroll",this.VKI_position,!1),this.VKI_kbsize(),V};e.module("angular-virtual-keyboard",[]).constant("VKI_CONFIG",{layout:{"US International":{name:"US International",keys:[[["`","~"],["1","!","¡","¹"],["2","@","²"],["3","#","³"],["4","$","¤","£"],["5","%","€"],["6","^","¼"],["7","&","½"],["8","*","¾"],["9","(","‘"],["0",")","’"],["-","_","¥"],["=","+","×","÷"],["Bksp","Bksp"]],[["Tab","Tab"],["q","Q","ä","Ä"],["w","W","å","Å"],["e","E","é","É"],["r","R","®"],["t","T","þ","Þ"],["y","Y","ü","Ü"],["u","U","ú","Ú"],["i","I","í","Í"],["o","O","ó","Ó"],["p","P","ö","Ö"],["[","{","«"],["]","}","»"],["\\","|","¬","¦"]],[["Caps","Caps"],["a","A","á","Á"],["s","S","ß","§"],["d","D","ð","Ð"],["f","F"],["g","G"],["h","H"],["j","J"],["k","K"],["l","L","ø","Ø"],[";",":","¶","°"],["'",'"',"´","¨"],["Enter","Enter"]],[["Shift","Shift"],["z","Z","æ","Æ"],["x","X"],["c","C","©","¢"],["v","V"],["b","B"],["n","N","ñ","Ñ"],["m","M","µ"],[",","<","ç","Ç"],[".",">"],["/","?","¿"],["Shift","Shift"]],[[" "," "," "," "],["Alt","Alt"]]],lang:["en"]}},deadkey:{"~":{a:"ã",l:"ł",n:"ñ",o:"õ",A:"Ã",L:"Ł",N:"Ñ",O:"Õ"},"^":{a:"â",e:"ê",i:"î",o:"ô",u:"û",w:"ŵ",y:"ŷ",A:"Â",E:"Ê",I:"Î",O:"Ô",U:"Û",W:"Ŵ",Y:"Ŷ"},"`":{a:"à",e:"è",i:"ì",o:"ò",u:"ù","ü":"ǜ",A:"À",E:"È",I:"Ì",O:"Ò",U:"Ù","Ü":"Ǜ"},"'":{a:"á",e:"é",i:"í",o:"ó",u:"ú",y:"ý","α":"ά","ε":"έ","η":"ή","ι":"ί","ο":"ό","υ":"ύ","ω":"ώ","ü":"ǘ",A:"Á",E:"É",I:"Í",O:"Ó",U:"Ú",Y:"Ý","Α":"Ά","Ε":"Έ","Η":"Ή","Ι":"Ί","Ο":"Ό","Υ":"Ύ","Ω":"Ώ","Ü":"Ǘ"},"´":{a:"á",e:"é",i:"í",o:"ó",u:"ú",y:"ý","α":"ά","ε":"έ","η":"ή","ι":"ί","ο":"ό","υ":"ύ","ω":"ώ","ü":"ǘ",A:"Á",E:"É",I:"Í",O:"Ó",U:"Ú",Y:"Ý","Α":"Ά","Ε":"Έ","Η":"Ή","Ι":"Ί","Ο":"Ό","Υ":"Ύ","Ω":"Ώ","Ü":"Ǘ"},"¨":{a:"ä",e:"ë",i:"ï",o:"ö",u:"ü",y:"ÿ","ι":"ϊ","υ":"ϋ","ū":"ǖ","ú":"ǘ","ǔ":"ǚ","ù":"ǜ",A:"Ä",E:"Ë",I:"Ï",O:"Ö",U:"Ü",Y:"Ÿ","Ι":"Ϊ","Υ":"Ϋ","Ū":"Ǖ","Ú":"Ǘ","Ǔ":"Ǚ","Ù":"Ǜ","か":"が","き":"ぎ","く":"ぐ","け":"げ","こ":"ご","た":"だ","ち":"ぢ","つ":"づ","て":"で","と":"ど","さ":"ざ","し":"じ","す":"ず","せ":"ぜ","そ":"ぞ","は":"ば","ひ":"び","ふ":"ぶ","へ":"べ","ほ":"ぼ","カ":"ガ","キ":"ギ","ク":"グ","ケ":"ゲ","コ":"ゴ","タ":"ダ","チ":"ヂ","ツ":"ヅ","テ":"デ","ト":"ド","サ":"ザ","シ":"ジ","ス":"ズ","セ":"ゼ","ソ":"ゾ","ハ":"バ","ヒ":"ビ","フ":"ブ","ヘ":"ベ","ホ":"ボ"}},kt:"US International",i18n:{"00":"Display Number Pad","01":"Display virtual keyboard interface","02":"Select keyboard layout","03":"Dead keys","04":"On","05":"Off","06":"Close the keyboard","07":"Clear","08":"Clear this input","09":"Version",10:"Decrease keyboard size",11:"Increase keyboard size"},relative:!0,sizeAdj:!0}).service("ngVirtualKeyboardService",["VKI_CONFIG",function(e){return{attach:function(i,a,s){a=a||{},a.i18n=a.i18n||e.i18n,a.kt=a.kt||e.kt,a.relative=a.relative===!1?!1:e.relative,a.keyCenter=a.keyCenter||e.keyCenter,a.sizeAdj=a.sizeAdj===!1?!1:e.sizeAdj;var n=new t(a,e.layout,e.deadkey,s);n.attachVki(i)}}}]).directive("ngVirtualKeyboard",["ngVirtualKeyboardService","$timeout","$injector",function(e,t,i){return{restrict:"A",require:"?ngModel",scope:{config:"=ngVirtualKeyboard"},link:function(a,s,n,r){if(r){if(i.has("UAParser")){var o=i.get("UAParser"),l=(new o).getResult(),d="mobile"===l.device.type||"tablet"===l.device.type;if(d=d||l.os&&"Android"===l.os.name,d=d||l.os&&"iOS"===l.os.name,d&&a.config.showInMobile!==!0)return}e.attach(s[0],a.config,function(){t(function(){r.$setViewValue(s[0].value)})})}}}}])}(angular);

@@ -63,3 +63,4 @@ angular.module('angular-virtual-keyboard', [])

},
relative: true
relative: true,
sizeAdj: true
})

@@ -75,2 +76,3 @@ .service('ngVirtualKeyboardService', ['VKI_CONFIG', function(VKI_CONFIG) {

config.keyCenter = config.keyCenter || VKI_CONFIG.keyCenter;
config.sizeAdj = config.sizeAdj === false ? false : VKI_CONFIG.sizeAdj;

@@ -77,0 +79,0 @@ var vki = new VKI(config, VKI_CONFIG.layout, VKI_CONFIG.deadkey, inputCallback);

@@ -72,3 +72,3 @@ /* jshint ignore:start */

this.VKI_size = config.size >=1 && config.size <= 5 ? config.size : 3; // Default keyboard size (1-5)
this.VKI_sizeAdj = true; // Allow user to adjust keyboard size
this.VKI_sizeAdj = config.sizeAdj === false ? false : true; // Allow user to adjust keyboard size
this.VKI_clearPasswords = false; // Clear password fields on focus

@@ -208,3 +208,3 @@ this.VKI_imageURI = config.imageURI !== undefined ? config.imageURI : ""; // If empty string, use imageless mode

if (self.VKI_target != this) {
if (self.VKI_target) self.VKI_close();
if (self.VKI_target) self.VKI_close(false);
self.VKI_show(this);

@@ -233,3 +233,6 @@ }

VKI_addListener(document.documentElement, 'click', function(e) { self.VKI_close(); }, false);
VKI_addListener(document.documentElement, 'click', function(e) { self.VKI_close(false); }, false);
// Attach close event handler.
angular.element(elem).bind('VKI_close', function(){self.VKI_close(false);});
};

@@ -361,2 +364,3 @@

self.VKI_position(true);
self.VKI_target.focus();
}, false);

@@ -380,2 +384,3 @@ VKI_mouseEvents(span);

self.VKI_kbsize();
self.VKI_target.focus();
}, false);

@@ -390,2 +395,3 @@ VKI_mouseEvents(small);

self.VKI_kbsize();
self.VKI_target.focus();
}, false);

@@ -412,3 +418,3 @@ VKI_mouseEvents(big);

strong.title = this.VKI_i18n['06'];
VKI_addListener(strong, 'click', function() { self.VKI_close(); }, false);
VKI_addListener(strong, 'click', function() { self.VKI_close(true); }, false);
VKI_mouseEvents(strong);

@@ -582,3 +588,3 @@ th.appendChild(strong);

var target = self.VKI_target, elems = target.form.elements;
self.VKI_close();
self.VKI_close(false);
for (var z = 0, me = false, j = -1; z < elems.length; z++) {

@@ -631,3 +637,3 @@ if (j == -1 && elems[z].getAttribute("VKI_attached")) j = z;

}
self.VKI_close();
self.VKI_close(false);
} else self.VKI_insert("\n");

@@ -688,13 +694,21 @@ return true;

if (this.VKI_altgr) className.push("pressed");
self.VKI_target.focus();
break;
case "AltLk":
if (this.VKI_altgrlock) className.push("pressed");
self.VKI_target.focus();
break;
case "Shift":
if (this.VKI_shift) className.push("pressed");
self.VKI_target.focus();
break;
case "Caps":
if (this.VKI_shiftlock) className.push("pressed");
self.VKI_target.focus();
break;
case "Tab": case "Enter": case "Bksp": break;
case "Tab":
case "Bksp":
self.VKI_target.focus();
case "Enter":
break;
default:

@@ -804,5 +818,21 @@ if (type) {

this.VKI_target.focus();
} else this.VKI_close();
this.VKI_closeOthers();
} else this.VKI_close(false);
};
/* ****************************************************************
* For triggering close to non-focused virtual keyboard elements
*
*/
this.VKI_closeOthers = function() {
function fireCloseEvent(angularElement) {
if(angularElement.getAttribute('VKI_attached') === 'true' && !angular.equals(self.VKI_target, angularElement)) {
var inputChild = angular.element(angularElement);
inputChild.triggerHandler('VKI_close');
}
}
angular.forEach(angular.element(document).find('input'), fireCloseEvent);
angular.forEach(angular.element(document).find('textarea'), fireCloseEvent);
};

@@ -869,3 +899,3 @@ /* ****************************************************************

*/
this.VKI_close = function() {
this.VKI_close = function(keepFocus) {
if (this.VKI_target) {

@@ -882,3 +912,5 @@ try {

}
this.VKI_target.focus();
if (keepFocus) {
this.VKI_target.focus();
}
if (this.VKI_isIE) {

@@ -963,3 +995,3 @@ setTimeout(function() { self.VKI_target = false; }, 0);

// VKI_addListener(document.documentElement, 'click', function(e) { self.VKI_close(); }, false);
// VKI_addListener(document.documentElement, 'click', function(e) { self.VKI_close(true); }, false);
// }

@@ -966,0 +998,0 @@ // VKI_addListener(window, 'load', VKI_buildKeyboardInputs, false);

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc