Professional Documents
Culture Documents
18
18
at(t,s),p=s.target,d=s.targetRect,e.hasClass(s.target,a.toggleMode)&&e.removeClass(
s.target,a.toggleModeActive),s.target.tagName==="IFRAME"&&(nt=s.target,y.isXYFocusE
nabled(nt)&&(h=w({left:s.referenceRect.left-
s.targetRect.left,top:s.referenceRect.top-
s.targetRect.top,width:s.referenceRect.width,height:s.referenceRect.height}),v={},v
[c.messageDataProperty]={type:c.dFocusEnter,direction:t,referenceRect:h,keyCode:u},
nt.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?
w(r.document.activeElement.getBoundingClientRect()):b()),v={},v[c.messageDataProper
ty]={type:c.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()||
b()),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
k.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
k.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
k.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
k.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=w(i.getBoundingClientRect())):u=t?w(t):b(),{element:i,rect:u}}var
nt,u,v,y,p,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||
b(),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),p=y[n]||
y[n[0].toUpperCase()+n.substr(1)],p))){for(l=u.element;!
h&&l;)h=l.querySelector(p),l=l.parentElement;if(h)return
h===r.document.activeElement?null:
{target:h,targetRect:w(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=w(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 b(){return{top:-1,bottom:-1,right:-1,left:-
1,height:0,width:0}}function w(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=w(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,a.focusable)?!
1:t==="IFRAME"&&!y.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,a.toggleModeActive)}function lt(n)
{if(e.hasClass(n,a.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,"."+a.suspended+", ."+a.suspended+"
*"),r=lt(n),u=e.hasClass(n,a.toggleModeActive)),t=nt.RestState,i?
t=nt.SuspendedState:r&&(t=u?
nt.ToggleModeActiveState:nt.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=b();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"},a={focusable:"win-
focusable",suspended:"win-xyfocus-suspended",toggleMode:"win-xyfocus-
togglemode",toggleModeActive:"win-xyfocus-togglemode-active",xboxPlatform:"win-
xbox"},c={messageDataProperty:"msWinJSXYFocusControlMessage",register:"register",un
register:"unregister",dFocusEnter:"dFocusEnter",dFocusExit:"dFocusExit"},k={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,p,d,l,nt,y,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=g,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,a.toggleModeActive),!
0},n.cancel=t,n.xyFocus=g,n}();n.ToggleModeRestState=r;u=function(){function n()
{}return n.cancel=function(n){return n&&e.removeClass(n,a.toggleModeActive),!
0},n.accept=f,n.xyFocus=t,n}();n.ToggleModeActiveState=u}(nt||(nt={})),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}(y||
(y={}));r.document&&(i.keyCodeMap.left.push(h.GamepadLeftThumbstickLeft,h.GamepadDP
adLeft,h.NavigationLeft),i.keyCodeMap.right.push(h.GamepadLeftThumbstickRight,h.Gam
epadDPadRight,h.NavigationRight),i.keyCodeMap.up.push(h.GamepadLeftThumbstickUp,h.G
amepadDPadUp,h.NavigationUp),i.keyCodeMap.down.push(h.GamepadLeftThumbstickDown,h.G
amepadDPadDown,h.NavigationDown),i.keyCodeMap.accept.push(h.GamepadA,h.NavigationAc
cept),i.keyCodeMap.cancel.push(h.GamepadB,h.NavigationCancel),i.keyCodeMap.pageUp.p
ush(h.GamepadLeftTrigger),i.keyCodeMap.pageDown.push(h.GamepadRightTrigger),r.addEv
entListener("message",function(n){var f=null,u,o,t,i,e;try{if(f=n.source,!
f)return}catch(n){return}if(n.data&&n.data[c.messageDataProperty])
{u=n.data[c.messageDataProperty];switch(u.type){case
c.register:t=y.getIFrameFromWindow(f);t&&y.registerIFrame(t);break;case
c.unregister:t=y.getIFrameFromWindow(f);t&&y.unregisterIFrame(t);break;case
c.dFocusEnter:o=g(u.direction,-1,u.referenceRect,!0);o||(ct(r.document.body)?
r.document.body.focus():g(u.direction,-1));break;case
c.dFocusExit:if(t=y.getIFrameFromWindow(f),r.document.activeElement!
==t)break;i=u.referenceRect;e=t.getBoundingClientRect();i.left+=e.left;i.top+=e.top
;typeof i.right=="number"&&(i.right+=e.left);typeof
i.bottom=="number"&&(i.bottom+=e.top);g(u.direction,-
1,i)}}}),f.ready().then(function()
{if(e.hasWinRT&&r.Windows&&r.Windows.Xbox&&e.addClass(r.document.body,a.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[c.messageDataProperty]={type:c.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:g,_iframeHelper:y},tt=f._merge(tt,o.eventMixin),tt
._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)}