Professional Documents
Culture Documents
at(t,s),y=s.target,k=s.targetRect,e.hasClass(s.target,l.toggleMode)&&e.removeClass(
s.target,l.toggleModeActive),s.target.tagName==="IFRAME"&&(g=s.target,nt.isXYFocusE
nabled(g)&&(h=p({left:s.referenceRect.left-
s.targetRect.left,top:s.referenceRect.top-
s.targetRect.top,width:s.referenceRect.width,height:s.referenceRect.height}),v={},v
[a.messageDataProperty]={type:a.dFocusEnter,direction:t,referenceRect:h,keyCode:u},
g.contentWindow.postMessage(v,"*"))),rt.dispatchEvent(it.focusChanged,
{previousFocusElement:ut,keyCode:u}),!0;if(t==="up")
{if(r.window.pageYOffset>0)return r.window.scrollTo(n.pageXOffset,0),!1}else
if(t==="down"){var
ct=r.document.documentElement.scrollHeight,lt=r.window.innerHeight,ft=ct-
lt;if(r.window.pageYOffset<ft)return r.window.scrollTo(r.window.pageXOffset,ft),!
1}return!o&&top!==r.window?(h=f,h||(h=r.document.activeElement?
p(r.document.activeElement.getBoundingClientRect()):w()),v={},v[a.messageDataProper
ty]={type:a.dFocusExit,direction:t,referenceRect:h,keyCode:u},r.parent.postMessage(
v,"*"),!0):(tt=r.window.CortanaApp,tt&&(t==="up"||
t==="down")&&(et=yt(r.document.activeElement.getBoundingClientRect()||
w()),ot=tt.tryMoveFocus(t,et),ot))?(ut.blur(),!0):!1}function st(n,t){function
o(n,t,i,r){if(n>=r||t<=i)return 0;var f=Math.min(t,r)-Math.max(n,i),u=Math.min(r-
i,t-n);return u===0?0:f/u}function it(n,t,i,r,u){var c=0,e,f,s=0,h=0;switch(n){case
b.left:if(u.left>=r.left)break;e=o(r.top,r.bottom,u.top,u.bottom);f=r.left-
u.right;e>0?h=o(i.top,i.bottom,u.top,u.bottom):s=r.bottom<=u.top?u.top-
r.bottom:r.top-u.bottom;break;case
b.right:if(u.right<=r.right)break;e=o(r.top,r.bottom,u.top,u.bottom);f=u.left-
r.right;e>0?h=o(i.top,i.bottom,u.top,u.bottom):s=r.bottom<=u.top?u.top-
r.bottom:r.top-u.bottom;break;case
b.up:if(u.top>=r.top)break;e=o(r.left,r.right,u.left,u.right);f=r.top-u.bottom;e>0?
h=o(i.left,i.right,u.left,u.right):s=r.right<=u.left?u.left-r.right:r.left-
u.right;break;case
b.down:if(u.bottom<=r.bottom)break;e=o(r.left,r.right,u.left,u.right);f=u.top-
r.bottom;e>0?h=o(i.left,i.right,u.left,u.right):s=r.right<=u.left?u.left-
r.right:r.left-u.right}return f>=0&&(f=t-f,s=t-
s,f>=0&&s>=0&&(f+=f*e,c=f*ut.primaryAxisDistanceWeight+s*ut.secondaryAxisDistanceWe
ight+h*ut.percentInHistoryShadowWeight)),c}function rt(n,t){var i,u;return(n||
t)&&(!n||n.parentNode)||r.document.activeElement!
==r.document.body&&(n=r.document.activeElement),n?
(i=n,u=p(i.getBoundingClientRect())):u=t?p(t):w(),{element:i,rect:u}}var
nt,u,v,y,k,h,l,e,d,a,tt,c,f,g;if(t=t||{},t.focusRoot=t.focusRoot||i.focusRoot||
r.document.body,t.historyRect=t.historyRect||
w(),nt=Math.max(r.screen.availHeight,r.screen.availWidth),u=rt(t.referenceElement,t
.referenceRect),u.element&&(v=u.element.getAttribute(et.focusOverride)||
u.element.getAttribute(et.focusOverrideLegacy),v&&(y=s.optionsParser(v),k=y[n]||
y[n[0].toUpperCase()+n.substr(1)],k))){for(l=u.element;!
h&&l;)h=l.querySelector(k),l=l.parentElement;if(h)return
h===r.document.activeElement?null:
{target:h,targetRect:p(h.getBoundingClientRect()),referenceRect:u.rect,usedOverride
:!
0}}for(e={element:null,rect:null,score:0},d=t.focusRoot.querySelectorAll("*"),a=0,t
t=d.length;a<tt;a++)if((c=d[a],u.element!==c&&ct(c)&&!
wt(c))&&(f=p(c.getBoundingClientRect()),f.width!==0&&f.height!==0)){if(n==="up"||
n==="down")f.left=0,f.right=r.window.innerWidth,f.width=r.window.innerWidth;else
if((n==="left"||n==="right")&&(f.top>u.rect.bottom||
f.bottom<u.rect.top))continue;g=it(n,nt,t.historyRect,u.rect,f);g>e.score&&(e.eleme
nt=c,e.rect=f,e.score=g)}return e.element?
{target:e.element,targetRect:e.rect,referenceRect:u.rect,usedOverride:!
1}:null}function w(){return{top:-1,bottom:-1,right:-1,left:-
1,height:0,width:0}}function p(n)
{return{top:Math.floor(n.top),bottom:Math.floor(n.top+n.height),right:Math.floor(n.
left+n.width),left:Math.floor(n.left),height:Math.floor(n.height),width:Math.floor(
n.width)}}function yt(n){var t=r.window.devicePixelRatio;return{height:
(Math.floor(n.height)|0)*t,width:(Math.floor(n.width)|0)*t,x:(Math.floor(n.left)|
0)*t,y:((Math.floor(n.top)|0)+r.window.screenTop)*t}}function ht(n,t){var
u=rt.dispatchEvent(it.focusChanging,{nextFocusElement:n,keyCode:t}),i;return u||
(n.focus(),i=p(n.getBoundingClientRect()),i.top<v?
r.window.scrollTo(r.window.pageXOffset,r.window.pageYOffset-
v):i.bottom>r.window.innerHeight-
v&&r.window.scrollTo(r.window.pageXOffset,r.window.pageYOffset+v)),r.document.activ
eElement===n}function ct(n){var t=n.tagName,i;return!
n.hasAttribute("tabindex")&&vt.indexOf(t)===-1&&!e.hasClass(n,l.focusable)?!
1:t==="IFRAME"&&!nt.isXYFocusEnabled(n)?!
1:t==="DIV"&&n.winControl&&n.winControl.disabled?!1:t==="A"&&(!
n.hasAttribute("href")||!n.getAttribute("href"))?!1:
(i=e._getComputedStyle(n),n.getAttribute("tabIndex")==="-1"||i.display==="none"||
i.visibility==="hidden"||n.disabled)?!1:!0}function pt(n){for(var
t=n.parentElement;t&&!lt(t);)t=t.parentElement;return t}function wt(n){var
t=pt(n);return t&&!e.hasClass(t,l.toggleModeActive)}function lt(n)
{if(e.hasClass(n,l.toggleMode))return!0;if(n.tagName==="INPUT"){var
t=n.type.toLowerCase();if(t==="date"||t==="datetime"||t==="datetime-local"||
t==="email"||t==="month"||t==="number"||t==="password"||t==="range"||t==="search"||
t==="tel"||t==="text"||t==="time"||t==="url"||t==="week")return!0}else
if(n.tagName==="TEXTAREA")return!0;return!1}function at(n){var i=!1,r=!1,u=!
1,t;return n&&(i=e._matchesSelector(n,"."+l.suspended+", ."+l.suspended+"
*"),r=lt(n),u=e.hasClass(n,l.toggleModeActive)),t=g.RestState,i?
t=g.SuspendedState:r&&(t=u?
g.ToggleModeActiveState:g.ToggleModeRestState),t}function bt(n){function c(i)
{t.top=-
1;t.bottom=0;i&&(t.top+=v,t.bottom+=v);e.xyFocus("down",n.keyCode,t)}function l(i)
{t.top=f;t.bottom=f+1;i&&(t.top-=v,t.bottom-=v);e.xyFocus("up",n.keyCode,t)}var
e,u,a,o,p,s,h;if(!n.defaultPrevented)
{e=at(r.document.activeElement);u="";i.keyCodeMap.up.indexOf(n.keyCode)!==-1?
u="up":i.keyCodeMap.down.indexOf(n.keyCode)!==-1?
u="down":i.keyCodeMap.left.indexOf(n.keyCode)!==-1?
u="left":i.keyCodeMap.right.indexOf(n.keyCode)!==-
1&&(u="right");u&&(a=e.xyFocus(u,n.keyCode),a&&n.preventDefault());var
y=r.window.innerWidth,f=r.window.innerHeight,t=w();t.left=0;t.right=y;t.width=y;t.h
eight=1;i.keyCodeMap.pageUp.indexOf(n.keyCode)!==-1?r.window.pageYOffset>0?
(o=Math.max(r.window.pageYOffset-f,0),o!
==0&&(o+=v),r.window.scrollTo(r.window.pageXOffset,o),l(!0)):c(!
1):i.keyCodeMap.pageDown.indexOf(n.keyCode)!==-1?
(p=r.document.documentElement.scrollHeight,s=p-f,r.window.pageYOffset<s?
(h=Math.min(r.window.pageYOffset+f,s),h!==s&&(h-
=v),r.window.scrollTo(r.window.pageXOffset,h),c(!0)):l(!
1)):i.keyCodeMap.home.indexOf(n.keyCode)!==-1?c(!
1):i.keyCodeMap.end.indexOf(n.keyCode)!==-1&&l(!1)}}function kt(n){var
t,i;n.defaultPrevented||
(t=r.window.CortanaApp,t&&(i=t.tryHandleKeyEvent(n.keyCode),i&&n.preventDefault()))
}function dt(n){if(!n.defaultPrevented){var t=r.document.activeElement,u=!
1,f=at(t);i.keyCodeMap.accept.indexOf(n.keyCode)!==-1?
u=f.accept(t):i.keyCodeMap.cancel.indexOf(n.keyCode)!==-
1&&(u=f.cancel(t));u&&n.preventDefault()}}var h=e.Key,et={focusOverride:"data-win-
xyfocus",focusOverrideLegacy:"data-win-focus"},l={focusable:"win-
focusable",suspended:"win-xyfocus-suspended",toggleMode:"win-xyfocus-
togglemode",toggleModeActive:"win-xyfocus-togglemode-active",xboxPlatform:"win-
xbox"},a={messageDataProperty:"msWinJSXYFocusControlMessage",register:"register",un
register:"unregister",dFocusEnter:"dFocusEnter",dFocusExit:"dFocusExit"},b={left:"l
eft",right:"right",up:"up",down:"down"},it={focusChanging:"focuschanging",focusChan
ged:"focuschanged"},vt=["A","BUTTON","IFRAME","INPUT","SELECT","TEXTAREA"],ut={prim
aryAxisDistanceWeight:30,secondaryAxisDistanceWeight:20,percentInHistoryShadowWeigh
t:1e5},v=60,y,k,c,g,nt,tt,rt;i.keyCodeMap={left:[],right:[],up:[],down:[],accept:
[],cancel:[],pageUp:[],pageDown:[],home:[],end:
[]};i.focusRoot;i.findNextFocusElement=ft;i.moveFocus=ot,function(n){function f(n)
{return n&&n.click&&n.click(),!1}function t(){for(var
t=[],n=0;n<arguments.length;n++)t[+n]=arguments[n];return!1}var o=function()
{function n(){}return n.accept=f,n.cancel=t,n.xyFocus=d,n}
(),i,r,u;n.RestState=o;i=function(){function n(){}return
n.accept=t,n.cancel=t,n.xyFocus=t,n}();n.SuspendedState=i;r=function(){function n()
{}return n.accept=function(n){return e.addClass(n,l.toggleModeActive),!
0},n.cancel=t,n.xyFocus=d,n}();n.ToggleModeRestState=r;u=function(){function n()
{}return n.cancel=function(n){return n&&e.removeClass(n,l.toggleModeActive),!
0},n.accept=f,n.xyFocus=t,n}();n.ToggleModeActiveState=u}(g||(g={})),function(n)
{function u(){return i(function(){return!1}),t.length}function f(n){var
i=r.document.querySelectorAll("IFRAME"),t=Array.prototype.filter.call(i,function(t)
{return t.contentWindow===n});return t.length?t[0]:null}function e(n){var t=!
1;return i(function(i){i===n&&(t=!0)}),t}function o(n){t.push(n)}function s(n){var
r=-1;i(function(t,i){t===n&&(r=i)});r!==-1&&t.splice(r,1)}function i(n){for(var
r,i=t.length-1;i>=0;i--)try{r=t[i];r.contentWindow?n(r,i):t.splice(i,1)}catch(u)
{t.splice(i,1)}}var
t=[];n.count=u;n.getIFrameFromWindow=f;n.isXYFocusEnabled=e;n.registerIFrame=o;n.un
registerIFrame=s}(nt||
(nt={}));r.document&&(i.keyCodeMap.left.push(h.GamepadLeftThumbstickLeft,h.GamepadD
PadLeft,h.NavigationLeft),i.keyCodeMap.right.push(h.GamepadLeftThumbstickRight,h.Ga
mepadDPadRight,h.NavigationRight),i.keyCodeMap.up.push(h.GamepadLeftThumbstickUp,h.
GamepadDPadUp,h.NavigationUp),i.keyCodeMap.down.push(h.GamepadLeftThumbstickDown,h.
GamepadDPadDown,h.NavigationDown),i.keyCodeMap.accept.push(h.GamepadA,h.NavigationA
ccept),i.keyCodeMap.cancel.push(h.GamepadB,h.NavigationCancel),i.keyCodeMap.pageUp.
push(h.GamepadLeftTrigger),i.keyCodeMap.pageDown.push(h.GamepadRightTrigger),r.addE
ventListener("message",function(n){var f=null,i,o,e,t,u;try{if(f=n.source,!
f)return}catch(n){return}if(n.data&&n.data[a.messageDataProperty])
{i=n.data[a.messageDataProperty];switch(i.type){case
a.dFocusEnter:o=d(i.direction,-1,i.referenceRect,!0);o||(ct(r.document.body)?
r.document.body.focus():d(i.direction,-1));break;case
a.dFocusExit:if(e=nt.getIFrameFromWindow(f),r.document.activeElement!
==e)break;t=i.referenceRect;u=e.getBoundingClientRect();t.left+=u.left;t.top+=u.top
;typeof t.right=="number"&&(t.right+=u.left);typeof
t.bottom=="number"&&(t.bottom+=u.top);d(i.direction,-
1,t)}}}),f.ready().then(function()
{if(e.hasWinRT&&r.Windows&&r.Windows.Xbox&&e.addClass(r.document.body,l.xboxPlatfor
m),r.document.addEventListener("keydown",dt,!
0),r.document.addEventListener("keydown",bt),r.document.addEventListener("keyup",kt
),r.top!==r.window){var
n={};n[a.messageDataProperty]={type:a.register,version:1};r.parent.postMessage(n,"*
")}}),tt={focusRoot:{get:function(){return i.focusRoot},set:function(n)
{i.focusRoot=n}},findNextFocusElement:ft,keyCodeMap:i.keyCodeMap,moveFocus:ot,onfoc
uschanged:o._createEventProperty(it.focusChanged),onfocuschanging:o._createEventPro
perty(it.focusChanging),_xyFocus:d,_iframeHelper:nt},tt=f._merge(tt,o.eventMixin),t
t._listeners={},rt=tt,u.Namespace.define("WinJS.UI.XYFocus",tt))}),r("base",
["WinJS/Core/_WinJS","WinJS/XYFocus",],function(n){"use strict";return
n.Namespace.define("WinJS.Utilities",{_require:u,_define:r}),n}),u(["WinJS/Core/
_WinJS","base"],function(n){i.WinJS=n;typeof module!
="undefined"&&(module.exports=n)}),i.WinJS}),function(n)
{n.UI.XYFocus.keyCodeMap.up.push(n.Utilities.Key.upArrow);n.UI.XYFocus.keyCodeMap.d
own.push(n.Utilities.Key.downArrow);n.UI.XYFocus.keyCodeMap.left.push(n.Utilities.K
ey.leftArrow);n.UI.XYFocus.keyCodeMap.right.push(n.Utilities.Key.rightArrow)}
(i.WinJS)}