1!function(i, e) { 2 var s, u, a = i.config.menuSettings, t = Function.prototype.bind ? function(e, t) { 3 return e.bind(t); 4 } : function(e, t) { 5 return function() { 6 e.apply(t, arguments); 7 }; 8 }, o = Object.keys || function(e) { 9 var t = []; 10 for (var n in e) e.hasOwnProperty(n) && t.push(n); 11 return t; 12 }, n = MathJax.Ajax.config.path; 13 n.a11y || (n.a11y = i.config.root + "/extensions/a11y"); 14 var l = e["accessibility-menu"] = { 15 version: "1.6.0", 16 prefix: "", 17 defaults: {}, 18 modules: [], 19 MakeOption: function(e) { 20 return l.prefix + e; 21 }, 22 GetOption: function(e) { 23 return a[l.MakeOption(e)]; 24 }, 25 AddDefaults: function() { 26 for (var e, t = o(l.defaults), n = 0; e = t[n]; n++) { 27 var i = l.MakeOption(e); 28 void 0 === a[i] && (a[i] = l.defaults[e]); 29 } 30 }, 31 AddMenu: function() { 32 for (var e, t = Array(this.modules.length), n = 0; e = this.modules[n]; n++) t[n] = e.placeHolder; 33 var i, a, o = u.FindId("Accessibility"); 34 o ? (t.unshift(s.RULE()), o.submenu.items.push.apply(o.submenu.items, t)) : ((i = (u.FindId("Settings", "Renderer") || {}).submenu) && (t.unshift(s.RULE()), 35 t.unshift(i.items.pop()), t.unshift(i.items.pop())), t.unshift("Accessibility"), 36 o = s.SUBMENU.apply(s.SUBMENU, t), (a = u.IndexOfId("Locale")) ? u.items.splice(a, 0, o) : u.items.push(s.RULE(), o)); 37 }, 38 Register: function(e) { 39 l.defaults[e.option] = !1, l.modules.push(e); 40 }, 41 Startup: function() { 42 s = MathJax.Menu.ITEM, u = MathJax.Menu.menu; 43 for (var e, t = 0; e = this.modules[t]; t++) e.CreateMenu(); 44 this.AddMenu(); 45 }, 46 LoadExtensions: function() { 47 for (var e, t = [], n = 0; e = this.modules[n]; n++) a[e.option] && t.push(e.module); 48 return t.length ? i.Startup.loadArray(t) : null; 49 } 50 }, r = MathJax.Extension.ModuleLoader = MathJax.Object.Subclass({ 51 option: "", 52 name: [ "", "" ], 53 module: "", 54 placeHolder: null, 55 submenu: !1, 56 extension: null, 57 Init: function(e, t, n, i, a) { 58 this.option = e, this.name = [ t.replace(/ /g, ""), t ], this.module = n, this.extension = i, 59 this.submenu = a || !1; 60 }, 61 CreateMenu: function() { 62 var e = t(this.Load, this); 63 this.submenu ? this.placeHolder = s.SUBMENU(this.name, s.CHECKBOX([ "Activate", "Activate" ], l.MakeOption(this.option), { 64 action: e 65 }), s.RULE(), s.COMMAND([ "OptionsWhenActive", "(Options when Active)" ], null, { 66 disabled: !0 67 })) : this.placeHolder = s.CHECKBOX(this.name, l.MakeOption(this.option), { 68 action: e 69 }); 70 }, 71 Load: function() { 72 i.Queue([ "Require", MathJax.Ajax, this.module, [ "Enable", this ] ]); 73 }, 74 Enable: function(e) { 75 var t = MathJax.Extension[this.extension]; 76 t && (t.Enable(!0, !0), MathJax.Menu.saveCookie()); 77 } 78 }); 79 l.Register(r("collapsible", "Collapsible Math", "[a11y]/collapsible.js", "collapsible")), 80 l.Register(r("autocollapse", "Auto Collapse", "[a11y]/auto-collapse.js", "auto-collapse")), 81 l.Register(r("explorer", "Explorer", "[a11y]/explorer.js", "explorer", !0)), l.AddDefaults(), 82 i.Register.StartupHook("End Extensions", function() { 83 i.Register.StartupHook("MathMenu Ready", function() { 84 l.Startup(), i.Startup.signal.Post("Accessibility Menu Ready"); 85 }, 5); 86 }, 5), MathJax.Hub.Register.StartupHook("End Cookie", function() { 87 MathJax.Callback.Queue([ "LoadExtensions", l ], [ "loadComplete", MathJax.Ajax, "[a11y]/accessibility-menu.js" ]); 88 }); 89}(MathJax.Hub, MathJax.Extension);