mirror of
https://github.com/keymanapp/keyman.git
synced 2026-08-05 08:25:32 +00:00
Note: build.sh updated to make sure that test:help build action:target doesn't also call test.sh by adding `:_all` meta-target. Note: CI will need a new help-keyman-com.sh build step to deploy web engine help. Fixes: #12347
440 lines
210 KiB
JavaScript
440 lines
210 KiB
JavaScript
var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(b,a,g){b!=Array.prototype&&b!=Object.prototype&&(b[a]=g.value)};$jscomp.getGlobal=function(b){return"undefined"!=typeof window&&window===b?b:"undefined"!=typeof global&&null!=global?global:b};$jscomp.global=$jscomp.getGlobal(this);
|
|
$jscomp.polyfill=function(b,a,g,k){if(a){g=$jscomp.global;b=b.split(".");for(k=0;k<b.length-1;k++){var e=b[k];e in g||(g[e]={});g=g[e]}b=b[b.length-1];k=g[b];a=a(k);a!=k&&null!=a&&$jscomp.defineProperty(g,b,{configurable:!0,writable:!0,value:a})}};$jscomp.underscoreProtoCanBeSet=function(){var b={a:!0},a={};try{return a.__proto__=b,a.a}catch(g){}return!1};
|
|
$jscomp.setPrototypeOf="function"==typeof Object.setPrototypeOf?Object.setPrototypeOf:$jscomp.underscoreProtoCanBeSet()?function(b,a){b.__proto__=a;if(b.__proto__!==a)throw new TypeError(b+" is not extensible");return b}:null;$jscomp.polyfill("Object.setPrototypeOf",function(b){return b||$jscomp.setPrototypeOf},"es6","es5");
|
|
$jscomp.polyfill("Array.prototype.fill",function(b){return b?b:function(a,b,k){var e=this.length||0;0>b&&(b=Math.max(0,e+b));if(null==k||k>e)k=e;k=Number(k);0>k&&(k=Math.max(0,e+k));for(b=Number(b||0);b<k;b++)this[b]=a;return this}},"es6","es3");var com;
|
|
(function(b){(function(a){var b=function(){return function(){}}();a.KeyEvent=b;b=function(){return function(a,b){this.keyboard=a;this.touchEnabled=b}}();a.AttachmentInfo=b;b=function(){return function(){}}();a.LegacyKeyEvent=b;b=function(){return function(){}}();a.KeyInformation=b;b=function(){return function(a,b){this.cmd=a;this.state=b}}();a.StyleCommand=b})(b.keyman||(b.keyman={}))})(com||(com={}));
|
|
function finallyConstructor(b){var a=this.constructor;return this.then(function(g){return a.resolve(b()).then(function(){return g})},function(g){return a.resolve(b()).then(function(){return a.reject(g)})})}var setTimeoutFunc=setTimeout;function noop(){}function bind(b,a){return function(){b.apply(a,arguments)}}
|
|
function Promise(b){if(!(this instanceof Promise))throw new TypeError("Promises must be constructed via new");if("function"!==typeof b)throw new TypeError("not a function");this._state=0;this._handled=!1;this._value=void 0;this._deferreds=[];doResolve(b,this)}
|
|
function handle(b,a){for(;3===b._state;)b=b._value;0===b._state?b._deferreds.push(a):(b._handled=!0,Promise._immediateFn(function(){var g=1===b._state?a.onFulfilled:a.onRejected;if(null===g)(1===b._state?resolve:reject)(a.promise,b._value);else{try{var k=g(b._value)}catch(e){reject(a.promise,e);return}resolve(a.promise,k)}}))}
|
|
function resolve(b,a){try{if(a===b)throw new TypeError("A promise cannot be resolved with itself.");if(a&&("object"===typeof a||"function"===typeof a)){var g=a.then;if(a instanceof Promise){b._state=3;b._value=a;finale(b);return}if("function"===typeof g){doResolve(bind(g,a),b);return}}b._state=1;b._value=a;finale(b)}catch(k){reject(b,k)}}function reject(b,a){b._state=2;b._value=a;finale(b)}
|
|
function finale(b){2===b._state&&0===b._deferreds.length&&Promise._immediateFn(function(){b._handled||Promise._unhandledRejectionFn(b._value)});for(var a=0,g=b._deferreds.length;a<g;a++)handle(b,b._deferreds[a]);b._deferreds=null}function Handler(b,a,g){this.onFulfilled="function"===typeof b?b:null;this.onRejected="function"===typeof a?a:null;this.promise=g}
|
|
function doResolve(b,a){var g=!1;try{b(function(b){g||(g=!0,resolve(a,b))},function(b){g||(g=!0,reject(a,b))})}catch(k){g||(g=!0,reject(a,k))}}Promise.prototype["catch"]=function(b){return this.then(null,b)};Promise.prototype.then=function(b,a){var g=new this.constructor(noop);handle(this,new Handler(b,a,g));return g};Promise.prototype["finally"]=finallyConstructor;
|
|
Promise.all=function(b){return new Promise(function(a,g){function k(c,d){try{if(d&&("object"===typeof d||"function"===typeof d)){var f=d.then;if("function"===typeof f){f.call(d,function(d){k(c,d)},g);return}}e[c]=d;0===--h&&a(e)}catch(q){g(q)}}if(!b||"undefined"===typeof b.length)throw new TypeError("Promise.all accepts an array");var e=Array.prototype.slice.call(b);if(0===e.length)return a([]);for(var h=e.length,l=0;l<e.length;l++)k(l,e[l])})};
|
|
Promise.resolve=function(b){return b&&"object"===typeof b&&b.constructor===Promise?b:new Promise(function(a){a(b)})};Promise.reject=function(b){return new Promise(function(a,g){g(b)})};Promise.race=function(b){return new Promise(function(a,g){for(var k=0,e=b.length;k<e;k++)b[k].then(a,g)})};Promise._immediateFn="function"===typeof setImmediate&&function(b){setImmediate(b)}||function(b){setTimeoutFunc(b,0)};
|
|
Promise._unhandledRejectionFn=function(b){"undefined"!==typeof console&&console&&console.warn("Possible Unhandled Promise Rejection:",b)};var globalNS=function(){if("undefined"!==typeof self)return self;if("undefined"!==typeof window)return window;if("undefined"!==typeof global)return global;throw Error("unable to locate global object");}();"Promise"in globalNS?globalNS.Promise.prototype["finally"]||(globalNS.Promise.prototype["finally"]=finallyConstructor):globalNS.Promise=Promise;
|
|
var __extends=this&&this.__extends||function(){var b=function(a,g){b=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,b){a.__proto__=b}||function(a,b){for(var h in b)b.hasOwnProperty(h)&&(a[h]=b[h])};return b(a,g)};return function(a,g){function k(){this.constructor=a}b(a,g);a.prototype=null===g?Object.create(g):(k.prototype=g.prototype,new k)}}();
|
|
(function(b){(function(a){var g=function(){function a(){this._DisableInput=!1;this._IgnoreNextSelChange=0;this._SelectionControl=this._Selection=null;this.modStateFlags=0}a.prototype.setFocusTimer=function(){this.focusing=!0;this.focusTimer=window.setTimeout(function(){this.focusing=!1}.bind(this),1E3)};return a}();a.CommonDOMStates=g;var k=function(){function a(b){this.setFocus=function(c){}.bind(this);this.flashCaret=function(){}.bind(this);this.setBlur=function(c){}.bind(this);this._ControlFocus=
|
|
function(c){var d=this.keyman.util.device,f=this.keyman.osk;c=this.keyman._GetEventObject(c);c=this.keyman.util.eventTarget(c);if(null==c||d.touchable&&(null==c.className||0>c.className.indexOf("keymanweb-input")))return!0;c.nodeName.toLowerCase();if(c.ownerDocument&&c instanceof c.ownerDocument.defaultView.HTMLInputElement){var b=c.type.toLowerCase();if("text"!=b&&"search"!=b)return!0}else if(!(!d.touchable&&c.isContentEditable||c.ownerDocument&&c instanceof c.ownerDocument.defaultView.HTMLTextAreaElement))return!0;
|
|
e.states.activeElement=c;3==c.nodeType&&(c=c.parentNode);b=c;(null==c.className||0>c.className.indexOf("keymanweb-input"))&&this instanceof e&&this.scrollBody(c);c.ownerDocument&&c instanceof c.ownerDocument.defaultView.HTMLIFrameElement&&(this.keyman.domManager._AttachToIframe(c),c=c.contentWindow.document);var h=a.states.lastActiveElement;a.states.lastActiveElement=c;this.keyman.uiManager.justActivated?this._BlurKeyboardSettings():this._FocusKeyboardSettings(h?!1:!0);if(this._CommonFocusHelper(c))return!0;
|
|
c._KeymanWebSelectionStart=c._KeymanWebSelectionEnd=null;c.ownerDocument&&c instanceof c.ownerDocument.defaultView.HTMLElement&&this.keyman.domManager._SetTargDir(c);this.doControlFocused(b,a.states.lastActiveElement);d.touchable?f._Enabled=1:f.ready&&(this.keyman.keyboardManager.isCJK()&&(f._Enabled=1),f._Enabled?f._Show():f._Hide(!1));return!0}.bind(this);this._ControlBlur=function(c){c=this.keyman._GetEventObject(c);var d=this.keyman.util.eventTarget(c);if(null==d)return!0;a.states.activeElement=
|
|
null;this instanceof e&&this.hideCaret();3==d.nodeType&&(d=d.parentNode);d.ownerDocument&&(d instanceof d.ownerDocument.defaultView.HTMLIFrameElement&&(d=d.contentWindow.document),d instanceof d.ownerDocument.defaultView.HTMLInputElement||d instanceof d.ownerDocument.defaultView.HTMLTextAreaElement)&&(d._KeymanWebSelectionStart=d.value._kmwCodeUnitToCodePoint(d.selectionStart),d._KeymanWebSelectionEnd=d.value._kmwCodeUnitToCodePoint(d.selectionEnd));this._BlurKeyboardSettings();a.states.lastActiveElement=
|
|
d;this.keyman.uiManager.justActivated=!1;var f=this.keyman.uiManager.isActivating;f||this.keyman.keyboardManager.notifyKeyboard(0,d,0);this.doControlBlurred(d,c,f);this.keyman.osk.ready&&!f&&this.keyman.osk._Hide(!1);this.doChangeEvent(d);this.keyman.interface.resetContext();return!0}.bind(this);this._SelectionChange=function(){a.states._IgnoreNextSelChange&&a.states._IgnoreNextSelChange--;return!0}.bind(this);this._KeyDown=function(c){var d=this.keyman.keyboardManager.activeKeyboard,f=this.keyman.osk,
|
|
b=this.keyman.util,h=this.keyman["interface"];a.states._KeyPressToSwallow=0;if(a.states._DisableInput||null==d)return!0;var e=b.eventTarget(c);if(b.device.touchable){if(e&&"undefined"!=typeof e.kmwInput&&0==e.kmwInput)return!0}else if(e&&0<=e.className.indexOf("kmw-disabled"))return!0;if(!f.ready)return!0;e=this._GetKeyEventProperties(c,!0);if(null==e)return!0;switch(e.Lcode){case 8:h.clearDeadkeys();break;case 16:case 17:case 18:case 20:case 144:case 145:return this.keyman.keyboardManager.notifyKeyboard(e.Lcode,
|
|
e.Ltarg,1),b.device.touchable?!0:f._UpdateVKShift(e,e.Lcode-15,1)}e.LmodifierChange&&(this.keyman.keyboardManager.notifyKeyboard(0,e.Ltarg,1),f._UpdateVKShift(e,0,1));!window.event&&this.keyman.keyMapManager.browserMap.FF["k"+e.Lcode]&&(e.Lcode=this.keyman.keyMapManager.browserMap.FF["k"+e.Lcode]);if(d.KM){if(8==e.Lcode)return a.states._KeyPressToSwallow=1,h.processKeystroke(b.physicalDevice,e.Ltarg,e)||this.keyman.interface.defaultBackspace(),!1;a.states._KeyPressToSwallow=0;l=l||h.processKeystroke(b.physicalDevice,
|
|
e.Ltarg,e)}else{var l=0,g=this.keyman.keyMapManager.languageMap[f._BaseLayout];g&&g["k"+e.Lcode]&&(e.Lcode=g["k"+e.Lcode]);"undefined"!=typeof d.KM||e.Lmodifiers&96||(g={Lcode:this.keyman.keyMapManager._USKeyCodeToCharCode(e),Ltarg:e.Ltarg,Lmodifiers:0,LisVirtualKey:0},h.processKeystroke(b.physicalDevice,g.Ltarg,g)&&(l=1));l=l||h.processKeystroke(b.physicalDevice,e.Ltarg,e);8==e.Lcode&&!l&&null!=e.Ltarg.className&&0<=e.Ltarg.className.indexOf("keymanweb-input")&&this.keyman.interface.defaultBackspace()}!l&&
|
|
96<=e.Lcode&&111>=e.Lcode&&!d.KM&&(h.output(0,e.Ltarg,String._kmwFromCharCode(106>e.Lcode?e.Lcode-48:e.Lcode-64)),l=1);if(l)return c&&c.preventDefault&&(c.preventDefault(),c.stopPropagation()),a.states._KeyPressToSwallow=c?this._GetEventKeyCode(c):0,!1;a.states._KeyPressToSwallow=0;return 8==e.Lcode&&null!=e.Ltarg.className&&0<=e.Ltarg.className.indexOf("keymanweb-input")?!1:"undefined"!=typeof e.Ltarg.base&&(c=f.defaultKeyOutput("",e.Lcode,e.Lmodifiers,!1,e.Ltarg))?(h.output(0,e.Ltarg,c),!1):!0}.bind(this);
|
|
this._KeyPress=function(c){if(a.states._DisableInput||null==this.keyman.keyboardManager.activeKeyboard)return!0;var d=this._GetKeyEventProperties(c);if(null==d||d.LisVirtualKey)return!0;if(!this.keyman.keyboardManager.activeKeyboard.KM){if(!a.states._KeyPressToSwallow||32>d.Lcode||this.keyman._BrowserIsSafari&&63232<d.Lcode&&63744>d.Lcode)return!0;if(c=this.keyman._GetEventObject(c))c.returnValue=!1;return!1}if(a.states._KeyPressToSwallow||this.keyman["interface"].processKeystroke(this.keyman.util.physicalDevice,
|
|
d.Ltarg,d))return a.states._KeyPressToSwallow=0,c&&c.preventDefault&&(c.preventDefault(),c.stopPropagation()),!1;a.states._KeyPressToSwallow=0;return!0}.bind(this);this._KeyUp=function(c){var a=this.keyman.keyboardManager,f=this.keyman.osk;c=this._GetKeyEventProperties(c,!1);if(null==c||!f.ready)return!0;switch(c.Lcode){case 13:if(c.Ltarg instanceof c.Ltarg.ownerDocument.defaultView.HTMLTextAreaElement)break;if(c.Ltarg.base&&c.Ltarg.base instanceof c.Ltarg.base.ownerDocument.defaultView.HTMLTextAreaElement)break;
|
|
c.Ltarg instanceof c.Ltarg.ownerDocument.defaultView.HTMLInputElement&&(a=c.Ltarg,"search"==a.type||"submit"==a.type?a.form.submit():this.keyman.domManager.moveToNext(!1));return!0;case 16:case 17:case 18:case 20:case 144:case 145:return a.notifyKeyboard(c.Lcode,c.Ltarg,0),this.keyman.util.device.touchable?!0:f._UpdateVKShift(c,c.Lcode-15,1)}c.LmodifierChange&&(a.notifyKeyboard(0,c.Ltarg,0),f._UpdateVKShift(c,0,1));return!1}.bind(this);this.keyman=b}a.prototype.getText=function(a){return""};a.prototype.setText=
|
|
function(a,c,d){};a.prototype.getTextBeforeCaret=function(a){return""};a.prototype.setTextBeforeCaret=function(a,c){};a.prototype.getTextCaret=function(a){return 0};a.prototype.setTextCaret=function(a,c){};a.prototype.hideCaret=function(){};a.prototype.updateInput=function(a){};a.prototype.doControlFocused=function(a,c){var d={};d.target=a;d.activeControl=c;return this.keyman.util.callEvent("kmw.controlfocused",d)};a.prototype.doControlBlurred=function(a,c,d){var f={};f.target=a;f.event=c;f.isActivating=
|
|
d;return this.keyman.util.callEvent("kmw.controlblurred",f)};a.prototype._BlurKeyboardSettings=function(b,c){var d=this.keyman.keyboardManager.activeKeyboard?this.keyman.keyboardManager.activeKeyboard.KI:"",f=this.keyman.keyboardManager.getActiveLanguage();void 0!==b&&void 0!==c&&(d=b,f=c);(b=a.states.lastActiveElement)&&null!=b._kmwAttachment.keyboard?(b._kmwAttachment.keyboard=d,b._kmwAttachment.languageCode=f):(this.keyman.globalKeyboard=d,this.keyman.globalLanguageCode=f)};a.prototype._FocusKeyboardSettings=
|
|
function(b){var c=a.states.lastActiveElement;c&&null!=c._kmwAttachment.keyboard?this.keyman.keyboardManager.setActiveKeyboard(c._kmwAttachment.keyboard,c._kmwAttachment.languageCode):b||this.keyman.keyboardManager.setActiveKeyboard(this.keyman.globalKeyboard,this.keyman.globalLanguageCode)};a.prototype._CommonFocusHelper=function(b){var c=this.keyman.uiManager;if(b.ownerDocument&&b instanceof b.ownerDocument.defaultView.HTMLIFrameElement&&(!this.keyman.domManager._IsIEEditableIframe(b,1)||!this.keyman.domManager._IsMozillaEditableIframe(b,
|
|
1)))return a.states._DisableInput=!0;a.states._DisableInput=!1;c.justActivated||(this.keyman["interface"]._DeadKeys=[],this.keyman.keyboardManager.notifyKeyboard(0,b,1));c.justActivated||a.states._SelectionControl==b||(c.isActivating=!1);c.justActivated=!1;a.states._SelectionControl=b;return!1};a.prototype._GetEventKeyCode=function(a){return a.keyCode?a.keyCode:a.which?a.which:null};a.prototype._GetKeyEventProperties=function(h,c){c=new b.keyman.KeyEvent;h=this.keyman._GetEventObject(h);c.Ltarg=this.keyman.util.eventTarget(h);
|
|
if(null==c.Ltarg||!0===h.cancelBubble)return null;3==c.Ltarg.nodeType&&(c.Ltarg=c.Ltarg.parentNode);c.Lcode=this._GetEventKeyCode(h);if(null==c.Lcode)return null;var d=this.keyman.osk,f=this.keyman.keyboardManager.activeKeyboard;if(f&&f.KM&&c.Lcode!=d.keyCodes.K_SPACE){var e=d.defaultKeyOutput("K_xxxx",c.Lcode,h.getModifierState("Shift")?16:0,!1,null);e&&(c.Lcode=e.charCodeAt(0))}e=a.states.modStateFlags;var m=!1,l=!1;switch(c.Lcode){case d.keyCodes.K_CTRL:case d.keyCodes.K_LCTRL:case d.keyCodes.K_RCTRL:case d.keyCodes.K_CONTROL:case d.keyCodes.K_LCONTROL:case d.keyCodes.K_RCONTROL:m=
|
|
!0;break;case d.keyCodes.K_LMENU:case d.keyCodes.K_RMENU:case d.keyCodes.K_ALT:case d.keyCodes.K_LALT:case d.keyCodes.K_RALT:l=!0}var g=0|(h.getModifierState("Shift")?16:0);h.getModifierState("Control")&&(g|=0!=h.location&&m?1==h.location?d.modifierCodes.LCTRL:d.modifierCodes.RCTRL:e&3);h.getModifierState("Alt")&&(g|=0!=h.location&&l?1==h.location?d.modifierCodes.LALT:d.modifierCodes.RALT:e&12);c.Lstates=0;h.getModifierState("CapsLock")?c.Lstates=d.modifierCodes.CAPS:c.Lstates=d.modifierCodes.NO_CAPS;
|
|
h.getModifierState("NumLock")?c.Lstates|=d.modifierCodes.NUM_LOCK:c.Lstates|=d.modifierCodes.NO_NUM_LOCK;h.getModifierState("ScrollLock")||h.getModifierState("Scroll")?c.Lstates|=d.modifierCodes.SCROLL_LOCK:c.Lstates|=d.modifierCodes.NO_SCROLL_LOCK;g|=c.Lstates;c.LmodifierChange=a.states.modStateFlags!=g;a.states.modStateFlags=g;f&&f.KM&&h.getModifierState("CapsLock")&&(65<=c.Lcode&&90>=c.Lcode||97<=c.Lcode&&122>=c.Lcode)&&(g^=16,c.Lcode^=32);f=d.modifierCodes.RALT|d.modifierCodes.LCTRL;(e&f)==f&&
|
|
(g&f)!=f&&(g&=~f);g&d.modifierCodes.RALT&&(g&=~d.modifierCodes.LCTRL);this.keyman.keyboardManager.isChiral()?(c.Lmodifiers=g&d.modifierBitmasks.CHIRAL,d.emulatesAltGr()&&(c.Lmodifiers&d.modifierBitmasks.ALT_GR_SIM)==d.modifierBitmasks.ALT_GR_SIM&&(c.Lmodifiers^=d.modifierBitmasks.ALT_GR_SIM,c.Lmodifiers|=d.modifierCodes.RALT)):c.Lmodifiers=g&16|(g&(d.modifierCodes.LCTRL|d.modifierCodes.RCTRL)?32:0)|(g&(d.modifierCodes.LALT|d.modifierCodes.RALT)?64:0);c.LisVirtualKeyCode="undefined"!=typeof h.charCode&&
|
|
null!=h.charCode&&(0==h.charCode||0!=(c.Lmodifiers&111));c.LisVirtualKey=c.LisVirtualKeyCode||"keypress"!=h.type;return c};a.prototype.doChangeEvent=function(b){if(a.states.changed){if("function"==typeof Event)var c=new Event("change",{bubbles:!0,cancelable:!1});else c=document.createEvent("HTMLEvents"),c.initEvent("change",!0,!1);b.base&&b.base.kmw_ip&&(b=b.base);b.dispatchEvent(c)}a.states.changed=!1};a.states=new g;return a}();a.DOMEventHandlers=k;var e=function(b){function h(c){c=b.call(this,
|
|
c)||this;c.setFocus=function(c){var d=this.keyman.osk,b=this.keyman.util;k.states.setFocusTimer();if(a.Util.instanceof(c,"TouchEvent"))var h=c.touches[0];else h={clientX:0,clientY:0},h.target=k.states.lastActiveElement?k.states.lastActiveElement.kmw_ip:this.keyman.domManager.sortedInputs[0].kmw_ip;c=h.clientX;var e=h.clientY,l=h.target;var g=a.Util.instanceof(l,"HTMLSpanElement")?l.parentNode:null!=l.className&&0<=l.className.indexOf("keymanweb-input")?l.firstChild:l;h=g.parentNode;k.states.activeElement!=
|
|
h&&(this.hideCaret(),k.states.activeElement=h,h.focus());this.keyman.domManager._SetTargDir(h);d.ready&&!d._Visible&&d._Show();if(a.Util.instanceof(l,"HTMLDivElement"))e=b._GetAbsoluteX(g.firstChild),"rtl"==h.dir?(e+=g.firstChild.offsetWidth,d=c>e?0:1E5):d=c<e?0:1E5,this.setTextCaret(h,d),this.scrollInput(h);else{var v;g=g.childNodes[1];l=0;var n=this.getText(h)._kmwLength();d=this.getTextCaret(h);var t=document.body.scrollTop;if(h.base instanceof h.base.ownerDocument.defaultView.HTMLTextAreaElement){var z=
|
|
Math.round(h.base.offsetHeight/h.base.rows);for(v=0;16>v;v++){var x=b._GetAbsoluteY(g)-t;if(x>e&&d>l&&d!=n)n=d,d=Math.round((d+l)/2);else if(x<e-z&&d<n&&d!=l)l=d,d=Math.round((d+n)/2);else break;this.setTextCaret(h,d)}for(;b._GetAbsoluteY(g)-t>e&&d>l;)this.setTextCaret(h,--d);for(;b._GetAbsoluteY(g)-t<e-z&&d<n;)this.setTextCaret(h,++d)}x="rtl"==h.dir?function(c,a){return c<a}:function(c,a){return c>a};for(v=0;16>v;v++){e=b._GetAbsoluteX(g);if(x(e,c)&&d>l&&d!=n)n=d,d=Math.round((d+l)/2);else if(!x(e,
|
|
c)&&d<n&&d!=l)l=d,d=Math.round((d+n)/2);else break;this.setTextCaret(h,d)}for(;x(b._GetAbsoluteX(g),c)&&d>l;)this.setTextCaret(h,--d);for(;!x(b._GetAbsoluteX(g),c)&&d<n;)this.setTextCaret(h,++d)}this._BlurKeyboardSettings();k.states.lastActiveElement=h;this._FocusKeyboardSettings(!1);this._CommonFocusHelper(h)}.bind(c);c.flashCaret=function(){if(this.keyman.util.device.touchable&&null!=k.states.activeElement){var c=this.caret.style;c.visibility="visible"!=c.visibility?"visible":"hidden"}}.bind(c);
|
|
c.setBlur=function(c){this.keyman.interface.resetContext();if("relatedTarget"in c&&c.relatedTarget&&(c=c.relatedTarget,this.doChangeEvent(c),"DIV"!=c.nodeName||-1==c.className.indexOf("keymanweb-input"))){this.cancelInput();return}k.states.focusing||this.cancelInput()}.bind(c);c.dragInput=function(c){c.preventDefault();c.stopPropagation();var d=a.Util.instanceof(c,"TouchEvent")?c.targetTouches[0].target:c.target;if(null!=d){if(null==d.className||0>d.className.indexOf("keymanweb-input"))d=d.parentNode;
|
|
if(null==d.className||0>d.className.indexOf("keymanweb-input"))d=d.parentNode;if(!(null==d.className||0>d.className.indexOf("keymanweb-input"))){if(a.Util.instanceof(c,"TouchEvent")){var b=c.touches[0].screenX;var h=c.touches[0].screenY}else b=c.screenX,h=c.screenY;if("undefined"==typeof this.firstTouch||null==this.firstTouch)this.firstTouch={x:b,y:h};else{var e=this.firstTouch.x,l=this.firstTouch.y;c=d.firstChild;if("TEXTAREA"==d.base.nodeName){if(b=parseInt(c.style.top,10),isNaN(b)&&(b=0),e=l-h,
|
|
-4>e||4<e)c.style.top=(b<e?b-e:0)+"px",this.firstTouch.y=h}else{h=parseInt(c.style.left,10);isNaN(h)&&(h=0);var g=e-b;if(-4>g||4<g)e=0,l=this.keyman.util._GetAbsoluteX(d)+d.offsetWidth-c.offsetWidth-32,"rtl"==d.base.dir?e=16:l-=24,h-=g,h>e&&(h=e),h<l&&(h=l),c.style.left=h+"px",this.firstTouch.x=b}}this.setScrollBar(d)}}}.bind(c);c.initCaret();return c}__extends(h,b);h.prototype.initCaret=function(){this.caret=document.createElement("DIV");var c=this.caret.style;c.position="absolute";c.height="16px";
|
|
c.width="2px";c.backgroundColor="blue";c.border="none";c.left=c.top="0px";c.display="block";c.visibility="hidden";c.zIndex="9998";this.caretTimerId=window.setInterval(this.flashCaret,500)};h.prototype.getText=function(c){return null==c?"":c.textContent};h.prototype.setText=function(c,a,f){if(c&&0<c.childNodes.length){var d=c.firstChild,b=0;if(3<=d.childNodes.length){var h=d.childNodes[0];d=d.childNodes[2];if(null===a){var e=h.textContent;a=d.textContent;a=e+a}0>f&&(f=0);b=a._kmwLength();if(null===
|
|
f||f>b)f=b;e=a._kmwSubstr(0,f);a=a._kmwSubstr(f);h.textContent=e;d.textContent=a}}this.updateBaseElement(c,b)};h.prototype.getTextBeforeCaret=function(c){return c&&1<c.childNodes.length&&(c=c.firstChild,0<c.childNodes.length)?c.childNodes[0].textContent:""};h.prototype.setTextBeforeCaret=function(c,a){if(c&&0<c.childNodes.length){var d=c.firstChild,b=0;1<d.childNodes.length&&(b=d.childNodes[0],d=d.childNodes[2],"TEXTAREA"!=c.base.nodeName&&(a=a.replace(/\s+$/," ")),b.textContent=a,b=a.length,b+=d.textContent.length)}this.updateBaseElement(c,
|
|
b);this.scrollInput(c)};h.prototype.getTextCaret=function(c){return this.getTextBeforeCaret(c)._kmwLength()};h.prototype.setTextCaret=function(c,a){this.setText(c,null,a);this.showCaret(c)};h.prototype.hideCaret=function(){var c=k.states.lastActiveElement;if(c&&null!=c.className&&0<=c.className.indexOf("keymanweb-input")){if(c.base instanceof c.base.ownerDocument.defaultView.HTMLTextAreaElement||c.base instanceof c.base.ownerDocument.defaultView.HTMLInputElement)c.base.value=this.getText(c);this.setText(c,
|
|
null,1E5);var a=c.firstChild.style;"TEXTAREA"==c.base.nodeName?a.top="0":a.left="rtl"==c.base.dir?c.offsetWidth-c.firstChild.offsetWidth-8+"px":"0";this.caret.parentNode&&this.caret.parentNode.removeChild(this.caret);this.caret.style.visibility="hidden";1<c.childNodes.length&&(c.childNodes[1].style.visibility="hidden")}};h.prototype.showCaret=function(c){if(c&&c.firstChild&&!(3>c.firstChild.childNodes.length)){var a=c.firstChild,f=this.caret.style,b=a.childNodes[1];this.caret.parentNode!=a&&a.appendChild(this.caret);
|
|
f.left=b.offsetLeft+"px";f.top=b.offsetTop+"px";f.height=b.offsetHeight-1+"px";f.visibility="hidden";this.scrollBody(c);this.setScrollBar(c)}};h.prototype.updateInput=function(c){var a=this.keyman.util,f=c.style,b=c.base,h=window.getComputedStyle(b,null),e=parseInt(h.marginLeft,10),l=parseInt(h.marginTop,10),g=a._GetAbsoluteX(b),k=a._GetAbsoluteY(b),n=c.offsetParent;n&&(g-=a._GetAbsoluteX(n),k-=a._GetAbsoluteY(n));isNaN(e)&&(e=0);isNaN(l)&&(l=0);f.left=g-e+"px";f.top=k-l+"px";"undefined"!=typeof h.MozBoxSizing&&
|
|
(f.left=g+"px",f.top=k+"px");e=b.offsetWidth;b=b.offsetHeight;l=parseInt(h.paddingLeft,10);g=parseInt(h.paddingRight,10);k=parseInt(h.paddingTop,10);n=parseInt(h.paddingBottom,10);var t=parseInt(h.borderLeft,10),z=parseInt(h.borderRight,10),x=parseInt(h.borderTop,10),B=parseInt(h.borderBottom,10),u="undefined";"undefined"!=typeof h.boxSizing?u=h.boxSizing:"undefined"!=typeof h.MozBoxSizing&&(u=h.MozBoxSizing);"content-box"==u&&(isNaN(l)||(e-=l),isNaN(g)||(e-=g),isNaN(t)||(e-=t),isNaN(z)||(e-=z),isNaN(k)||
|
|
(b-=k),isNaN(n)||(b-=n),isNaN(x)||(b-=x),isNaN(B)||(b-=B));"Android"==a.device.OS&&("undefined"!=typeof h.MozBoxSizing?(f.paddingTop=k+1+"px",f.paddingLeft=l+"px","TEXTAREA"==c.base.nodeName?f.marginTop="1px":f.marginLeft="1px",e--,b--):(e++,b++));f.width=e+"px";f.height=b+"px"};h.prototype.updateBaseElement=function(c,a){var d=c.base.ownerDocument.defaultView;c.base instanceof d.HTMLInputElement||c.base instanceof d.HTMLTextAreaElement?c.base.value=this.getText(c):c.base.textContent=this.getText(c);
|
|
c.style.backgroundColor=0==a?"transparent":window.getComputedStyle(c.base,null).backgroundColor;"iOS"==this.keyman.util.device.OS&&(c.base.style.visibility=0==a?"visible":"hidden")};h.prototype.cancelInput=function(){k.states.activeElement=null;this.hideCaret();this.keyman.osk.hideNow()};h.prototype.setScrollBar=function(c){var a=c.childNodes[0],f=c.childNodes[1].style;(a.offsetWidth>c.offsetWidth||0>a.offsetLeft)&&"TEXTAREA"!=c.base.nodeName?(f.height="4px",f.width=c.offsetWidth/a.offsetWidth*100+
|
|
"%",f.left=-a.offsetLeft/a.offsetWidth*100+"%",f.top="0",f.visibility="visible"):a.offsetHeight>c.offsetHeight||0>a.offsetTop?(f.width="4px",f.height=c.offsetHeight/a.offsetHeight*100+"%",f.top=-a.offsetTop/a.offsetHeight*100+"%",f.left="0",f.visibility="visible"):f.visibility="hidden"};h.prototype.scrollInput=function(a){if(a&&a.firstChild&&null!=a.className&&!(0>a.className.indexOf("keymanweb-input"))){var c=a.firstChild;if(!(3>c.childNodes.length)){var f=this.keyman.util,b=c.childNodes[1],h=f._GetAbsoluteX(b);
|
|
b=f._GetAbsoluteY(b);var e=f._GetAbsoluteX(a);f=f._GetAbsoluteY(a);var l=parseInt(c.style.left,10),g=parseInt(c.style.top,10),k=0,n=0;isNaN(l)&&(l=0);isNaN(g)&&(g=0);a.base instanceof a.base.ownerDocument.defaultView.HTMLTextAreaElement?(h=Math.round(a.offsetHeight/a.base.rows),b<f&&(n=b-f),b>f+a.offsetHeight-h&&(n=b-f-a.offsetHeight+h),0!=n&&(c.style.top=(g<n?g-n:0)+"px")):(h<e+8&&(k=h-e-12),h>e+a.offsetWidth-12&&(k=h-e-a.offsetWidth+12),0!=k&&(c.style.left=(l<k?l-k:0)+"px"));this.showCaret(a)}}};
|
|
h.prototype.scrollBody=function(a){var c=this.keyman.osk,f=this.keyman.util;if(a&&null!=a.className&&!(0>a.className.indexOf("keymanweb-input"))&&c.ready){a=a.firstChild.childNodes[1];f=f._GetAbsoluteY(a);var b=window.pageYOffset;f<b?c=f-b:(c=f-b-(window.innerHeight-c._Box.offsetHeight-a.offsetHeight-2),0>c&&(c=0));0!=c&&window.scrollTo(0,c+window.pageYOffset)}};return h}(k);a.DOMTouchHandlers=e})(b.keyman||(b.keyman={}))})(com||(com={}));
|
|
String.kmwFromCharCode=function(b){var a=[],g;for(g=0;g<arguments.length;g++){var k=Number(arguments[g]);if(!isFinite(k)||0>k||1114111<k||Math.floor(k)!==k)throw new RangeError("Invalid code point "+k);65536>k?a.push(k):(k-=65536,a.push((k>>10)+55296),a.push(k%1024+56320))}return String.fromCharCode.apply(void 0,a)};
|
|
String.prototype.kmwCharCodeAt=function(b){var a=String(this),g=0;if(0>b||b>=a.length)return NaN;for(var k=0;k<b;k++)if(g=a.kmwNextChar(g),null===g)return NaN;b=a.charCodeAt(g);return 55296<=b&&56319>=b&&a.length>g+1&&(a=a.charCodeAt(g+1),56320<=a&&57343>=a)?(b-55296<<10)+(a-56320)+65536:b};String.prototype.kmwIndexOf=function(b,a){var g=String(this);b=g.indexOf(b,a);if(0>b)return b;for(var k=a=0;null!==k&&k<b;k=g.kmwNextChar(k))a++;return a};
|
|
String.prototype.kmwLastIndexOf=function(b,a){var g=String(this);b=g.lastIndexOf(b,a);if(0>b)return b;for(var k=a=0;null!==k&&k<b;k=g.kmwNextChar(k))a++;return a};String.prototype.kmwLength=function(){var b=String(this);if(0==b.length)return 0;for(var a=0,g=0;null!==g;a++)g=b.kmwNextChar(g);return a};String.prototype.kmwSlice=function(b,a){var g=String(this);b=g.kmwCodePointToCodeUnit(b);a=g.kmwCodePointToCodeUnit(a);return null===b||null===a?"":g.slice(b,a)};
|
|
String.prototype.kmwSubstr=function(b,a){var g=String(this);0>b&&(b=g.kmwLength()+b);0>b&&(b=0);var k=g.kmwCodePointToCodeUnit(b),e=k;if(null===k)return"";if(2>arguments.length)e=g.length;else for(var h=0;h<a;h++)e=g.kmwNextChar(e);return null===e?g.substring(k):g.substring(k,e)};
|
|
String.prototype.kmwSubstring=function(b,a){var g=String(this);if("undefined"==typeof a)b=g.kmwCodePointToCodeUnit(b),a=g.length;else{if(b>a){var k=b;b=a;a=k}b=g.kmwCodePointToCodeUnit(b);a=g.kmwCodePointToCodeUnit(a)}if(isNaN(b)||null===b)b=0;if(isNaN(a)||null===a)a=g.length;return g.substring(b,a)};
|
|
String.prototype.kmwNextChar=function(b){var a=String(this);if(null===b||0>b||b>=a.length-1)return null;var g=a.charCodeAt(b);return 55296<=g&&56319>=g&&a.length>b+1&&(g=a.charCodeAt(b+1),56320<=g&&57343>=g)?b==a.length-2?null:b+2:b+1};String.prototype.kmwPrevChar=function(b){var a=String(this);if(null==b||0>=b||b>a.length)return null;var g=a.charCodeAt(b-1);return 56320<=g&&57343>=g&&1<b&&(a=a.charCodeAt(b-2),55296<=a&&56319>=a)?b-2:b-1};
|
|
String.prototype.kmwCodePointToCodeUnit=function(b){if(null===b)return null;var a=String(this),g=0;if(0>b){g=a.length;for(var k=0;k>b;k--)g=a.kmwPrevChar(g);return g}if(b==a.kmwLength())return a.length;for(k=0;k<b;k++)g=a.kmwNextChar(g);return g};String.prototype.kmwCodeUnitToCodePoint=function(b){var a=String(this);return null===b?null:0==b?0:0>b?a.substr(b).kmwLength():a.substr(0,b).kmwLength()};String.prototype.kmwCharAt=function(b){var a=String(this);return 0<=b?a.kmwSubstr(b,1):""};
|
|
String.prototype.kmwBMPNextChar=function(b){var a=String(this);return 0>b||b>=a.length-1?null:b+1};String.prototype.kmwBMPPrevChar=function(b){var a=String(this);return 0>=b||b>a.length?null:b-1};String.prototype.kmwBMPCodePointToCodeUnit=function(b){return b};String.prototype.kmwBMPCodeUnitToCodePoint=function(b){return b};String.prototype.kmwBMPLength=function(){return String(this).length};
|
|
String.prototype.kmwBMPSubstr=function(b,a){var g=String(this);return-1<b?g.substr(b,a):g.substr(g.length+b,-b)};
|
|
String.kmwEnableSupplementaryPlane=function(b){var a=String.prototype;String._kmwFromCharCode=b?String.kmwFromCharCode:String.fromCharCode;a._kmwCharAt=b?a.kmwCharAt:a.charAt;a._kmwCharCodeAt=b?a.kmwCharCodeAt:a.charCodeAt;a._kmwIndexOf=b?a.kmwIndexOf:a.indexOf;a._kmwLastIndexOf=b?a.kmwLastIndexOf:a.lastIndexOf;a._kmwSlice=b?a.kmwSlice:a.slice;a._kmwSubstring=b?a.kmwSubstring:a.substring;a._kmwSubstr=b?a.kmwSubstr:a.kmwBMPSubstr;a._kmwLength=b?a.kmwLength:a.kmwBMPLength;a._kmwNextChar=b?a.kmwNextChar:
|
|
a.kmwBMPNextChar;a._kmwPrevChar=b?a.kmwPrevChar:a.kmwBMPPrevChar;a._kmwCodePointToCodeUnit=b?a.kmwCodePointToCodeUnit:a.kmwBMPCodePointToCodeUnit;a._kmwCodeUnitToCodePoint=b?a.kmwCodeUnitToCodePoint:a.kmwBMPCodeUnitToCodePoint};
|
|
(function(b){(function(a){var b=function(){function b(b){this.inputList=[];this.sortedInputs=[];this.nonKMWTouchHandler=function(b){a.DOMEventHandlers.states.focusing=!1;clearTimeout(a.DOMEventHandlers.states.focusTimer);this.keyman.osk.hideNow()}.bind(this);this._EnablementMutationObserverCore=function(a){for(var b=0;b<a.length;b++){var c=a[b],d=c.oldValue?0<=c.oldValue.indexOf("kmw-disabled"):!1,f=0<=c.target.className.indexOf("kmw-disabled");d&&!f?this._EnableControl(c.target):!d&&f&&this._DisableControl(c.target);
|
|
!f&&"readonly"==c.attributeName&&(d=c.oldValue?null!=c.oldValue:!1,f=c.target,f instanceof f.ownerDocument.defaultView.HTMLInputElement||f instanceof f.ownerDocument.defaultView.HTMLTextAreaElement)&&(f=f.readOnly,d&&!f?this._EnableControl(c.target):!d&&f&&this._DisableControl(c.target))}}.bind(this);this._AutoAttachObserverCore=function(a){for(var b=[],c=[],d=0;d<a.length;d++){for(var f=a[d],h=0;h<f.addedNodes.length;h++)b=b.concat(this._GetDocumentEditables(f.addedNodes[h]));for(h=0;h<f.removedNodes.length;h++)c=
|
|
c.concat(this._GetDocumentEditables(f.removedNodes[h]))}for(a=0;a<b.length;a++)this.isKMWInput(b[a])&&this._MutationAdditionObserved(b[a]);for(a=0;a<c.length;a++)this.isKMWInput(c[a])&&this._MutationRemovalObserved(c[a]);if(b.length||c.length)if(!this.keyman.util.device.touchable)this.listInputs();else if(this.keyman.util.device.touchable){var e=this;window.setTimeout(function(){e.listInputs();for(var a=0;a<this.sortedInputs.length;a++)this.sortedInputs[a].kmw_ip&&this.keyman.touchAliasing.updateInput(this.sortedInputs[a].kmw_ip)}.bind(this),
|
|
1)}}.bind(this);this._MutationAdditionObserved=function(a){if(a instanceof a.ownerDocument.defaultView.HTMLIFrameElement&&!this.keyman.util.device.touchable){var b=this,c=function(){b.attachToControl(a)};a.addEventListener("load",c);"complete"==a.contentDocument.readyState&&window.setTimeout(c,1)}else this.attachToControl(a)};this._MutationRemovalObserved=function(a){this.keyman.util.device.touchable&&this.disableTouchElement(a);this.disableInputElement(a);this.clearElementAttachment(a)};this.enableControl=
|
|
function(a){this.isAttached(a)||console.warn("KeymanWeb is not attached to element "+a);var b=a.className;0<=b.indexOf("kmw-disabled")&&(a.className=b.replace("kmw-disabled","").trim())};this._WindowLoad=function(a){document.body.scrollTop=0;"undefined"!=typeof document.documentElement&&(document.documentElement.scrollTop=0)}.bind(this);this._WindowUnload=function(){this.keyman.uiManager.doUnload();this.keyman.osk.ready&&this.keyman.osk._Unload();this.clearLastActiveElement()}.bind(this);this.init=
|
|
function(a){var b,c=this.keyman.osk;var d=this.keyman.util;var f=d.device,h=function(a){if(0==a.length)return a;"/"!=a.substr(a.length-1,1)&&(a+="/");return"http"==a.replace(/^(http)s?:.*/,"$1")||"file"==a.replace(/^(file):.*/,"$1")?a:"//"==a.substr(0,2)?this.keyman.protocol+a:"/"==a.substr(0,1)?this.keyman.rootPath+a.substr(1):this.keyman.srcPath+a}.bind(this);var e=this.keyman.options;if("object"==typeof a&&null!==a)for(b in e)a.hasOwnProperty(b)&&(e[b]=a[b]);""!=e.root&&(this.keyman.rootPath=h(e.root));
|
|
""==e.resources&&(e.resources=this.keyman.srcPath);e.resources=h(e.resources);e.keyboards=h(e.keyboards);e.fonts=h(e.fonts);""==e.attachType&&(e.attachType="auto");this.keyman.setDefaultDeviceOptions(e);if(this.keyman.initialized)return Promise.resolve();var g=this.keyman,k=this;if("complete"!==document.readyState)return new Promise(function(c){window.setTimeout(function(){k.init(a).then(function(){c()})},50)});this.keyman._MasterDocument=window.document;"Android"==f.OS&&(e=f.getDPI(),f.formFactor=
|
|
screen.height<4*e||screen.width<4*e?"phone":"tablet");this.keyman.setInitialized(1);c.prepare();d.prepareWait();this.keyman.keyboardManager.registerDeferredStubs();this.initializeUI();this.keyman.keyboardManager.registerDeferredKeyboards();if(this.keyman.isEmbedded)return this.keyman.keyboardManager.setDefaultKeyboard()||console.error("No keyboard stubs exist - cannot initialize keyboard!"),Promise.resolve();this.keyman.appliedFont=this.keyman.baseFont=this.getBaseFont();f.touchable&&this.keyman.handleRotationEvents();
|
|
"manual"!=this.keyman.options.attachType&&this._SetupDocument(document.documentElement);this.listInputs();f.touchable&&(c._Box.addEventListener("touchend",function(a){a.stopPropagation()},!1),d=document.createElement("DIV"),e=d.style,e.width="100%",e.height=screen.width/2+"px",document.body.appendChild(d),"Android"==f.OS&&0<navigator.userAgent.indexOf("Chrome")?(this.keyman.hideOskWhileScrolling=function(a){if("undefined"!=typeof c._Box&&"undefined"!=typeof c._Box.style){b=a.target.parentNode;if("undefined"!=
|
|
typeof b&&null!=b&&(0<=b.className.indexOf("keymanweb-input")||0<=b.className.indexOf("kmw-key-")||"undefined"!=typeof b.parentNode&&(b=b.parentNode,0<=b.className.indexOf("keymanweb-input")||0<=b.className.indexOf("kmw-key-"))))return;c.hideNow()}},this.keyman.util.attachDOMEvent(document.body,"touchstart",this.keyman.hideOskWhileScrolling,!1)):(this.keyman.conditionallyHideOsk=function(){g.hideOnRelease&&!c.lgList&&c.hideNow();g.hideOnRelease=!1},this.keyman.hideOskIfOnBody=function(a){g.touchY=
|
|
a.touches[0].screenY;g.hideOnRelease=!0},this.keyman.cancelHideIfScrolling=function(a){a=a.touches[0].screenY;var c=g.touchY;if(5<a-c||5>c-a)g.hideOnRelease=!1},this.keyman.util.attachDOMEvent(document.body,"touchstart",this.keyman.hideOskIfOnBody,!1),this.keyman.util.attachDOMEvent(document.body,"touchmove",this.keyman.cancelHideIfScrolling,!1),this.keyman.util.attachDOMEvent(document.body,"touchend",this.keyman.conditionallyHideOsk,!1)));this.keyman.keyboardManager.restoreCurrentKeyboard();MutationObserver?
|
|
(f=document.querySelector("body"),"manual"!=this.keyman.options.attachType&&(d={childList:!0,subtree:!0},this.attachmentObserver=new MutationObserver(this._AutoAttachObserverCore),this.attachmentObserver.observe(f,d)),d={subtree:!0,attributes:!0,attributeOldValue:!0,attributeFilter:["class","readonly"]},this.enablementObserver=new MutationObserver(this._EnablementMutationObserverCore),this.enablementObserver.observe(f,d)):console.warn("Your browser is outdated and does not support MutationObservers, a web feature needed by KeymanWeb to support dynamically-added elements.");
|
|
this.keyman.setInitialized(2);return Promise.resolve()}.bind(this);this.keyman=b;b.util.device.touchable&&(this.touchHandlers=new a.DOMTouchHandlers(b));this.nonTouchHandlers=new a.DOMEventHandlers(b)}b.prototype.shutdown=function(){this.enablementObserver&&this.enablementObserver.disconnect();this.attachmentObserver&&this.attachmentObserver.disconnect();for(var a=0,b=this.inputList;a<b.length;a++)this.disableInputElement(b[a])};b.prototype.getHandlers=function(a){return(a=a.base?a.base._kmwAttachment:
|
|
a._kmwAttachment)?a.touchEnabled?this.touchHandlers:this.nonTouchHandlers:this.keyman.touchAliasing};b.prototype.enableTouchElement=function(a){if("iframe"==a.tagName.toLowerCase())return!1;if(this.isKMWDisabled(a))return this.setupNonKMWTouchElement(a),!1;a.kmwInput=!0;a.removeEventListener("touchstart",this.nonKMWTouchHandler);if(a.kmw_ip){if(-1!=this.inputList.indexOf(a.kmw_ip))return!1;this.inputList.push(a.kmw_ip);console.log("Unexpected state - this element's simulated input DIV should have been removed from the page!");
|
|
return!0}var b=document.createElement("div");b.base=b.base=a;b._kmwAttachment=a._kmwAttachment;this.enableInputElement(b,!0);a.kmw_ip=b;a.disabled=!0;b.className="keymanweb-input";b.dir=b.base.dir;var e=document.createElement("div");var c=window.getComputedStyle(b.base,null);a=b.style;a.overflow="hidden";a.position="absolute";a.border="hidden";a.border="none";a.borderRadius="5px";var d=document.createElement("div");var f=d.style;f.position="absolute";f.height=f.width="4px";f.left=f.top="0";f.display=
|
|
"block";f.visibility="hidden";f.backgroundColor="#808080";f.borderRadius="2px";f=document.createElement("span");var q=document.createElement("span");var m=document.createElement("span");f.innerHTML=q.innerHTML=m.innerHTML="";f.className=q.className=m.className="keymanweb-font";e.appendChild(f);e.appendChild(m);e.appendChild(q);b.appendChild(e);b.appendChild(d);e=e.style;e.position="absolute";d=f.style;var g=q.style;m=m.style;d.border=g.border="none";d.height=g.height="100%";d.fontFamily=g.fontFamily=
|
|
e.fontFamily=c.fontFamily;"input"!=b.base.nodeName.toLowerCase()||isNaN(parseInt(c.height,10))||(d.lineHeight=g.lineHeight=c.height);m.border="1px solid red";m.visibility="hidden";m.marginLeft=m.marginRight="-1px";a.padding="8px";e.padding="0px 2px";e.backgroundColor="Android"==this.keyman.util.device.OS&&"transparent"==c.backgroundColor?"#fff":c.backgroundColor;b.tabIndex=0;b.style.msTouchAction="none";var k=this.touchHandlers;b.addEventListener("touchstart",k.setFocus);b.onmspointerdown=function(a){a.preventDefault();
|
|
a.stopPropagation();return k.setFocus(a)};b.addEventListener("touchend",function(a){a.stopPropagation()});b.onmspointerup=function(a){a.stopPropagation()};b.addEventListener("touchmove",k.dragInput,!1);b.onmspointermove=k.dragInput;b.onblur=k.setBlur;"textarea"==b.base.nodeName.toLowerCase()?f.style.whiteSpace=q.style.whiteSpace="pre-wrap":f.style.whiteSpace=q.style.whiteSpace="pre";b.base.parentNode.appendChild(b);k.updateInput(b);a=b.style;a.color=c.color;a.fontFamily=c.fontFamily;a.fontSize=c.fontSize;
|
|
a.fontWeight=c.fontWeight;a.textDecoration=c.textDecoration;a.padding=c.padding;a.margin=c.margin;a.border=c.border;a.borderRadius=c.borderRadius;"webkitTapHighlightColor"in a&&(a.webkitTapHighlightColor="rgba(0,0,0,0)");b.base instanceof b.base.ownerDocument.defaultView.HTMLTextAreaElement?(2==b.base.rows&&(f=parseInt(c.height,10)-parseInt(c.paddingTop,10)-parseInt(c.paddingBottom,10),c=parseInt(c.fontSize,10),c=Math.round(f/c),c>b.base.rows+1&&(b.base.rows=c)),e.width=a.width,e.minHeight=a.height):
|
|
(e.minWidth=a.width,e.height=a.height);b.base.style.visibility="hidden";(function(a){a._kmwResizeHandler=function(c){window.setTimeout(function(){k.updateInput(a)},1)};a.base.addEventListener("resize",a._kmwResizeHandler,!1);a.base.addEventListener("orientationchange",a._kmwResizeHandler,!1)})(b);k.setText(b,b.base instanceof b.base.ownerDocument.defaultView.HTMLTextAreaElement||b.base instanceof b.base.ownerDocument.defaultView.HTMLInputElement?b.base.value:b.base.textContent,null);return!0};b.prototype.disableTouchElement=
|
|
function(a){if("iframe"!=a.tagName.toLowerCase()){if(a.kmw_ip){var b=this.inputList.indexOf(a.kmw_ip);-1!=b&&this.inputList.splice(b,1);a.style.visibility="visible";a.disabled=!1;a.removeEventListener("resize",a.kmw_ip._kmwResizeHandler);this.disableInputElement(a.kmw_ip);a.parentNode&&a.parentNode.removeChild(a.kmw_ip);delete a.kmw_ip}this.setupNonKMWTouchElement(a)}};b.prototype.setupNonKMWTouchElement=function(a){this.keyman.util.attachDOMEvent(a,"touchstart",this.nonKMWTouchHandler,!1);this.isAttached(a)&&
|
|
(a._kmwAttachment.touchEnabled=!1)};b.prototype.enableInputElement=function(a,b){b=b?a.base:a;this.isKMWDisabled(b)||(a instanceof a.ownerDocument.defaultView.HTMLIFrameElement?this._AttachToIframe(a):(b.className=b.className?b.className+" keymanweb-font":"keymanweb-font",this.inputList.push(a),this.keyman.util.attachDOMEvent(b,"focus",this.getHandlers(a)._ControlFocus),this.keyman.util.attachDOMEvent(b,"blur",this.getHandlers(a)._ControlBlur),a.onkeypress=this.getHandlers(a)._KeyPress,a.onkeydown=
|
|
this.getHandlers(a)._KeyDown,a.onkeyup=this.getHandlers(a)._KeyUp))};b.prototype.disableInputElement=function(a,b){var h=b?a.base:a;if(a instanceof a.ownerDocument.defaultView.HTMLIFrameElement)this._DetachFromIframe(a);else{0<h.className.indexOf("keymanweb-font")&&!b&&(h.className=h.className.replace("keymanweb-font","").trim());var c=this.inputList.indexOf(a);-1<c&&this.inputList.splice(c,1);b||(this.keyman.util.detachDOMEvent(h,"focus",this.getHandlers(a)._ControlFocus),this.keyman.util.detachDOMEvent(h,
|
|
"blur",this.getHandlers(a)._ControlBlur));a.onkeypress=null;a.onkeydown=null;a.onkeyup=null}b&&(this.inputList.push(h),h.onkeypress=this.getHandlers(a)._KeyPress,h.onkeydown=this.getHandlers(a)._KeyDown,h.onkeyup=this.getHandlers(a)._KeyUp);b=this.getLastActiveElement();if(b==a||b==a.kmw_ip)this.clearLastActiveElement(),this.keyman.keyboardManager.setActiveKeyboard(this.keyman.globalKeyboard,this.keyman.globalLanguageCode),this.keyman.osk._Hide()};b.prototype.isKMWDisabled=function(a){var b=a.className;
|
|
return a.readOnly||b&&0<=b.indexOf("kmw-disabled")?!0:!1};b.prototype.attachToControl=function(a){var b=this.keyman.util.device.touchable;if(!this.isAttached(a)||a instanceof a.ownerDocument.defaultView.HTMLIFrameElement)this.isKMWInput(a)?(this.setupElementAttachment(a),this.isKMWDisabled(a)?b&&this.setupNonKMWTouchElement(a):b?this.enableTouchElement(a):this.enableInputElement(a)):b&&this.setupNonKMWTouchElement(a)};b.prototype.detachFromControl=function(a){this.isAttached(a)&&(this.isKMWInput(a)&&
|
|
(this.isKMWDisabled(a)||this._DisableControl(a)),this.clearElementAttachment(a))};b.prototype.isAttached=function(a){return a._kmwAttachment?!0:!1};b.prototype.isKMWInput=function(a){var b=this.keyman.util.device.touchable;if(a instanceof a.ownerDocument.defaultView.HTMLTextAreaElement)return!0;if(a instanceof a.ownerDocument.defaultView.HTMLInputElement){if("text"==a.type||"search"==a.type)return!0}else if(a instanceof a.ownerDocument.defaultView.HTMLIFrameElement&&!b)try{if(a.contentWindow.document)return!0}catch(l){}else if(a.isContentEditable&&
|
|
!b)return!0;return!1};b.prototype.setupElementAttachment=function(b){b._kmwAttachment||(b._kmwAttachment=new a.AttachmentInfo(null,this.keyman.util.device.touchable))};b.prototype.clearElementAttachment=function(a){a._kmwAttachment=null};b.prototype._AttachToIframe=function(a){var b=this.keyman.util;try{var e=a.contentWindow.document;e&&("on"==e.designMode.toLowerCase()?(b.attachDOMEvent(e,"focus",this.getHandlers(a)._ControlFocus),b.attachDOMEvent(e,"blur",this.getHandlers(a)._ControlBlur),b.attachDOMEvent(e,
|
|
"keydown",this.getHandlers(a)._KeyDown),b.attachDOMEvent(e,"keypress",this.getHandlers(a)._KeyPress),b.attachDOMEvent(e,"keyup",this.getHandlers(a)._KeyUp)):this._SetupDocument(e))}catch(c){}};b.prototype._DetachFromIframe=function(a){var b=this.keyman.util;try{var e=a.contentWindow.document;e&&("on"==e.designMode.toLowerCase()?(b.detachDOMEvent(e,"focus",this.getHandlers(a)._ControlFocus),b.detachDOMEvent(e,"blur",this.getHandlers(a)._ControlBlur),b.detachDOMEvent(e,"keydown",this.getHandlers(a)._KeyDown),
|
|
b.detachDOMEvent(e,"keypress",this.getHandlers(a)._KeyPress),b.detachDOMEvent(e,"keyup",this.getHandlers(a)._KeyUp)):this._ClearDocument(e))}catch(c){}};b.prototype._GetDocumentEditables=function(a){var b=this.keyman.util,e=[];if(a.ownerDocument&&a instanceof a.ownerDocument.defaultView.HTMLElement){var c=a.ownerDocument.defaultView;a instanceof c.HTMLInputElement||a instanceof c.HTMLTextAreaElement?e.push(a):a instanceof c.HTMLIFrameElement&&e.push(a)}a.getElementsByTagName&&(e=e.concat(b.arrayFromNodeList(a.getElementsByTagName("INPUT")),
|
|
b.arrayFromNodeList(a.getElementsByTagName("TEXTAREA")),b.arrayFromNodeList(a.getElementsByTagName("IFRAME"))));a.querySelectorAll&&(e=e.concat(b.arrayFromNodeList(a.querySelectorAll("[contenteditable]"))));a.ownerDocument&&a instanceof a.ownerDocument.defaultView.HTMLElement&&a.isContentEditable&&e.push(a);return e};b.prototype._SetupDocument=function(a){a=this._GetDocumentEditables(a);for(var b=0;b<a.length;b++)this.attachToControl(a[b])};b.prototype._ClearDocument=function(a){a=this._GetDocumentEditables(a);
|
|
for(var b=0;b<a.length;b++)this.detachFromControl(a[b])};b.prototype._SetTargDir=function(a){var b=this.keyman.keyboardManager.isRTL()?"rtl":"ltr";a&&(this.keyman.util.device.touchable?0==a.textContent.length&&(a.base.dir=a.dir=b,this.getHandlers(a).setTextCaret(a,1E4)):a instanceof a.ownerDocument.defaultView.HTMLInputElement||a instanceof a.ownerDocument.defaultView.HTMLTextAreaElement?0==a.value.length&&(a.dir=b):"string"==typeof a.textContent&&0==a.textContent.length&&(a.dir=b))};b.prototype._DisableControl=
|
|
function(a){this.isAttached(a)&&(this.keyman.util.device.touchable?(this.disableTouchElement(a),this.setupNonKMWTouchElement(a),window.setTimeout(function(){this.listInputs();for(var b=0;b<this.sortedInputs.length;b++)this.sortedInputs[b].kmw_ip&&this.getHandlers(a).updateInput(this.sortedInputs[b].kmw_ip)}.bind(this),1)):this.listInputs(),this.disableInputElement(a))};b.prototype._EnableControl=function(a){if(this.isAttached(a))if(this.keyman.util.device.touchable){this.enableTouchElement(a);var b=
|
|
this.keyman;window.setTimeout(function(){b.domManager.listInputs();for(var h=0;h<this.sortedInputs.length;h++)this.sortedInputs[h].kmw_ip&&this.getHandlers(a).updateInput(this.sortedInputs[h].kmw_ip)}.bind(this),1)}else this.enableInputElement(a)};b.prototype.listInputs=function(){var a,b=[],l=document.getElementsByTagName("input"),c=document.getElementsByTagName("textarea"),d=this.keyman.util;for(a=0;a<l.length;a++)switch(l[a].type){case "text":case "search":case "email":case "url":0>l[a].className.indexOf("kmw-disabled")&&
|
|
b.push({ip:l[a],x:d._GetAbsoluteX(l[a]),y:d._GetAbsoluteY(l[a])})}for(a=0;a<c.length;a++)0>c[a].className.indexOf("kmw-disabled")&&b.push({ip:c[a],x:d._GetAbsoluteX(c[a]),y:d._GetAbsoluteY(c[a])});b.sort(function(a,c){return a.y!=c.y?a.y-c.y:a.x-c.x});l=[];for(a=0;a<b.length;a++)l.push(b[a].ip);this.sortedInputs=l};b.prototype.disableControl=function(a){this.isAttached(a)||console.warn("KeymanWeb is not attached to element "+a);var b=a.className;0>b.indexOf("kmw-disabled")&&(a.className=b?b+" kmw-disabled":
|
|
"kmw-disabled")};b.prototype.setKeyboardForControl=function(a,b,l){null!==b&&void 0!==b?0>b.indexOf("Keyboard_")&&""!=b&&(b="Keyboard_"+b):l=null;if(a instanceof a.ownerDocument.defaultView.HTMLIFrameElement)console.warn("'keymanweb.setKeyboardForControl' cannot set keyboard on iframes.");else if(this.isAttached(a)){a._kmwAttachment.keyboard=b;a._kmwAttachment.languageCode=l;var c=this.getLastActiveElement();!c||c!=a&&c!=a.kmw_ip||(null!=b&&null!=l?this.keyman.keyboardManager.setActiveKeyboard(b,
|
|
l):this.keyman.keyboardManager.setActiveKeyboard(this.keyman.globalKeyboard,this.keyman.globalLanguageCode))}else console.error("KeymanWeb is not attached to element "+a)};b.prototype.getKeyboardForControl=function(a){if(this.isAttached(a))return a._kmwAttachment.keyboard;console.error("KeymanWeb is not attached to element "+a);return null};b.prototype.getLanguageForControl=function(a){if(this.isAttached(a))return a._kmwAttachment.languageCode;console.error("KeymanWeb is not attached to element "+
|
|
a);return null};b.prototype.focusLastActiveElement=function(){var a=this.getLastActiveElement();a&&(this.keyman.uiManager.justActivated=!0,a.ownerDocument&&a instanceof a.ownerDocument.defaultView.HTMLIFrameElement&&this.keyman.domManager._IsMozillaEditableIframe(a,0)?a.ownerDocument.defaultView.focus():a.focus&&a.focus())};b.prototype.getLastActiveElement=function(){return a.DOMEventHandlers.states.lastActiveElement};b.prototype.clearLastActiveElement=function(){a.DOMEventHandlers.states.lastActiveElement=
|
|
null};b.prototype.getActiveElement=function(){return a.DOMEventHandlers.states.activeElement};b.prototype._setActiveElement=function(b){a.DOMEventHandlers.states.activeElement=b};b.prototype.setActiveElement=function(b,h){"string"==typeof b&&(b=document.getElementById(b));this.isAttached(b)||this.keyman.isEmbedded?(b=b.kmw_ip?b.kmw_ip:b,this.keyman.isEmbedded||this.keyman.touchAliasing._BlurKeyboardSettings(),a.DOMEventHandlers.states.activeElement!=b&&this.keyman.interface.resetContext(),a.DOMEventHandlers.states.activeElement=
|
|
a.DOMEventHandlers.states.lastActiveElement=b,this.keyman.isEmbedded||this.keyman.touchAliasing._FocusKeyboardSettings(!1),1<arguments.length&&h&&(this.keyman.util.device.touchable?this.keyman.touchAliasing.setFocus():this.focusLastActiveElement())):console.warn("Cannot set an element KMW is not attached to as the active element.")};b.prototype.initActiveElement=function(b){null==a.DOMEventHandlers.states.activeElement&&(a.DOMEventHandlers.states.activeElement=b)};b.prototype.moveToNext=function(b){var h,
|
|
e=this.sortedInputs,c=this.getActiveElement(),d=this.keyman.util.device.touchable;if(0!=e.length){d&&(c=c.base);for(h=0;h<e.length&&e[h]!=c;h++);h=b?h-1:h+1;h=h>=e.length?h-e.length:h;h=0>h?h+e.length:h;d?(a.DOMEventHandlers.states.focusing=!0,b=e[h].kmw_ip,"undefined"==typeof b?e[h].focus():(this.keyman.domManager.setActiveElement(b),this.touchHandlers.setTextCaret(b,1E4),this.touchHandlers.scrollInput(b),b.focus())):e[h].focus()}};b.prototype.moveToElement=function(a){"string"==typeof a&&(a=document.getElementById(a));
|
|
this.keyman.util.device.touchable&&a.kmw_ip?a.kmw_ip.focus():a.focus()};b.prototype._IsIEEditableIframe=function(a,b){var h,c=a&&(h=a.tagName)&&"body"==h.toLowerCase()&&(h=a.ownerDocument)&&h.parentWindow;return!b&&c||b&&(!c||a.isContentEditable)};b.prototype._IsMozillaEditableIframe=function(a,b){var h;a=a&&(h=a.defaultView)&&h.frameElement;return!b&&a||b&&(!a||"on"==h.document.designMode.toLowerCase())};b.prototype.getBaseFont=function(){var a=this.keyman.util,b=document.getElementsByTagName("input"),
|
|
g=document.getElementsByTagName("textarea"),c=0;if(0==b.length&&0==g.length)c=0;else if(0<b.length&&0==g.length)c=1;else if(0==b.length&&0<g.length)c=2;else{var d=b[0],f=g[0];d.offsetTop<f.offsetTop?c=1:d.offsetTop>f.offsetTop?c=2:d.offsetLeft<f.offsetLeft?c=1:d.offsetLeft>f.offsetLeft&&(c=2)}switch(c){case 0:case 1:a.getStyleValue(b[0],"font-family");case 2:var q=a.getStyleValue(g[0],"font-family")}if("undefined"==typeof q||"monospace"==q)q="Arial,sans-serif";return q};b.prototype.initializeUI=function(){this.keyman.ui&&
|
|
this.keyman.ui.initialize instanceof Function?(this.keyman.ui.initialize(),this.keyman.osk._Show()):window.setTimeout(this.initializeUI.bind(this),1E3)};return b}();a.DOMManager=b})(b.keyman||(b.keyman={}))})(com||(com={}));
|
|
(function(b){(function(a){var b=function(){function a(){this.touchable=!!("ontouchstart"in window);this.OS="";this.formFactor="desktop";this.dyLandscape=this.dyPortrait=0;this.version="0";this.orientation=window.orientation;this.browser=""}a.prototype.getDPI=function(){var a=document.createElement("DIV"),b=a.style,g=96;if("complete"!==document.readyState)return g;a.id="calculateDPI";b.position="absolute";b.display="block";b.visibility="hidden";b.left="10px";b.top="10px";b.width="1in";b.height="10px";
|
|
document.body.appendChild(a);g="undefined"==typeof window.devicePixelRatio?a.offsetWidth:a.offsetWidth*window.devicePixelRatio;document.body.removeChild(a);return g};a.prototype.detect=function(){var b=a._GetIEVersion();if(navigator&&navigator.userAgent){var h=navigator.userAgent;if(0<=h.indexOf("iPad"))this.OS="iOS",this.formFactor="tablet",this.dyPortrait=this.dyLandscape=0;else if(0<=h.indexOf("iPhone"))this.OS="iOS",this.formFactor="phone",this.dyPortrait=this.dyLandscape=25;else if(0<=h.indexOf("Android")){this.OS=
|
|
"Android";this.formFactor="phone";this.dyPortrait=75;this.dyLandscape=25;try{this.version=h.match(/(?:Android\s+)(\d+\.\d+\.\d+)/)[1]}catch(l){}}else 0<=h.indexOf("Linux")?this.OS="Linux":0<=h.indexOf("Macintosh")?this.OS="MacOSX":0<=h.indexOf("Windows NT")&&(this.OS="Windows",0<=h.indexOf("Touch")&&(this.formFactor="phone"),"number"==typeof navigator.msMaxTouchPoints&&0<navigator.msMaxTouchPoints&&(this.touchable=!0))}"tablet"==this.formFactor&&400>Math.min(screen.width,screen.height)&&(this.formFactor=
|
|
"phone");"phone"==this.formFactor&&720<Math.max(screen.width,screen.height)&&"iOS"!=this.OS&&(this.formFactor="tablet");"iOS"!=this.OS||"ongesturestart"in window||"Win32"==navigator.platform||(this.OS="Android");this.browser="web";if(999>b)this.browser="ie";else{if("iOS"==this.OS||"macosx"==this.OS.toLowerCase())this.browser="safari";/Firefox|Chrome|OPR|Safari|Edge/.test(navigator.userAgent)&&(0<=navigator.userAgent.indexOf("Firefox")&&"onmozorientationchange"in screen?this.browser="firefox":0<=navigator.userAgent.indexOf("OPR")?
|
|
this.browser="opera":0<=navigator.userAgent.indexOf(" Edge/")?this.browser="edge":0<=navigator.userAgent.indexOf("Chrome")?this.browser="chrome":0<=navigator.userAgent.indexOf("Safari")&&(this.browser="safari"))}};a._GetIEVersion=function(){var a="";"userAgent"in navigator&&(a=navigator.userAgent);if("selection"in document){var b=navigator.appVersion;var g=b.indexOf("MSIE ");if(0<=g){if("BackCompat"==document.compatMode)return 6;b=b.substr(g+5);g=b.indexOf(".");if(0<g)return parseInt(b.substr(0,g),
|
|
10)}}g=a.indexOf("Trident/");if(0>g)return 999;a=a.substr(g+8);g=a.indexOf(".");return 0<g?parseInt(a.substr(0,g),10)+4:999};return a}();a.Device=b})(b.keyman||(b.keyman={}))})(com||(com={}));
|
|
(function(b){(function(a){var b=function(){function a(a,b,c,d){this.Pelem=a;this.Peventname=b.toLowerCase();this.Phandler=c;this.PuseCapture=d}a.prototype.equals=function(a){return this.Pelem==a.Pelem&&this.Peventname==a.Peventname&&this.Phandler==a.Phandler&&this.PuseCapture==a.PuseCapture};return a}(),k=function(){function e(a){this.linkedStylesheets=[];this.events={};this.currentEvents=[];this.domEvents=[];this.embeddedFonts=[];this.getAbsoluteX=this._GetAbsoluteX;this.getAbsoluteY=this._GetAbsoluteY;
|
|
this.getAbsolute=this._GetAbsolute;this.selectStartHandler=function(){return!1};this.createElement=this._CreateElement;this.initDevices();this.keyman=a}e.prototype.getLanguageCodes=function(a){return-1==a.indexOf("-")?[a]:a.split("-")};e.prototype.initDevices=function(){this.device=new a.Device;this.physicalDevice=new a.Device;this.activeDevice=this.device;this.device.detect();"desktop"==this.device.formFactor&&(this.device.touchable=!1);this.physicalDevice=new a.Device;this.physicalDevice.touchable=
|
|
!1;this.physicalDevice.browser=this.device.browser;this.physicalDevice.formFactor="desktop";this.physicalDevice.OS=this.device.OS};e.prototype.arrayFromNodeList=function(a){for(var b=[],c=0;c<a.length;c++)b.push(a[c]);return b};e.prototype.addEventListener=function(a,b){this.removeEventListener(a,b);this.events[a].push(b);return!0};e.prototype.removeEventListener=function(a,b){"undefined"==typeof this.events[a]&&(this.events[a]=[]);for(var c=0;c<this.events[a].length;c++)if(this.events[a][c]==b)return this.events[a].splice(c,
|
|
1),!0;return!1};e.prototype.callEvent=function(a,b){if("undefined"==typeof this.events[a])return!0;if(-1!=this.currentEvents.indexOf(a))return!1;this.currentEvents.push(a);for(var c=0;c<this.events[a].length;c++){var d=this.events[a][c],f=!1;try{f=d(b)}catch(q){f=!1}if(!1===f)return this.currentEvents.pop(),!1}this.currentEvents.pop();return!0};e.prototype.attachDOMEvent=function(a,e,c,d){this.detachDOMEvent(a,e,c,d);a.addEventListener(e,c,d?!0:!1);a=new b(a,e,c,d);this.domEvents.push(a)};e.prototype.detachDOMEvent=
|
|
function(a,e,c,d){a.removeEventListener(e,c,d);a=new b(a,e,c,d);for(e=0;e<this.domEvents.length;e++)if(this.domEvents[e].equals(a)){this.domEvents.splice(e,1);break}};e.prototype.getOption=function(a,b){return a in this.keyman.options?this.keyman.options[a]:1<arguments.length?b:""};e.prototype.setOption=function(a,b){this.keyman.options[a]=b};e.prototype._GetAbsoluteX=function(a){if(!a)return 0;var b=a.offsetLeft?a.offsetLeft:0;var c=a;if(c.offsetParent)for(;c.offsetParent;)c=c.offsetParent,b+=c.offsetLeft;
|
|
return c&&c.ownerDocument&&a.ownerDocument!=this.keyman._MasterDocument&&(a=c.ownerDocument)&&a.defaultView&&a.defaultView.frameElement?b+this._GetAbsoluteX(a.defaultView.frameElement)-a.documentElement.scrollLeft:b};e.prototype._GetAbsoluteY=function(a){if(!a)return 0;var b=a.offsetTop?a.offsetTop:0;var c=a;if(c.ownerDocument&&c instanceof c.ownerDocument.defaultView.HTMLElement)for(;c.offsetParent;)c=c.offsetParent,b+=c.offsetTop;return c&&c.ownerDocument&&a.ownerDocument!=this.keyman._MasterDocument&&
|
|
(a=c.ownerDocument)&&a.defaultView&&a.defaultView.frameElement?b+this._GetAbsoluteY(a.defaultView.frameElement)-a.documentElement.scrollTop:b};e.prototype._GetAbsolute=function(a){return{x:this._GetAbsoluteX(a),y:this._GetAbsoluteY(a)}};e.prototype.mouseDownPreventDefaultHandler=function(a){a&&a.preventDefault()};e.prototype._CreateElement=function(a){a=document.createElement(a);"undefined"!=typeof a.onselectstart?a.onselectstart=this.selectStartHandler:(a.style.MozUserSelect="none",a.style.KhtmlUserSelect=
|
|
"none",a.style.UserSelect="none",a.style.WebkitUserSelect="none");return a};e.prototype.getIEVersion=function(){return a.Device._GetIEVersion()};e.prototype.getFontSizeStyle=function(a){a="string"==typeof a?a:a.style.fontSize;return-1!=a.indexOf("em")?(a=parseFloat(a.substr(0,a.indexOf("em"))),{val:a,absolute:!1}):-1!=a.indexOf("px")?(a=parseFloat(a.substr(0,a.indexOf("px"))),{val:a,absolute:!0}):-1!=a.indexOf("%")?(a=parseFloat(a.substr(0,a.indexOf("%"))),{val:a/100,absolute:!1}):null};e.prototype.getStyleValue=
|
|
function(a,b){try{if(a&&"undefined"!=typeof window.getComputedStyle)return window.getComputedStyle(a,"").getPropertyValue(b)}catch(c){}return""};e.prototype.getStyleInt=function(a,b,c){a=parseInt(this.getStyleValue(a,b),10);return isNaN(a)?"number"==typeof c?c:0:a};e.prototype.isTouchDevice=function(){return this.device.touchable};e.prototype.portraitView=function(){return!this.landscapeView()};e.prototype.landscapeView=function(){if("undefined"!=typeof window.orientation)var a=window.orientation;
|
|
else"undefined"!=typeof window.screen.orientation&&(a=window.screen.orientation.angle);return void 0!==a?1==Math.abs(a/90):!1};e.prototype.getViewportScale=function(){try{if(screen.width>document.documentElement.clientWidth)return 1;var a=screen.width;this.landscapeView()?screen.width<screen.height&&(a=screen.height):screen.width>screen.height&&(a=screen.height);return Math.round(100*a/window.innerWidth)/100}catch(l){return 1}};e.prototype.barHeight=function(){var a=0;"phone"==this.device.formFactor&&
|
|
(a=screen.height/2-window.innerHeight-(this.landscapeView()?this.device.dyLandscape:this.device.dyPortrait));return a};e.prototype._EncodeEntities=function(a){return a.replace("&","&").replace("<","<").replace(">",">")};e.prototype.createShim=function(){console.warn("The util.createShim function is deprecated, as its old functionality is no longer needed. It and references to its previously-produced shims may be safely removed.")};e.prototype.showShim=function(a,b,c){console.warn("The util.showShim function is deprecated, as its old functionality is no longer needed. It may be safely removed.")};
|
|
e.prototype.hideShim=function(a){console.warn("The util.hideShim function is deprecated, as its old functionality is no longer needed. It may be safely removed.")};e.prototype.rgba=function(a,b,c,d,f){a="transparent";try{a="rgba("+b+","+c+","+d+","+f+")"}catch(q){a="rgb("+b+","+c+","+d+")"}return a};e.prototype.addStyleSheet=function(a){var b=document.createElement("style");b.type="text/css";b.appendChild(document.createTextNode(a));a=document.getElementsByTagName("HEAD");0<a.length?a[0].appendChild(b):
|
|
document.body.appendChild(b);this.linkedStylesheets.push(b);return b};e.prototype.removeStyleSheet=function(a){if(null==a||"object"!=typeof a||"STYLE"!=a.nodeName||"undefined"==typeof a.parentNode||null==a.parentNode)return!1;a.parentNode.removeChild(a);return!0};e.prototype.linkStyleSheet=function(a){var b=document.getElementsByTagName("head");if(0<b.length){var c=document.createElement("link");c.type="text/css";c.rel="stylesheet";c.href=a;this.linkedStylesheets.push(c);b[0].appendChild(c)}};e.prototype.addFontFaceStyleSheet=
|
|
function(b){if("undefined"!=typeof b&&("undefined"==typeof b.files&&(b.files=b.source),"undefined"!=typeof b.files)){var h,c="",d="",f="",q="",m=[];for(h=0;h<this.embeddedFonts.length;h++)if(this.embeddedFonts[h]==b.family)return;"string"==typeof b.files?m[0]=b.files:m=b.files;for(h=0;h<m.length;h++)0<m[h].toLowerCase().indexOf(".ttf")&&(c=m[h]),0<m[h].toLowerCase().indexOf(".woff")&&(d=m[h]),0<m[h].toLowerCase().indexOf(".eot")&&(f=m[h]),0<m[h].toLowerCase().indexOf(".svg")&&(q=m[h]);""!=c&&0>c.indexOf("/")&&
|
|
(c=this.keyman.options.fonts+c);""!=d&&0>d.indexOf("/")&&(d=this.keyman.options.fonts+d);""!=f&&0>f.indexOf("/")&&(f=this.keyman.options.fonts+f);""!=q&&0>q.indexOf("/")&&(q=this.keyman.options.fonts+q);h="@font-face {\nfont-family:"+b.family+";\nfont-style:normal;\nfont-weight:normal;\n";if(9<=a.Device._GetIEVersion())if("iOS"==this.device.OS)if(""!=c)c=this.unCached(c),h=h+"src:url('"+c+"') format('truetype');";else return;else{f=[];"Android"==this.device.OS?(""!=q&&f.push("url('"+q+"') format('svg')"),
|
|
""!=d&&f.push("url('"+d+"') format('woff')"),""!=c&&f.push("url('"+c+"') format('truetype')")):(""!=d&&f.push("url('"+d+"') format('woff')"),""!=c&&f.push("url('"+c+"') format('truetype')"),""!=q&&f.push("url('"+q+"') format('svg')"));if(0==f.length)return;h+="src:"+f.join(",")+";"}else if(""!=f)h=h+"src:url('"+f+"');";else return;this.addStyleSheet(h+"\n}\n");this.embeddedFonts.push(b.family)}};e.prototype.unCached=function(a){return a};e.prototype.loadCookie=function(a){var b={};if(0<arguments.length){var c=
|
|
this.loadCookie(),d;for(d in c)if(d==a)for(var f=decodeURIComponent(c[d]).split(";"),q=0;q<f.length;q++){var m=f[q].split("=");b[m[0]]=1<m.length?m[1]:""}}else if("undefined"!=typeof document.cookie&&""!=document.cookie)for(c=document.cookie.split(/;\s*/),q=0;q<c.length;q++)f=c[q].split("="),2==f.length&&(b[f[0]]=f[1]);return b};e.prototype.saveCookie=function(a,b){var c="",d;for(d in b)c=c+d+"="+b[d]+";";b=(new Date((new Date).valueOf()+2592E6)).toUTCString();document.cookie=a+"="+encodeURIComponent(c)+
|
|
"; path=/; expires="+b};e.prototype.toNumber=function(a,b){a=parseInt(a,10);return isNaN(a)?b:a};e.prototype.toFloat=function(a,b){a=parseFloat(a);return isNaN(a)?b:a};e.prototype.nzString=function(a,b){var c="";1<arguments.length&&(c=b);return"undefined"==typeof a||null==a||0==a||""==a?c:""+a};e.prototype.deepCopy=function(a,b){b=b||{};for(var c in a)"object"===typeof a[c]?(b[c]=a[c].constructor===Array?[]:{},this.deepCopy(a[c],b[c])):b[c]=a[c];return b};e.prototype.eventTarget=function(a){return a?
|
|
a.target?a.target:a.srcElement?a.srcElement:window.event?window.event.srcElement:null:null};e.prototype.eventType=function(a){return a&&a.type?a.type:window.event?window.event.type:""};e.prototype.alert=function(a,b){var c=this.waiting,d=c.firstChild.childNodes;d[0].style.display="block";d[1].className="kmw-alert-text";d[1].innerHTML=a;d[2].style.display="none";c.style.display="block";c.dismiss=1<arguments.length?b:null};e.prototype.wait=function(a){};e.prototype.prepareWait=function(){var a=document.createElement("DIV"),
|
|
b=document.createElement("DIV"),c=document.createElement("DIV"),d=document.createElement("DIV"),f=document.createElement("DIV");a.className="kmw-wait-background";b.className="kmw-wait-box";a.dismiss=null;c.className="kmw-wait-text";d.className="kmw-wait-graphic";f.className="kmw-alert-close";b.onmousedown=b.onclick=function(c){"block"==f.style.display&&(a.style.display="none",a.dismiss&&a.dismiss())};b.addEventListener("touchstart",b.onclick,!1);a.onmousedown=a.onclick=function(a){a.preventDefault();
|
|
a.stopPropagation()};a.addEventListener("touchstart",a.onclick,!1);b.appendChild(f);b.appendChild(c);b.appendChild(d);a.appendChild(b);document.body.appendChild(a);this.waiting=a};e.prototype.shutdown=function(){this.events={};for(var a=0,b=this.domEvents;a<b.length;a++){var c=b[a];this.detachDOMEvent(c.Pelem,c.Peventname,c.Phandler,c.PuseCapture)}this.waiting.parentNode.removeChild(this.waiting);a=0;for(b=this.linkedStylesheets;a<b.length;a++)c=b[a],c.remove?c.remove():c.parentNode&&c.parentNode.removeChild(c)};
|
|
e.prototype.myPath=function(a){var b,c=document.getElementsByTagName("script");for(b=0;b<c.length;b++){var d=c[b];if(0<=d.src.indexOf(a))return d.src.substr(0,d.src.lastIndexOf("/")+1)}return""};e.prototype.prependProtocol=function(a){return/^https?:/.test(a)?a:"//"==a.substr(0,2)?this.keyman.protocol+a:"/"==a.substr(0,1)?this.keyman.protocol+"/"+a:this.keyman.protocol+"//"+a};e.prototype.testString=function(a){var b=a.family;if("sample"in a&&"string"==typeof a.sample)return"BESbswy"+a.sample;var c=
|
|
"TamilWeb TibetanWeb LatinWeb CherokeeWeb EgyptianWeb SinhalaWeb KhmerWeb ArabicWeb BurmeseWeb LaoWeb OriyaWeb GeezWeb".split(" "),d="\u0bbe\u0bf5 \u0f7f\u0fd0 \u02b0\u02a4 \u13d0\u13c9 \ua723\uf7d3 \u0dd8\u0da3 \u17d6\u178e \u0639\u06b3 \u1038\u1024 \u0ec0\u0edd \u0b03\u0b06 \u1361\u132c".split(" ");for(a=0;a<c.length;a++)if(b==c[a])return"BESbswy"+d[a];return"BESbswy"};e.prototype.checkFont=function(a){var b=a.family,c=document.createElement("DIV"),d=c.style,f=document.createElement("P"),q=document.createElement("P"),
|
|
m=document.createElement("SPAN"),e=m.style,g=document.createElement("SPAN"),h=g.style;d.position="absolute";d.top="10px";d.left="10px";d.visibility="hidden";document.body.appendChild(c);c.appendChild(f);c.appendChild(q);f.appendChild(m);q.appendChild(g);m.setAttribute("style","font-family:monospace !important");h.fontFamily=b+",monospace";e.fontSize=h.fontSize="24px";m.innerHTML=g.innerHTML=this.testString(a);m.offsetWidth!=g.offsetWidth&&(m.setAttribute("style","font-family:sans-serif !important"),
|
|
h.fontFamily=b+",sans-serif",m.offsetWidth!=g.offsetWidth&&(m.setAttribute("style","font-family:serif !important"),h.fontFamily=b+",serif"));a=m.offsetWidth!=g.offsetWidth;f.removeChild(m);q.removeChild(g);c.removeChild(f);c.removeChild(q);document.body.removeChild(c);return a};e.prototype.checkFontDescriptor=function(a){return"undefined"==typeof a||"string"!=typeof a.family?!0:this.checkFont(a)};e.instanceof=function(a,b){var c;if(a.Window)return"Window"==b;a.defaultView?c=a.defaultView[b]:a.ownerDocument?
|
|
c=a.ownerDocument.defaultView[b]:a.target&&(this.instanceof(a.target,"Window")?c=a.target[b]:this.instanceof(a.target,"Document")?c=a.target.defaultView[b]:this.instanceof(a.target,"HTMLElement")&&(c=a.target.ownerDocument.defaultView[b]));return c?a instanceof c:!1};return e}();a.Util=k})(b.keyman||(b.keyman={}))})(com||(com={}));var Util=com.keyman.Util;
|
|
(function(b){(function(a){(function(){return function(){}})();(function(){return function(){}})();(function(){return function(){}})();(function(){return function(){}})();(function(){return function(){}})();(function(){return function(){}})();var b=function(){function a(){}a.prototype.reset=function(){this._cache=[]};a.prototype.get=function(a,c){return"undefined"==typeof this._cache[a]||"undefined"==typeof this._cache[a][c]?null:this._cache[a][c]};a.prototype.set=function(a,c,b){"undefined"==typeof this._cache[a]&&
|
|
(this._cache[a]=[]);this._cache[a][c]=b};return a}(),k=function(){function a(){}a.prototype.reset=function(){this._cache=[]};a.prototype.get=function(a,c){return"undefined"==typeof this._cache[a]||"undefined"==typeof this._cache[a][c]?null:this._cache[a][c]};a.prototype.set=function(a,c,b){"undefined"==typeof this._cache[a]&&(this._cache[a]=[]);this._cache[a][c]=b};return a}(),e=function(){function a(c,b){this.p=c;this.d=b;this.o=a.ordinalSeed++}a.prototype.match=function(a,c){return this.p==a&&this.d==
|
|
c};a.prototype.set=function(){this.matched=1};a.prototype.reset=function(){this.matched=0};a.prototype.before=function(a){return this.o<a.o};a.ordinalSeed=0;return a}(),h=function(){function a(a){this.e=a;this.c=a.style.backgroundColor}a.prototype.reset=function(){this.e.style.backgroundColor=this.c};return a}(),l=function(){function c(c){this.cachedContext=new b;this.cachedContextEx=new k;this.TSS_LAYER=33;this.TSS_PLATFORM=31;this._AnyIndices=[];this._BeepObjects=[];this._BeepTimeout=0;this._DeadKeys=
|
|
[];this._CacheCommands=function(c){var d=[new a.StyleCommand("backcolor",1),new a.StyleCommand("fontname",1),new a.StyleCommand("fontsize",1),new a.StyleCommand("forecolor",1),new a.StyleCommand("bold",0),new a.StyleCommand("italic",0),new a.StyleCommand("strikethrough",0),new a.StyleCommand("subscript",0),new a.StyleCommand("superscript",0),new a.StyleCommand("underline",0)];c.defaultView&&this.keymanweb._push(d,["hilitecolor",1]);for(var b=0;b<d.length;b++)this.keymanweb._push(d[b],d[b][1]?c.queryCommandValue(d[b][0]):
|
|
c.queryCommandState(d[b][0]));return d};this._CacheCommandsReset=function(a,c,d){for(var b=0;b<c.length;b++)c[b][1]?a.queryCommandValue(c[b][0])!=c[b][2]&&(d&&d(),a.execCommand(c[b][0],!1,c[b][2])):a.queryCommandState(c[b][0])!=c[b][2]&&(d&&d(),a.execCommand(c[b][0],!1,null))};this.clearDeadkeys=function(){this._DeadKeys=[]};this.keymanweb=c}c.prototype.saveFocus=function(){a.DOMEventHandlers.states._IgnoreNextSelChange=1};c.prototype.insertText=function(c,b){this.resetContextCache();var d=this.keymanweb.domManager.getLastActiveElement();
|
|
var f=!1;if(null!=d){f=d._KeymanWebSelectionStart;var e=d._KeymanWebSelectionEnd;this.keymanweb.uiManager.setActivatingUI(!0);a.DOMEventHandlers.states._IgnoreNextSelChange=100;this.keymanweb.domManager.focusLastActiveElement();d.ownerDocument&&d instanceof d.ownerDocument.defaultView.HTMLIFrameElement&&this.keymanweb.domManager._IsMozillaEditableIframe(d,0)&&(d=d.documentElement);d._KeymanWebSelectionStart=f;d._KeymanWebSelectionEnd=e;a.DOMEventHandlers.states._IgnoreNextSelChange=0;null!=c&&this.output(0,
|
|
d,c);"undefined"!==typeof b&&null!==b&&this.deadkeyOutput(0,d,b);d._KeymanWebSelectionStart=null;d._KeymanWebSelectionEnd=null;f=!0}return f};c.prototype.registerKeyboard=function(a){this.keymanweb.keyboardManager._registerKeyboard(a)};c.prototype.registerStub=function(a){return this.keymanweb.keyboardManager._registerStub(a)};c.prototype.context=function(a,c,b){var d=this.cachedContext.get(a,c);if(null!==d)return d;b=this.keymanweb.KC_(a,c,b);this.cachedContext.set(a,c,b);return b};c.prototype.nul=
|
|
function(a,c){return"\ufffe"===this.context(a+1,1,c)};c.prototype.contextMatch=function(a,c,b,m){if(this.context(a,m,c)===b)return!0;this._DeadkeyResetMatched();return!1};c.prototype._BuildExtendedContext=function(a,c,b){var d=this.cachedContextEx.get(a,c);if(null!==d)return d;d=this.cachedContextEx.get(a,a);if(null===d){this._DeadKeys.sort(function(a,c){return a.p!=c.p?c.p-a.p:c.o-a.o});var f=[].concat(this._DeadKeys),q=0;for(d={valContext:[],deadContext:[]};d.valContext.length<a;){var e=this._SelPos(b)-
|
|
q;0<f.length&&f[0].p==e?(d.deadContext[a-d.valContext.length-1]=f[0],d.valContext=[f[0].d].concat(d.valContext),f.splice(0,1)):(e=this.context(++q,1,b),d.valContext=[e].concat(d.valContext))}this.cachedContextEx.set(a,a,d)}b=d;b.valContext=b.valContext.slice(0,c);for(d=0;d<b.valContext.length;d++)"\ufffe"==b[d]&&(b.valContext.splice(0,1),b.deadContext.splice(0,1));0==b.valContext.length&&(b.valContext=["\ufffe"],b.deadContext=[]);this.cachedContextEx.set(a,c,b);return b};c.prototype.fullContextMatch=
|
|
function(a,c,b){c=this._BuildExtendedContext(a,b.length,c);a=c.valContext;c=c.deadContext;for(var d=!1,f=0;f<b.length;f++)if("string"==typeof b[f]){if(b[f]!==a[f]){d=!0;break}}else{var q=b[f];switch(q.t){case "d":q.d!==a[f]?d=!0:c[f].set();break;case "a":var e=this.any(f,"string"==typeof a[f]?a[f]:{t:"d",d:a[f]},q.a);q.n?q.n&&(e||"\ufffe"!==a[f])&&(d=!0):e?void 0!==c[f]&&c[f].set():d=!0;break;case "i":q=this._Index(q.i,q.o);void 0!==q&&("string"==typeof q?q:q.d)!==a[f]?d=!0:void 0!==c[f]&&c[f].set();
|
|
break;case "c":a[q.c-1]!==a[f]?d=!0:void 0!==c[f]&&c[f].set();break;case "n":"\ufffe"!=a[f]&&(d=!0);break;default:throw Error("Unexpected object in fullContextMatch specification: "+q);}}d&&(this._DeadkeyResetMatched(),this._AnyIndices=[]);return!d};c.prototype.isKeypress=function(a){return this.keymanweb.keyboardManager.activeKeyboard.KM?!a.LisVirtualKey:this.keymanweb.keyMapManager._USKeyCodeToCharCode(a)?!0:!1};c.prototype.keyMatch=function(a,c,b){var d=!1,f=173==a.Lcode?189:a.Lcode,q=this.keymanweb.keyboardManager.getKeyboardModifierBitmask(),
|
|
e=q&this.keymanweb.osk.modifierBitmasks.ALL;q&=this.keymanweb.osk.stateBitmasks.ALL;255<a.vkCode&&(f=a.vkCode);if(a.LisVirtualKey||255<f){if(16384==(c&16384)||255<f)d=(d=b==f&&(c&e)==a.Lmodifiers)&&this.stateMatch(a,c&q)}else 0==(c&16384)&&(d=f==b);d||this._DeadkeyResetMatched();return d};c.prototype.stateMatch=function(a,c){return(c&a.Lstates)==c};c.prototype.keyInformation=function(c){var b=new a.KeyInformation;b.vk=c.LisVirtualKey;b.code=c.Lcode;b.modifiers=c.Lmodifiers;return b};c.prototype.deadkeyMatch=
|
|
function(a,c,b){if(0==this._DeadKeys.length)return!1;a=this._SelPos(c)-a;for(c=0;c<this._DeadKeys.length;c++)if(this._DeadKeys[c].match(a,b)&&!this._DeadKeys[c].matched)return this._DeadKeys[c].set(),!0;this._DeadkeyResetMatched();return!1};c.prototype.beepReset=function(){this.resetContextCache();var a;for(a=this._BeepTimeout=0;a<this._BeepObjects.length;a++)this._BeepObjects[a].reset();this._BeepObjects=[]};c.prototype.beep=function(a){this.resetContextCache();var c=a;c.defaultView&&a instanceof
|
|
c.defaultView.Document&&(a=c.body);if(a.style&&"undefined"!=typeof a.style.backgroundColor){for(c=0;c<this._BeepObjects.length;c++)if(this._BeepObjects[c].e==a)return;this._BeepObjects=this.keymanweb._push(this._BeepObjects,new h(a));a.style.backgroundColor="#000000";0==this._BeepTimeout&&(this._BeepTimeout=1,window.setTimeout(this.beepReset.bind(this),50));"beepKeyboard"in this.keymanweb&&this.keymanweb.beepKeyboard()}};c.prototype._ExplodeStore=function(a){if("string"==typeof a){var c=this.keymanweb.keyboardManager.getActiveKeyboardTag();
|
|
if(c.stores[a])return c.stores[a];for(var b=[],d=0;d<a._kmwLength();d++)b.push(a._kmwCharAt(d));return c.stores[a]=b}return a};c.prototype.any=function(a,c,b){if(""==c)return!1;b=this._ExplodeStore(b);for(var d=-1,f=0;f<b.length;f++)if("string"==typeof b[f]){if(b[f]==c){d=f;break}}else if(b[f].d===c.d){d=f;break}this._AnyIndices[a]=d;return 0<=d};c.prototype._Index=function(a,c){a=this._ExplodeStore(a);if(this._AnyIndices[c-1]<a.length)return a[this._AnyIndices[c-1]];console.warn("Unmatched contextual index() statement detected in rule with index "+
|
|
c+"!");return""};c.prototype.indexOutput=function(a,c,b,e){this.resetContextCache();c=this._Index(c,b);if(""!==c)if("string"==typeof c)this.output(a,e,c);else if(c.t)switch(c.t){case "b":this.beep(e);break;case "d":this.deadkeyOutput(a,e,c.d);break;default:throw Error("Unexpected object in fullContextMatch specification: "+c);}else this.deadkeyOutput(a,e,c.d)};c.prototype.deleteContext=function(a,c){if(0<a){var b=this._BuildExtendedContext(a,a,c);for(var d=0;d<b.deadContext.length;d++){var f=b.deadContext[d];
|
|
f&&(f=this._DeadKeys.indexOf(f),this._DeadKeys.splice(f,1),a--)}}this._DeadkeyResetMatched();this.output(a,c,"")};c.prototype.output=function(c,b,e){this.resetContextCache();if("oninserttext"in this.keymanweb)this.keymanweb.oninserttext(c,e);var d=b.body?b:b.ownerDocument;var f;if(0<=b.className.indexOf("keymanweb-input"))d=this.keymanweb.touchAliasing.getTextBeforeCaret(b),d=0<c?d._kmwSubstr(0,d._kmwLength()-c)+e:d+e,this.keymanweb.touchAliasing.setTextBeforeCaret(b,d),this._DeadkeyDeleteMatched(),
|
|
0<=c&&this._DeadkeyAdjustPos(this._SelPos(b),-c+e._kmwLength());else{if(d&&(f=d.defaultView)&&f.getSelection&&("on"==d.designMode.toLowerCase()||"true"==b.contentEditable||"plaintext-only"==b.contentEditable||""===b.contentEditable)){var q="on"==d.designMode.toLowerCase();if(q)var g=this._CacheCommands(d);var h=f.getSelection();f=h.focusNode.nodeValue?h.focusNode.substringData(0,h.focusOffset)._kmwLength():0;h.isCollapsed||h.deleteFromDocument();var k=h.getRangeAt(0);0<c&&(k.setStart(h.focusNode,
|
|
h.focusOffset-h.focusNode.nodeValue.substr(0,h.focusOffset)._kmwSubstr(-c).length),k.deleteContents());if(0<e._kmwLength())if(3==h.focusNode.nodeType){k=h.focusOffset;h.focusNode.insertData(h.focusOffset,e);try{h.extend(h.focusNode,k+e.length)}catch(z){h.focusNode.parentNode.scrollIntoView(),h.extend(h.focusNode,k+e.length)}}else{var l=d.createTextNode(e);k.insertNode(l);h.extend(l,e.length)}q&&this._CacheCommandsReset(d,g,null);h.collapseToEnd();0<=c&&(this._DeadkeyDeleteMatched(),this._DeadkeyAdjustPos(f,
|
|
-c+e._kmwLength()))}else b.setSelectionRange&&(null!=b._KeymanWebSelectionStart?(f=b._KeymanWebSelectionStart,d=b._KeymanWebSelectionEnd):(f=b.value._kmwCodeUnitToCodePoint(b.selectionStart),d=b.value._kmwCodeUnitToCodePoint(b.selectionEnd)),"textarea"==b.type.toLowerCase()&&"undefined"!=typeof b.scrollTop&&(q=b.scrollTop,h=b.scrollLeft),0>c?(b.value=b.value._kmwSubstring(0,f)+e+b.value._kmwSubstring(d),c=0):b.value=f<c?e+b.value._kmwSubstring(d):b.value._kmwSubstring(0,f-c)+e+b.value._kmwSubstring(d),
|
|
0<=c&&(this._DeadkeyDeleteMatched(),this._DeadkeyAdjustPos(f,-c+e._kmwLength())),"undefined"!=typeof q&&(b.scrollTop=q,b.scrollLeft=h),d=f-c+e._kmwLength(),d=b.value._kmwCodePointToCodeUnit(d),b.setSelectionRange(d,d),b._KeymanWebSelectionStart=null,b._KeymanWebSelectionEnd=null);"function"==typeof this.keymanweb.refreshElementContent&&this.keymanweb.refreshElementContent(b)}(0<=c||e)&&b==a.DOMEventHandlers.states.activeElement&&(a.DOMEventHandlers.states.changed=!0)};c.prototype.deadkeyOutput=function(a,
|
|
c,b){this.resetContextCache();0<=a&&this.output(a,c,"");this._DeadKeys=[new e(this._SelPos(c),b)].concat(this._DeadKeys)};c.prototype.ifStore=function(a,c,b){b=!0;if(a==this.TSS_LAYER)b=this.keymanweb.osk.layerId===c;else if(a==this.TSS_PLATFORM){var d=c.split(" ");for(a=0;a<d.length;a++)switch(c=d[a].toLowerCase(),c){case "touch":case "hardware":this.keymanweb.util.activeDevice.touchable!=("touch"==c)&&(b=!1);break;case "macos":case "mac":c="macosx";case "macosx":case "windows":case "android":case "ios":case "linux":this.keymanweb.util.activeDevice.OS.toLowerCase()!=
|
|
c&&(b=!1);break;case "tablet":case "phone":case "desktop":this.keymanweb.util.device.formFactor!=c&&(b=!1);break;case "web":"native"==this.keymanweb.util.device.browser&&(b=!1);break;case "native":case "ie":case "chrome":case "firefox":case "safari":case "edge":case "opera":this.keymanweb.util.device.browser!=c&&(b=!1);break;default:b=!1}}return b};c.prototype.setStore=function(a,c,b){this.resetContextCache();return a==this.TSS_LAYER?this.keymanweb.osk.showLayer(c):!1};c.prototype.loadStore=function(a,
|
|
c,b){this.resetContextCache();a=this.keymanweb.util.loadCookie("KeymanWeb_"+a+"_Option_"+c);return"undefined"!=typeof a[c]?decodeURIComponent(a[c]):b};c.prototype.saveStore=function(a,c){this.resetContextCache();var b=this.keymanweb.keyboardManager.activeKeyboard;if(!b||"undefined"==typeof b.KI||""==b.KI)return!1;a="KeymanWeb_"+b.KI+"_Option_"+a;c=encodeURIComponent(c);this.keymanweb.util.saveCookie(a,c);return!0};c.prototype.resetContextCache=function(){this.cachedContext.reset();this.cachedContextEx.reset()};
|
|
c.prototype._DeadkeyResetMatched=function(){for(var a=0,c=this._DeadKeys;a<c.length;a++)c[a].reset()};c.prototype._DeadkeyDeleteMatched=function(){for(var a=this._DeadKeys,c=0;c<a.length;c++)a[c].matched&&a.splice(c--,1)};c.prototype._DeadkeyAdjustPos=function(a,c){for(var b=0,d=this._DeadKeys;b<d.length;b++){var f=d[b];f.p>a&&(f.p+=c)}};c.prototype.doInputEvent=function(a){var c;"function"==typeof window.InputEvent&&(c=new window.InputEvent("input",{bubbles:!0,cancelable:!1}));a.base&&a.base.kmw_ip&&
|
|
(a=a.base);a&&c&&a.dispatchEvent(c)};c.prototype.defaultBackspace=function(a){a||(a=this.keymanweb.domManager.getLastActiveElement());this.output(1,a,"");this.doInputEvent(a)};c.prototype.processKeystroke=function(a,c,b){this.keymanweb._CachedSelectionStart=null;this._DeadkeyResetMatched();this.resetContextCache();this.keymanweb.util.activeDevice=a;(a=this.keymanweb.keyboardManager.activeKeyboard.gs(c,b))&&this.doInputEvent(c);return a};c.prototype.getLastActiveElement=function(){return this.keymanweb.domManager.getLastActiveElement()};
|
|
c.prototype.focusLastActiveElement=function(){this.keymanweb.domManager.focusLastActiveElement()};c.prototype.hideHelp=function(){this.keymanweb.osk._Hide(!0)};c.prototype.showHelp=function(a,c){this.keymanweb.osk._Show(a,c)};c.prototype.showPinnedHelp=function(){this.keymanweb.osk.userPositioned=!0;this.keymanweb.osk._Show(-1,-1)};c.prototype.resetContext=function(){this.keymanweb.osk.layerId="default";this.clearDeadkeys();this.resetContextCache();this.resetVKShift();this.keymanweb.osk._Show()};
|
|
c.prototype.setNumericLayer=function(){var a;for(a=0;a<this.keymanweb.osk.layers.length;a++)"numeric"==this.keymanweb.osk.layers[a].id&&(this.keymanweb.osk.layerId="numeric",this.keymanweb.osk._Show())};c.prototype._SelPos=function(c){var b,d;a.Device._GetIEVersion();if(this.keymanweb.isPositionSynthesized())return this.keymanweb.touchAliasing.getTextCaret(c);if(c._KeymanWebSelectionStart)return c._KeymanWebSelectionStart;if((b=c.ownerDocument)&&(d=b.defaultView))if(c instanceof d.HTMLInputElement||
|
|
c instanceof d.HTMLTextAreaElement){if(c.setSelectionRange)return c.value.substr(0,c.selectionStart)._kmwLength()}else if(d.getSelection&&"on"==c.ownerDocument.designMode.toLowerCase()&&(c=d.getSelection(),3==c.focusNode.nodeType))return c.focusNode.substringData(0,c.focusOffset)._kmwLength();return 0};c.prototype.resetVKShift=function(){this.keymanweb.uiManager.isActivating||this.keymanweb.osk._UpdateVKShift&&this.keymanweb.osk._UpdateVKShift(null,15,0)};return c}();a.KeyboardInterface=l})(b.keyman||
|
|
(b.keyman={}))})(com||(com={}));
|
|
(function(b){(function(a){var b=function(){function a(a,c){this.id=a;this.language=c}a.prototype.toString=function(){var a=this.id;this.language?(a=a+"@"+this.language,this.version&&(a=a+"@"+this.version)):this.version&&(a=a+"@@"+this.version);return a};return a}(),k=function(){return function(a,b){this.family=a.family;this.files=a.source;this.path=b}}(),e=function(){return function(a,b){this.KI="Keyboard_"+a;this.KLC=b}}();a.KeyboardStub=e;var h=function(){return function(){this.stores={}}}();a.KeyboardTag=
|
|
h;var l=function(){function c(a){this.activeStub=null;this.keyboardStubs=[];this.deferredStubs=[];this.deferredKRS=[];this.deferredKR=[];this.dfltStub=null;this.keyboards=[];this.languageList=null;this.languagesPending=[];this.linkedScripts=[];this._GetKeyboardDetail=function(a){var c={};c.Name=a.KN;c.InternalName=a.KI;c.LanguageName=a.KL;c.LanguageCode=a.KLC;c.RegionName=a.KR;c.RegionCode=a.KRC;c.CountryName=a.KC;c.CountryCode=a.KCC;c.KeyboardID=a.KD;c.Font=a.KFont;c.OskFont=a.KOskFont;return c};
|
|
this.notifyKeyboard=function(a,c,b){var d=this.activeKeyboard;null!=d&&"function"==typeof d.KNS&&d.KNS(a,c,b)};this.keymanweb=a}c.prototype.getActiveKeyboardName=function(){return this.activeKeyboard?this.activeKeyboard.KI:""};c.prototype.getActiveKeyboardTag=function(){return this.activeKeyboard?this.activeKeyboard._kmw:null};c.prototype.getActiveLanguage=function(){return null==this.activeStub?"":this.activeStub.KLC};c.prototype.getDetailedKeyboards=function(){var a=[],c;for(c=0;c<this.keyboardStubs.length;c++){var b=
|
|
this.keyboardStubs[c];b=this._GetKeyboardDetail(b);a=this.keymanweb._push(a,b)}return a};c.prototype.registerDeferredStubs=function(){this.addKeyboardArray(this.deferredStubs);for(var a=0;a<this.deferredKRS.length;a++)this._registerStub(this.deferredKRS[a])};c.prototype.registerDeferredKeyboards=function(){for(var a=0;a<this.deferredKR.length;a++)this._registerKeyboard(this.deferredKR[a])};c.prototype.addStub=function(a){if("string"!=typeof a.id)return!1;"undefined"!=typeof a.language&&(console.warn("The 'language' property for keyboard stubs has been deprecated. Please use the 'languages' property instead."),
|
|
a.languages=a.language);if("undefined"==typeof a.languages)return!1;"string"!=typeof a.name&&(a.name=a.id.replace("_"," "),a.name=a.name.substr(0,1).toUpperCase()+a.name.substr(1));var c=a.languages,b=[];"undefined"==typeof c.length?b[0]=c:b=c;var d={keyboardBaseUri:this.keymanweb.options.keyboards,fontBaseUri:this.keymanweb.options.fonts};for(c=0;c<b.length;c++)this.mergeStub(a,b[c],d);return!0};c.prototype.mergeStub=function(a,b,g){var d=this.findStub(a.id,b.id),f=!1;null==d&&(d=new e(a.id,b.id),
|
|
this.keyboardStubs.push(d),f=!0);var h=b.region,q=0;if("number"==typeof h)q=1>h||9<h?0:h-1;else if("string"==typeof h)for(var l=2==h.length?c.regionCodes:c.regions,n=0;n<l.length;n++)if(h.toLowerCase()==l[n].toLowerCase()){q=n;break}d.KL="undefined"===typeof d.KL?b.name:d.KL;d.KR="undefined"===typeof d.KR?c.regions[q]:d.KR;d.KRC="undefined"===typeof d.KRC?c.regionCodes[q]:d.KRC;d.KN="undefined"===typeof d.KN?a.name:d.KN;"undefined"==typeof d.KF&&(h=/^(([\.]\/)|([\.][\.]\/)|(\/))|(:)/,d.KF=a.filename,
|
|
h.test(d.KF)||(d.KF=g.keyboardBaseUri+d.KF));a=g.fontBaseUri;""!=this.keymanweb.options.fonts?(a=this.keymanweb.options.fonts,h=/^https?\:/,h.test(a)||(a="//"==a.substr(0,2)?this.keymanweb.protocol+a:"/"==a.substr(0,1)?this.keymanweb.rootPath+a.substr(1):this.keymanweb.rootPath+a)):this.keymanweb.options.fonts=a;"undefined"!=typeof b.font&&(d.KFont="undefined"===typeof d.KFont?new k(b.font,a):d.KFont);"undefined"!=typeof b.oskFont&&(d.KOskFont="undefined"===typeof d.KOskFont?new k(b.oskFont,a):d.KOskFont);
|
|
this.doKeyboardRegistered(d.KI,d.KL,d.KN,d.KLC,d.KP);!this.activeStub&&f&&1==this.keyboardStubs.length&&(this.doBeforeKeyboardChange(d.KI,d.KLC),this._SetActiveKeyboard(d.KI,d.KLC,!1),this.doKeyboardChange(d.KI,d.KLC))};c.prototype.findStub=function(a,c){var b;for(b=0;b<this.keyboardStubs.length;b++)if(this.keyboardStubs[b].KI=="Keyboard_"+a&&this.keyboardStubs[b].KLC==c)return this.keyboardStubs[b];return null};c.prototype.setDefaultKeyboard=function(){return 0<this.keyboardStubs.length?(this._SetActiveKeyboard(this.keyboardStubs[0].KI,
|
|
this.keyboardStubs[0].KLC),!0):!1};c.prototype.setActiveKeyboard=function(a,c){!this.keymanweb.isEmbedded&&a&&0!=a.indexOf("Keyboard_")&&(a="Keyboard_"+a);this.doBeforeKeyboardChange(a,c);var b=this._SetActiveKeyboard(a,c,!0);null!=this.keymanweb.domManager.getLastActiveElement()&&this.keymanweb.domManager.focusLastActiveElement();this.doKeyboardChange(a,c);return b};c.prototype._SetActiveKeyboard=function(a,c,b){var d,f,e=this.keymanweb.util,g=this.keymanweb.osk;if(2>arguments.length||!c)c="---";
|
|
for(d=0;d<this.keyboardStubs.length&&(a!=this.keyboardStubs[d].KI||c!=this.keyboardStubs[d].KLC&&"---"!=c);d++);e.device.touchable&&(""==a||null==a||d>=this.keyboardStubs.length)&&0!=this.keyboardStubs.length&&(a=this.keyboardStubs[0].KI,c=this.keyboardStubs[0].KLC);2<arguments.length&&b&&this.saveCurrentKeyboard(a,c);if(this.activeStub&&this.activeKeyboard&&this.activeKeyboard.KI==a&&this.activeStub.KI==a&&this.activeStub.KLC==c&&!this.keymanweb.mustReloadKeyboard)return Promise.resolve();if(this.activeKeyboard&&
|
|
this.activeKeyboard.KI==a)for(f=0;f<this.keyboardStubs.length;f++)if(this.keyboardStubs[f].KI==a&&this.keyboardStubs[f].KLC==c)return this.activeStub=this.keyboardStubs[f],g.appendStyleSheet(),this.keymanweb.mustReloadKeyboard&&g._Load(),Promise.resolve();this.activeStub=this.activeKeyboard=null;if(""==a)return g._Hide(!1),this.keymanweb.isEmbedded||e.wait(!1),Promise.resolve();for(f=0;f<this.keyboards.length;f++)if(this.keyboards[f].KI==a){this.activeKeyboard=this.keyboards[f];this.keymanweb.domManager._SetTargDir(this.keymanweb.domManager.getLastActiveElement());
|
|
for(d=0;d<this.keyboardStubs.length;d++)if(this.keyboardStubs[d].KI==a&&(this.keyboardStubs[d].KLC==c||"---"==c)){this.activeStub=this.keyboardStubs[d];break}break}if(null==this.activeKeyboard){for(f=0;f<this.keyboardStubs.length;f++)if(this.keyboardStubs[f].KI==a&&(this.keyboardStubs[f].KLC==c||"---"==c)){if(this.isCJK(this.keyboardStubs[f])||e.device.touchable)g._Enabled=1;if(!this.keyboardStubs[f].asyncLoader){g.ready&&g._Hide(!1);var h=this.keyboardStubs[f];h.asyncLoader={};var q=h.KN,k=h.KL;
|
|
q=q.replace(/\s*keyboard\s*/i,"");h.asyncLoader.callback=function(a,c){var b=a||"Sorry, the "+q+" keyboard for "+k+" is not currently available.";this.keymanweb.isEmbedded||(e.wait(!1),e.alert(a||b,function(){this.keymanweb.setActiveKeyboard("")}.bind(this)));switch(c){case "err":console.error(b);break;default:console.warn(b)}0<f&&(a=this.keyboardStubs[0],this._SetActiveKeyboard(a.KI,a.KLC,!0))}.bind(this);h.asyncLoader.timer=window.setTimeout(h.asyncLoader.callback,1E4);this.keymanweb.isEmbedded||
|
|
e.wait("Installing keyboard<br/>"+q);var l=this;h.asyncLoader.promise=new Promise(function(a,c){window.setTimeout(function(){l.installKeyboard(a,c,h)},0)})}this.activeStub=this.keyboardStubs[f];return this.keyboardStubs[f].asyncLoader.promise}this.keymanweb.domManager._SetTargDir(this.keymanweb.domManager.getLastActiveElement())}d=this.activeKeyboard;null!==d&&String.kmwEnableSupplementaryPlane(d&&(d.KS&&1==d.KS||"Hieroglyphic"==d.KN));g._Load();return Promise.resolve()};c.prototype.installKeyboard=
|
|
function(a,c,b){var d=this.keymanweb.util,f=this.keymanweb.osk,e=d._CreateElement("script");e.charset="UTF-8";e.type="text/javascript";this.keymanweb.isEmbedded&&(e.id=b.KI);var g=b.KF,h=b.KL,q=b.KN,k=this;e.addEventListener("error",function(){null!==b.asyncLoader.timer&&(window.clearTimeout(b.asyncLoader.timer),b.asyncLoader.timer=null);b.asyncLoader.callback("Cannot find the "+q+" keyboard for "+h+".","warn");b.asyncLoader=null;c()},!1);e.addEventListener("load",function(){null!==b.asyncLoader.timer&&
|
|
(window.clearTimeout(b.asyncLoader.timer),b.asyncLoader.timer=null);var e=k.getKeyboardByID(b.KI);e?(b==k.activeStub&&(k.doBeforeKeyboardChange(e.KI,b.KLC),k.activeKeyboard=e,null!=k.keymanweb.domManager.getLastActiveElement()&&(k.keymanweb.uiManager.justActivated=!0,k.keymanweb.domManager._SetTargDir(k.keymanweb.domManager.getLastActiveElement())),String.kmwEnableSupplementaryPlane(e&&(e.KS&&1==e.KS||"Hieroglyphic"==e.KN)),k.saveCurrentKeyboard(e.KI,b.KLC),f._Load()),k.keymanweb.isEmbedded||d.wait(!1),
|
|
b.asyncLoader=null,a()):(b.asyncLoader.callback("Error registering the "+q+" keyboard for "+h+".","error"),b.asyncLoader=null,c())},!1);e.src=this.keymanweb.getKeyboardPath(g);try{document.body.appendChild(e),this.linkedScripts.push(e)}catch(z){try{document.getElementsByTagName("head")[0].appendChild(e)}catch(x){c()}}};c.prototype.saveCurrentKeyboard=function(a,c){this.keymanweb.util.saveCookie("KeymanWeb_Keyboard",{current:a+":"+c});this.keymanweb.isEmbedded||this.keymanweb.touchAliasing._BlurKeyboardSettings(a,
|
|
c)};c.prototype.restoreCurrentKeyboard=function(){var a=this.keyboardStubs,c=a.length;if(!(1>a.length)){var b=this.getSavedKeyboard();b.split(":");var e=b.split(":");2>e.length&&(e[1]="");for(b=0;b<c&&(a[b].KI!=e[0]||a[b].KLC!=e[1]&&""!=e[1]);b++);if(b<c||null==this.activeKeyboard)this._SetActiveKeyboard(e[0],e[1],!1),this.keymanweb.globalKeyboard=e[0],this.keymanweb.globalLanguageCode=e[1],this.doKeyboardChange(e[0],e[1])}};c.prototype.getSavedKeyboard=function(){var a=this.keymanweb.util.loadCookie("KeymanWeb_Keyboard");
|
|
if("string"!=typeof a.current)return"Keyboard_us:eng";var c,b=this.keyboardStubs;for(c=0;c<b.length;c++){var e=b[c].KI+":"+b[c].KLC;if(e==a.current)return e}for(c=0;c<b.length;c++)if(e=b[c].KI+":"+b[c].KLC,"Keyboard_us:eng"==e)return e;return 0<b.length?b[0].KI+":"+b[0].KLC:"Keyboard_us:eng"};c.prototype.isCJK=function(a){var c=this.activeKeyboard,b="";0<arguments.length&&(c=a);c&&("undefined"!=typeof c.KLC?b=c.KLC:"undefined"!=typeof c.LanguageCode&&(b=c.LanguageCode));return"cmn"==b||"jpn"==b||
|
|
"kor"==b};c.prototype.isRTL=function(a){a=a||this.activeKeyboard;return null!=a&&a.KRTL};c.prototype.isChiral=function(a){"string"==typeof a&&(a=this.getKeyboardByID(a));return!!(this.getKeyboardModifierBitmask(a)&this.keymanweb.osk.modifierBitmasks.IS_CHIRAL)};c.prototype.getKeyboardModifierBitmask=function(a){var c=this.activeKeyboard;0<arguments.length&&"undefined"!=typeof a&&(c=a);return c?c.KMBM?c.KMBM:this.keymanweb.osk.modifierBitmasks.NON_CHIRAL:0};c.prototype.getFont=function(a){return(a=
|
|
a||this.activeKeyboard)&&a.KV?a.KV.F:null};c.prototype.getKeyboardByID=function(a){var c;for(c=0;c<this.keyboards.length;c++)if(a==this.keyboards[c].KI)return this.keyboards[c];return null};c.prototype.isUniqueRequest=function(a,c){var b;if(null==this.findStub(c.id,c.language)){for(b=0;b<a.length;b++)if(a[b].id==c.id&&a[b].language==c.language)return!1;return!0}return!1};c.prototype.addKeyboardArray=function(a){if(!this.keymanweb.initialized)for(var c=0;c<a.length;c++)this.deferredStubs.push(a[c]);
|
|
else if(0!=a.length){var d,e="",g=[];for(c=0;c<a.length;c++){if("string"==typeof a[c]&&0<a[c].length){var h=a[c].split("@"),k=[""];"english"==h[0].toLowerCase()&&(h[0]="us");1<h.length&&(k=h[1].split(","));for(d=0;d<k.length;d++){var l=new b(h[0]);""!=k[d]&&(l.language=k[d]);2<h.length&&(l.version=h[2]);this.isUniqueRequest(g,l)&&g.push(l)}}if("object"==typeof a[c]&&null!=a[c])if("string"==typeof a[c].filename)this.addStub(a[c])||alert("To use a custom keyboard, you must specify file name, keyboard name, language, language code and region code.");
|
|
else if(a[c].language&&(console.warn("The 'language' property for keyboard stubs has been deprecated. Please use the 'languages' property instead."),a[c].languages=a[c].language),k=a[c].languages,"number"==typeof k.length)for(d=0;d<k.length;d++)l=new b(a[c].id,a[c].languages[d].id),this.isUniqueRequest(g,l)&&g.push(l);else l=new b(a[c].id,a[c].languages[d].id),this.isUniqueRequest(g,l)&&g.push(l)}if(0!=g.length){a="&keyboardid=";for(c=0;c<g.length;c++)a=a+e+g[c].toString(),e=",";this.keymanCloudRequest(a,
|
|
!1)}}};c.prototype.registerLanguagesForKeyboard=function(a,c,b){var d,f=0;var e="";if("undefined"!=typeof a)if("string"==typeof c.keyboardid&&(e=c.keyboardid.split(",")[b]),"number"==typeof a.length)if(1==a.length||"$"==e.substr(-1,1)||""==e)for(e=0;e<a.length;e++)this.registerLanguagesForKeyboard(a[e],c,b);else{for(e=0;e<a.length;e++){var g=a[e].id.toLowerCase();"us"==g&&(g="english");for(d=0;d<a[e].languages.length;d++)if(g==a[e].languages[d].name.toLowerCase()){f=e;break}}this.registerLanguagesForKeyboard(a[f],
|
|
c,b)}else if(b=e.split("@")[1],"string"==typeof b&&(b=b.replace(/\$$/,"")),f=a.languages,"undefined"!=typeof f)if("number"==typeof f.length)for(e=0;e<f.length;e++)"undefined"!=typeof b&&f[e].id!=b||this.mergeStub(a,f[e],c);else this.mergeStub(a,f,c)};c.prototype.register=function(a){var c=a.options;a.timerid&&window.clearTimeout(a.timerid);if("string"==typeof a.error)c="","string"==typeof a.keyboardid&&(c=a.keyboardid.substr(0,1).toUpperCase()+a.keyboardid.substr(1)),this.serverUnavailable(c+" keyboard not found.");
|
|
else if("undefined"!=typeof c&&"undefined"!=typeof c.context)if("keyboard"==c.context){var b=a.keyboard;if("number"==typeof b.length)for(a=0;a<b.length;a++)this.registerLanguagesForKeyboard(b[a],c,a);else this.registerLanguagesForKeyboard(b,c,0)}else"language"==c.context&&(this.languageList=a.languages,this.languagesPending&&this.addLanguageKeyboards(this.languagesPending),this.languagesPending=[])};c.prototype.addLanguageKeyboards=function(a){var c,b;if(null==this.languageList){var d=0==this.languagesPending.length;
|
|
for(c=0;c<a.length;c++)this.languagesPending.push(a[c]);d&&this.keymanCloudRequest("",!0)}else{var e="";for(c=0;c<a.length;c++){var g=a[c].toLowerCase();(b="$"==g.substr(-1,1))&&(g=g.substr(0,g.length-1));for(d=0;d<this.languageList.length;d++)if(g==this.languageList[d].name.toLowerCase()){""!=e&&(e+=",");e=e+"@"+this.languageList[d].id;b&&(e+="$");break}}""==e?this.keymanweb.util.alert("No keyboards are available for "+a[0]+". Does it have another language name?"):this.keymanCloudRequest("&keyboardid="+
|
|
e,!1)}};c.prototype.keymanCloudRequest=function(c,b){var d="https://api.keyman.com/cloud/4.0/",f=this.keymanweb.util._CreateElement("script");d=d+(1<arguments.length&&b?"languages":"keyboards")+"?jsonp=keyman.register&languageidtype=bcp47&version="+this.keymanweb.version+"."+a.KeymanBase.__BUILD__;var e=this;var g="&timerid="+window.setTimeout(function(){e.serverUnavailable(c)},1E4);f.charset="UTF-8";f.src=d+c+g;f.type="text/javascript";try{document.body.appendChild(f)}catch(r){document.getElementsByTagName("head")[0].appendChild(f)}};
|
|
c.prototype.serverUnavailable=function(a){this.keymanweb.util.alert(""==a?"Unable to connect to Keyman Cloud server!":a);this.keymanweb.warned=!0};c.prototype.removeKeyboards=function(a){if(0==arguments.length)return!1;var c,b,d=!0,e=!1,g=!1;for(c=0;c<arguments.length;c++){for(b=this.keyboardStubs.length-1;0<=b;b--)if("Keyboard_"+arguments[c]==this.keyboardStubs[b].KI){"Keyboard_"+arguments[c]==this.getActiveKeyboardName()&&(e=!0);g=!0;this.keyboardStubs.splice(b,1);break}0>b&&(d=!1)}e&&(0<this.keyboardStubs.length?
|
|
this._SetActiveKeyboard(this.keyboardStubs[0].KI,this.keyboardStubs[0].KLC,!0):this._SetActiveKeyboard("","",!1),this.keymanweb.uiManager.justActivated=!0);g&&this.doKeyboardUnregistered();return d};c.prototype._registerKeyboard=function(a){if(this.keymanweb.initialized)if(a._kmw)console.error("The keyboard _kmw property is a reserved field for engine use only; this keyboard is invalid.");else{a._kmw=new h;var c;this.keymanweb.isEmbedded&&this.keymanweb.preserveID(a);var b=this.activeStub,d=this.activeStub;
|
|
if(!(b&&"KI"in b)||b.KI!=a.KI)for(c=0;c<this.keyboardStubs.length;c++){b=this.keyboardStubs[c];if(a.KI==b.KI)break;b=null}null==this.activeStub&&null!=b&&(this.activeStub=b);for(c=0;c<this.keyboards.length;c++)if(a.KI==this.keyboards[c].KI)return;this.keyboards=this.keymanweb._push(this.keyboards,a);this.doKeyboardLoaded(a.KI);this.activeStub=d}else this.deferredKR.push(a)};c.prototype._registerStub=function(a){var c;if(!this.keymanweb.initialized)return this.deferredKRS.push(a),null;null==this.dfltStub&&
|
|
(this.dfltStub=a);this.keymanweb.isEmbedded&&this.keymanweb.namespaceID(a);"undefined"==typeof a.KLC&&(a.KLC="");"undefined"==typeof a.KL&&(a.KL="undefined");for(c=0;c<this.keyboardStubs.length;c++)if(this.keyboardStubs[c].KI==a.KI&&(""==a.KLC||this.keyboardStubs[c].KLC==a.KLC))return 1;this.keyboardStubs=this.keymanweb._push(this.keyboardStubs,a);this.doKeyboardRegistered(a.KI,a.KL,a.KN,a.KLC,a.KP);this.activeStub||this.dfltStub!=a||1!=this.keyboardStubs.length||this.setActiveKeyboard(a.KI,a.KLC);
|
|
return null};c.prototype.doKeyboardRegistered=function(a,c,b,e,g){a={internalName:a,language:c,keyboardName:b,languageCode:e};g&&(a["package"]=g);return this.keymanweb.util.callEvent("kmw.keyboardregistered",a)};c.prototype.doKeyboardUnregistered=function(){return this.keymanweb.util.callEvent("kmw.keyboardregistered",{})};c.prototype.doKeyboardLoaded=function(a){var c={};c.keyboardName=a;return this.keymanweb.util.callEvent("kmw.keyboardloaded",c)};c.prototype.doBeforeKeyboardChange=function(a,c){var b=
|
|
{};b.internalName=a;b.languageCode=c;return this.keymanweb.util.callEvent("kmw.beforekeyboardchange",b)};c.prototype.doKeyboardChange=function(a,c,b){var d={};d.internalName=a;d.languageCode=c;d.indirect=2<arguments.length?b:!1;return this.keymanweb.util.callEvent("kmw.keyboardchange",d)};c.prototype.shutdown=function(){for(var a=0,c=this.linkedScripts;a<c.length;a++){var b=c[a];b.remove?b.remove():b.parentNode&&b.parentNode.removeChild(b)}};c.regions="World;Africa;Asia;Europe;South America;North America;Oceania;Central America;Middle East".split(";");
|
|
c.regionCodes="un af as eu sa na oc ca me".split(" ");return c}();a.KeyboardManager=l})(b.keyman||(b.keyman={}))})(com||(com={}));
|
|
(function(b){(function(a){var b=function(){return function(){}}(),k=function(){return function(){this.FF=new b;this.Safari=new b;this.Opera=new b;this.FF.k61=187;this.FF.k59=186}}(),e=function(){return function(){this.se=new b;this.se.k220=192;this.se.k187=189;this.se.k219=187;this.se.k221=219;this.se.k186=221;this.se.k191=220;this.se.k192=186;this.se.k189=191;this.uk=new b;this.uk.k223=192;this.uk.k192=222;this.uk.k222=226;this.uk.k220=220}}(),h=function(){function a(){this.browserMap=new k;this.languageMap=
|
|
new e;this._usCodeInit()}a.prototype._usCodeInit=function(){var a=new b,d=new b;a.k192=96;a.k49=49;a.k50=50;a.k51=51;a.k52=52;a.k53=53;a.k54=54;a.k55=55;a.k56=56;a.k57=57;a.k48=48;a.k189=45;a.k187=61;a.k81=113;a.k87=119;a.k69=101;a.k82=114;a.k84=116;a.k89=121;a.k85=117;a.k73=105;a.k79=111;a.k80=112;a.k219=91;a.k221=93;a.k220=92;a.k65=97;a.k83=115;a.k68=100;a.k70=102;a.k71=103;a.k72=104;a.k74=106;a.k75=107;a.k76=108;a.k186=59;a.k222=39;a.k90=122;a.k88=120;a.k67=99;a.k86=118;a.k66=98;a.k78=110;a.k77=
|
|
109;a.k188=44;a.k190=46;a.k191=47;d.k192=126;d.k49=33;d.k50=64;d.k51=35;d.k52=36;d.k53=37;d.k54=94;d.k55=38;d.k56=42;d.k57=40;d.k48=41;d.k189=95;d.k187=43;d.k81=81;d.k87=87;d.k69=69;d.k82=82;d.k84=84;d.k89=89;d.k85=85;d.k73=73;d.k79=79;d.k80=80;d.k219=123;d.k221=125;d.k220=124;d.k65=65;d.k83=83;d.k68=68;d.k70=70;d.k71=71;d.k72=72;d.k74=74;d.k75=75;d.k76=76;d.k186=58;d.k222=34;d.k90=90;d.k88=88;d.k67=67;d.k86=86;d.k66=66;d.k78=78;d.k77=77;d.k188=60;d.k190=62;d.k191=63;this._usCharCodes=[a,d]};a.prototype._USKeyCodeToCharCode=
|
|
function(a){return this._usCharCodes[a.Lmodifiers&16?1:0]["k"+a.Lcode]};return a}();a.KeyMapManager=h})(b.keyman||(b.keyman={}))})(com||(com={}));
|
|
(function(b){(function(a){var b=function(){function a(a,b,c){this.code=a;this.shift=b;this.handler=c}a.prototype.matches=function(a,b){return this.code==a&&this.shift==b};return a}(),k=function(){function a(a){this.hotkeys=[];this._Process=function(a){a||(a=window.event);var c=this.keyman.domManager.nonTouchHandlers._GetEventKeyCode(a);if(null==c)return!1;for(var b=(a.shiftKey?16:0)|(a.ctrlKey?32:0)|(a.altKey?64:0),f=0;f<this.hotkeys.length;f++)if(this.hotkeys[f].matches(c,b))return this.hotkeys[f].Handler(),
|
|
a.returnValue=!1,a&&a.preventDefault&&a.preventDefault(),a.cancelBubble=!0,!1;return!0}.bind(this);this.keyman=a}a.prototype.addHotKey=function(a,e,c){for(var d=0;d<this.hotkeys.length;d++)if(this.hotkeys[d].code==a&&this.hotkeys[d].shift==e){this.hotkeys[d].handler=c;return}this.hotkeys.push(new b(a,e,c))};a.prototype.removeHotkey=function(a,b){for(var c=0;c<this.hotkeys.length;c++)if(this.hotkeys[c].matches(a,b)){this.hotkeys.splice(c,1);break}};return a}();a.HotkeyManager=k})(b.keyman||(b.keyman=
|
|
{}))})(com||(com={}));
|
|
(function(b){(function(a){var b=function(){return function(a,b){this.activationPending=a;this.activated=b}}();a.UIState=b;var k=function(){function a(a){this.justActivated=this.isActivating=!1;this.doUnload=function(){return this.keyman.util.callEvent("kmw.unloaduserinterface",{})};this.keyman=a}a.prototype.getUIState=function(){return new b(this.isActivating,this.justActivated)};a.prototype.setActivatingUI=function(a){this.isActivating=a?!0:!1};a.prototype.doLoad=function(){return this.keyman.util.callEvent("kmw.loaduserinterface",{})};
|
|
return a}();a.UIManager=k})(b.keyman||(b.keyman={}))})(com||(com={}));
|
|
(function(b){(function(a){var b=function(){function b(){this._TitleElement=null;this._IE=0;this._MasterDocument=null;this._HotKeys=[];this.warned=!1;this.baseFont="sans-serif";this.appliedFont="";this.fontCheckTimer=null;this.protocol=this.rootPath=this.srcPath="";this.mustReloadKeyboard=!1;this.globalLanguageCode=this.globalKeyboard=null;this.isEmbedded=!1;this.refocusTimer=0;this.build=300;this.options={root:"",resources:"",keyboards:"",fonts:"",attachType:"",ui:null};this.refreshElementContent=
|
|
null;this.util=this.util=new a.Util(this);window.KeymanWeb=this.interface=this["interface"]=new a.KeyboardInterface(this);this.osk=this.osk={ready:!1};this.ui=this.ui=null;this.keyboardManager=new a.KeyboardManager(this);this.domManager=new a.DOMManager(this);this.hotkeyManager=new a.HotkeyManager(this);this.uiManager=new a.UIManager(this);this.keyMapManager=new a.KeyMapManager;this.build=b.__BUILD__;this.srcPath=b._srcPath;this.rootPath=b._rootPath;this.protocol=b._protocol;this.version="10.0";this.helpURL=
|
|
"http://help.keyman.com/go";this.setInitialized(0);this.loaded=!0}b.prototype.setDefaultDeviceOptions=function(a){};b.prototype.getStyleSheetPath=function(a){return a};b.prototype.getKeyboardPath=function(a,b){return a};b.prototype.KC_=function(a,b,g){return""};b.prototype.handleRotationEvents=function(){};b.prototype.alignInputs=function(a){};b.prototype.hideInputs=function(){};b.prototype.namespaceID=function(a){};b.prototype.preserveID=function(a){};b.prototype.setInitialized=function(a){this.initialized=
|
|
this.initialized=a};b.prototype.delayedInit=function(){this.touchAliasing=this.util.device.touchable?this.domManager.touchHandlers:this.domManager.nonTouchHandlers};b.prototype.shutdown=function(){this.domManager.shutdown();this.osk.shutdown();this.util.shutdown();this.keyboardManager.shutdown();this.ui&&this.ui.shutdown&&this.ui.shutdown();a.DOMEventHandlers.states=new a.CommonDOMStates};b.prototype.isFontAvailable=function(a){return this.util.checkFont({family:a})};b.prototype.addEventListener=
|
|
function(a,b){return this.util.addEventListener("kmw."+a,b)};b.prototype._GetEventObject=function(a){if(!a&&(a=window.event,!a)){var b=this.domManager.getLastActiveElement();if(b){b=b.ownerDocument;if(b)var e=b.defaultView;if(!e)return null;a=e.event}}return a};b.prototype._push=function(a,b){a.push?a.push(b):a=a.concat(b);return a};b.prototype.attachToControl=function(a){this.domManager.attachToControl(a)};b.prototype.detachFromControl=function(a){this.domManager.detachFromControl(a)};b.prototype.addKeyboards=
|
|
function(a){0==arguments.length?this.keyboardManager.keymanCloudRequest("",!1):this.keyboardManager.addKeyboardArray(arguments)};b.prototype.addKeyboardsForLanguage=function(a){this.keyboardManager.addLanguageKeyboards(arguments)};b.prototype.register=function(a){this.keyboardManager.register(a)};b.prototype.removeKeyboards=function(a){return this.keyboardManager.removeKeyboards(a)};b.prototype.setActiveKeyboard=function(a,b){return this.keyboardManager.setActiveKeyboard(a,b)};b.prototype.getActiveKeyboard=
|
|
function(){return this.keyboardManager.getActiveKeyboardName()};b.prototype.getActiveLanguage=function(){return this.keyboardManager.getActiveLanguage()};b.prototype.isAttached=function(a){return this.domManager.isAttached(a)};b.prototype.isCJK=function(a){return this.keyboardManager.isCJK(a)};b.prototype.isChiral=function(a){return this.keyboardManager.isChiral(a)};b.prototype.getKeyboard=function(a,b){var e,c=this.keyboardManager.getDetailedKeyboards();for(e=0;e<c.length;e++){var d=c[e];if(d.InternalName==
|
|
a||d.InternalName=="Keyboard_"+a)if(2>arguments.length||d.LanguageCode==b)return d}return null};b.prototype.getKeyboards=function(){return this.keyboardManager.getDetailedKeyboards()};b.prototype.getSavedKeyboard=function(){return this.keyboardManager.getSavedKeyboard()};b.prototype.init=function(a){return this.domManager.init(a)};b.prototype.resetContext=function(){this.interface.resetContext()};b.prototype.setNumericLayer=function(){this.interface.setNumericLayer()};b.prototype.disableControl=function(a){this.domManager.disableControl(a)};
|
|
b.prototype.enableControl=function(a){this.domManager.enableControl(a)};b.prototype.setKeyboardForControl=function(a,b,g){this.domManager.setKeyboardForControl(a,b,g)};b.prototype.getKeyboardForControl=function(a){this.domManager.getKeyboardForControl(a)};b.prototype.getLanguageForControl=function(a){this.domManager.getLanguageForControl(a)};b.prototype.focusLastActiveElement=function(){this.domManager.focusLastActiveElement()};b.prototype.getLastActiveElement=function(){return this.domManager.getLastActiveElement()};
|
|
b.prototype.setActiveElement=function(a,b){return this.domManager.setActiveElement(a,b)};b.prototype.moveToElement=function(a){this.domManager.moveToElement(a)};b.prototype.addHotKey=function(a,b,g){this.hotkeyManager.addHotKey(a,b,g)};b.prototype.removeHotKey=function(a,b){this.hotkeyManager.removeHotkey(a,b)};b.prototype.getUIState=function(){return this.uiManager.getUIState()};b.prototype.activatingUI=function(a){this.uiManager.setActivatingUI(a)};return b}();a.KeymanBase=b})(b.keyman||(b.keyman=
|
|
{}))})(com||(com={}));var scripts=document.getElementsByTagName("script"),ss=scripts[scripts.length-1].src,sPath=ss.substr(0,ss.lastIndexOf("/")+1),KeymanBase=com.keyman.KeymanBase;KeymanBase._srcPath=sPath;KeymanBase._rootPath=sPath.replace(/(https?:\/\/)([^\/]*)(.*)/,"$1$2/");KeymanBase._protocol=sPath.replace(/(.{3,5}:)(.*)/,"$1");KeymanBase.__BUILD__=203;
|
|
window.keyman&&window.keyman.loaded||function(){var b=window.keyman=new KeymanBase,a=b.osk;b.ui={};a.highlightSubKeys=function(a,b,e){};a.createKeyTip=function(){};a.optionKey=function(a,b,e){};a.showKeyTip=function(a,b){};a.waitForFonts=function(a,b){return!0}}();
|
|
window.keyman.initialized||function(){var b=window.keyman,a=b.osk,g=b.util;b.debug=b.debug=function(a){if(null==b.debugElement){var e=document.createElement("DIV");var g=e.style;g.position="absolute";g.width="30%";g.maxHeight="50%";g.top="0";g.right="0";g.minHeight="50px";g.border="1px solid blue";g.whiteSpace="pre-line";g.overflowY="scroll";g=document.createElement("P");g.id="debug_output";g.style.margin="2px";e.appendChild(g);document.body.appendChild(e);b.debugElement=g}if(null!=(g=document.getElementById("debug_output")))if(0==
|
|
arguments.length)"undefined"!=typeof g.textContent?g.textContent="":g.innerHTML="";else{e=(new Date).toTimeString().substr(3,5)+" ";var k,c;for(k=0;k<arguments.length;k++){0<k&&(e+="; ");var d=arguments[k];if("object"==typeof d)if(null==d)e+="null";else{var f="";for(c in d){0<f.length&&(f+=", ");f=f+c+":";switch(typeof d[c]){case "string":case "number":case "boolean":f+=d[c];break;default:f+=typeof d[c]}if(1024<f.length){f=f.substr(0,1E3)+"...";break}}0<f.length&&(e=e+"{"+f+"}")}else e+=d}1500<e.length&&
|
|
(e=e.substr(0,1500)+" (more)");"undefined"!=typeof g.textContent?g.textContent=e+"\n"+g.textContent:g.innerHTML=e+"<br />"+g.innerHTML}};b.debugElement=null;b.delayedInit();a._BaseLayout="undefined"!==typeof window.KeymanWeb_BaseLayout?window.KeymanWeb_BaseLayout:"us";b._BrowserIsSafari=0<=navigator.userAgent.indexOf("AppleWebKit");g.attachDOMEvent(window,"load",b.domManager._WindowLoad,!1);g.attachDOMEvent(window,"unload",b.domManager._WindowUnload,!1);g.attachDOMEvent(document,"keyup",b.hotkeyManager._Process,
|
|
!1);g.attachDOMEvent(window,"focus",b.interface.resetVKShift.bind(b.interface),!1);g.attachDOMEvent(window,"blur",b.interface.resetVKShift.bind(b.interface),!1);String.kmwEnableSupplementaryPlane(!1)}();
|
|
(function(b){(function(a){var b=function(){return function(a,b,g,c,d,f){this.id=a;this.text=b;this.width=g?g:"50";this.sp=c;this.nextlayer=d;this.pad=f}}();a.OSKKeySpec=b;b=function(){function a(a){this.spec=a}a.getTextWidth=function(b,e){e.fontFamily||(e.fontFamily=getComputedStyle(document.body).fontFamily);e.fontSize&&""!=e.fontSize||(e.fontSize="1em");var c=e.fontFamily,d=window.keyman.osk.getKeyEmFontSize();e=window.keyman.util.getFontSizeStyle(e.fontSize);d=e.absolute?e.val+"px":e.val*d+"px";
|
|
e=(a.getTextWidth.canvas||(a.getTextWidth.canvas=document.createElement("canvas"))).getContext("2d");e.font=d+" "+c;return e.measureText(b).width};a.prototype.getKeyWidth=function(){var a=this.objectUnits();if("px"==a)return this.spec.widthpc;if("%"==a)return a=window.keyman.osk.getWidthFromCookie(),Math.floor(a*this.spec.widthpc/100)};a.prototype.objectUnits=function(){return"desktop"==window.keyman.util.device.formFactor?"%":"px"};a.prototype.renameSpecialKey=function(a){var b=window.keyman.osk.specialCharacters;
|
|
return b[a]?String.fromCharCode(57344+b[a]):a};a.prototype.generateKeyText=function(){var b=window.keyman.util,e=this.spec,c=b._CreateElement("span"),d=c.style;if(null==e.text||""==e.text){var f="\u00a0";"string"==typeof e.id&&/^U_[0-9A-F]{4}$/i.test(e.id)&&(f=String.fromCharCode(parseInt(e.id.substr(2),16)))}else f=e.text;c.className="kmw-key-text";if("1"==e.sp||"2"==e.sp)f=this.renameSpecialKey("*Tab*"==e.text&&"shift"==e.layer?"*TabLeft*":e.text);var g=window.keyman.osk;d.fontSize=g.fontSize;"string"==
|
|
typeof e.font&&""!=e.font&&(d.fontFamily=e.font);"string"==typeof e.fontsize&&0!=e.fontsize&&(d.fontSize=e.fontsize);e=window.keyman.keyboardManager;var m={fontSize:d.fontSize};m.fontFamily=d.fontFamily?d.fontFamily:g.fontFamily;g=a.getTextWidth(f,m);0==g&&""!=f&&"\u00a0"!=f&&(f="\u25cc"+f,e.isRTL()&&(f="\u200f"+f),g=a.getTextWidth(f,m));b=b.getFontSizeStyle(d.fontSize);g=.9*this.getKeyWidth()/g;1>g&&(d.fontSize=b.absolute?g*b.val+"px":g*b.val+"em");c.innerHTML=f;return c};return a}();a.OSKKey=b;
|
|
var k=function(a){function b(b){return a.call(this,b)||this}__extends(b,a);b.prototype.getId=function(){return this.spec.layer+"-"+this.spec.id};b.prototype.generateKeyCapLabel=function(){var a=window.keyman.osk.keyCodes[this.spec.id];switch(a){case 186:a=59;break;case 187:a=61;break;case 188:a=44;break;case 189:a=45;break;case 190:a=46;break;case 191:a=47;break;case 192:a=96;break;case 219:a=91;break;case 220:a=92;break;case 221:a=93;break;case 222:a=39;break;default:if(48>a||90<a)a=0}if(0<a){var c=
|
|
window.keyman.util._CreateElement("div");c.className="kmw-key-label";c.innerHTML=String.fromCharCode(a);return c}return null};b.prototype.processSubkeys=function(a){var c,b=a.subKeys=this.spec.sk;for(c=0;c<b.length;c++)if("1"==b[c].sp||"2"==b[c].sp)b[c].text=this.renameSpecialKey(b[c].text);c=window.keyman.util._CreateElement("div");c.className="kmw-key-popup-icon";a.appendChild(c)};b.prototype.construct=function(a,c,b,f){var d=window.keyman.util,e=window.keyman.osk,g=this.spec,h="desktop"==d.device.formFactor;
|
|
g.layer=c;c=d._CreateElement("div");c.keyId=g.id;c.className="kmw-key-square";var k=c.style;k.width=this.objectGeometry(g.widthpc);var l=f,n=d._CreateElement("div");e.setButtonClass(g,n,a);h?k.marginLeft=this.objectGeometry(g.padpc):(k.left=this.objectGeometry(f+g.padpc),k.bottom=b.bottom,k.height=b.height,n.style.left=k.left,n.style.width=k.width);f=f+g.padpc+g.widthpc;(a.keyLabels||h)&&(a=this.generateKeyCapLabel())&&n.appendChild(a);n.id=this.getId();n.key=g;d.device.touchable||(n.onmouseover=
|
|
n.onmousedown=e.mouseOverMouseDownHandler,n.onmouseup=n.onmouseout=e.mouseUpMouseOutHandler);"undefined"!=typeof g.sk&&null!=g.sk?this.processSubkeys(n):n.subKeys=null;n.appendChild(this.generateKeyText());c.appendChild(n);return{element:c,percent:f-l}};b.prototype.objectGeometry=function(a){var c=this.objectUnits();return"%"==c?a+c:Math.round(a)+c};return b}(b);a.OSKBaseKey=k;b=function(a){function b(b){return a.call(this,b)||this}__extends(b,a);b.prototype.getId=function(){var a=this.spec;return"string"==
|
|
typeof a.layer&&""!=a.layer?"popup-"+a.layer+"-"+a.id:"popup-"+window.keyman.osk.layerId+"-"+a.id};b.prototype.construct=function(a,c){var b=window.keyman.osk,f=this.spec,e=document.createElement("div"),g=b.getDefaultKeyObject(),h=e.style,k;for(k in g)"string"!=typeof f[k]&&(f[k]=g[k]);e.className="kmw-key-square-ex";e.keyId=f.id;c&&(h.marginTop="5px");h.width="undefined"!=typeof f.width?parseInt(f.width,10)*a.offsetWidth/100+"px":a.offsetWidth+"px";h.height=a.offsetHeight+"px";a=document.createElement("div");
|
|
b.setButtonClass(f,a);a.id=this.getId();a.key=f;b=a.style;b.height=h.height;b.width=h.width;b.position="absolute";a.appendChild(this.generateKeyText());e.appendChild(a);return e};return b}(b);a.OSKSubKey=b})(b.keyman||(b.keyman={}))})(com||(com={}));
|
|
window.keyman.initialized||function(){var b=window.keyman,a=b.osk,g=b.util,k=g.device,e=b["interface"];a.modifierCodes={LCTRL:1,RCTRL:2,LALT:4,RALT:8,SHIFT:16,CTRL:32,ALT:64,CAPS:256,NO_CAPS:512,NUM_LOCK:1024,NO_NUM_LOCK:2048,SCROLL_LOCK:4096,NO_SCROLL_LOCK:8192,VIRTUAL_KEY:16384};a.modifierBitmasks={ALL:127,ALT_GR_SIM:a.modifierCodes.LCTRL|a.modifierCodes.LALT,CHIRAL:31,IS_CHIRAL:15,NON_CHIRAL:112};a.stateBitmasks={ALL:16128,CAPS:768,NUM_LOCK:3072,SCROLL_LOCK:12288};a.keyCodes={K_BKSP:8,K_TAB:9,
|
|
K_ENTER:13,K_SHIFT:16,K_CONTROL:17,K_ALT:18,K_PAUSE:19,K_CAPS:20,K_ESC:27,K_SPACE:32,K_PGUP:33,K_PGDN:34,K_END:35,K_HOME:36,K_LEFT:37,K_UP:38,K_RIGHT:39,K_DOWN:40,K_SEL:41,K_PRINT:42,K_EXEC:43,K_INS:45,K_DEL:46,K_HELP:47,K_0:48,K_1:49,K_2:50,K_3:51,K_4:52,K_5:53,K_6:54,K_7:55,K_8:56,K_9:57,K_A:65,K_B:66,K_C:67,K_D:68,K_E:69,K_F:70,K_G:71,K_H:72,K_I:73,K_J:74,K_K:75,K_L:76,K_M:77,K_N:78,K_O:79,K_P:80,K_Q:81,K_R:82,K_S:83,K_T:84,K_U:85,K_V:86,K_W:87,K_X:88,K_Y:89,K_Z:90,K_NP0:96,K_NP1:97,K_NP2:98,K_NP3:99,
|
|
K_NP4:100,K_NP5:101,K_NP6:102,K_NP7:103,K_NP8:104,K_NP9:105,K_NPSTAR:106,K_NPPLUS:107,K_SEPARATOR:108,K_NPMINUS:109,K_NPDOT:110,K_NPSLASH:111,K_F1:112,K_F2:113,K_F3:114,K_F4:115,K_F5:116,K_F6:117,K_F7:118,K_F8:119,K_F9:120,K_F10:121,K_F11:122,K_F12:123,K_NUMLOCK:144,K_SCROLL:145,K_LSHIFT:160,K_RSHIFT:161,K_LCONTROL:162,K_RCONTROL:163,K_LALT:164,K_RALT:165,K_COLON:186,K_EQUAL:187,K_COMMA:188,K_HYPHEN:189,K_PERIOD:190,K_SLASH:191,K_BKQUOTE:192,K_LBRKT:219,K_BKSLASH:220,K_RBRKT:221,K_QUOTE:222,K_oE2:226,
|
|
K_LOPT:50001,K_ROPT:50002,K_NUMERALS:50003,K_SYMBOLS:50004,K_CURRENCIES:50005,K_UPPER:50006,K_LOWER:50007,K_ALPHA:50008,K_SHIFTED:50009,K_ALTGR:50010,K_TABBACK:50011,K_TABFWD:50012};a.buttonClasses={DEFAULT:"0",SHIFT:"1","SHIFT-ON":"2",SPECIAL:"3","SPECIAL-ON":"4",DEADKEY:"8",BLANK:"9",HIDDEN:"10"};a.specialCharacters={"*Shift*":8,"*Enter*":5,"*Tab*":6,"*BkSp*":4,"*Menu*":11,"*Hide*":10,"*Alt*":25,"*Ctrl*":1,"*Caps*":3,"*ABC*":16,"*abc*":17,"*123*":19,"*Symbol*":21,"*Currency*":20,"*Shifted*":8,"*AltGr*":2,
|
|
"*TabLeft*":7,"*LAlt*":86,"*RAlt*":87,"*LCtrl*":88,"*RCtrl*":89,"*LAltCtrl*":96,"*RAltCtrl*":97,"*LAltCtrlShift*":98,"*RAltCtrlShift*":99,"*AltShift*":100,"*CtrlShift*":101,"*AltCtrlShift*":102,"*LAltShift*":103,"*RAltShift*":104,"*LCtrlShift*":105,"*RCtrlShift*":112};a.modifierSpecials={leftalt:"*LAlt*",rightalt:"*RAlt*",alt:"*Alt*",leftctrl:"*LCtrl*",rightctrl:"*RCtrl*",ctrl:"*Ctrl*","ctrl-alt":"*AltGr*","leftctrl-leftalt":"*LAltCtrl*","rightctrl-rightalt":"*RAltCtrl*","leftctrl-leftalt-shift":"*LAltCtrlShift*",
|
|
"rightctrl-rightalt-shift":"*RAltCtrlShift*",shift:"*Shift*","shift-alt":"*AltShift*","shift-ctrl":"*CtrlShift*","shift-ctrl-alt":"*AltCtrlShift*","leftalt-shift":"*LAltShift*","rightalt-shift":"*RAltShift*","leftctrl-shift":"*LCtrlShift*","rightctrl-shift":"*RCtrlShift*"};var h=[["0123456789",";=,-./`","[\\]'"],[")!@#$%^&*(",":+<_>?~",'{|}"']],l="K_BKQUOTE K_1 K_2 K_3 K_4 K_5 K_6 K_7 K_8 K_9 K_0 K_HYPHEN K_EQUAL K_* K_* K_* K_Q K_W K_E K_R K_T K_Y K_U K_I K_O K_P K_LBRKT K_RBRKT K_BKSLASH K_* K_* K_* K_A K_S K_D K_F K_G K_H K_J K_K K_L K_COLON K_QUOTE K_* K_* K_* K_* K_* K_oE2 K_Z K_X K_C K_V K_B K_N K_M K_COMMA K_PERIOD K_SLASH K_* K_* K_* K_* K_* K_SPACE".split(" ");
|
|
a._Box=null;a._DivVKbd=null;a._DivVKbdHelp=null;a._Visible=0;a._Enabled=1;a._VShift=[];a._VKeySpans=[];a._VKeyDown=null;a._VKbdContainer=null;a._VOriginalWidth=1;a._BaseLayout="us";a._BaseLayoutEuro={};a._BaseLayoutEuro.se="\u00a71234567890+\u00b4~~~QWERTYUIOP\u00c5\u00a8'~~~ASDFGHJKL\u00d6\u00c4~~~~~<ZXCVBNM,.-~~~~~ ";a._BaseLayoutEuro.uk="`1234567890-=~~~QWERTYUIOP[]#~~~ASDFGHJKL;'~~~~~\\ZXCVBNM,./~~~~~ ";a._stateKeys={K_CAPS:!1,K_NUMLOCK:!1,K_SCROLL:!1};a.lgTimer=null;a.lgKey=null;a.hkKey=null;
|
|
a.spaceBar=null;a.lgList=null;a.frameColor="#ad4a28";a.keyPending=null;a.fontFamily="";a.fontSize="1em";a.layout=null;a.layers=null;a.layerId="default";a.nextLayer="default";a.layerIndex=0;a.currentKey="";a.subkeyDelayTimer=null;a.popupPending=!1;a.popupVisible=!1;a.popupCallout=null;a.styleSheet=null;a.loadRetry=0;a.popupDelay=500;a.currentTarget=null;a.touchCount=0;a.touchX=0;a.deleting=0;a.x=99;a.y=0;a.width=1;a.height=1;a.rowHeight=1;a.nRows=1;a.vpScale=1;a.closeButton=null;a.resizeIcon=null;
|
|
a.resizing=0;a.pinImg=null;a.userPositioned=0;a.dfltX="";a.dfltY="";a.noDrag=!1;a.keytip=null;a.touchY=0;a.addCallout=function(a){};a.shutdown=function(){var c=a._Box;c.parentElement&&c.parentElement.removeChild(c)};a.addEventListener=function(a,b){return g.addEventListener("osk."+a,b)};a._TitleBarInterior=function(){var c=g._CreateElement("DIV"),d=c.style;d.paddingLeft="2px";d.cursor="move";d.background="#ad4a28";d.font="8pt Tahoma,Arial,sans-serif";d=g._CreateElement("DIV");d.className="kmw-title-bar-actions";
|
|
d.onmousedown=a._CancelMouse;var f=g._CreateElement("DIV");f.className="kmw-close-button";f.onmousedown=a._CancelMouse;f.onclick=function(){a._Hide(!0)};a.closeButton=f;d.appendChild(f);a.restorePosition=function(){a._Visible&&(b.domManager.focusLastActiveElement(),a.loadCookie(),a.userPositioned=!1,a.saveCookie(),a._Show(),a.doResizeMove());a.pinImg&&(a.pinImg.style.display="none");window.event&&(window.event.returnValue=!1)};f=a.pinImg=g._CreateElement("DIV");f.className="kmw-pin-image";f.title=
|
|
"Pin the On Screen Keyboard to its default location on the active text box";f.onclick=a.restorePosition;f.onmousedown=a._CancelMouse;f.style.display="none";k.touchable||d.appendChild(f);c.appendChild(d);f=b._TitleElement=g._CreateElement("SPAN");f.className="kmw-title-bar-caption";f.innerHTML="KeymanWeb";c.appendChild(f);return c};a.isEnabled=a.isEnabled=function(){return a._Enabled};a.isVisible=a.isVisible=function(){return a._Visible};a.getRect=a.getRect=function(){var c={};a._DivVKbd?(c.left=c.left=
|
|
g._GetAbsoluteX(a._DivVKbd),c.top=c.top=g._GetAbsoluteY(a._DivVKbd),c.width=c.width=g._GetAbsoluteX(a._DivVKbdHelp)-g._GetAbsoluteX(a._DivVKbd)+a._DivVKbdHelp.offsetWidth,c.height=c.height=g._GetAbsoluteY(a._DivVKbdHelp)-g._GetAbsoluteY(a._DivVKbd)+a._DivVKbdHelp.offsetHeight):(c.left=c.left=g._GetAbsoluteX(a._Box),c.top=c.top=g._GetAbsoluteY(a._Box),c.width=c.width=g._GetAbsoluteX(a._Box)+a._Box.offsetWidth,c.height=c.height=g._GetAbsoluteY(a._Box)+a._Box.offsetHeight);return c};a.setRect=a.setRect=
|
|
function(c){if(null!=a._Box&&"desktop"==k.formFactor){var b=a._Box,f=b.style;"left"in c&&(f.left=c.left-g._GetAbsoluteX(b)+b.offsetLeft+"px",a.dfltX=f.left);"top"in c&&(f.top=c.top-g._GetAbsoluteY(b)+b.offsetTop+"px",a.dfltY=f.top);if(null!=a._DivVKbd){var e=a._DivVKbd;f=e.style;if("width"in c){var h=c.width-(b.offsetWidth-e.offsetWidth);h<.2*screen.width&&(h=.2*screen.width);h>.9*screen.width&&(h=.9*screen.width);f.width=h+"px";a.width=h}"height"in c&&(b=c.height-(b.offsetHeight-e.offsetHeight),
|
|
b<.1*screen.height&&(b=.1*screen.height),b>.5*screen.height&&(b=.5*screen.height),f.height=b+"px",f.fontSize=b/8+"px",a.height=b);"nosize"in c&&a.resizeIcon&&(a.resizeIcon.style.display=c.nosize?"none":"block")}"nomove"in c&&(a.noDrag=c.nomove,a.pinImg&&(a.pinImg.style.display=c.nomove||!a.userPositioned?"none":"block"));a.saveCookie()}};a.getKeyEmFontSize=function(){if("desktop"==g.device.formFactor)return.8*a.getFontSizeFromCookie();var c=getComputedStyle(document.body).fontSize;c=g.getFontSizeStyle(c).val;
|
|
var b=g.getFontSizeStyle(a._Box).val;return c*b};a.getPos=function(){var c=a._Box;return{left:a._Visible?c.offsetLeft:a.x,top:a._Visible?c.offsetTop:a.y}};a.setPos=a.setPos=function(c){if("undefined"!=typeof a._Box&&!k.touchable){if(a.userPositioned){var b=c.left;c=c.top;"undefined"!=typeof b&&(b<-.8*a._Box.offsetWidth&&(b=-.8*a._Box.offsetWidth),a.userPositioned&&(a._Box.style.left=b+"px",a.x=b));"undefined"!=typeof c&&(0>c&&(c=0),a.userPositioned&&(a._Box.style.top=c+"px",a.y=c))}a.pinImg&&(a.pinImg.style.display=
|
|
a.userPositioned?"block":"none")}};a._VKeyGetTarget=function(a){a=b._GetEventObject(a);a=g.eventTarget(a);if(null==a)return null;3==a.nodeType&&(a=a.parentNode);"SPAN"==a.tagName&&(a=a.parentNode);return a};a.highlightKey=function(c,b){if(c&&""!=c.className&&!(0<=c.className.indexOf("kmw-key-row"))){var d=c.className;null!=a.keytip&&0>d.indexOf("kmw-key-shift")&&0>d.indexOf("kmw-spacebar")&&0>c.id.indexOf("popup")?a.showKeyTip(c,b):b&&0>d.indexOf(" kmw-key-touched")?(c.className=d+" kmw-key-touched",
|
|
a.showKeyTip(null,!1)):c.className=d.replace(" kmw-key-touched","")}};a.showSubKeys=function(c){if(null!=a.keyPending){var b=document.createElement("DIV");a.getDefaultKeyObject();b.id="kmw-popup-keys";a.popupBaseKey=c;"phone"==k.formFactor&&a.prependBaseKey(c);var f=c.id.split("-");var e=f[f.length-1];if("phone"==k.formFactor&&c.subKeys[0].id!=e){e={id:e,layer:""};1<f.length&&(e.layer=f[0]);for(f=0;f<c.childNodes.length&&!a.hasClass(c.childNodes[f],"kmw-key-text");f++);f<c.childNodes.length&&(e.text=
|
|
c.childNodes[f].textContent);c.subKeys.splice(0,0,e)}f=b.style;f.bottom=parseInt(c.style.bottom,10)+parseInt(c.style.height,10)+4+"px";f.fontFamily=a.fontFamily;f.fontSize=g.getStyleValue(c,"font-size");f.visibility="hidden";e=c.subKeys.length;var h=Math.min(Math.ceil(e/9),2);var l=Math.ceil(e/h);1<h&&(f.width=l*c.offsetWidth+5*l+"px");for(f=0;f<e;f++){var p=!1,r=Math.floor(f/l);1<h&&0<r&&(p=!0);p=(new com.keyman.OSKSubKey(c.subKeys[f])).construct(c,p);b.appendChild(p)}a.showKeyTip(null,!1);a._Box.appendChild(b);
|
|
f=b.style;e=g._GetAbsoluteX(c)+.5*(c.offsetWidth-b.offsetWidth);h=(g.landscapeView()?screen.height:screen.width)-b.offsetWidth;e>h&&(e=h);0>e&&(e=0);f.left=e+"px";a.popupCallout=a.addCallout(c);f.visibility="visible";b.shim=document.createElement("DIV");b.shim.id="kmw-popup-shim";a._Box.appendChild(b.shim);"phone"==k.formFactor&&(c=b.childNodes[0].firstChild,a.keyPending=c,a.highlightKey(c,!0))}};a.prependBaseKey=function(c){if(c&&"undefined"!=typeof c.id){var b=c.id.split("-");var f=b[b.length-1];
|
|
b=c.key&&c.key.layer?c.key.layer:1<b.length?b[0]:"";var e=c.key&&c.key.sp,g=c.key&&c.key.nextlayer?c.key.nextlayer:null;if("undefined"!=typeof c.subKeys&&0<c.subKeys.length&&(c.subKeys[0].id!=f||c.subKeys[0].layer!=b)){f={id:f,layer:"",key:void 0};""!=b&&(f.layer=b);e&&(f.sp=e);g&&(f.nextlayer=g);for(b=0;b<c.childNodes.length&&!a.hasClass(c.childNodes[b],"kmw-key-text");b++);b<c.childNodes.length&&(f.text=c.childNodes[b].textContent);c.subKeys.splice(0,0,f)}}};a.getVKDictionaryCode=function(a){var c=
|
|
b.keyboardManager.activeKeyboard;if(!c.VKDictionary){var f=[];if("string"==typeof c.KVKD)for(var e=c.KVKD.split(" "),g=0;g<e.length;g++)f[e[g].toUpperCase()]=g+256;c.VKDictionary=f}return(a=c.VKDictionary[a.toUpperCase()])?a:0};a.selectLayer=function(c,d){var f=2>arguments.length?null:d,e=b.keyboardManager.isChiral();"number"==typeof f&&(f=a.getLayerId(16*f));if(!f)switch(c){case "K_LSHIFT":case "K_RSHIFT":case "K_SHIFT":f="shift";break;case "K_LCONTROL":case "K_LCTRL":if(e){f="leftctrl";break}case "K_RCONTROL":case "K_RCTRL":if(e){f=
|
|
"rightctrl";break}case "K_CTRL":f="ctrl";break;case "K_LMENU":case "K_LALT":if(e){f="leftalt";break}case "K_RMENU":case "K_RALT":if(e){f="rightalt";break}case "K_ALT":f="alt";break;case "K_ALTGR":f=e?"leftctrl-rightalt":"ctrl-alt";break;case "K_CURRENCIES":case "K_NUMERALS":case "K_SHIFTED":case "K_UPPER":case "K_LOWER":case "K_SYMBOLS":f="default"}if(!f||f==a.layerId&&"desktop"!=k.formFactor)return!1;a.updateLayer(f);a._Show();return!0};a.defaultKeyOutput=function(c,d,f,g,k){var m="",q=!1,l=k&&"undefined"!=
|
|
typeof k.base;0==f?q=!0:f==a.modifierCodes.SHIFT?(q=!0,f=1):console.warn("KMW only defines default key output for the 'default' and 'shift' layers!");if(l||g)switch((l=a.keyCodes[c])||(l=d),l){case a.keyCodes.K_BKSP:e.defaultBackspace();break;case a.keyCodes.K_TAB:b.domManager.moveToNext(f);break;case a.keyCodes.K_TABBACK:b.domManager.moveToNext(!0);break;case a.keyCodes.K_TABFWD:b.domManager.moveToNext(!1);break;case a.keyCodes.K_ENTER:if("TEXTAREA"==k.nodeName||"undefined"!=typeof k.base&&"TEXTAREA"==
|
|
k.base.nodeName)return"\n";g&&("INPUT"!=k.nodeName||"search"!=k.type&&"submit"!=k.type?"undefined"==typeof k.base||"search"!=k.base.type&&"submit"!=k.base.type?b.domManager.moveToNext(!1):(k.base.disabled=!1,k.base.form.submit()):k.form.submit());break;case a.keyCodes.K_SPACE:return" "}if("U_"==c.substr(0,2))c=parseInt(c.substr(2,6),16),0<=c&&31>=c||128<=c&&159>=c?console.log("Suppressing Unicode control code: U_00"+c.toString(16)):m=String.kmwFromCharCode(c);else if(q)try{d>=a.keyCodes.K_0&&d<=a.keyCodes.K_9?
|
|
m=h[f][0][d-a.keyCodes.K_0]:d>=a.keyCodes.K_A&&d<=a.keyCodes.K_Z?m=String.fromCharCode(d+(f?0:32)):d>=a.keyCodes.K_COLON&&d<=a.keyCodes.K_BKQUOTE?m=h[f][1][d-a.keyCodes.K_COLON]:d>=a.keyCodes.K_LBRKT&&d<=a.keyCodes.K_QUOTE&&(m=h[f][2][d-a.keyCodes.K_LBRKT])}catch(v){console.error("Error detected with default mapping for key: code = "+d+", shift state = "+(1==f?"shift":"default"))}return m};a.clickKey=function(c){var d=b.domManager.getLastActiveElement(),f,h=b.keyboardManager.activeKeyboard;var m=
|
|
c.id.split("-");if(2>m.length)return!0;"popup"==m[0]&&m.splice(0,1);if(null!=d){var l=m[0],p=m[m.length-1].toUpperCase(),r=f=a.getModifierState(a.layerId);for(f=1;f<m.length-1;f++)l=l+"-"+m[f];"undefined"!=typeof c.key&&(r=c.key.nextlayer);b.domManager.initActiveElement(d);if("K_LOPT"==p||"K_ROPT"==p)return a.optionKey(c,p,!0),!0;a.highlightKey(c,!1);if("desktop"==k.formFactor&&a.selectLayer(p,r))return!0;m=d._KeymanWebSelectionStart;f=d._KeymanWebSelectionEnd;b.uiManager.setActivatingUI(!0);com.keyman.DOMEventHandlers.states._IgnoreNextSelChange=
|
|
100;b.domManager.focusLastActiveElement();b.domManager._IsMozillaEditableIframe(d,0)&&(d=d.documentElement);d._KeymanWebSelectionStart=m;d._KeymanWebSelectionEnd=f;com.keyman.DOMEventHandlers.states._IgnoreNextSelChange=0;b._CachedSelectionStart=null;e._DeadkeyDeleteMatched();m={Ltarg:d,Lmodifiers:0,Lstates:0,Lcode:a.keyCodes[p],LisVirtualKey:!0};m.Lstates|=a._stateKeys.K_CAPS?a.modifierCodes.CAPS:a.modifierCodes.NO_CAPS;m.Lstates|=a._stateKeys.K_NUMLOCK?a.modifierCodes.NUM_LOCK:a.modifierCodes.NO_NUM_LOCK;
|
|
m.Lstates|=a._stateKeys.K_SCROLL?a.modifierCodes.SCROLL_LOCK:a.modifierCodes.NO_SCROLL_LOCK;"U_"==p.substr(0,2)&&(m.LisVirtualKey=!1);"undefined"==typeof m.Lcode&&(m.Lcode=a.getVKDictionaryCode(p),m.Lcode||(m.Lcode=1));f="undefined"==typeof c.key?null:c.key.layer;f=null==f?a.getModifierState(l):a.getModifierState(f);m.Lmodifiers=f;(m.Lmodifiers&a.modifierBitmasks.ALT_GR_SIM)==a.modifierBitmasks.ALT_GR_SIM&&a.emulatesAltGr()&&(m.Lmodifiers&=~a.modifierBitmasks.ALT_GR_SIM,m.Lmodifiers|=a.modifierCodes.RALT);
|
|
if(!h||!h.KM||h.KVKL&&"desktop"!=k.formFactor)m.vkCode=m.Lcode;else if(m.Lcode!=a.keyCodes.K_SPACE){m.vkCode=m.Lcode;if(l=a.defaultKeyOutput("K_xxxx",m.Lcode,-1!=l.indexOf("shift")?16:0,!1,null))m.Lcode=l.charCodeAt(0);a._stateKeys.K_CAPS&&(65<=m.Lcode&&90>=m.Lcode||97<=m.Lcode&&122>=m.Lcode)&&(m.Lmodifiers^=16,m.Lcode^=32)}"undefined"==typeof h.KM&&(m.Lcode=b.keyMapManager._USKeyCodeToCharCode(m),m.LisVirtualKey=!1);if(!h||0!=m.Lcode&&!e.processKeystroke(g.device,d,m))switch(m.Lcode=m.vkCode,p){case "K_CAPS":case "K_NUMLOCK":case "K_SCROLL":a._stateKeys[p]=
|
|
!a._stateKeys[p];a._Show();break;default:(h=a.defaultKeyOutput(p,m.Lcode,f,!0,d))&&e.output(0,d,h)}"undefined"!=typeof c.key&&null!==c.key.nextlayer&&(a.nextLayer=c.key.nextlayer);a.selectLayer(p,r);d._KeymanWebSelectionStart=null;d._KeymanWebSelectionEnd=null}b.uiManager.setActivatingUI(!1);return!0};a.getLayerId=function(b){var c="";if(0==b)return"default";b&a.modifierCodes.LCTRL&&(c=(0<c.length?c+"-":"")+"leftctrl");b&a.modifierCodes.RCTRL&&(c=(0<c.length?c+"-":"")+"rightctrl");b&a.modifierCodes.LALT&&
|
|
(c=(0<c.length?c+"-":"")+"leftalt");b&a.modifierCodes.RALT&&(c=(0<c.length?c+"-":"")+"rightalt");b&a.modifierCodes.SHIFT&&(c=(0<c.length?c+"-":"")+"shift");b&a.modifierCodes.CTRL&&(c=(0<c.length?c+"-":"")+"ctrl");b&a.modifierCodes.ALT&&(c=(0<c.length?c+"-":"")+"alt");return c};a.getModifierState=function(b){var c=0;0<=b.indexOf("shift")&&(c|=a.modifierCodes.SHIFT);var f=!1;0<=b.indexOf("leftctrl")&&(c|=a.modifierCodes.LCTRL,f=!0);0<=b.indexOf("rightctrl")&&(c|=a.modifierCodes.RCTRL,f=!0);0<=b.indexOf("ctrl")&&
|
|
!f&&(c|=a.modifierCodes.CTRL);f=!1;0<=b.indexOf("leftalt")&&(c|=a.modifierCodes.LALT,f=!0);0<=b.indexOf("rightalt")&&(c|=a.modifierCodes.RALT,f=!0);0<=b.indexOf("alt")&&!f&&(c|=a.modifierCodes.ALT);return c};a.updateLayer=function(c){var d=a.layerId,f=c,e;if("desktop"==b.util.device.formFactor){var g="leftctrl rightctrl ctrl leftalt rightalt alt shift".split(" ");for(e=0;e<g.length;e++)f=f.replace(g[e]+"-",""),f=f.replace(g[e],"");if("default"==a.layerId||"numeric"==a.layerId||"symbol"==a.layerId||
|
|
"currency"==a.layerId||""!=f)d=c;else{f=a.getModifierState(d);for(e=0;e<g.length;e++)d=d.replace(g[e]+"-",""),d=d.replace(g[e],"");switch(c){case "shift":f^=a.modifierCodes.SHIFT;break;case "leftctrl":f^=a.modifierCodes.LCTRL;break;case "rightctrl":f^=a.modifierCodes.RCTRL;break;case "ctrl":f^=a.modifierCodes.CTRL;break;case "leftalt":f^=a.modifierCodes.LALT;break;case "rightalt":f^=a.modifierCodes.RALT;break;case "alt":f^=a.modifierCodes.ALT;break;default:d=c}"default"!=d&&(d=""==d?a.getLayerId(f):
|
|
a.getLayerId(f)+"-"+d)}""==d&&(d="default")}else d=c;a.layerId=d;for(e=0;e<a.layers.length;e++)if(a.layerId==a.layers[e].id)return;a.layerId="default"};a.showLanguage=function(){var c="",d=b.keyboardManager.activeStub;if(d){var f=d.KL;c=d.KN}else f=b._ActiveLanguage?b._ActiveLanguage.KN:"English";try{var e=a.spaceBar.firstChild.firstChild;e.parentNode.className="undefined"==typeof e.parentNode.className||""==e.parentNode.className?"kmw-spacebar":e.parentNode.className+" kmw-spacebar";e.className=
|
|
"kmw-spacebar-caption";c=c.replace(/\s*keyboard\s*/i,"");d="";d=c==f?f:f+" ("+c+")";e.innerHTML!=d&&(e.innerHTML=d)}catch(m){}};a.showLanguageMenu=function(){var c=b.keyboardManager.keyboardStubs;if(!(1>c.length)){var d=a.lgList=g._CreateElement("DIV");a.lgList.id="kmw-language-menu";d.shim=g._CreateElement("DIV");d.shim.id="kmw-language-menu-background";d.shim.addEventListener("touchstart",function(b){b.preventDefault();a.hideLanguageList();if(2<b.touches.length){var c=b.touches[1].pageX;b=b.touches[1].pageY;
|
|
c>a.spaceBar.offsetLeft&&c<a.spaceBar.offsetLeft+a.spaceBar.offsetWidth&&b>a.spaceBar.offsetTop&&b<a.spaceBar.offsetTop+a.spaceBar.offsetHeight&&a.showBuild()}},!1);document.body.appendChild(d.shim);var f=g._CreateElement("DIV"),e=f.style,h=g._CreateElement("DIV");f.id="kmw-menu-scroll-container";h.id="kmw-menu-scroller";"WebkitOverflowScrolling"in e&&(e.WebkitOverflowScrolling="touch");f.appendChild(h);d.appendChild(f);var l;e=g._CreateElement("DIV");e.id="kmw-menu-index";for(l=1;26>=l;l++){var p=
|
|
g._CreateElement("P");p.innerHTML=String.fromCharCode(l+64);e.appendChild(p)}e.addEventListener("touchstart",function(b){a.scrollToLanguage(b,f,h)},!1);e.addEventListener("touchend",function(a){a.stopPropagation();a.preventDefault()},!1);d.appendChild(e);d.addEventListener("scroll",function(b){a.lgList.scrolling=!0},!1);f.addEventListener("scroll",function(a){1>f.scrollTop&&(f.scrollTop=1);f.scrollTop>f.scrollHeight-f.offsetHeight-1&&(f.scrollTop=f.scrollHeight-f.offsetHeight-1)},!1);a.lgList.activeLgNo=
|
|
a.addLanguagesToMenu(h,c);a.lgList.visibility="hidden";document.body.appendChild(a.lgList);"Android"==k.OS&&"devicePixelRatio"in window&&(a.lgList.style.fontSize=2/window.devicePixelRatio+"em");"Android"==k.OS&&"tablet"==k.formFactor&&"devicePixelRatio"in window&&(l=parseInt(g.getStyleValue(d,"width"),10),c=d.style,isNaN(l)||(c.width=c.maxWidth=2*l/window.devicePixelRatio+"px"),l=parseInt(g.getStyleValue(f,"width"),10),c=f.style,isNaN(l)||(c.width=c.maxWidth=2*l/window.devicePixelRatio+"px"),l=parseInt(g.getStyleValue(h,
|
|
"width"),10),c=h.style,isNaN(l)||(c.width=c.maxWidth=2*l/window.devicePixelRatio+"px"));a.adjustLanguageMenu(0);c=Math.floor(d.offsetHeight/26);p=Math.round(100*c/(e.childNodes[1].offsetTop-e.childNodes[0].offsetTop))/100;var r=.6<p?1:2;1.25<p&&(p=1.25);for(l=0;26>l;l++){var v=e.childNodes[l].style;2==r&&1==l%2?v.display="none":(v.fontSize=p*r+"em",v.lineHeight=c*r+"px")}l=f.offsetWidth;f.scrollHeight>f.offsetHeight+3?l+=e.offsetWidth:e.style.display="none";d.style.width=l+"px";a.lgList.visibility=
|
|
"";d=h.firstChild.offsetHeight*a.lgList.activeLgNo+1;f.scrollTop=d;f.scrollTop<d&&(f.scrollTop=f.scrollHeight-f.offsetHeight);f.scrollTop>f.scrollHeight-f.offsetHeight-1&&(f.scrollTop=f.scrollHeight-f.offsetHeight-1)}};a.adjustLanguageMenu=function(b){var c=a.lgList,f=c.firstChild,e=f.firstChild,h=c.style;c=c.childNodes[1];var l=window.innerHeight-a.lgKey.offsetHeight-16;e=(e.childNodes.length+b-1)*e.firstChild.firstChild.offsetHeight;"iOS"==k.OS&&("phone"==k.formFactor?(b=g.landscapeView()?36:0,
|
|
l=(window.innerHeight-b-16)*g.getViewportScale()):"tablet"==k.formFactor&&(b=g.landscapeView()?16:0,l-=b));h.left=g._GetAbsoluteX(a.lgKey)+"px";e>l&&(e=l);h.height=e+"px";h.top=g._GetAbsoluteY(a._Box)+a._Box.offsetHeight-e+window.pageYOffset-6+"px";h.bottom="auto";c.style.height=f.style.height=h.height};a.scrollToLanguage=function(a,b,f){a.stopImmediatePropagation();a.stopPropagation();a.preventDefault();if("P"==a.touches[0].target.nodeName){var c,d=0;a=a.touches[0].target.innerHTML.charCodeAt(0);
|
|
var e=f.childNodes;try{for(c=0;c<e.length-1;c++){var g=e[c].firstChild.innerHTML.toUpperCase().charCodeAt(0);if(g>=a)break}}catch(r){}try{d=f.firstChild.offsetHeight*c+1,b.scrollTop=d}catch(r){d=0}try{b.scrollTop<d&&(b.scrollTop=b.scrollHeight-b.offsetHeight),b.scrollTop>b.scrollHeight-b.offsetHeight-1&&(b.scrollTop=b.scrollHeight-b.offsetHeight-1)}catch(r){}}};a.addLanguagesToMenu=function(c,d){var f=d.length,e,h,l=[];for(h=0;h<f;h++){var p=d[h].KL;-1==l.indexOf(p)&&l.push(p)}l.sort();var r=Math.round(100/
|
|
g.getViewportScale())/100;p=-1;for(e=0;e<l.length;e++){var v=g._CreateElement("DIV");v.className="kbd-list-closed";var n=g._CreateElement("P");n.kList=[];for(h=0;h<f;h++)d[h].KL==l[e]&&n.kList.push(d[h]);"iOS"==k.OS&&(n.style.fontSize=r+"em");v.appendChild(n);c.appendChild(v);l[e]==b.keyboardManager.activeStub.KL&&(p=e);if(1<n.kList.length)for(n.className="kbd-list",n.innerHTML=l[e]+"...",n.scrolled=!1,n.ontouchend=function(b){b.preventDefault();b.stopPropagation();b.target.scrolled?b.target.scrolled=
|
|
!1:this.parentNode.className="kbd-list-closed"==this.parentNode.className?"kbd-list-open":"kbd-list-closed";a.adjustLanguageMenu("kbd-list-closed"==this.parentNode.className?0:this.kList.length)},n.addEventListener("touchstart",function(a){a.stopPropagation()},!1),n.addEventListener("touchmove",function(a){a.target.scrolled=!0;a.stopPropagation()},!1),h=0;h<n.kList.length;h++){var t=g._CreateElement("P");t.className="kbd-list-entry";"iOS"==k.OS&&(t.style.fontSize=r+"em");a.addKeyboardToMenu(n.kList[h],
|
|
t,!1);v.appendChild(t)}else n.innerHTML=l[e],n.className="kbd-single-entry",a.addKeyboardToMenu(n.kList[0],n,!0);e==p&&(n.className+=" current")}d=g._CreateElement("DIV");d.id="kmw-menu-footer";f=function(a){a.preventDefault();a.stopPropagation()};d.addEventListener("touchstart",f,!1);d.addEventListener("touchmove",f,!1);d.addEventListener("touchend",f,!1);c.appendChild(d);return p};a.addKeyboardToMenu=function(c,d,f){d.kn=c.KI;d.kc=c.KLC;d.innerHTML=f?c.KL:c.KN.replace(" Keyboard","");c=function(b){b.stopPropagation();
|
|
0>=this.className.indexOf("selected")&&(this.className+=" selected");a.lgList.scrolling=!1;a.lgList.y0=b.touches[0].pageY;return!0};f=function(b){b.stopImmediatePropagation();var c=a.lgList.childNodes[0],d=c.scrollHeight-c.offsetHeight;if("undefined"!=typeof b.pageY)var f=b.pageY;else if("undefined"!=typeof b.touches)f=b.touches[0].pageY;else return;var e=f-a.lgList.y0;if(0>e)c.scrollTop>=d-1&&(b.preventDefault(),a.lgList.y0=f);else if(0<e)2>c.scrollTop&&(b.preventDefault(),a.lgList.y0=f);else return;
|
|
if(-5>e||5<e)a.lgList.scrolling=!0,this.className=this.className.replace(/\s*selected/,""),a.lgList.y0=f;return!0};var e=function(c){c.preventDefault();"undefined"!=typeof c.stopImmediatePropagation?c.stopImmediatePropagation():c.stopPropagation();a.lgList.scrolling?this.className=this.className.replace(/\s*selected/,""):(com.keyman.DOMEventHandlers.states.setFocusTimer(),a.lgList.style.display="none",b.keyboardManager._SetActiveKeyboard(this.kn,this.kc,!0),b.keyboardManager.doKeyboardChange(this.kn,
|
|
this.kc),b.domManager.focusLastActiveElement(),a.hideLanguageList(),a._Show());return!0};d.onmspointerdown=c;d.addEventListener("touchstart",c,!1);d.onmspointermove=f;d.addEventListener("touchmove",f,!1);d.onmspointerout=e;d.addEventListener("touchend",e,!1)};a.hideLanguageList=function(){a.lgList&&(a.highlightKey(a.lgKey.firstChild,!1),a.lgList.style.visibility="hidden",window.setTimeout(function(){null!=a.lgList&&"undefined"!=typeof a.lgList&&(document.body.removeChild(a.lgList.shim),document.body.removeChild(a.lgList));
|
|
a.lgList=null},500))};a._UpdateVKShift=function(c,d,f){var e=0,g=["CAPS","NUM_LOCK","SCROLL_LOCK"],h=["K_CAPS","K_NUMLOCK","K_SCROLL"];if(c)for(e=c.Lmodifiers,d=c.Lstates,b.keyboardManager.isChiral()&&a.emulatesAltGr()&&(com.keyman.DOMEventHandlers.states.modStateFlags&a.modifierBitmasks.ALT_GR_SIM)==a.modifierBitmasks.ALT_GR_SIM&&(e|=a.modifierBitmasks.ALT_GR_SIM,e&=~a.modifierCodes.RALT),c=0;c<g.length;c++)d&a.stateBitmasks[g[c]]&&(a._stateKeys[h[c]]=d&a.modifierCodes[g[c]]);else if(f)for(e|=d,
|
|
c=0;c<g.length;c++)d&a.stateBitmasks[g[c]]&&(a._stateKeys[h[c]]=!0);else for(e&=~d,c=0;c<g.length;c++)d&a.stateBitmasks[g[c]]&&(a._stateKeys[h[c]]=!1);a.layerId=a.getLayerId(e);a._Visible&&a._Show();return!0};a._UpdateVKShiftStyle=function(b){var c;if(b)for(c=0;c<a.layers.length&&a.layers[c].id!=a.layerId;c++);else{c=a.layerIndex;b=a.layers[c].id;var f=a.layers[c];c=["K_CAPS","K_NUMLOCK","K_SCROLL"];var e=[f.capsKey,f.numKey,f.scrollKey];for(f=0;f<e.length;f++)if(null!=e[f]){e[f].sp=a._stateKeys[c[f]]?
|
|
a.buttonClasses["SHIFT-ON"]:a.buttonClasses.SHIFT;var g=document.getElementById(b+"-"+c[f]);a.setButtonClass(e[f],g,a.layout)}}};a._CancelMouse=function(a){(a=b._GetEventObject(a))&&a.preventDefault&&a.preventDefault();a&&(a.cancelBubble=!0,a.returnValue=!1);return!1};a.showLayer=function(c){if(b.keyboardManager.activeKeyboard)for(var d=0;d<a.layers.length;d++)if(a.layers[d].id==c)return a.layerId=c,a._Show(),!0;return!1};a.getHeight=function(){if("function"==typeof b.getOskHeight)return b.getOskHeight();
|
|
var a=Math.floor(Math.min(screen.availHeight,screen.availWidth)/2);if("phone"==k.formFactor){var d=Math.min(screen.height,screen.width),f=Math.max(screen.height,screen.width);a=g.portraitView()?Math.floor(Math.max(screen.availHeight,screen.availWidth)/3):f/d*a/1.6}"iOS"==k.OS&&(a/=g.getViewportScale());"Android"==k.OS&&"phone"==k.formFactor&&"devicePixelRatio"in window&&/Firefox|Chrome|OPR/.test(navigator.userAgent)&&(a*=window.devicePixelRatio);return a};a.getWidth=function(){if("function"==typeof b.getOskWidth)return b.getOskWidth();
|
|
if("iOS"==g.device.OS)var a=window.innerWidth;else if("Android"==k.OS)try{a=document.documentElement.clientWidth}catch(d){a=screen.availWidth}else a=screen.width;return a};a.mouseOverMouseDownHandler=function(b){var c=g.eventTarget(b);null!==c&&"desktop"==k.formFactor&&("SPAN"==c.nodeName&&(c=c.parentNode),"mousedown"==g.eventType(b)?(a.currentKey=c.id,a._CancelMouse(b),a.highlightKey(c,!0)):c.id==a.currentKey&&a.highlightKey(c,!0))};a.mouseUpMouseOutHandler=function(b){var c=g.eventTarget(b);null!==
|
|
c&&"desktop"==k.formFactor&&("SPAN"==c.nodeName&&(c=c.parentNode),a.highlightKey(c,!1),"mouseup"==g.eventType(b)&&(c.id==a.currentKey&&a.clickKey(c),a.currentKey=""))};a.getDefaultKeyObject=function(){return{text:"",width:"100",pad:"15",sp:"0",layer:null,nextlayer:null}};a.deviceDependentLayout=function(b,d){var c=g._CreateElement("DIV"),e=c.style;c.className="kmw-key-layer-group";switch(d){case "phone":case "tablet":var h=a.getHeight();e.height=h+"px"}if(null==b)return c;h=b.fontsize;e.fontSize=
|
|
"undefined"==typeof h||null==h||""==h?"1em":b.fontsize;a.fontSize=e.fontSize;var l;var p=b.layer;var r=a.getDefaultKeyObject();r.fontsize=e.fontSize;var v=/\*\w+\*/;for(h=0;h<p.length;h++){var n=p[h];var t=n.row;for(l=t.length;0<l&&!(0<t[l-1].key.length);l--);l<t.length&&t.splice(l-t.length,t.length-l)}var z=100/t.length;"desktop"==d&&(z=100/t.length);var x="desktop"==d?100:a.getWidth();k.touchable&&(c.addEventListener("touchstart",a.touch,!0),c.addEventListener("touchend",a.release,!0),c.addEventListener("touchmove",
|
|
a.moveOver,!1));for(h=0;h<p.length;h++){n=p[h];n.aligned=!1;var B=g._CreateElement("DIV");t=B.style;B.className="kmw-key-layer";t.display=0==h?"block":"none";t.height=e.height;t.fontFamily="font"in b?b.font:"";B.layer=B.nextLayer=n.id;"string"==typeof n.nextlayer&&(B.nextLayer=n.nextlayer);t=n.row;var u=0;for(l=0;l<t.length;l++){var F=0;var y=t[l];var A=y.key;for(y=0;y<A.length;y++){var w=A[y];if(null==w)--A.length;else{var C="string"==typeof w.width&&""!=w.width?parseInt(w.width,10):100;if(isNaN(C)||
|
|
0==C)C=100;w.width=C.toString();var D="string"==typeof w.pad&&""!=w.pad?parseInt(w.pad,10):15;if(isNaN(D)||0==D)D=15;w.pad=D.toString();F+=C+D}}F>u&&(u=F)}u="desktop"==d?u+5:u+15;for(l=0;l<t.length;l++){F=g._CreateElement("DIV");F.className="kmw-key-row";F.onmousedown=g.mouseDownPreventDefaultHandler;y=t[l];C=F.style;C.maxHeight=C.height=z+"%";A=y.key;for(y=0;y<A.length;y++){w=A[y];for(var H in r)"string"!=typeof w[H]&&(w[H]=r[H]);switch(w.sp){case "1":v.test(w.text)||""==w.text||(w.sp="3");break;
|
|
case "2":v.test(w.text)||""==w.text||(w.sp="4")}}for(y=D=0;y<A.length-1;y++){w=Math.round(parseInt(A[y].width,10)*x/u);A[y].widthpc=w;var G=Math.round(parseInt(A[y].pad,10)*x/u);A[y].padpc=G;D+=G+w}D+=Math.round(15*x/u);1==A.length&&0>parseInt(A[0].pad,10)?(w=Math.round(parseInt(A[0].width,10)*x/u),A[0].widthpc=w,D+=w,A[0].padpc=x-D):0<A.length&&(y=A.length-1,G=Math.round(parseInt(A[y].pad,10)*x/u),A[y].padpc=G,D+=G,A[y].widthpc=x-D);for(y=D=0;y<A.length;y++)w=A[y],w=(new com.keyman.OSKBaseKey(w)).construct(b,
|
|
n.id,C,D),F.appendChild(w.element),D+=w.percent;B.appendChild(F)}c.appendChild(B)}return c};a.clearPopup=function(){var b=document.getElementById("kmw-popup-keys");null!=b&&(b.shim&&a._Box.removeChild(b.shim),b.parentNode.removeChild(b));a.popupCallout&&a._Box.removeChild(a.popupCallout);a.popupCallout=null;a.subkeyDelayTimer&&(window.clearTimeout(a.subkeyDelayTimer),a.subkeyDelayTimer=null);a.popupBaseKey=null};a.touch=function(b){var c=b.changedTouches[0].target,f=a.keyTarget(c);a.touchX=b.changedTouches[0].pageX;
|
|
a.currentTarget=f;var e=document.getElementById("kmw-popup-keys");if(!(e&&"visible"==e.style.visibility||a.popupVisible)){a.touchCount=b.touches.length;if(f&&0<=f.className.indexOf("key-hidden")||0<=c.className.indexOf("kmw-key-row"))f=a.findNearestKey(b,c);null!=f&&(b=f.id.split("-"),b=b[b.length-1],a.highlightKey(f,!0),"K_LOPT"==b||"K_ROPT"==b?(window.setTimeout(function(){a.clickKey(f)},0),a.keyPending=null):"K_BKSP"==b?(a.clickKey(f),a.deleteKey=f,a.deleting=window.setTimeout(a.repeatDelete,500),
|
|
a.keyPending=null):(a.keyPending?(a.highlightKey(a.keyPending,!1),a.clickKey(a.keyPending),a.clearPopup(),a.touchCount--):a.touchHold(f),a.keyPending=f))}};a.release=function(b){var c=document.getElementById("kmw-popup-keys"),f=a.currentTarget;if(c&&"visible"==c.style.visibility||a.popupVisible){if(0<b.touches.length)return;if(null==f||0>f.id.indexOf("popup")&&f.id!=a.popupBaseKey.id)a.highlightKey(a.keyPending,!1),a.clearPopup(),a.keyPending=null}f&&f.id&&a.optionKey(b,f.id,!1);f=b.changedTouches[0].pageX;
|
|
f=2>f&&5<a.touchX||f>window.innerWidth-2&&a.touchX<window.innerWidth-5;c=a.touchCount;0<a.touchCount&&a.touchCount--;a.keyPending?(a.highlightKey(a.keyPending,!1),0>a.keyPending.className.indexOf("hidden")&&0<c&&!f&&a.clickKey(a.keyPending),a.clearPopup(),a.keyPending=null):(c=b.changedTouches[0],f=a.keyTarget(c.target),f||(f=document.elementFromPoint(c.clientX,c.clientY),f=a.findNearestKey(b,f)),a.highlightKey(f,!1));a.deleting&&window.clearTimeout(a.deleting);a.deleting=0};a.moveOver=function(b){b.preventDefault();
|
|
b.cancelBubble=!0;"function"==typeof b.stopImmediatePropagation?b.stopImmediatePropagation():"function"==typeof b.stopPropagation&&b.stopPropagation();if(!(1<b.touches.length||0==a.touchCount)){var c="object"==typeof b.touches?b.touches[0].clientX:b.clientX,f="object"==typeof b.touches?b.touches[0].clientY:b.clientY,e=document.elementFromPoint(c,f),g=a.keyPending,h=a.keyTarget(e);if(h&&0<=h.className.indexOf("key-hidden")||e&&!h&&0<=e.className.indexOf("key-row"))h=a.findNearestKey(b,e);h&&"string"==
|
|
typeof h.id&&0>h.id.indexOf("BKSP")&&(a.deleting&&window.clearTimeout(a.deleting),a.deleting=0);if(a.popupVisible)null==h?(g&&a.highlightKey(g,!1),a.keyPending=null):h==a.popupBaseKey?(a.hasClass(h,"kmw-key-touched")||a.highlightKey(h,!0),a.keyPending=h):(g&&a.highlightKey(g,!1),a.keyPending=null);else{(e=document.getElementById("kmw-popup-keys"))&&"visible"==e.style.visibility&&"phone"==k.formFactor&&h==a.popupBaseKey&&(h=e.childNodes[0].firstChild);a.currentTarget=h;g&&h&&h.id!=g.id&&a.highlightKey(g,
|
|
!1);a.highlightSubKeys(h,c,f);if(e&&"visible"==e.style.visibility){if(h&&0>h.id.indexOf("popup")&&h!=a.popupBaseKey)return;h&&h==a.popupBaseKey&&0>h.className.indexOf("kmw-key-touched")&&a.highlightKey(h,!0)}else g&&b.touches[0].pageY<Math.max(5,a._Box.offsetTop-.25*a._Box.offsetHeight)&&(a.highlightKey(g,!1),a.showKeyTip(null,!1),a.keyPending=null);h&&a.keyPending&&(a.keyPending=h);a.keyPending&&(g!=h||0>h.className.indexOf("kmw-key-touched"))&&a.highlightKey(h,!0);g&&h&&h!=g&&""!=h.id&&a.touchHold(h)}}};
|
|
a.hasClass=function(a,b){b=" "+b+" ";return 0<=(" "+a.className+" ").replace(/[\n\t\r\f]/g," ").indexOf(b)};a.keyTarget=function(b){try{if(b){if(a.hasClass(b,"kmw-key"))return b;if(b.parentNode&&a.hasClass(b.parentNode,"kmw-key"))return b.parentNode;if(b.firstChild&&a.hasClass(b.firstChild,"kmw-key"))return b.firstChild}}catch(d){}return null};a.findNearestKey=function(a,b){if(!a||"undefined"==typeof a.changedTouches||0==a.changedTouches.length)return null;for(a=a.changedTouches[0].pageX;b&&0>b.className.indexOf("key-row");)b=
|
|
b.parentNode;if(!b)return null;var c,d=0,e=24,g=1E5;for(c=0;c<b.childNodes.length;c++)if(!(0<=b.childNodes[c].firstChild.className.indexOf("key-hidden"))){var h=b.childNodes[c].offsetLeft;var k=h+b.childNodes[c].offsetWidth;h-=a;0<=h&&h<g&&(d=c,g=h);h=a-k;0<=h&&h<g&&(d=c,g=h)}return 1E5>g&&(b=b.childNodes[d],h=b.offsetLeft,k=h+b.offsetWidth,40<b.offsetWidth&&(e=.6*b.offsetWidth),0<=h-a&&h-a<e||0<=a-k&&a-k<e)?b.firstChild:null};a.repeatDelete=function(){a.deleting&&(a.clickKey(a.deleteKey),a.deleting=
|
|
window.setTimeout(a.repeatDelete,100))};a.setButtonClass=function(b,d,f){var c=0,e="default shift shift-on special special-on deadkey blank hidden".split(" ");"string"==typeof b.dk&&"1"==b.dk&&(c=8);"string"==typeof b.sp&&(c=parseInt(b.sp,10));if(0>c||10<c)c=0;f=f||a.layout;d.className=4<f.layer[0].row.length&&"phone"==g.device.formFactor?"kmw-key kmw-5rows kmw-key-"+e[c]:"kmw-key kmw-key-"+e[c]};a.processLegacyDefinitions=function(b){for(var c=a.generateLayerIds(!1),f={},e=0;e<c.length;e++){for(var g=
|
|
c[e],h=[],k=!1,r=0;65>r;r++){var v=r+65*e;h.push(b[v]);v<b.length&&""!=b[v]&&r!=l.indexOf("K_SPACE")&&(k=!0)}k&&(f[g]=h)}"undefined"!=typeof f["default"]&&f["default"]||(f["default"]=[""]);"undefined"!=typeof f.shift&&f.shift||(f.shift=[""]);return f};a.formatDefaultLayer=function(b,d,f,e){for(var c=b.id,g=0;g<b.row.length;g++)for(var h=b.row[g].key,k=0;k<h.length;k++){var l=h[k];switch(l.id){case "K_SHIFT":case "K_LSHIFT":case "K_RSHIFT":-1!=c.indexOf("shift")&&(l.sp=a.buttonClasses["SHIFT-ON"]);
|
|
"desktop"!=f&&"default"!=c&&(l.nextlayer="default");break;case "K_LCTRL":case "K_LCONTROL":if(d){-1!=c.indexOf("leftctrl")&&(l.sp=a.buttonClasses["SHIFT-ON"]);break}case "K_RCTRL":case "K_RCONTROL":if(d){-1!=c.indexOf("rightctrl")&&(l.sp=a.buttonClasses["SHIFT-ON"]);break}case "K_CONTROL":-1==c.indexOf("ctrl")||d&&(-1==c.indexOf("leftctrl")||-1==c.indexOf("rightctrl"))||(l.sp=a.buttonClasses["SHIFT-ON"]);break;case "K_LALT":if(d){-1!=c.indexOf("leftalt")&&(l.sp=a.buttonClasses["SHIFT-ON"]);break}case "K_RALT":if(d){-1!=
|
|
c.indexOf("rightalt")&&(l.sp=a.buttonClasses["SHIFT-ON"]);break}case "K_ALT":-1==c.indexOf("alt")||d&&(-1==c.indexOf("leftalt")||-1==c.indexOf("rightalt"))||(l.sp=a.buttonClasses["SHIFT-ON"]);break;case "K_oE2":"undefined"!=typeof e&&e||("desktop"==f?(h.splice(k--,1),h[0].width="200"):h[k].sp=a.buttonClasses.HIDDEN)}}};a.generateLayerIds=function(b){if(b){b=32;var c=1}else b=8,c=16;for(var f=[],e=0;e<b;e++)f.push(a.getLayerId(e*c));return f};a.emulatesAltGr=function(c){if(!b.keyboardManager.isChiral())return!1;
|
|
if(!c){c=b.keyboardManager.activeKeyboard;if(null==c||null==c.KV)return!1;c=c.KV.KLS}var d=a.modifierCodes.LCTRL|a.modifierCodes.LALT,f=c[a.getLayerId(d)],e=c[a.getLayerId(a.modifierCodes.SHIFT|d)];if(null!=f&&f!=c[a.getLayerId(a.modifierCodes.RALT)]||null!=e&&e!=c[a.getLayerId(a.modifierCodes.RALT|a.modifierCodes.SHIFT)])return!1;if((b.keyboardManager.getKeyboardModifierBitmask()&d)!=d)return!0;null!=f||null!=e||a.altGrWarning||(console.warn("Could not detect if AltGr emulation is safe, but defaulting to active emulation!"),
|
|
a.altGrWarning=!0);return!0};a.buildDefaultLayout=function(c,d,f){var e=f;var h=b.dfltLayout;"object"!=typeof h[e]&&(e="desktop");e=g.deepCopy(h[e]);var k;h=e.layer;var p=c.KLS,r=c.K102,v,n=d&a.modifierBitmasks.IS_CHIRAL;(d=!("undefined"==typeof p||!p))||(p=c.KLS=a.processLegacyDefinitions(c.BK));c=Object.getOwnPropertyNames(p);var t=[];c.splice(c.indexOf("default"),1);c=["default"].concat(c);a.emulatesAltGr(p)&&(-1==c.indexOf("leftctrl-leftalt")&&-1!=c.indexOf("rightalt")&&(c.push("leftctrl-leftalt"),
|
|
p["leftctrl-leftalt"]=p.rightalt),-1==c.indexOf("leftctrl-leftalt-shift")&&-1!=c.indexOf("rightalt-shift")&&(c.push("leftctrl-leftalt-shift"),p["leftctrl-leftalt-shift"]=p["rightalt-shift"]));if("desktop"==f)for(t=a.generateLayerIds(n),k=0;k<t.length;k++)-1!=c.indexOf(t[k])&&t.splice(k--,1);var z=c.concat(t);if(d&&"desktop"!=f){d=null;t=h[0].row;for(k=0;k<t.length;k++){var x=t[k].key;for(var B=0;B<x.length;B++){var u=x[B];"K_SHIFT"==u.id&&(d=u)}}if(d)for(v in d.sk=[],p)"default"!=v&&"shift"!=v&&(k=
|
|
a.modifierSpecials[v],d.sk.push(new com.keyman.OSKKeySpec("K_"+k,k,null,"1",v)));else console.warn("Error in default layout - cannot find default Shift key!")}for(k=0;k<z.length;k++)0<k&&(h[k]=g.deepCopy(h[0])),h[k].id=z[k],h[k].nextlayer=z[k],a.formatDefaultLayer(h[k],0!=n,f,!!r);for(k=0;k<h.length;k++){n=h[k];var F=B=z=d=null,y=p[n.id],A="shift"==n.id?1:0,w="default"==n.id||A?1:0;t=n.row;for(v=0;v<t.length;v++)for(x=t[v].key,r=0;r<x.length;r++){u=x[r];var C=l.indexOf(u.id);if(y||w)y&&0<=C&&C<y.length&&
|
|
(u.text=y[C]),w&&(""==u.text||"undefined"==typeof u.text)&&"K_SPACE"!=u.id&&130>C+65*A&&(u.text="`1234567890-=\u00a7~~qwertyuiop[]\\~~~asdfghjkl;'~~~~~?zxcvbnm,./~~~~~ ~!@#$%^&*()_+\u00a7~~QWERTYUIOP{}\\~~~ASDFGHJKL:\"~~~~~?ZXCVBNM<>?~~~~~ "[C+65*A]);"undefined"==typeof u.text&&(u.text="");switch(u.id){case "K_SHIFT":d=u;break;case "K_CAPS":z=u;break;case "K_NUMLOCK":B=u;break;case "K_SCROLL":F=u}if(null!=u.sk){for(C=0;C<u.sk.length;C++)-1==c.indexOf(u.sk[C].nextlayer)&&u.sk.splice(C--,1);0==u.sk.length&&
|
|
(u.sk=null)}}n.shiftKey=d;n.capsKey=z;n.numKey=B;n.scrollKey=F;"desktop"!=f&&0<k&&null!=d&&(d.sp=a.buttonClasses["SHIFT-ON"],d.sk=null,d.text=a.modifierSpecials[h[k].id]?a.modifierSpecials[h[k].id]:"*Shift*")}return e};a._GenerateVisualKeyboard=function(c,d,f,e){d=g._CreateElement("DIV");var h=b.keyboardManager.activeKeyboard;if("object"!=typeof f||null==f)f=a.buildDefaultLayout(c,e,k.formFactor);a.layout=f;a.layers=f.layer;a.fontFamily="font"in f?f.font:"";f.keyLabels=h&&"undefined"!=typeof h.KDU&&
|
|
h.KDU;c=a.deviceDependentLayout(f,k.formFactor);a.ddOSK=!0;a.keyMap=c;d.appendChild(c);a._DivVKbdHelp=a._DivVKbd=d;a._Box.className=k.formFactor+" "+k.OS.toLowerCase()+" kmw-osk-frame";d.className=k.formFactor+" kmw-osk-inner-frame";"desktop"==k.formFactor&&a._Box.appendChild(a.controlBar());a._Box.appendChild(d);"desktop"==k.formFactor?a._Box.appendChild(a.resizeBar()):a.adjustHeights()};b.BuildVisualKeyboard=b.buildOSK=function(c,d,f,e){d=b.keyboardManager.activeKeyboard;var g="undefined"==typeof f?
|
|
"desktop":f;e="undefined"==typeof e?"default":e;f=b.keyboardManager.keyboards;if(null!=c){var h=c.toLowerCase().replace("keyboard_","");for(c=0;c<f.length;c++)if(h==f[c].KI.toLowerCase().replace("keyboard_","")){d=f[c];break}}if(!d)return null;c=d.KVKL;f=null;h=d.KV;"object"==typeof c&&("object"==typeof c[g]&&null!=c[g]?f=c[g]:"phone"==g&&"object"==typeof c.tablet&&null!=c.tablet?f=c.tablet:"tablet"==g&&"object"==typeof c.phone&&null!=c.phone?f=c.phone:"object"==typeof c.desktop&&null!=c.desktop&&
|
|
(f=c.desktop));null==f&&null!=h&&(f=a.buildDefaultLayout(h,b.keyboardManager.getKeyboardModifierBitmask(d),g));null!=f&&(f.keyLabels="undefined"!=typeof d.KDU&&d.KDU);h=a.deviceDependentLayout(f,g);h.className=g+"-static kmw-osk-inner-frame";if(null!=f){var k,l;for(c=0;c<f.layer.length;c++){d=h.childNodes[c];for(k=0;k<d.childNodes.length;k++)for(g=d.childNodes[k],l=0;l<g.childNodes.length;l++){var q=g.childNodes[l];q.style.height="100%"}d.style.display="number"==typeof e?c==e&&0<=e?"block":"none":
|
|
"string"==typeof e?f.layer[c].id==e?"block":"none":0==c?"block":"none"}}else h.innerHTML="<p style='color:#c40; font-size:0.5em;margin:10px;'>No "+g+" layout is defined for "+d.KN+".</p>";h.style.border="1px solid #ccc";return h};a.adjustHeights=function(){if(a._Box&&a._Box.firstChild&&a._Box.firstChild.firstChild&&a._Box.firstChild.firstChild.childNodes){var b=a._Box.firstChild.firstChild.childNodes,d=b[0].childNodes.length,f=a.getHeight(),e=Math.floor(f/(0==d?1:d)),h,l,p;var r=1;"Android"==k.OS&&
|
|
"devicePixelRatio"in window&&(e/=window.devicePixelRatio);f=d*e;d=a._Box;e=d.style;e.height=e.maxHeight=f+3+"px";d=d.firstChild.firstChild;e=d.style;e.height=e.maxHeight=f+3+"px";"iOS"==k.OS&&(r/=g.getViewportScale());e.fontSize=r+"em";var v="iOS"==k.OS&&"phone"==k.formFactor&&g.landscapeView();for(r=0;r<b.length;r++){d=b[r].childNodes.length;e=Math.floor(f/(0==d?1:d));var n=Math.round(.15*e);b[r].style.height=f+3+"px";for(h=0;h<d;h++){var t=b[r].childNodes[h].style;t.bottom=(d-h-1)*e+1+"px";t.maxHeight=
|
|
t.height=e+"px";var z=b[r].childNodes[h].childNodes;var x=z.length;for(l=0;l<x;l++){var B=z[l];for(p=0;p<B.childNodes.length&&!a.hasClass(B.childNodes[p],"kmw-key");p++);var u=B.childNodes[p].style;u.bottom=t.bottom;u.height=u.minHeight=e-n+"px";v&&0<p&&(B.childNodes[0].style.fontSize="6px")}}}}};a.controlBar=function(){var c=g._CreateElement("DIV"),d="";c.id="keymanweb_title_bar";c.className="kmw-title-bar";c.onmousedown=a._VMoveMouseDown;b.keyboardManager.activeKeyboard&&(d=b.keyboardManager.activeKeyboard.KN);
|
|
var f=g._CreateElement("SPAN");f.className="kmw-title-bar-caption";f.innerHTML=d;c.appendChild(f);d=a.closeButton=g._CreateElement("DIV");d.id="kmw-close-button";d.className="kmw-title-bar-image";d.onmousedown=a._CancelMouse;d.onclick=function(){a._Hide(!0)};c.appendChild(d);d=a.helpImg=g._CreateElement("DIV");d.id="kmw-help-image";d.className="kmw-title-bar-image";d.title="KeymanWeb Help";d.onclick=function(){g.callEvent("osk.helpclick",{});window.event&&(window.event.returnValue=!1);return!1};d.onmousedown=
|
|
a._CancelMouse;c.appendChild(d);d=a.configImg=g._CreateElement("DIV");d.id="kmw-config-image";d.className="kmw-title-bar-image";d.title="KeymanWeb Configuration Options";d.onclick=function(){g.callEvent("osk.configclick",{});window.event&&(window.event.returnValue=!1);return!1};d.onmousedown=a._CancelMouse;c.appendChild(d);d=a.pinImg=g._CreateElement("DIV");d.id="kmw-pin-image";d.className="kmw-title-bar-image";d.title="Pin the On Screen Keyboard to its default location on the active text box";d.onclick=
|
|
function(){a.loadCookie();a.userPositioned=!1;a.saveCookie();a._Show();a.doResizeMove();a.pinImg&&(a.pinImg.style.display="none");window.event&&(window.event.returnValue=!1);return!1};d.onmousedown=a._CancelMouse;c.appendChild(d);return c};a.showBuild=function(){g.alert("KeymanWeb Version "+b.version+"."+b.build+'<br /><br /><span style="font-size:0.8em">Copyright © 2017 SIL International</span>')};a.resizeBar=function(){var b=g._CreateElement("DIV");b.className="kmw-footer";b.onmousedown=a._CancelMouse;
|
|
var d=g._CreateElement("DIV");d.className="kmw-footer-caption";d.innerHTML='<a href="https://keyman.com/developer/keymanweb/">KeymanWeb</a>';d.id="keymanweb-osk-footer-caption";g.attachDOMEvent(d,"dblclick",function(b){b&&b.shiftKey&&a.showBuild()},!1);"onselectstart"in d&&(d.onselectstart=g.selectStartHandler);b.appendChild(d);d=g._CreateElement("DIV");d.className="kmw-footer-resize";d.onmousedown=a._VResizeMouseDown;d.onmouseover=d.onmouseout=a._VResizeMouseOut;b.appendChild(d);a.resizeIcon=d;return b};
|
|
a._VKbdMouseOver=function(a){b.uiManager.setActivatingUI(!0)};a._VKbdMouseOut=function(a){b.uiManager.setActivatingUI(!1)};a._VResizeMouseOver=a._VResizeMouseOut=function(c){c=b._GetEventObject(c);if(!c)return!1;c&&c.preventDefault&&c.preventDefault();var d=a.getRect();a.width=d.width;a.height=d.height;c.cancelBubble=!0;return!1};a._VResizeMouseDown=function(c){b.uiManager.justActivated=!0;c=b._GetEventObject(c);if(!c)return!0;a.resizing=1;if(c.pageX){var d=c.pageX;var f=c.pageY}else c.clientX&&(d=
|
|
c.clientX+document.body.scrollLeft,f=c.clientY+document.body.scrollTop);a._ResizeMouseX=d;a._ResizeMouseY=f;document.onmousemove!=a._VResizeMouseMove&&document.onmousemove!=a._VMoveMouseMove&&(a._VPreviousMouseMove=document.onmousemove,a._VPreviousMouseUp=document.onmouseup);a._VPreviousCursor=document.body.style.cursor;a._VPreviousMouseButton="undefined"==typeof c.which?c.button:c.which;a._VOriginalWidth=a._DivVKbd.offsetWidth;a._VOriginalHeight=a._DivVKbd.offsetHeight;document.onmousemove=a._VResizeMouseMove;
|
|
document.onmouseup=a._VResizeMoveMouseUp;document.body.style.cursor&&(document.body.style.cursor="se-resize");c&&c.preventDefault&&c.preventDefault();c.cancelBubble=!0;return!1};a._VResizeMouseMove=function(c){c=b._GetEventObject(c);if(!c)return!0;a.resizing=1;if(a._VPreviousMouseButton!=("undefined"==typeof c.which?c.button:c.which))return a._VResizeMoveMouseUp(c);if(c.pageX){var d=c.pageX;var f=c.pageY}else c.clientX&&(d=c.clientX+document.body.scrollLeft,f=c.clientY+document.body.scrollTop);d=
|
|
a._VOriginalWidth+d-a._ResizeMouseX;f=a._VOriginalHeight+f-a._ResizeMouseY;d<.2*screen.width&&(d=.2*screen.width);f<.1*screen.height&&(f=.1*screen.height);d>.9*screen.width&&(d=.9*screen.width);f>.5*screen.height&&(d=.5*screen.height);a._DivVKbd.style.width=d+"px";a._DivVKbd.style.height=f+"px";a._DivVKbd.style.fontSize=f/8+"px";c&&c.preventDefault&&c.preventDefault();c.cancelBubble=!0;return!1};a._VMoveMouseDown=function(c){b.uiManager.justActivated=!0;c=b._GetEventObject(c);if(!c)return!0;a.resizing=
|
|
1;if(c.pageX){var d=c.pageX;var f=c.pageY}else c.clientX&&(d=c.clientX+document.body.scrollLeft,f=c.clientY+document.body.scrollTop);document.onmousemove!=a._VResizeMouseMove&&document.onmousemove!=a._VMoveMouseMove&&(a._VPreviousMouseMove=document.onmousemove,a._VPreviousMouseUp=document.onmouseup);a._VPreviousCursor=document.body.style.cursor;a._VPreviousMouseButton="undefined"==typeof c.which?c.button:c.which;a._VMoveX=d-a._Box.offsetLeft;a._VMoveY=f-a._Box.offsetTop;b.keyboardManager.isCJK()&&
|
|
(a.pinImg.style.left="15px");document.onmousemove=a._VMoveMouseMove;document.onmouseup=a._VResizeMoveMouseUp;document.body.style.cursor&&(document.body.style.cursor="move");c&&c.preventDefault&&c.preventDefault();c.cancelBubble=!0;return!1};a._VMoveMouseMove=function(c){c=b._GetEventObject(c);if(!c||a.noDrag)return!0;a.resizing=1;a.userPositioned=!0;a.pinImg.style.display="block";if(a._VPreviousMouseButton!=("undefined"==typeof c.which?c.button:c.which))return a._VResizeMoveMouseUp(c);if(c.pageX){var d=
|
|
c.pageX;var f=c.pageY}else c.clientX&&(d=c.clientX+document.body.scrollLeft,f=c.clientY+document.body.scrollTop);a._Box.style.left=d-a._VMoveX+"px";a._Box.style.top=f-a._VMoveY+"px";c&&c.preventDefault&&c.preventDefault();d=a.getRect();a.width=d.width;a.height=d.height;c.cancelBubble=!0;return!1};a._VResizeMoveMouseUp=function(c){c=b._GetEventObject(c);if(!c)return!0;a.resizing=0;a.currentKey=null;document.onmousemove=a._VPreviousMouseMove;document.onmouseup=a._VPreviousMouseUp;document.body.style.cursor&&
|
|
(document.body.style.cursor=a._VPreviousCursor);b.domManager.focusLastActiveElement();c&&c.preventDefault&&c.preventDefault();b.uiManager.justActivated=!1;b.uiManager.setActivatingUI(!1);a._DivVKbd&&(a._VOriginalWidth=a._DivVKbd.offsetWidth,a._VOriginalHeight=a._DivVKbd.offsetHeight);a.doResizeMove();c.cancelBubble=!0;a.saveCookie();return!1};a.userLocated=function(){return a.userPositioned};a.show=function(b){0<arguments.length?(a._Enabled=b)?a._Show():a._Hide(!0):a._Visible?a._Hide(!0):a._Show()};
|
|
a.doShow=function(a){return g.callEvent("osk.show",a)};a.doHide=function(a){return g.callEvent("osk.hide",a)};a.doResizeMove=function(a){return g.callEvent("osk.resizemove",a)};a._Show=function(c,d){if(null!=a._Box&&null!=b.domManager.getActiveElement()&&(k.touchable||null!=b.keyboardManager.activeKeyboard&&a._Enabled)){var f=a._Box.style;k.touchable&&""==f.bottom&&(f.visibility="hidden");k.touchable&&(f.opacity="1");if(a.ddOSK){var e,h=-1,l=a._DivVKbd.childNodes[0].childNodes;for(e=0;e<l.length;e++)l[e].layer==
|
|
a.layerId?(l[e].style.display="block",a.nextLayer=a.layerId,a.layerIndex=h=e,"string"==typeof a.layers[e].nextlayer&&(a.nextLayer=a.layers[e].nextlayer),a._UpdateVKShiftStyle()):l[e].style.display="none";k.touchable&&(f.position="fixed",f.left=f.bottom="0px",f.height=f.maxHeight=a._Box.firstChild.firstChild.style.height,f.border="none",f.borderTop="1px solid gray",a._Enabled=1,a._Visible=1,a.lgKey=a.getSpecialKey(h,"K_LOPT"),a.hkKey=a.getSpecialKey(h,"K_ROPT"),"iOS"==k.OS&&"phone"==k.formFactor&&
|
|
a.adjustHeights());a.spaceBar=a.getSpecialKey(h,"K_SPACE")}f.display="block";a.showLanguage();"desktop"==k.formFactor&&(f.position="absolute",f.display="block",f.left="0px",a.loadCookie(),0<=c?(f.left=c+"px",f.top=d+"px"):a.userPositioned?(f.left=a.x+"px",f.top=a.y+"px"):(c=b.domManager.getActiveElement(),""!=a.dfltX?f.left=a.dfltX:"undefined"!=typeof c&&null!=c&&(f.left=g._GetAbsoluteX(c)+"px"),""!=a.dfltY?f.top=a.dfltY:"undefined"!=typeof c&&null!=c&&(f.top=g._GetAbsoluteY(c)+c.offsetHeight+"px")),
|
|
a._Enabled=1,a._Visible=1,a._DivVKbd&&(a.width=a._DivVKbd.offsetWidth,a.height=a._DivVKbd.offsetHeight),a.saveCookie(),c=a.pinImg,"undefined"!=typeof c&&null!=c&&(c.style.display=a.userPositioned?"block":"none"));"hidden"==f.visibility&&window.setTimeout(function(){a._Box.style.visibility="visible"},0);k.touchable||(f={},f.x=a._Box.offsetLeft,f.y=a._Box.offsetTop,f.userLocated=a.userPositioned,a.doShow(f))}};a.adjustRowLengths=function(b){if(!(0<=b)){var c=a._DivVKbd.childNodes[0].childNodes;if(!(0>
|
|
b||b>=c.length||c[b].aligned)&&"block"==c[b].style.display){var f=a._DivVKbd.childNodes[0].offsetWidth-6;"Windows"==k.OS&&(f-=g.landscapeView()?4:40);var e,h=c[b].childNodes;for(e=0;e<h.length;e++){var l=h[e].childNodes;var p=l.length;var r=l[p-2].offsetLeft+l[p-2].offsetWidth;l=l[p-1];l.style.width=f-r+"px"}c[b].aligned=!0}}};a.resetRowLengths=function(){var b,d=a._DivVKbd.childNodes[0].childNodes,f=-1;for(b=0;b<d.length;b++)"block"==d[b].style.display&&(f=b),d[b].aligned=!1;return f};a.getSpecialKey=
|
|
function(b,d){var c=a._DivVKbd.childNodes[0].childNodes;if(0<=b&&b<c.length)for(b=c[b].childNodes,c=b[b.length-1].childNodes,b=0;b<c.length;b++)if(c[b].keyId==d)return c[b];return null};a.hide=function(){a._Enabled=0;a._Hide(!0)};a._Hide=function(c){a._Box&&"block"==a._Box.style.display&&a._DivVKbd&&(a.width=a._DivVKbd.offsetWidth,a.height=a._DivVKbd.offsetHeight);if(c)a._Enabled=b.keyboardManager.isCJK()||k.touchable?1:0,a.saveCookie();else if("desktop"==k.formFactor&&0<=document.body.className.indexOf("osk-always-visible"))return;
|
|
a._Visible=0;if(a._Box&&k.touchable&&0<a._Box.offsetHeight){var d=a._Box.style;d.transition="string"==typeof d.MozBoxSizing?"opacity 0.8s linear":d.msTransition=d.WebkitTransition="opacity 0.5s linear 0";window.setTimeout(function(){var b=a._Box.style;a._Visible?b.transition=b.msTransition=b.MozTransition=b.WebkitTransition="":(b.opacity="0",a._Box.addEventListener("transitionend",a.hideNow,!1),a._Box.addEventListener("webkitTransitionEnd",a.hideNow,!1))},200)}else a._Box&&(a._Box.style.display="none");
|
|
d={};d.HiddenByUser=c;a.doHide(d);c&&b.domManager.focusLastActiveElement()};a.hideNow=function(){a._Box.removeEventListener("transitionend",a.hideNow,!1);a._Box.removeEventListener("webkitTransitionEnd",a.hideNow,!1);var b=a._Box.style;b.display="none";b.opacity="1";a._Visible=0;b.transition=b.msTransition=b.mozTransition=b.WebkitTransition="";a.hkKey&&"undefined"!=typeof a.hkKey&&a.highlightKey(a.hkKey.firstChild,!1)};a.prepare=function(){if(b.initialized){if(!a.ready&&(a._Box=g._CreateElement("DIV"),
|
|
document.body.appendChild(a._Box),g.linkStyleSheet(b.getStyleSheetPath("kmwosk.css")),g.attachDOMEvent(a._Box,"mousedown",function(){b.uiManager.setActivatingUI(!0)}),k.touchable)){var c=function(a){a.cancelable&&a.preventDefault();a.stopPropagation();return!1};g.attachDOMEvent(a._Box,"touchstart",function(a){b.uiManager.setActivatingUI(!0);return c(a)});g.attachDOMEvent(a._Box,"touchend",c);g.attachDOMEvent(a._Box,"touchmove",c);g.attachDOMEvent(a._Box,"touchcancel",c);a.vpScale=g.getViewportScale()}a.loadCookie();
|
|
a.ready=!0}else window.setTimeout(a.prepare,200)};a._Load=function(){var c=b.keyboardManager.activeKeyboard;if(null==a._Box)99<=a.loadRetry||(window.setTimeout(a._Load,100),a.loadRetry++);else{a.loadRetry=0;b._TitleElement&&(b._TitleElement.innerHTML="KeymanWeb");a._Visible=0;a.layerId="default";var d=a._Box.style;d.zIndex="9999";d.display="none";d.width="auto";d.position="desktop"==k.formFactor?"absolute":"fixed";if(k.touchable){var e=1;if("phone"==k.formFactor)e=1.92*(b.isEmbedded?.65:.6);else{var h=
|
|
1;"Android"==k.OS&&"devicePixelRatio"in window&&(h=window.devicePixelRatio);e="Android"==k.OS&&"tablet"==k.formFactor&&parseInt(a.getHeight(),10)<300*h?1.2*e:2*e}d.fontSize=e+"em"}a._DivVKbd=a._DivVKbdHelp=null;a._Box.innerHTML="";a._Box.onmouseover=a._VKbdMouseOver;a._Box.onmouseout=a._VKbdMouseOut;if(null!=c||k.touchable){e=null;h=null;d="";a._Box.className="";if(null!=c){e=c.KV;d=c.KH;var l=c.KVKL;"undefined"!=typeof l&&null!=l&&(h=l[k.formFactor],"undefined"==typeof h||null==h)&&("phone"==k.formFactor?
|
|
h=l.tablet:"tablet"==k.formFactor&&(h=l.phone),"undefined"==typeof h||null==h)&&(h=l.desktop)}if(null!=e&&null!=e.BK){l=e.BK;for(var E=!0,p=0;p<l.length;p++)if(0<l[p].length){E=!1;break}E&&(e=null)}null!=e||""==d||k.touchable?(null==e&&(e={F:"Tahoma",BK:"`1234567890-=\u00a7~~qwertyuiop[]\\~~~asdfghjkl;'~~~~~?zxcvbnm,./~~~~~ ~!@#$%^&*()_+\u00a7~~QWERTYUIOP{}\\~~~ASDFGHJKL:\"~~~~~?ZXCVBNM<>?~~~~~ "}),a._GenerateVisualKeyboard(e,d,h,b.keyboardManager.getKeyboardModifierBitmask())):(a.ddOSK=!1,e=g._CreateElement("DIV"),
|
|
e.className="kmw-title-bar",e.appendChild(a._TitleBarInterior()),e.onmousedown=a._VMoveMouseDown,a._Box.appendChild(e),e=g._CreateElement("DIV"),e.className="kmw-osk-static",e.innerHTML=d,a._Box.appendChild(e),c.KHF&&c.KHF(a._Box));b._TitleElement&&(b._TitleElement.innerHTML="<span style='font-weight:bold'>"+c.KN+"</span> - "+b._TitleElement.innerHTML,b._TitleElement.className="",b._TitleElement.style.color="#fff")}else e=g._CreateElement("DIV"),e.className="kmw-title-bar",e.appendChild(a._TitleBarInterior()),
|
|
e.onmousedown=a._VMoveMouseDown,a._Box.appendChild(e),e=g._CreateElement("DIV"),e.className="kmw-osk-none",a._Box.appendChild(e);a.createKeyTip();d=a._Box.firstChild;c=" kmw-keyboard-"+(c?c.KI.replace("Keyboard_",""):"");"keymanweb_title_bar"==d.id&&(d=d.nextSibling);d.className="kmw-osk-inner-frame"+c;a.appendStyleSheet();a._Enabled&&a._Show()}};a.appendStyleSheet=function(){var c=b.keyboardManager.activeKeyboard,d=b.keyboardManager.activeStub;if(null!=d){a.styleSheet&&g.removeStyleSheet(a.styleSheet);
|
|
var e=d.KFont;d=d.KOskFont;g.addFontFaceStyleSheet(e);g.addFontFaceStyleSheet(d);b.hideInputs();var h=a.addFontStyle(e,d);null!=c&&"string"==typeof c.KCSS&&(h+=c.KCSS);a.styleSheet=g.addStyleSheet(h);a.waitForFonts(e,d)&&b.alignInputs()}};a.addFontStyle=function(a,d){var c=b.baseFont;"undefined"!=typeof a&&"undefined"!=typeof a.family&&(c=a.family);c=c.replace(/\u0022/g,"");var e=new RegExp("\\s?"+c+",?"),g=b.appliedFont.replace(/\u0022/g,"");g=g.replace(e,"");g=g.replace(/,$/,"");g='"'+(""==g?c:
|
|
c+","+g).replace(/,\s?/g,'","')+'"';c=".keymanweb-font{\nfont-family:"+g+" !important;\n}\n";"undefined"!=typeof d?c=c+'.kmw-key-text{\nfont-family:"'+d.family.replace(/\u0022/g,"").replace(/,/g,'","')+'";\n}\n':"undefined"!=typeof a&&(c=c+'.kmw-key-text{\nfont-family:"'+a.family.replace(/\u0022/g,"").replace(/,/g,'","')+'";\n}\n');b.appliedFont=g;return c};a._Unload=function(){a._VShift=a._DivVKbd=a._VKeySpans=a._Box=0};a.saveCookie=function(){var b=g.loadCookie("KeymanWeb_OnScreenKeyboard"),d=a.getPos();
|
|
b.visible=a._Enabled?1:0;b.userSet=a.userPositioned?1:0;b.left=d.left;b.top=d.top;a._DivVKbd&&(b.width=a.width,b.height=a.height);g.saveCookie("KeymanWeb_OnScreenKeyboard",b)};a.loadCookie=function(){var b=g.loadCookie("KeymanWeb_OnScreenKeyboard");if("undefined"==typeof b||null==b)return a.userPositioned=!1;a._Enabled=g.toNumber(b.visible,!0);a.userPositioned=g.toNumber(b.userSet,!1);a.x=g.toNumber(b.left,-1);a.y=g.toNumber(b.top,-1);var d=g.toNumber(b.width,.3*screen.width);b=g.toNumber(b.height,
|
|
.15*screen.height);d<.2*screen.width&&(d=.2*screen.width);b<.1*screen.height&&(b=.1*screen.height);d>.9*screen.width&&(d=.9*screen.width);b>.5*screen.height&&(b=.5*screen.height);a._DivVKbd&&(a._DivVKbd.style.width=d+"px",a._DivVKbd.style.height=b+"px",a._DivVKbd.style.fontSize=b/8+"px");-1!=a.x&&-1!=a.y&&a._Box||(a.userPositioned=!1);a.x<window.pageXOffset-.8*d&&(a.x=window.pageXOffset-.8*d);0>a.y&&(a.x=-1,a.y=-1,a.userPositioned=!1);a.userPositioned&&a._Box&&a.setPos({left:a.x,top:a.y});return!0};
|
|
a.getWidthFromCookie=function(){var a=g.loadCookie("KeymanWeb_OnScreenKeyboard");if("undefined"==typeof a||null==a)return.3*screen.width;a=g.toNumber(a.width,.3*screen.width);a<.2*screen.width?a=.2*screen.width:a>.9*screen.width&&(a=.9*screen.width);return a};a.getFontSizeFromCookie=function(){var a=g.loadCookie("KeymanWeb_OnScreenKeyboard");if("undefined"==typeof a||null==a)return 16;a=g.toNumber(a.height,.15*screen.height);a>.5*screen.height&&(a=.5*screen.height);return a/8}}();
|
|
(function(b){(function(a){var b=function(){function a(){this.innerWidth=window.innerWidth;this.innerHeight=window.innerHeight}a.prototype.equals=function(a){return this.innerWidth==a.innerWidth&&this.innerHeight==a.innerHeight};return a}(),k=function(){function a(b){this.idlePermutationCounter=a.IDLE_PERMUTATION_CAP;this.keyman=b}a.prototype.resolve=function(){this.keyman.alignInputs();var a=this.keyman.osk;a.hideLanguageList();a._Load();this.oskVisible&&a._Show();this.isActive=!1;this.updateTimer&&
|
|
(window.clearInterval(this.updateTimer),this.rotState=null)};a.prototype.initNewRotation=function(){this.oskVisible=this.keyman.osk.isVisible();this.keyman.osk.hideNow();this.isActive=!0};a.prototype.init=function(){if(!this.keyman.isEmbedded){var a=this.keyman.util.device.OS,b=this.keyman.util,c=this;"iOS"==a?(b.attachDOMEvent(window,"orientationchange",function(){c.iOSEventHandler();return!1}),b.attachDOMEvent(window,"resize",function(){c.iOSEventHandler();return!1})):"Android"==a&&("onmozorientationchange"in
|
|
screen?b.attachDOMEvent(screen,"mozorientationchange",function(){c.initNewRotation();return!1}):b.attachDOMEvent(window,"orientationchange",function(){c.initNewRotation();return!1}),b.attachDOMEvent(window,"resize",function(){c.resolve();return!1}))}};a.prototype.iOSEventHandler=function(){this.isActive||(this.initNewRotation(),this.rotState=new b,this.updateTimer=window.setInterval(this.iOSEventUpdate.bind(this),a.UPDATE_INTERVAL));this.idlePermutationCounter=0};a.prototype.iOSEventUpdate=function(){var e=
|
|
new b;this.rotState.equals(e)?++this.idlePermutationCounter==a.IDLE_PERMUTATION_CAP&&this.resolve():(this.rotState=e,this.idlePermutationCounter=0)};a.IDLE_PERMUTATION_CAP=15;a.UPDATE_INTERVAL=20;return a}();a.RotationManager=k})(b.keyman||(b.keyman={}))})(com||(com={}));
|
|
window.keyman.initialized||function(){var b=window.keyman,a=b.osk,g=b.util,k=g.device;b.isEmbedded=!1;b.setDefaultDeviceOptions=function(a){""==a.attachType&&(a.attachType=k.touchable?"manual":"auto")};g.wait=function(a){var e=this.waiting;if("undefined"!=typeof e&&null!=e&&!b.warned){var g=e.firstChild.childNodes;a?(e.pending=!0,window.setTimeout(function(){e.pending&&(window.scrollTo(0,0),g[0].style.display="none",g[1].className="kmw-wait-text",g[1].innerHTML=a,g[2].style.display="block",e.style.display=
|
|
"block")},1E3)):e.pending&&(g[1].innerHTML="",e.pending=!1,e.style.display="none")}};b.getStyleSheetPath=function(a){return g.getOption("resources")+"osk/"+a};b.getKeyboardPath=function(a){return(/^(([\.]\/)|([\.][\.]\/)|(\/))|(:)/.test(a)?"":b.options.keyboards)+a};b.KC_=function(a,g,l){var c,d="",e=l.body?l:l.ownerDocument;if(k.touchable)d=b.touchAliasing.getTextBeforeCaret(l);else if(e&&(c=e.defaultView)&&c.getSelection&&("on"==e.designMode.toLowerCase()||"true"==l.contentEditable||"plaintext-only"==
|
|
l.contentEditable||""===l.contentEditable))l=c.getSelection(),3==l.focusNode.nodeType&&(d=l.focusNode.substringData(0,l.focusOffset));else if(l.setSelectionRange){if(l._KeymanWebSelectionStart)d=l._KeymanWebSelectionStart;else{if(null===b._CachedSelectionStart||l.selectionStart!==b._LastCachedSelection)b._LastCachedSelection=l.selectionStart,b._CachedSelectionStart=l.value._kmwCodeUnitToCodePoint(l.selectionStart),b._CachedSelectionEnd=l.value._kmwCodeUnitToCodePoint(l.selectionEnd);d=b._CachedSelectionStart}d=
|
|
l.value._kmwSubstr(0,d)}d._kmwLength()<a&&(d=Array(a-d._kmwLength()+1).join("\ufffe")+d);return d._kmwSubstr(-a)._kmwSubstr(0,g)};b.alignInputs=function(a){if(k.touchable){var e=b.domManager,g=[];a?a.forEach(function(a){a.base?g.push(a):a.kmw_ip&&g.push(a.kmw_ip)}):g=e.inputList;g.forEach(function(a){e.touchHandlers.updateInput(a);a.style.visibility="visible";0<a.base.textContent.length&&(a.base.style.visibility="hidden")})}};b.hideInputs=function(){var a=b.domManager;if(k.touchable)for(var g=0;g<
|
|
a.inputList.length;g++)a.inputList[g].style.visibility="hidden",a.inputList[g].base.style.visibility="visible"};b.isPositionSynthesized=function(){return k.touchable};a.highlightSubKeys=function(b,h,k){if(null!=b&&null!=b.subKeys){var c,d=document.getElementById("kmw-popup-keys");5<a.touchY-k&&null==d&&(a.subkeyDelayTimer&&window.clearTimeout(a.subkeyDelayTimer),a.showSubKeys(b),d=document.getElementById("kmw-popup-keys"));for(c=0;c<b.subKeys.length;c++)try{var e=d.childNodes[c].firstChild;var l=
|
|
g._GetAbsoluteX(e);var m=g._GetAbsoluteY(e);var E=l+e.offsetWidth;var p=m+e.offsetHeight;var r=h>l&&h<E&&k>m&&k<p;a.highlightKey(e,r);r&&a.highlightKey(b,!1)}catch(v){}}};a.optionKey=function(e,g,k){k&&(0<=g.indexOf("K_LOPT")?a.showLanguageMenu():0<=g.indexOf("K_ROPT")&&(b.uiManager.setActivatingUI(!1),a._Hide(!0),b.touchAliasing.hideCaret(),b.domManager.clearLastActiveElement()))};a.createKeyTip=function(){"phone"==k.formFactor&&(null==a.keytip&&(a.keytip=g._CreateElement("div"),a.keytip.className=
|
|
"kmw-keytip",a.keytip.id="kmw-keytip",a.keytip.style.pointerEvents="none",a.keytip.appendChild(g._CreateElement("canvas")),a.keytip.appendChild(g._CreateElement("span")),a.keytip.key=null,a.keytip.state=!1),a._Box.appendChild(a.keytip))};a.showKeyTip=function(b,h){var e=a.keytip;if(null!=e&&(b!=e.key||h!=e.state)){var c=document.getElementById("kmw-popup-keys");c=c&&"visible"==c.style.visibility;if(h&&!c){var d=g._GetAbsoluteY(a._Box),f=a._Box.offsetHeight;c=g._GetAbsoluteX(b);for(var k=g._GetAbsoluteY(b),
|
|
m=b.offsetWidth,E=b.offsetHeight,p=b.firstChild,r=e.style,v=e.childNodes[1],n=v.style,t=0,z=e.firstChild,x=0;x<b.childNodes.length&&(p=b.childNodes[x],!a.hasClass(p,"kmw-key-text"));x++);z.width=1.6*m;z.height=2.3*E;r.top="auto";r.bottom=d+f-k-E+"px";r.textAlign="center";r.overflow="visible";r.fontFamily=g.getStyleValue(p,"font-family");r.width=z.width+"px";r.height=z.height+"px";d=g.getStyleInt(p,"font-size");0!=d&&(d*=1.8,r.fontSize=d+"px",f=com.keyman.OSKKey.getTextWidth(v.textContent,r),f=.9*
|
|
z.width/f,1>f&&(r.fontSize=d*f+"px"));v.textContent=p.textContent;n.display="block";n.position="absolute";n.textAlign="center";n.width="100%";n.top="2%";n.bottom="auto";p=(z.width-m)/2;c<p?(t=-1,c+=p):c>window.innerWidth-m-p&&(t=1,c-=p);a.drawPreview(z,m,E,t);r.left=c-p+"px";r.display="block"}else e.style.display="none";e.key=b;e.state=h}};a.drawPreview=function(a,b,g,c){g=a.getContext("2d");var d=(a.width-b)/2,e=a.height,h=d,l=b+d;b+=2*d;var E=.5*e,p=.6*e,r=8;"Android"==k.OS&&(r=3);switch(c){case -1:h-=
|
|
d;l-=d;break;case 1:h+=d,l+=d}g.clearRect(0,0,a.width,a.height);"Android"==k.OS?(h=l=(h+l)/2,g.fillStyle="#999"):g.fillStyle="#ffffff";g.lineWidth="1";g.strokeStyle="#cccccc";g.save();g.beginPath();g.moveTo(0+r,0);g.arcTo(b,0,b,r,r);"Android"==k.OS?(g.arcTo(b,E,l,p,r),g.arcTo(l,p,h,p,r)):(g.arcTo(b,E,l,p,r),g.arcTo(l,p,l-r,e,r),g.arcTo(l,e,h,e,r),g.arcTo(h,e,h,p-r,r));g.arcTo(h,p,0,E-r,r);g.arcTo(0,E,0,r,r);g.arcTo(0,0,0+r,0,r);g.fill();g.stroke();g.restore()};a.addCallout=function(b){if("phone"!=
|
|
k.formFactor||"iOS"!=k.OS)return null;var e=g._CreateElement("div"),l=e.style;e.id="kmw-popup-callout";a._Box.appendChild(e);var c=b.offsetLeft,d=b.offsetWidth,f=b.offsetHeight;l.top=b.offsetTop-6+"px";l.left=c+"px";l.width=d+"px";l.height=f+6+"px";return e};a.touchHold=function(b){a.subkeyDelayTimer&&(window.clearTimeout(a.subkeyDelayTimer),a.subkeyDelayTimer=null);"undefined"!=typeof b.subKeys&&null!=b.subKeys&&(a.subkeyDelayTimer=window.setTimeout(function(){a.clearPopup();a.showSubKeys(b)},a.popupDelay))};
|
|
b.handleRotationEvents=function(){(new com.keyman.RotationManager(b)).init()};a.waitForFonts=function(a,h){if("undefined"==typeof a&&"undefined"==typeof h||"undefined"==typeof a.files&&"undefined"==typeof h.files)return!0;var e=g.checkFontDescriptor(a),c=g.checkFontDescriptor(h);if(e&&c)return!0;b.fontCheckTimer=window.setInterval(function(){g.checkFontDescriptor(a)&&g.checkFontDescriptor(h)&&(window.clearInterval(b.fontCheckTimer),b.fontCheckTimer=null,b.alignInputs())},100);window.setTimeout(function(){b.fontCheckTimer&&
|
|
(window.clearInterval(b.fontCheckTimer),b.fontCheckTimer=null,b.alignInputs())},5E3);return!1}}();
|
|
window.keyman.initialized||(window.keyman.dfltLayout={desktop:{font:"Tahoma,Helvetica",layer:[{id:"default",row:[{id:"1",key:[{id:"K_BKQUOTE"},{id:"K_1"},{id:"K_2"},{id:"K_3"},{id:"K_4"},{id:"K_5"},{id:"K_6"},{id:"K_7"},{id:"K_8"},{id:"K_9"},{id:"K_0"},{id:"K_HYPHEN"},{id:"K_EQUAL"},{id:"K_BKSP",text:"*BkSp*",sp:"1",width:"130"}]},{id:"2",key:[{id:"K_TAB",text:"*Tab*",sp:"1",width:"130"},{id:"K_Q"},{id:"K_W"},{id:"K_E"},{id:"K_R"},{id:"K_T"},{id:"K_Y"},{id:"K_U"},{id:"K_I"},{id:"K_O"},{id:"K_P"},
|
|
{id:"K_LBRKT"},{id:"K_RBRKT"},{id:"K_BKSLASH"}]},{id:"3",key:[{id:"K_CAPS",text:"*Caps*",sp:"1",width:"165"},{id:"K_A"},{id:"K_S"},{id:"K_D"},{id:"K_F"},{id:"K_G"},{id:"K_H"},{id:"K_J"},{id:"K_K"},{id:"K_L"},{id:"K_COLON"},{id:"K_QUOTE"},{id:"K_ENTER",text:"*Enter*",sp:"1",width:"165"}]},{id:"4",key:[{id:"K_SHIFT",text:"*Shift*",sp:"1",width:"130"},{id:"K_oE2"},{id:"K_Z"},{id:"K_X"},{id:"K_C"},{id:"K_V"},{id:"K_B"},{id:"K_N"},{id:"K_M"},{id:"K_COMMA"},{id:"K_PERIOD"},{id:"K_SLASH"},{id:"K_RSHIFT",
|
|
text:"*Shift*",sp:"1",width:"130"}]},{id:"5",key:[{id:"K_LCONTROL",text:"*Ctrl*",sp:"1",width:"170"},{id:"K_LALT",text:"*Alt*",sp:"1",width:"160"},{id:"K_SPACE",text:"",width:"770"},{id:"K_RALT",text:"*Alt*",sp:"1",width:"160"},{id:"K_RCONTROL",text:"*Ctrl*",sp:"1",width:"170"}]}]}]},tablet:{font:"Tahoma,Helvetica",layer:[{id:"default",row:[{id:"0",key:[{id:"K_1"},{id:"K_2"},{id:"K_3"},{id:"K_4"},{id:"K_5"},{id:"K_6"},{id:"K_7"},{id:"K_8"},{id:"K_9"},{id:"K_0"},{id:"K_HYPHEN"},{id:"K_EQUAL"},{sp:"10",
|
|
width:"1"}]},{id:"1",key:[{id:"K_Q",pad:"25"},{id:"K_W"},{id:"K_E"},{id:"K_R"},{id:"K_T"},{id:"K_Y"},{id:"K_U"},{id:"K_I"},{id:"K_O"},{id:"K_P"},{id:"K_LBRKT"},{id:"K_RBRKT"},{sp:"10",width:"1"}]},{id:"2",key:[{id:"K_A",pad:"50"},{id:"K_S"},{id:"K_D"},{id:"K_F"},{id:"K_G"},{id:"K_H"},{id:"K_J"},{id:"K_K"},{id:"K_L"},{id:"K_COLON"},{id:"K_QUOTE"},{id:"K_BKSLASH",width:"90"}]},{id:"3",key:[{id:"K_oE2",width:"90"},{id:"K_Z"},{id:"K_X"},{id:"K_C"},{id:"K_V"},{id:"K_B"},{id:"K_N"},{id:"K_M"},{id:"K_COMMA"},
|
|
{id:"K_PERIOD"},{id:"K_SLASH"},{id:"K_BKQUOTE"},{sp:"10",width:"1"}]},{id:"4",key:[{id:"K_SHIFT",text:"*Shift*",sp:"1",width:"200",sk:[{id:"K_LCONTROL",text:"*Ctrl*",sp:"1",width:"50",nextlayer:"ctrl"},{id:"K_LCONTROL",text:"*LCtrl*",sp:"1",width:"50",nextlayer:"leftctrl"},{id:"K_RCONTROL",text:"*RCtrl*",sp:"1",width:"50",nextlayer:"rightctrl"},{id:"K_LALT",text:"*Alt*",sp:"1",width:"50",nextlayer:"alt"},{id:"K_LALT",text:"*LAlt*",sp:"1",width:"50",nextlayer:"leftalt"},{id:"K_RALT",text:"*RAlt*",
|
|
sp:"1",width:"50",nextlayer:"rightalt"},{id:"K_ALTGR",text:"*AltGr*",sp:"1",width:"50",nextlayer:"ctrl-alt"}]},{id:"K_LOPT",text:"*Menu*",sp:"1",width:"150"},{id:"K_SPACE",text:"",width:"570"},{id:"K_BKSP",text:"*BkSp*",sp:"1",width:"150"},{id:"K_ENTER",text:"*Enter*",sp:"1",width:"200"}]}]}]},phone:{font:"Tahoma,Helvetica",layer:[{id:"default",row:[{id:"0",key:[{id:"K_1"},{id:"K_2"},{id:"K_3"},{id:"K_4"},{id:"K_5"},{id:"K_6"},{id:"K_7"},{id:"K_8"},{id:"K_9"},{id:"K_0"},{id:"K_HYPHEN"},{id:"K_EQUAL"},
|
|
{sp:"10",width:"1"}]},{id:"1",key:[{id:"K_Q",pad:"25"},{id:"K_W"},{id:"K_E"},{id:"K_R"},{id:"K_T"},{id:"K_Y"},{id:"K_U"},{id:"K_I"},{id:"K_O"},{id:"K_P"},{id:"K_LBRKT"},{id:"K_RBRKT"},{sp:"10",width:"1"}]},{id:"2",key:[{id:"K_A",pad:"50"},{id:"K_S"},{id:"K_D"},{id:"K_F"},{id:"K_G"},{id:"K_H"},{id:"K_J"},{id:"K_K"},{id:"K_L"},{id:"K_COLON"},{id:"K_QUOTE"},{id:"K_BKSLASH",width:"90"}]},{id:"3",key:[{id:"K_oE2",width:"90"},{id:"K_Z"},{id:"K_X"},{id:"K_C"},{id:"K_V"},{id:"K_B"},{id:"K_N"},{id:"K_M"},
|
|
{id:"K_COMMA"},{id:"K_PERIOD"},{id:"K_SLASH"},{id:"K_BKQUOTE"},{sp:"10",width:"1"}]},{id:"4",key:[{id:"K_SHIFT",text:"*Shift*",sp:"1",width:"200",sk:[{id:"K_LCONTROL",text:"*Ctrl*",sp:"1",width:"50",nextlayer:"ctrl"},{id:"K_LCONTROL",text:"*LCtrl*",sp:"1",width:"50",nextlayer:"leftctrl"},{id:"K_RCONTROL",text:"*RCtrl*",sp:"1",width:"50",nextlayer:"rightctrl"},{id:"K_LALT",text:"*Alt*",sp:"1",width:"50",nextlayer:"alt"},{id:"K_LALT",text:"*LAlt*",sp:"1",width:"50",nextlayer:"leftalt"},{id:"K_RALT",
|
|
text:"*RAlt*",sp:"1",width:"50",nextlayer:"rightalt"},{id:"K_ALTGR",text:"*AltGr*",sp:"1",width:"50",nextlayer:"ctrl-alt"}]},{id:"K_LOPT",text:"*Menu*",width:"150",sp:"1"},{id:"K_SPACE",width:"570",text:""},{id:"K_BKSP",text:"*BkSp*",width:"150",sp:"1"},{id:"K_ENTER",text:"*Enter*",width:"200",sp:"1"}]}]}]}});(function(){var b=window.keyman,a=window.setInterval(function(){"complete"===document.readyState&&(window.clearInterval(a),b.init(null))},10)})();
|
|
var CLOSURE_NO_DEPS=!0,COMPILED=!0,goog=goog||{};goog.global=this;goog.isDef=function(b){return void 0!==b};goog.isString=function(b){return"string"==typeof b};goog.isBoolean=function(b){return"boolean"==typeof b};goog.isNumber=function(b){return"number"==typeof b};goog.exportPath_=function(b,a,g){b=b.split(".");g=g||goog.global;b[0]in g||!g.execScript||g.execScript("var "+b[0]);for(var k;b.length&&(k=b.shift());)!b.length&&goog.isDef(a)?g[k]=a:g=g[k]&&g[k]!==Object.prototype[k]?g[k]:g[k]={}};
|
|
goog.define=function(b,a){COMPILED||(goog.global.CLOSURE_UNCOMPILED_DEFINES&&void 0===goog.global.CLOSURE_UNCOMPILED_DEFINES.nodeType&&Object.prototype.hasOwnProperty.call(goog.global.CLOSURE_UNCOMPILED_DEFINES,b)?a=goog.global.CLOSURE_UNCOMPILED_DEFINES[b]:goog.global.CLOSURE_DEFINES&&void 0===goog.global.CLOSURE_DEFINES.nodeType&&Object.prototype.hasOwnProperty.call(goog.global.CLOSURE_DEFINES,b)&&(a=goog.global.CLOSURE_DEFINES[b]));goog.exportPath_(b,a)};goog.DEBUG=!0;goog.LOCALE="en";
|
|
goog.TRUSTED_SITE=!0;goog.STRICT_MODE_COMPATIBLE=!1;goog.DISALLOW_TEST_ONLY_CODE=COMPILED&&!goog.DEBUG;goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING=!1;goog.provide=function(b){if(goog.isInModuleLoader_())throw Error("goog.provide can not be used within a goog.module.");if(!COMPILED&&goog.isProvided_(b))throw Error('Namespace "'+b+'" already declared.');goog.constructNamespace_(b)};
|
|
goog.constructNamespace_=function(b,a){if(!COMPILED){delete goog.implicitNamespaces_[b];for(var g=b;(g=g.substring(0,g.lastIndexOf(".")))&&!goog.getObjectByName(g);)goog.implicitNamespaces_[g]=!0}goog.exportPath_(b,a)};goog.VALID_MODULE_RE_=/^[a-zA-Z_$][a-zA-Z0-9._$]*$/;
|
|
goog.module=function(b){if(!goog.isString(b)||!b||-1==b.search(goog.VALID_MODULE_RE_))throw Error("Invalid module identifier");if(!goog.isInModuleLoader_())throw Error("Module "+b+" has been loaded incorrectly. Note, modules cannot be loaded as normal scripts. They require some kind of pre-processing step. You're likely trying to load a module via a script tag or as a part of a concatenated bundle without rewriting the module. For more info see: https://github.com/google/closure-library/wiki/goog.module:-an-ES6-module-like-alternative-to-goog.provide.");if(goog.moduleLoaderState_.moduleName)throw Error("goog.module may only be called once per module.");
|
|
goog.moduleLoaderState_.moduleName=b;if(!COMPILED){if(goog.isProvided_(b))throw Error('Namespace "'+b+'" already declared.');delete goog.implicitNamespaces_[b]}};goog.module.get=function(b){return goog.module.getInternal_(b)};goog.module.getInternal_=function(b){if(!COMPILED){if(b in goog.loadedModules_)return goog.loadedModules_[b];if(!goog.implicitNamespaces_[b])return b=goog.getObjectByName(b),null!=b?b:null}return null};goog.moduleLoaderState_=null;
|
|
goog.isInModuleLoader_=function(){return null!=goog.moduleLoaderState_};goog.module.declareLegacyNamespace=function(){if(!COMPILED&&!goog.isInModuleLoader_())throw Error("goog.module.declareLegacyNamespace must be called from within a goog.module");if(!COMPILED&&!goog.moduleLoaderState_.moduleName)throw Error("goog.module must be called prior to goog.module.declareLegacyNamespace.");goog.moduleLoaderState_.declareLegacyNamespace=!0};
|
|
goog.setTestOnly=function(b){if(goog.DISALLOW_TEST_ONLY_CODE)throw b=b||"",Error("Importing test-only code into non-debug environment"+(b?": "+b:"."));};goog.forwardDeclare=function(b){};COMPILED||(goog.isProvided_=function(b){return b in goog.loadedModules_||!goog.implicitNamespaces_[b]&&goog.isDefAndNotNull(goog.getObjectByName(b))},goog.implicitNamespaces_={"goog.module":!0});
|
|
goog.getObjectByName=function(b,a){b=b.split(".");a=a||goog.global;for(var g=0;g<b.length;g++)if(a=a[b[g]],!goog.isDefAndNotNull(a))return null;return a};goog.globalize=function(b,a){a=a||goog.global;for(var g in b)a[g]=b[g]};goog.addDependency=function(b,a,g,k){if(goog.DEPENDENCIES_ENABLED){var e=goog.getLoader_();e&&e.addDependency(b,a,g,k)}};goog.ENABLE_DEBUG_LOADER=!0;goog.logToConsole_=function(b){goog.global.console&&goog.global.console.error(b)};
|
|
goog.require=function(b){goog.ENABLE_DEBUG_LOADER&&goog.debugLoader_&&goog.getLoader_().earlyProcessLoad(b);if(!COMPILED){if(goog.isProvided_(b)){if(goog.isInModuleLoader_())return goog.module.getInternal_(b)}else if(goog.ENABLE_DEBUG_LOADER){var a=goog.moduleLoaderState_;goog.moduleLoaderState_=null;try{var g=goog.getLoader_();g?g.load(b):goog.logToConsole_("Could not load "+b+" because there is no debug loader.")}finally{goog.moduleLoaderState_=a}}return null}};goog.basePath="";
|
|
goog.nullFunction=function(){};goog.abstractMethod=function(){throw Error("unimplemented abstract method");};goog.addSingletonGetter=function(b){b.instance_=void 0;b.getInstance=function(){if(b.instance_)return b.instance_;goog.DEBUG&&(goog.instantiatedSingletons_[goog.instantiatedSingletons_.length]=b);return b.instance_=new b}};goog.instantiatedSingletons_=[];goog.LOAD_MODULE_USING_EVAL=!0;goog.SEAL_MODULE_EXPORTS=goog.DEBUG;goog.loadedModules_={};goog.DEPENDENCIES_ENABLED=!COMPILED&&goog.ENABLE_DEBUG_LOADER;
|
|
goog.TRANSPILE="detect";goog.TRANSPILER="transpile.js";goog.DEBUG_LOADER="";goog.hasBadLetScoping=null;goog.useSafari10Workaround=function(){if(null==goog.hasBadLetScoping){try{var b=!eval('"use strict";let x = 1; function f() { return typeof x; };f() == "number";')}catch(a){b=!1}goog.hasBadLetScoping=b}return goog.hasBadLetScoping};goog.workaroundSafari10EvalBug=function(b){return"(function(){"+b+"\n;})();\n"};
|
|
goog.loadModule=function(b){var a=goog.moduleLoaderState_;try{goog.moduleLoaderState_={moduleName:void 0,declareLegacyNamespace:!1};if(goog.isFunction(b))var g=b.call(void 0,{});else if(goog.isString(b))goog.useSafari10Workaround()&&(b=goog.workaroundSafari10EvalBug(b)),g=goog.loadModuleFromSource_.call(void 0,b);else throw Error("Invalid module definition");var k=goog.moduleLoaderState_.moduleName;if(!goog.isString(k)||!k)throw Error('Invalid module name "'+k+'"');goog.moduleLoaderState_.declareLegacyNamespace?
|
|
goog.constructNamespace_(k,g):goog.SEAL_MODULE_EXPORTS&&Object.seal&&"object"==typeof g&&null!=g&&Object.seal(g);goog.loadedModules_[k]=g}finally{goog.moduleLoaderState_=a}};goog.loadModuleFromSource_=function(b){eval(b);return{}};goog.normalizePath_=function(b){b=b.split("/");for(var a=0;a<b.length;)"."==b[a]?b.splice(a,1):a&&".."==b[a]&&b[a-1]&&".."!=b[a-1]?b.splice(--a,2):a++;return b.join("/")};
|
|
goog.loadFileSync_=function(b){if(goog.global.CLOSURE_LOAD_FILE_SYNC)return goog.global.CLOSURE_LOAD_FILE_SYNC(b);try{var a=new goog.global.XMLHttpRequest;a.open("get",b,!1);a.send();return 0==a.status||200==a.status?a.responseText:null}catch(g){return null}};
|
|
goog.transpile_=function(b,a){var g=goog.global.$jscomp;g||(goog.global.$jscomp=g={});var k=g.transpile;if(!k){var e=goog.basePath+goog.TRANSPILER,h=goog.loadFileSync_(e);if(h){(function(){eval(h+"\n//# sourceURL="+e)}).call(goog.global);if(goog.global.$gwtExport&&goog.global.$gwtExport.$jscomp&&!goog.global.$gwtExport.$jscomp.transpile)throw Error('The transpiler did not properly export the "transpile" method. $gwtExport: '+JSON.stringify(goog.global.$gwtExport));goog.global.$jscomp.transpile=goog.global.$gwtExport.$jscomp.transpile;
|
|
g=goog.global.$jscomp;k=g.transpile}}k||(k=g.transpile=function(a,b){goog.logToConsole_(b+" requires transpilation but no transpiler was found.");return a});return k(b,a)};
|
|
goog.typeOf=function(b){var a=typeof b;if("object"==a)if(b){if(b instanceof Array)return"array";if(b instanceof Object)return a;var g=Object.prototype.toString.call(b);if("[object Window]"==g)return"object";if("[object Array]"==g||"number"==typeof b.length&&"undefined"!=typeof b.splice&&"undefined"!=typeof b.propertyIsEnumerable&&!b.propertyIsEnumerable("splice"))return"array";if("[object Function]"==g||"undefined"!=typeof b.call&&"undefined"!=typeof b.propertyIsEnumerable&&!b.propertyIsEnumerable("call"))return"function"}else return"null";
|
|
else if("function"==a&&"undefined"==typeof b.call)return"object";return a};goog.isNull=function(b){return null===b};goog.isDefAndNotNull=function(b){return null!=b};goog.isArray=function(b){return"array"==goog.typeOf(b)};goog.isArrayLike=function(b){var a=goog.typeOf(b);return"array"==a||"object"==a&&"number"==typeof b.length};goog.isDateLike=function(b){return goog.isObject(b)&&"function"==typeof b.getFullYear};goog.isFunction=function(b){return"function"==goog.typeOf(b)};
|
|
goog.isObject=function(b){var a=typeof b;return"object"==a&&null!=b||"function"==a};goog.getUid=function(b){return b[goog.UID_PROPERTY_]||(b[goog.UID_PROPERTY_]=++goog.uidCounter_)};goog.hasUid=function(b){return!!b[goog.UID_PROPERTY_]};goog.removeUid=function(b){null!==b&&"removeAttribute"in b&&b.removeAttribute(goog.UID_PROPERTY_);try{delete b[goog.UID_PROPERTY_]}catch(a){}};goog.UID_PROPERTY_="closure_uid_"+(1E9*Math.random()>>>0);goog.uidCounter_=0;goog.getHashCode=goog.getUid;
|
|
goog.removeHashCode=goog.removeUid;goog.cloneObject=function(b){var a=goog.typeOf(b);if("object"==a||"array"==a){if(b.clone)return b.clone();a="array"==a?[]:{};for(var g in b)a[g]=goog.cloneObject(b[g]);return a}return b};goog.bindNative_=function(b,a,g){return b.call.apply(b.bind,arguments)};
|
|
goog.bindJs_=function(b,a,g){if(!b)throw Error();if(2<arguments.length){var k=Array.prototype.slice.call(arguments,2);return function(){var e=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(e,k);return b.apply(a,e)}}return function(){return b.apply(a,arguments)}};goog.bind=function(b,a,g){Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?goog.bind=goog.bindNative_:goog.bind=goog.bindJs_;return goog.bind.apply(null,arguments)};
|
|
goog.partial=function(b,a){var g=Array.prototype.slice.call(arguments,1);return function(){var a=g.slice();a.push.apply(a,arguments);return b.apply(this,a)}};goog.mixin=function(b,a){for(var g in a)b[g]=a[g]};goog.now=goog.TRUSTED_SITE&&Date.now||function(){return+new Date};
|
|
goog.globalEval=function(b){if(goog.global.execScript)goog.global.execScript(b,"JavaScript");else if(goog.global.eval){if(null==goog.evalWorksForGlobals_){try{goog.global.eval("var _evalTest_ = 1;")}catch(k){}if("undefined"!=typeof goog.global._evalTest_){try{delete goog.global._evalTest_}catch(k){}goog.evalWorksForGlobals_=!0}else goog.evalWorksForGlobals_=!1}if(goog.evalWorksForGlobals_)goog.global.eval(b);else{var a=goog.global.document,g=a.createElement("SCRIPT");g.type="text/javascript";g.defer=
|
|
!1;g.appendChild(a.createTextNode(b));a.head.appendChild(g);a.head.removeChild(g)}}else throw Error("goog.globalEval not available");};goog.evalWorksForGlobals_=null;
|
|
goog.getCssName=function(b,a){if("."==String(b).charAt(0))throw Error('className passed in goog.getCssName must not start with ".". You passed: '+b);var g=function(a){return goog.cssNameMapping_[a]||a},k=function(a){a=a.split("-");for(var b=[],e=0;e<a.length;e++)b.push(g(a[e]));return b.join("-")};k=goog.cssNameMapping_?"BY_WHOLE"==goog.cssNameMappingStyle_?g:k:function(a){return a};b=a?b+"-"+k(a):k(b);return goog.global.CLOSURE_CSS_NAME_MAP_FN?goog.global.CLOSURE_CSS_NAME_MAP_FN(b):b};
|
|
goog.setCssNameMapping=function(b,a){goog.cssNameMapping_=b;goog.cssNameMappingStyle_=a};!COMPILED&&goog.global.CLOSURE_CSS_NAME_MAPPING&&(goog.cssNameMapping_=goog.global.CLOSURE_CSS_NAME_MAPPING);goog.getMsg=function(b,a){a&&(b=b.replace(/\{\$([^}]+)}/g,function(b,k){return null!=a&&k in a?a[k]:b}));return b};goog.getMsgWithFallback=function(b,a){return b};goog.exportSymbol=function(b,a,g){goog.exportPath_(b,a,g)};goog.exportProperty=function(b,a,g){b[a]=g};
|
|
goog.inherits=function(b,a){function g(){}g.prototype=a.prototype;b.superClass_=a.prototype;b.prototype=new g;b.prototype.constructor=b;b.base=function(b,e,g){for(var h=Array(arguments.length-2),c=2;c<arguments.length;c++)h[c-2]=arguments[c];return a.prototype[e].apply(b,h)}};
|
|
goog.base=function(b,a,g){var k=arguments.callee.caller;if(goog.STRICT_MODE_COMPATIBLE||goog.DEBUG&&!k)throw Error("arguments.caller not defined. goog.base() cannot be used with strict mode code. See http://www.ecma-international.org/ecma-262/5.1/#sec-C");if(k.superClass_){for(var e=Array(arguments.length-1),h=1;h<arguments.length;h++)e[h-1]=arguments[h];return k.superClass_.constructor.apply(b,e)}e=Array(arguments.length-2);for(h=2;h<arguments.length;h++)e[h-2]=arguments[h];h=!1;for(var l=b.constructor;l;l=
|
|
l.superClass_&&l.superClass_.constructor)if(l.prototype[a]===k)h=!0;else if(h)return l.prototype[a].apply(b,e);if(b[a]===k)return b.constructor.prototype[a].apply(b,e);throw Error("goog.base called from a method of one name to a method of a different name");};goog.scope=function(b){if(goog.isInModuleLoader_())throw Error("goog.scope is not supported within a goog.module.");b.call(goog.global)};COMPILED||(goog.global.COMPILED=COMPILED);
|
|
goog.defineClass=function(b,a){var g=a.constructor,k=a.statics;g&&g!=Object.prototype.constructor||(g=function(){throw Error("cannot instantiate an interface (no constructor defined).");});g=goog.defineClass.createSealingConstructor_(g,b);b&&goog.inherits(g,b);delete a.constructor;delete a.statics;goog.defineClass.applyProperties_(g.prototype,a);null!=k&&(k instanceof Function?k(g):goog.defineClass.applyProperties_(g,k));return g};goog.defineClass.SEAL_CLASS_INSTANCES=goog.DEBUG;
|
|
goog.defineClass.createSealingConstructor_=function(b,a){if(!goog.defineClass.SEAL_CLASS_INSTANCES)return b;var g=!goog.defineClass.isUnsealable_(a),k=function(){var a=b.apply(this,arguments)||this;a[goog.UID_PROPERTY_]=a[goog.UID_PROPERTY_];this.constructor===k&&g&&Object.seal instanceof Function&&Object.seal(a);return a};return k};goog.defineClass.isUnsealable_=function(b){return b&&b.prototype&&b.prototype[goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_]};goog.defineClass.OBJECT_PROTOTYPE_FIELDS_="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");
|
|
goog.defineClass.applyProperties_=function(b,a){for(var g in a)Object.prototype.hasOwnProperty.call(a,g)&&(b[g]=a[g]);for(var k=0;k<goog.defineClass.OBJECT_PROTOTYPE_FIELDS_.length;k++)g=goog.defineClass.OBJECT_PROTOTYPE_FIELDS_[k],Object.prototype.hasOwnProperty.call(a,g)&&(b[g]=a[g])};goog.tagUnsealableClass=function(b){!COMPILED&&goog.defineClass.SEAL_CLASS_INSTANCES&&(b.prototype[goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_]=!0)};goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_="goog_defineClass_legacy_unsealable";
|
|
goog.DEPENDENCIES_ENABLED&&(goog.inHtmlDocument_=function(){var b=goog.global.document;return null!=b&&"write"in b},goog.findBasePath_=function(){if(goog.isDef(goog.global.CLOSURE_BASE_PATH)&&goog.isString(goog.global.CLOSURE_BASE_PATH))goog.basePath=goog.global.CLOSURE_BASE_PATH;else if(goog.inHtmlDocument_()){var b=goog.global.document,a=b.currentScript;b=a?[a]:b.getElementsByTagName("SCRIPT");for(a=b.length-1;0<=a;--a){var g=b[a].src,k=g.lastIndexOf("?");k=-1==k?g.length:k;if("base.js"==g.substr(k-
|
|
7,7)){goog.basePath=g.substr(0,k-7);break}}}},goog.findBasePath_(),goog.Transpiler=function(){this.requiresTranspilation_=null},goog.Transpiler.prototype.createRequiresTranspilation_=function(){function b(a,b){k?g[a]=!0:b()?g[a]=!1:k=g[a]=!0}function a(a){try{return!!eval(a)}catch(l){return!1}}var g={es3:!1},k=!1,e=goog.global.navigator&&goog.global.navigator.userAgent?goog.global.navigator.userAgent:"";b("es5",function(){return a("[1,].length==1")});b("es6",function(){var b=e.match(/Edge\/(\d+)(\.\d)*/i);
|
|
return b&&15>Number(b[1])?!1:a('(()=>{"use strict";class X{constructor(){if(new.target!=String)throw 1;this.x=42}}let q=Reflect.construct(X,[],String);if(q.x!=42||!(q instanceof String))throw 1;for(const a of[2,3]){if(a==2)continue;function f(z={a}){let a=0;return z.a}{function f(){return 0;}}return f()==3}})()')});b("es6-impl",function(){return!0});b("es7",function(){return a("2 ** 2 == 4")});b("es8",function(){return a("async () => 1, true")});return g},goog.Transpiler.prototype.needsTranspile=
|
|
function(b){if("always"==goog.TRANSPILE)return!0;if("never"==goog.TRANSPILE)return!1;this.requiresTranspilation_||(this.requiresTranspilation_=this.createRequiresTranspilation_());if(b in this.requiresTranspilation_)return this.requiresTranspilation_[b];throw Error("Unknown language mode: "+b);},goog.Transpiler.prototype.transpile=function(b,a){return goog.transpile_(b,a)},goog.transpiler_=new goog.Transpiler,goog.DebugLoader=function(){this.dependencies_={loadFlags:{},nameToPath:{},requires:{},visited:{},
|
|
written:{},deferred:{}};this.oldIeWaiting_=!1;this.queuedModules_=[];this.lastNonModuleScriptIndex_=0},goog.DebugLoader.IS_OLD_IE_=!(goog.global.atob||!goog.global.document||!goog.global.document.all),goog.DebugLoader.prototype.earlyProcessLoad=function(b){goog.DebugLoader.IS_OLD_IE_&&this.maybeProcessDeferredDep_(b)},goog.DebugLoader.prototype.load=function(b){var a=this.getPathFromDeps_(b);if(a){var g=function(a){if(!(a in h.written||a in h.visited)){h.visited[a]=!0;if(a in h.requires)for(var b in h.requires[a])if(!l.isProvided(b))if(b in
|
|
h.nameToPath)g(h.nameToPath[b]);else throw Error("Undefined nameToPath for "+b);a in e||(e[a]=!0,k.push(a))}},k=[],e={},h=this.dependencies_,l=this;g(a);for(b=0;b<k.length;b++)a=k[b],this.dependencies_.written[a]=!0;for(b=0;b<k.length;b++)if(a=k[b]){var c=h.loadFlags[a]||{},d=c.lang||"es3";d=this.getTranspiler().needsTranspile(d);"goog"==c.module||d?this.importProcessedScript_(goog.basePath+a,"goog"==c.module,d):this.importScript_(goog.basePath+a)}else throw Error("Undefined script input");}else throw b=
|
|
"goog.require could not find: "+b,this.logToConsole(b),Error(b);},goog.DebugLoader.prototype.addDependency=function(b,a,g,k){var e;b=b.replace(/\\/g,"/");var h=this.dependencies_;k&&"boolean"!==typeof k||(k=k?{module:"goog"}:{});for(var l=0;e=a[l];l++)h.nameToPath[e]=b,h.loadFlags[b]=k;for(k=0;a=g[k];k++)b in h.requires||(h.requires[b]={}),h.requires[b][a]=!0},goog.DebugLoader.prototype.importScript_=function(b,a){(goog.global.CLOSURE_IMPORT_SCRIPT||goog.bind(this.writeScriptTag_,this))(b,a)&&(this.dependencies_.written[b]=
|
|
!0)},goog.DebugLoader.prototype.importProcessedScript_=function(b,a,g){this.importScript_("",'goog.debugLoader_.retrieveAndExec_("'+b+'", '+a+", "+g+");")},goog.DebugLoader.prototype.retrieveAndExec_=function(b,a,g){if(!COMPILED){var k=b;b=this.normalizePath(b);var e=goog.global.CLOSURE_IMPORT_SCRIPT||goog.bind(this.writeScriptTag_,this),h=this.loadFileSync(b);if(null==h)throw Error('Load of "'+b+'" failed');g&&(h=this.getTranspiler().transpile(h,b));h=a?this.wrapModule_(b,h):h+("\n//# sourceURL="+
|
|
b);goog.DebugLoader.IS_OLD_IE_&&this.oldIeWaiting_?(this.dependencies_.deferred[k]=h,this.queuedModules_.push(k)):e(b,h)}},goog.DebugLoader.prototype.wrapModule_=function(b,a){return goog.LOAD_MODULE_USING_EVAL&&goog.isDef(goog.global.JSON)?"goog.loadModule("+goog.global.JSON.stringify(a+"\n//# sourceURL="+b+"\n")+");":'goog.loadModule(function(exports) {"use strict";'+a+"\n;return exports});\n//# sourceURL="+b+"\n"},goog.DebugLoader.prototype.loadQueuedModules_=function(){var b=this.queuedModules_.length;
|
|
if(0<b){var a=this.queuedModules_;this.queuedModules_=[];for(var g=0;g<b;g++)this.maybeProcessDeferredPath_(a[g])}this.oldIeWaiting_=!1},goog.DebugLoader.prototype.maybeProcessDeferredDep_=function(b){this.isDeferredModule_(b)&&this.allDepsAreAvailable_(b)&&(b=this.getPathFromDeps_(b),this.maybeProcessDeferredPath_(goog.basePath+b))},goog.DebugLoader.prototype.isDeferredModule_=function(b){var a=(b=this.getPathFromDeps_(b))&&this.dependencies_.loadFlags[b]||{},g=a.lang||"es3";return b&&("goog"==a.module||
|
|
this.getTranspiler().needsTranspile(g))?goog.basePath+b in this.dependencies_.deferred:!1},goog.DebugLoader.prototype.allDepsAreAvailable_=function(b){if((b=this.getPathFromDeps_(b))&&b in this.dependencies_.requires)for(var a in this.dependencies_.requires[b])if(!this.isProvided(a)&&!this.isDeferredModule_(a))return!1;return!0},goog.DebugLoader.prototype.maybeProcessDeferredPath_=function(b){if(b in this.dependencies_.deferred){var a=this.dependencies_.deferred[b];delete this.dependencies_.deferred[b];
|
|
goog.globalEval(a)}},goog.DebugLoader.prototype.writeScriptSrcNode_=function(b){goog.global.document.write('<script type="text/javascript" src="'+b+'">\x3c/script>')},goog.DebugLoader.prototype.appendScriptSrcNode_=function(b){var a=goog.global.document,g=a.createElement("script");g.type="text/javascript";g.src=b;g.defer=!1;g.async=!1;a.head.appendChild(g)},goog.DebugLoader.prototype.writeScriptTag_=function(b,a){if(this.inHtmlDocument()){var g=goog.global.document;if(!goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING&&
|
|
"complete"==g.readyState){if(/\bdeps.js$/.test(b))return!1;throw Error('Cannot write "'+b+'" after document load');}void 0===a?goog.DebugLoader.IS_OLD_IE_?(this.oldIeWaiting_=!0,a=" onreadystatechange='goog.debugLoader_.onScriptLoad_(this, "+ ++this.lastNonModuleScriptIndex_+")' ",g.write('<script type="text/javascript" src="'+b+'"'+a+">\x3c/script>")):goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING?this.appendScriptSrcNode_(b):this.writeScriptSrcNode_(b):g.write('<script type="text/javascript">'+this.protectScriptTag_(a)+
|
|
"\x3c/script>");return!0}return!1},goog.DebugLoader.prototype.protectScriptTag_=function(b){return b.replace(/<\/(SCRIPT)/ig,"\\x3c/$1")},goog.DebugLoader.prototype.onScriptLoad_=function(b,a){"complete"==b.readyState&&this.lastNonModuleScriptIndex_==a&&this.loadQueuedModules_();return!0},goog.DebugLoader.prototype.getPathFromDeps_=function(b){return b in this.dependencies_.nameToPath?this.dependencies_.nameToPath[b]:null},goog.DebugLoader.prototype.getTranspiler=function(){return goog.transpiler_},
|
|
goog.DebugLoader.prototype.isProvided=function(b){return goog.isProvided_(b)},goog.DebugLoader.prototype.inHtmlDocument=function(){return goog.inHtmlDocument_()},goog.DebugLoader.prototype.logToConsole=function(b){goog.logToConsole_(b)},goog.DebugLoader.prototype.loadFileSync=function(b){return goog.loadFileSync_(b)},goog.DebugLoader.prototype.normalizePath=function(b){return goog.normalizePath_(b)},goog.debugLoader_=null,goog.registerDebugLoader=function(b){if(goog.debugLoader_)throw Error("Debug loader already registered!");
|
|
if(!(b instanceof goog.DebugLoader))throw Error("Not a goog.DebugLoader.");goog.debugLoader_=b},goog.getLoader_=function(){if(!goog.debugLoader_&&goog.DEBUG_LOADER)throw Error("Loaded debug loader file but no loader was registered!");goog.debugLoader_||(goog.debugLoader_=new goog.DebugLoader);return goog.debugLoader_},function(){if(goog.DEBUG_LOADER){var b=new goog.DebugLoader;b.importScript_(goog.basePath+goog.DEBUG_LOADER)}goog.global.CLOSURE_NO_DEPS||(b=b||new goog.DebugLoader,goog.DEBUG_LOADER||
|
|
goog.registerDebugLoader(b),b.importScript_(goog.basePath+"deps.js"))}());goog.exportSymbol("com.keyman.Util.prototype.attachDOMEvent",com.keyman.Util.prototype.attachDOMEvent);goog.exportSymbol("com.keyman.Util.prototype.detachDOMEvent",com.keyman.Util.prototype.detachDOMEvent);goog.exportSymbol("com.keyman.Util.prototype.getOption",com.keyman.Util.prototype.getOption);goog.exportSymbol("com.keyman.Util.prototype.setOption",com.keyman.Util.prototype.setOption);
|
|
goog.exportSymbol("com.keyman.Util.prototype.getAbsoluteX",com.keyman.Util.prototype._GetAbsoluteX);goog.exportSymbol("com.keyman.Util.prototype.getAbsoluteY",com.keyman.Util.prototype._GetAbsoluteY);goog.exportSymbol("com.keyman.Util.prototype.getAbsolute",com.keyman.Util.prototype._GetAbsolute);goog.exportSymbol("com.keyman.Util.prototype.createElement",com.keyman.Util.prototype.createElement);goog.exportSymbol("com.keyman.Util.prototype.getIEVersion",com.keyman.Util.prototype.getIEVersion);
|
|
goog.exportSymbol("com.keyman.Util.prototype.isTouchDevice",com.keyman.Util.prototype.isTouchDevice);goog.exportSymbol("com.keyman.Util.prototype.createShim",com.keyman.Util.prototype.createShim);goog.exportSymbol("com.keyman.Util.prototype.showShim",com.keyman.Util.prototype.showShim);goog.exportSymbol("com.keyman.Util.prototype.hideShim",com.keyman.Util.prototype.hideShim);goog.exportSymbol("com.keyman.Util.prototype.rgba",com.keyman.Util.prototype.rgba);
|
|
goog.exportSymbol("com.keyman.Util.prototype.addStyleSheet",com.keyman.Util.prototype.addStyleSheet);goog.exportSymbol("com.keyman.Util.prototype.removeStyleSheet",com.keyman.Util.prototype.removeStyleSheet);goog.exportSymbol("com.keyman.Util.prototype.linkStyleSheet",com.keyman.Util.prototype.linkStyleSheet);goog.exportSymbol("com.keyman.Util.prototype.addFontFaceStyleSheet",com.keyman.Util.prototype.addFontFaceStyleSheet);goog.exportSymbol("com.keyman.Util.prototype.loadCookie",com.keyman.Util.prototype.loadCookie);
|
|
goog.exportSymbol("com.keyman.Util.prototype.saveCookie",com.keyman.Util.prototype.saveCookie);goog.exportSymbol("com.keyman.Util.prototype.toNumber",com.keyman.Util.prototype.toNumber);goog.exportSymbol("com.keyman.Util.prototype.toFloat",com.keyman.Util.prototype.toFloat);goog.exportSymbol("com.keyman.Util.prototype.toNzString",com.keyman.Util.prototype.nzString);goog.exportSymbol("com.keyman.Util.prototype.alert",com.keyman.Util.prototype.alert);
|
|
(function(){var b=function(a,b,e){goog.exportSymbol("com.keyman.KeyboardInterface.prototype."+b,e);goog.exportSymbol("com.keyman.KeyboardInterface.prototype."+a,e)},a=function(a,b,e){goog.exportSymbol("com.keyman.KeyboardInterface.prototype."+b,e);goog.exportSymbol("com.keyman.KeyboardInterface.prototype."+a,e)};b("KSF","saveFocus",com.keyman.KeyboardInterface.prototype.saveFocus);b("KBR","beepReset",com.keyman.KeyboardInterface.prototype.beepReset);a("KT","insertText",com.keyman.KeyboardInterface.prototype.insertText);
|
|
a("KR","registerKeyboard",com.keyman.KeyboardInterface.prototype.registerKeyboard);a("KRS","registerStub",com.keyman.KeyboardInterface.prototype.registerStub);a("KC","context",com.keyman.KeyboardInterface.prototype.context);a("KN","nul",com.keyman.KeyboardInterface.prototype.nul);a("KCM","contextMatch",com.keyman.KeyboardInterface.prototype.contextMatch);a("KFCM","fullContextMatch",com.keyman.KeyboardInterface.prototype.fullContextMatch);a("KIK","isKeypress",com.keyman.KeyboardInterface.prototype.isKeypress);
|
|
a("KKM","keyMatch",com.keyman.KeyboardInterface.prototype.keyMatch);a("KSM","stateMatch",com.keyman.KeyboardInterface.prototype.stateMatch);a("KKI","keyInformation",com.keyman.KeyboardInterface.prototype.keyInformation);a("KDM","deadkeyMatch",com.keyman.KeyboardInterface.prototype.deadkeyMatch);a("KB","beep",com.keyman.KeyboardInterface.prototype.beep);a("KA","any",com.keyman.KeyboardInterface.prototype.any);a("KDC","deleteContext",com.keyman.KeyboardInterface.prototype.deleteContext);a("KO","output",
|
|
com.keyman.KeyboardInterface.prototype.output);a("KDO","deadkeyOutput",com.keyman.KeyboardInterface.prototype.deadkeyOutput);a("KIO","indexOutput",com.keyman.KeyboardInterface.prototype.indexOutput);a("KIFS","ifStore",com.keyman.KeyboardInterface.prototype.ifStore);a("KSETS","setStore",com.keyman.KeyboardInterface.prototype.setStore);a("KLOAD","loadStore",com.keyman.KeyboardInterface.prototype.loadStore);a("KSAVE","saveStore",com.keyman.KeyboardInterface.prototype.saveStore)})();
|
|
//# sourceMappingURL=keymanweb.js.map
|