rave-navigation.min.js 8.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. (function(){// During the rave-navigation.js build, this file is added to the top.
  2. // Create an inner self-executing function that will be run with the global scope
  3. // On browsers, this is 'window'. Everywhere else should use 'this' if available.
  4. // Need to run eval('this') "indirectly" by having eval returned by (1,eval). OBVIOUSLY :)
  5. var _window = (1, eval)('this');
  6. (function (global, factory) {
  7. // dynamically determine how 'rave' variable should be loaded depeneding on loader type
  8. var _rave;
  9. if (typeof module === "object" && typeof module.exports === "object" && typeof require == "function") {
  10. // CommonJS/node.js
  11. var rave = require("rave");
  12. var navigation = factory(global,rave);
  13. module.exports = rave;
  14. } else if (typeof define === "function" && define.amd) {
  15. // AMD
  16. define(['rave'], function(rave) {
  17. return factory(global,rave);
  18. });
  19. } else {
  20. // probably loading via script tag. run as is, setting stuff on rave
  21. factory(global,global['rave']);
  22. }
  23. }(_window, function (_global, _rave) {function gb(){return function(ob){return ob}}function q(){return function(){}}function w(ob){return function(U){this[ob]=U}}function x(ob){return function(){return this[ob]}}function A(ob){return function(){return ob}}
  24. var a="undefined"!==typeof _global?_global:(0,eval)("this"),b="undefined"!==typeof _rave?_rave:a.rave,a={},c=b._.com_ibm_rave_core_nativeImpl_Declare,d=b.internal.Selector,e=b.internal.RaveContextManager,f=b.internal.SelectorDelegate,g=a.FocusController={};g.previousLevelFocusableNode=function(a){for(;(a=
  25. a.rave_getParentNode())&&!(0<=g.yd(a)););return a};g.nextLevelFocusableNode=function(a){var b=g.firstChild(a),b=g.nextFocusableNodeFromStart(b);if(!b){var c=0;a=a.rave_getChildNodes();for(var d=a.length;c<d&&!(b=g.nextLevelFocusableNode(a[c]));++c);}return b};g.previousFocusableNodeFromEnd=function(a){return g.ir(a,null)};g.previousFocusableNode=function(a){return g.ir(a,a)};g.ir=function(a,b){var c=g.lastChild(a?a.rave_getParentNode():null),d,e;b?(d=g.yd(b),e=b.rave_getPreviousSibling()):(d=0,e=
  26. c);if(0>d)for(;e;e=e.rave_getPreviousSibling()){if(0<=g.yd(e))return e}else if(e=g.Wn(e,d,!1))return e;return g.dC(c,b&&0!=d?d:2147483647)};g.nextFocusableNodeFromStart=function(a){return g.hr(a,null)};g.nextFocusableNode=function(a){return g.hr(a,a)};g.hr=function(a,b){if(b){var c=g.yd(b);if(0>c)for(var d=b.rave_getNextSibling();d;d=d.rave_getNextSibling()){if(0<=g.yd(d))return d}else if(d=g.Wn(b.rave_getNextSibling(),c,!0))return d;if(0==c)return null}c=g.firstChild(a?a.rave_getParentNode():null);
  27. return(d=g.bC(c,b?g.yd(b):0))?d:g.Wn(c,0,!0)};g.yd=function(a){a=a.rave_getProperty(h.NAVIGATION_INDEX_KEY);return null!=a?~~a:0};g.Wn=function(a,b,c){for(;a;a=c?a.rave_getNextSibling():a.rave_getPreviousSibling())if(g.yd(a)==b)return a;return null};g.bC=function(a,b){for(var c,d=2147483647,e=a;e;e=e.rave_getNextSibling()){var f=g.yd(e);f>b&&f<d&&(d=f,c=e)}return c};g.dC=function(a,b){for(var c,d=0,e=a;e;e=e.rave_getPreviousSibling()){var f=g.yd(e);f<b&&f>d&&(d=f,c=e)}return c};g.firstChild=function(a){var b;
  28. a&&a.rave_hasChildNodes()&&(b=a.rave_getChildNodes()[0]);return b};g.lastChild=function(a){var b;a&&a.rave_hasChildNodes()&&(a=a.rave_getChildNodes(),b=a[a.length-1]);return b};var h=a.NavigationConstants={};h.SELECTOR_ID="raveNavigation";h.NAVIGATION_INDEX_KEY="__raveNavigationIndex__";var k=a.KeyBinding=c({_$functionClassMethod:function(){function a(b){if(null!==b||1<arguments.length)b=Array.prototype.slice.call(arguments,0);a.keybinding(b[0]);return null}return a},constructor:function(){this.pf=
  29. {};this.pi={};var a=this;this.VD=function(b,c,d,e){(b=k.Hs(a.pf))&&b.call(e.target,e)};this.WD=function(b,c,d,e){(b=k.Hs(a.pi))&&b.call(e.target,e)}},keybinding:function(a){a.on("keydown",this.VD);a.on("keypress",this.WD)},ya:function(a,b){k.Nj(a,b,0,this.pf);return this},tC:function(a){return k.Ok(a,0,this.pf)},ua:function(a,b,c){k.Nj(a,b,c,this.pf);return this},uC:function(a,b){return k.Ok(a,b,this.pf)},Mg:function(a,b){null!=a&&0<a.length&&k.Nj(a.charCodeAt(0),b,0,this.pi);return this},vC:function(a){return null!=
  30. a&&0<a.length?k.Ok(a.charCodeAt(0),0,this.pi):null},xe:function(a,b,c){null!=a&&0<a.length&&k.Nj(a.charCodeAt(0),b,c,8==c||0==c?this.pi:this.pf);return this},wC:function(a,b){return null!=a&&0<a.length?k.Ok(a.charCodeAt(0),b,8==b||0==b?this.pi:this.pf):null},on:function(a,b,c){var d=arguments;return 2==d.length&&(null==a||"string"===typeof a)?this.Mg(a,b):2==d.length?this.ya(a,b):3==d.length&&(null==a||"string"===typeof a)&&(null==c||"number"===typeof c)?this.xe(a,b,c):this.ua(a,b,c)},get:function(a,
  31. b){var c=arguments;return 1==c.length&&(null==a||"string"===typeof a)?this.vC(a):1==c.length?this.tC(a):2==c.length&&(null==a||"string"===typeof a)&&(null==b||"number"===typeof b)?this.wC(a,b):this.uC(a,b)}});k.Nj=function(a,b,c,d){d[k.ao(a,c)]=b};k.Ok=function(a,b,c){return c[k.ao(a,b)]};k.ao=function(a,b){return a+":"+b};k.Hs=function(a){return a[k.NC(b.event)]};k.NC=function(a){var b=0;a.shiftKey&&(b|=8);a.ctrlKey&&(b|=4);a.altKey&&(b|=2);a.metaKey&&(b|=1);return k.ao(0==a.keyCode?a.which:a.keyCode,
  32. b)};var l=a.DefaultKeyboard=c({next:null,previous:null,nextLevel:null,previousLevel:null,_$functionClassMethod:function(){function a(b){if(null!==b||1<arguments.length)b=Array.prototype.slice.call(arguments,0);a.bind(b[0]);return null}return a},constructor:function(){this.of=new k;this.aa=b.behavior.focusEventHandler();var a=this;this.next=function(c){if(null!==c||1<arguments.length)c=Array.prototype.slice.call(arguments,0);var d=a.aa.xa;if(d&&!l.Zb(d)){var e=g.nextFocusableNode(d);e||(e=g.nextFocusableNodeFromStart(d));
  33. e&&a.aa.fireFocus(e);b.event.preventDefault()}return null};this.previous=function(c){if(null!==c||1<arguments.length)c=Array.prototype.slice.call(arguments,0);var d=a.aa.xa;if(d&&!l.Zb(d)){var e=g.previousFocusableNode(d);e||(e=g.previousFocusableNodeFromEnd(d));e&&a.aa.fireFocus(e);b.event.preventDefault()}return null};this.nextLevel=function(c){if(null!==c||1<arguments.length)c=Array.prototype.slice.call(arguments,0);var d=a.aa.xa;d&&(d=g.nextLevelFocusableNode(d))&&a.aa.fireFocus(d);b.event.preventDefault();
  34. return null};this.previousLevel=function(c){if(null!==c||1<arguments.length)c=Array.prototype.slice.call(arguments,0);var d=a.aa.xa;if(d){var e=g.previousLevelFocusableNode(d);l.Zb(e)?(a.aa.fireBlur(d),a.aa.xa=e):l.Zb(d)||a.aa.fireFocus(e);b.event.preventDefault()}return null};this.of.on(10,this.nextLevel).on(13,this.nextLevel).on(27,this.previousLevel).on(9,this.next).on(9,this.previous,8)},bind:function(a){var c=this;a.each(function(){var a=b.select(this);b.select(this.rave_getOwner()).call(c.of);
  35. a.property(l.lh,!0);c.aa.xa=this})},keyBinding:x("of"),kC:x("aa"),Zn:function(a){this.aa=a;return this},focusEventHandler:function(a){return 0==arguments.length?this.aa:this.Zn(a)}});l.Zb=function(a){return null!=a.rave_getProperty(l.lh)};l.lh="__rave-kbnav-root__";var n=a.NavigationSelector=c(f,{constructor:q(),create:function(a){return(new n).setDelegate(a)},PE:function(){var a=this.node();return!a?null:a.rave_getProperty(h.NAVIGATION_INDEX_KEY)},QE:function(a){this.each$0(function(){this.rave_setProperty(h.NAVIGATION_INDEX_KEY,
  36. a)});return this},RE:function(a){this.each$0(function(b,c,d){this.rave_setProperty(h.NAVIGATION_INDEX_KEY,a.call(this,b,c,d))});return this},navigationIndex:function(a){var b=arguments;return 0==b.length?this.PE():1==b.length&&"function"===typeof a?this.RE(a):this.QE(a)}}),f=c({ENTER:10,RETURN:13,ESC:27,TAB:9,SHIFT:8,CTRL:4,ALT:2,META:1});f.INSTANCE=new f;var t=a.Navigation={};t.keybinding=function(){return new k};t.keyboard=function(){return new l};t.ho=function(){var a=e.INSTANCE.getRaveContext().getData("NAVIGATION_EXTENSION_REGISTRATION_STATUS_KEY");
  37. a||(a=new t.Rm,e.INSTANCE.getRaveContext().putData("NAVIGATION_EXTENSION_REGISTRATION_STATUS_KEY",a));return a};t.init=function(){var a=t.ho();a.Ki||(a.Ki=d.extension(t.SELECTOR_ID,function(){return new n}))};t.Rm=c({Ki:!1});t.keys=f.INSTANCE;t.SELECTOR_ID=h.SELECTOR_ID;t.init();b.navigation=t;b.navigation.internal=a // This is the end of the factory method defined in the header. Added only during a full compiled JS build.
  38. return rave;
  39. }));})();