UNPKG

@caspingus/lt

Version:

A utility library of helpers and extensions useful when working with Learnosity APIs.

527 lines (526 loc) 19.8 kB
import { a as ie } from "../../_commonjsHelpers-DQNKXVTB.js"; import { c as se, L as T } from "../../extensionsFactory-BHOEyOSK.js"; function ae(n, p) { for (var s = 0; s < p.length; s++) { const o = p[s]; if (typeof o != "string" && !Array.isArray(o)) { for (const a in o) if (a !== "default" && !(a in n)) { const b = Object.getOwnPropertyDescriptor(o, a); b && Object.defineProperty(n, a, b.get ? b : { enumerable: !0, get: () => o[a] }); } } } return Object.freeze(Object.defineProperty(n, Symbol.toStringTag, { value: "Module" })); } var F = { exports: {} }, ce = F.exports, X; function le() { return X || (X = 1, function(n, p) { (function(s, o) { n.exports = o(); })(ce, function() { function s(c, _) { var M = window.matchMedia(c); _(M.matches); var O = function() { return _(M.matches); }; return M.addListener(O), function() { return M.removeListener(O); }; } function o(c, _) { return e[c] !== _ && (e[c] = _, k(c, _), !0); } var a = typeof navigator < "u" && typeof window < "u"; if (a && typeof nw < "u") try { nw.Window.get(); } catch { a = !1; } var b = !a, u = a ? navigator.userAgent : void 0, e = { gui: a, terminal: b, registerQuery: s }; e.node = typeof process < "u" && !!process.versions && !!process.versions.node, e.pwa = e.gui && window.matchMedia("(display-mode: standalone)").matches && document.head.querySelector('[rel="manifest"]') !== null, e.uwp = typeof Windows < "u" && typeof MSApp < "u", e.nwjs = !(!e.node || !process.versions.nw), e.electron = !(!e.node || !process.versions.electron), e.cordova = !(!e.gui || !window.cordova), e.packaged = e.uwp || e.nwjs || e.electron || e.cordova, e.web = !e.node && !e.packaged, e.browser = e.web, e.website = e.web && !e.pwa, e.worker = !e.gui && typeof self < "u" && self.importScripts !== void 0, e.serviceWorker = e.worker && !!navigator.serviceWorker.controller || !1, e.android = !!e.gui && u.includes("Android"), e.chromeos = !!e.gui && u.includes("CrOS"), e.tizen = !!e.gui && u.includes("Tizen"), e.ios = e.gui && /iPad|iPhone|iPod/.test(u) && !window.MSStream || !1, e.linuxBased = e.android || e.tizen, e.windows = e.node ? process.platform === "win32" : u.includes("Windows"), e.macos = e.node ? process.platform === "darwin" : u.includes("Macintosh"), e.linux = e.node ? process.platform === "linux" : u.includes("Linux") && !e.linuxBased && !e.macos, e.edgeHtml = e.gui && u.includes("Edge/"), e.edgeChromium = e.gui && u.includes("Edg/"), e.edgeAndroid = e.gui && u.includes("EdgA/"), e.edgeIos = e.gui && u.includes("EdgiOS/"), e.chromeIos = e.gui && u.includes("CriOS/"), e.firefoxIos = e.gui && u.includes("FxiOS/"), e.edge = e.edgeHtml || e.edgeChromium || e.edgeAndroid || e.edgeIos, e.samsungBrowser = e.gui && u.includes("SamsungBrowser/"), e.opera = e.gui && (u.includes("Opera") || u.includes("OPR/")), e.firefox = e.gui && (u.includes("Firefox") || e.firefoxIos), e.chrome = e.gui && (u.includes("Chrome") || e.chromeIos) && !e.edge && !e.opera && !e.samsungBrowser, e.safari = e.gui && u.includes("Safari") && !e.chrome && !e.edge && !e.firefox && !e.opera && !e.samsungBrowser || e.edgeIos || e.chromeIos || e.firefoxIos, e.ie = e.trident = e.gui && u.includes("Trident"), e.blink = e.chrome && !e.chromeIos || e.edgeChromium || e.edgeAndroid || e.samsungBrowser, e.webkit = e.blink || e.safari, e.gecko = e.firefox && !e.firefoxIos && !e.webkit && !e.safari; var x = {}; e.on = function(c, _) { x[c] = x[c] || /* @__PURE__ */ new Set(), x[c].add(_); }, e.off = e.removeListener = function(c, _) { x[c] && x[c].delete(_); }; var k = e.emit = function(c, _) { x[c] && x[c].forEach(function(M) { return M(_); }); }; if (e.gui) { e.pixelRatio = parseFloat(window.devicePixelRatio.toFixed(2)), e.gameconsole = u.includes("Xbox") || u.includes("PlayStation"); var A = 0; if (window.addEventListener("gamepadconnected", function(c) { return A++; }), window.addEventListener("gamepaddisconnected", function(c) { return A--; }), e.gameconsole) e.gamepad = !0, e.mouse = !0, e.touch = !1, e.tv = !0, e.battery = !1, e.phone = e.tablet = e.hybrid = e.laptop = e.desktop = !1, e.formfactor = "gameconsole"; else { var L = function() { o("tv", e.formfactor === "tv"), o("phone", e.formfactor === "phone"), o("tablet", e.formfactor === "tablet"), o("hybrid", e.formfactor === "hybrid"), o("laptop", e.formfactor === "laptop"), o("desktop", e.formfactor === "desktop"); }, K = function() { var c = Math.min(window.screen.width, window.screen.height); return e.tv ? "tv" : e.touch && c < 600 ? "phone" : e.touch && !e.mouse ? "tablet" : e.touch && e.mouse ? "hybrid" : e.battery ? "laptop" : "desktop"; }; e.touch = navigator.maxTouchPoints > 0, e.tv = u.includes("TV"), A = navigator.getGamepads ? Array.from(navigator.getGamepads()).filter(function(c) { return c != null; }).length : 0, e.gamepad = A > 0, s("(orientation: portrait)", function(c) { e.portrait = c, e.landscape = !c, e.orientation = c ? "portrait" : "landscape", k("portrait", e.portrait), k("landscape", e.landscape), k("orientation", e.orientation); }), s("(any-pointer: coarse)", function(c) { o("touch", c), o("formfactor", K()) && L(); }), s("(hover: hover)", function(c) { o("mouse", c), o("input", c ? "mouse" : "touch"), o("formfactor", K()) && L(); }); } } return e.csp = e.uwp || !1, e.nwjs ? e.dev = process.versions["nw-flavor"] === "sdk" : e.electron ? e.dev = process.execPath.replace(/\\/g, "/").includes("node_modules/electron/") : e.uwp ? e.dev = Windows.ApplicationModel.Package.current.isDevelopmentMode : e.node ? e.dev = process.env.NODE_ENV !== "production" : e.dev = void 0, e; }); }(F)), F.exports; } var U = le(); const fe = /* @__PURE__ */ ie(U), ue = /* @__PURE__ */ ae({ __proto__: null, default: fe }, [U]); var W = { exports: {} }, G; function de() { return G || (G = 1, function(n) { (function(p, s, o) { if (!p) return; for (var a = { 8: "backspace", 9: "tab", 13: "enter", 16: "shift", 17: "ctrl", 18: "alt", 20: "capslock", 27: "esc", 32: "space", 33: "pageup", 34: "pagedown", 35: "end", 36: "home", 37: "left", 38: "up", 39: "right", 40: "down", 45: "ins", 46: "del", 91: "meta", 93: "meta", 224: "meta" }, b = { 106: "*", 107: "+", 109: "-", 110: ".", 111: "/", 186: ";", 187: "=", 188: ",", 189: "-", 190: ".", 191: "/", 192: "`", 219: "[", 220: "\\", 221: "]", 222: "'" }, u = { "~": "`", "!": "1", "@": "2", "#": "3", $: "4", "%": "5", "^": "6", "&": "7", "*": "8", "(": "9", ")": "0", _: "-", "+": "=", ":": ";", '"': "'", "<": ",", ">": ".", "?": "/", "|": "\\" }, e = { option: "alt", command: "meta", return: "enter", escape: "esc", plus: "+", mod: /Mac|iPod|iPhone|iPad/.test(navigator.platform) ? "meta" : "ctrl" }, x, k = 1; k < 20; ++k) a[111 + k] = "f" + k; for (k = 0; k <= 9; ++k) a[k + 96] = k.toString(); function A(t, r, l) { if (t.addEventListener) { t.addEventListener(r, l, !1); return; } t.attachEvent("on" + r, l); } function L(t) { if (t.type == "keypress") { var r = String.fromCharCode(t.which); return t.shiftKey || (r = r.toLowerCase()), r; } return a[t.which] ? a[t.which] : b[t.which] ? b[t.which] : String.fromCharCode(t.which).toLowerCase(); } function K(t, r) { return t.sort().join(",") === r.sort().join(","); } function c(t) { var r = []; return t.shiftKey && r.push("shift"), t.altKey && r.push("alt"), t.ctrlKey && r.push("ctrl"), t.metaKey && r.push("meta"), r; } function _(t) { if (t.preventDefault) { t.preventDefault(); return; } t.returnValue = !1; } function M(t) { if (t.stopPropagation) { t.stopPropagation(); return; } t.cancelBubble = !0; } function O(t) { return t == "shift" || t == "ctrl" || t == "alt" || t == "meta"; } function J() { if (!x) { x = {}; for (var t in a) t > 95 && t < 112 || a.hasOwnProperty(t) && (x[a[t]] = t); } return x; } function Z(t, r, l) { return l || (l = J()[t] ? "keydown" : "keypress"), l == "keypress" && r.length && (l = "keydown"), l; } function ee(t) { return t === "+" ? ["+"] : (t = t.replace(/\+{2}/g, "+plus"), t.split("+")); } function z(t, r) { var l, v, q, C = []; for (l = ee(t), q = 0; q < l.length; ++q) v = l[q], e[v] && (v = e[v]), r && r != "keypress" && u[v] && (v = u[v], C.push("shift")), O(v) && C.push(v); return r = Z(v, C, r), { key: v, modifiers: C, action: r }; } function V(t, r) { return t === null || t === s ? !1 : t === r ? !0 : V(t.parentNode, r); } function w(t) { var r = this; if (t = t || s, !(r instanceof w)) return new w(t); r.target = t, r._callbacks = {}, r._directMap = {}; var l = {}, v, q = !1, C = !1, B = !1; function N(i) { i = i || {}; var d = !1, g; for (g in l) { if (i[g]) { d = !0; continue; } l[g] = 0; } d || (B = !1); } function $(i, d, g, f, h, S) { var m, y, I = [], P = g.type; if (!r._callbacks[i]) return []; for (P == "keyup" && O(i) && (d = [i]), m = 0; m < r._callbacks[i].length; ++m) if (y = r._callbacks[i][m], !(!f && y.seq && l[y.seq] != y.level) && P == y.action && (P == "keypress" && !g.metaKey && !g.ctrlKey || K(d, y.modifiers))) { var ne = !f && y.combo == h, oe = f && y.seq == f && y.level == S; (ne || oe) && r._callbacks[i].splice(m, 1), I.push(y); } return I; } function R(i, d, g, f) { r.stopCallback(d, d.target || d.srcElement, g, f) || i(d, g) === !1 && (_(d), M(d)); } r._handleKey = function(i, d, g) { var f = $(i, d, g), h, S = {}, m = 0, y = !1; for (h = 0; h < f.length; ++h) f[h].seq && (m = Math.max(m, f[h].level)); for (h = 0; h < f.length; ++h) { if (f[h].seq) { if (f[h].level != m) continue; y = !0, S[f[h].seq] = 1, R(f[h].callback, g, f[h].combo, f[h].seq); continue; } y || R(f[h].callback, g, f[h].combo); } var I = g.type == "keypress" && C; g.type == B && !O(i) && !I && N(S), C = y && g.type == "keydown"; }; function j(i) { typeof i.which != "number" && (i.which = i.keyCode); var d = L(i); if (d) { if (i.type == "keyup" && q === d) { q = !1; return; } r.handleKey(d, c(i), i); } } function te() { clearTimeout(v), v = setTimeout(N, 1e3); } function re(i, d, g, f) { l[i] = 0; function h(P) { return function() { B = P, ++l[i], te(); }; } function S(P) { R(g, P, i), f !== "keyup" && (q = L(P)), setTimeout(N, 10); } for (var m = 0; m < d.length; ++m) { var y = m + 1 === d.length, I = y ? S : h(f || z(d[m + 1]).action); H(d[m], I, f, i, m); } } function H(i, d, g, f, h) { r._directMap[i + ":" + g] = d, i = i.replace(/\s+/g, " "); var S = i.split(" "), m; if (S.length > 1) { re(i, S, d, g); return; } m = z(i, g), r._callbacks[m.key] = r._callbacks[m.key] || [], $(m.key, m.modifiers, { type: m.action }, f, i, h), r._callbacks[m.key][f ? "unshift" : "push"]({ callback: d, modifiers: m.modifiers, action: m.action, seq: f, level: h, combo: i }); } r._bindMultiple = function(i, d, g) { for (var f = 0; f < i.length; ++f) H(i[f], d, g); }, A(t, "keypress", j), A(t, "keydown", j), A(t, "keyup", j); } w.prototype.bind = function(t, r, l) { var v = this; return t = t instanceof Array ? t : [t], v._bindMultiple.call(v, t, r, l), v; }, w.prototype.unbind = function(t, r) { var l = this; return l.bind.call(l, t, function() { }, r); }, w.prototype.trigger = function(t, r) { var l = this; return l._directMap[t + ":" + r] && l._directMap[t + ":" + r]({}, t), l; }, w.prototype.reset = function() { var t = this; return t._callbacks = {}, t._directMap = {}, t; }, w.prototype.stopCallback = function(t, r) { var l = this; if ((" " + r.className + " ").indexOf(" mousetrap ") > -1 || V(r, l.target)) return !1; if ("composedPath" in t && typeof t.composedPath == "function") { var v = t.composedPath()[0]; v !== t.target && (r = v); } return r.tagName == "INPUT" || r.tagName == "SELECT" || r.tagName == "TEXTAREA" || r.isContentEditable; }, w.prototype.handleKey = function() { var t = this; return t._handleKey.apply(t, arguments); }, w.addKeycodes = function(t) { for (var r in t) t.hasOwnProperty(r) && (a[r] = t[r]); x = null; }, w.init = function() { var t = w(s); for (var r in t) r.charAt(0) !== "_" && (w[r] = /* @__PURE__ */ function(l) { return function() { return t[l].apply(t, arguments); }; }(r)); }, w.init(), p.Mousetrap = w, n.exports && (n.exports = w); })(typeof window < "u" ? window : null, typeof window < "u" ? document : null); }(W)), W.exports; } var D = de(); function pe(n) { return Object.keys(n).length === 0; } const E = { bound: !1, effective: null, overrideDone: !1, platform: null, supportedPlatforms: ["chromeos", "macos", "windows"] }; function me(n = xe()) { E.platform || (E.platform = ke()), E.platform && (E.overrideDone || (_e(), E.overrideDone = !0), E.effective || (E.effective = we(n, E.platform)), E.bound || (ge(E.effective), E.bound = !0)); } function ge(n) { n.global.itemFlag.length && D.bind(n.global.itemFlag, he), n.global.maskingEnable.length && D.bind(n.global.maskingEnable, ve), n.item.responseSet.length && D.bind(n.item.responseSet, ye), n.item.responseMask.length && D.bind(n.item.responseMask, be); } function he() { T.items.flag(); } function ve() { const n = T.questions.questionInstance(); !pe(n) && typeof n.isMaskable == "function" && n.isMaskable() && T.itemsApp().questionsApp().masking(!T.items.isMaskingEnabled()); } function ye(n, p) { const s = Y(); if (!s) return; const o = Q(p); if (o != null && Array.isArray(s.options) && s.options.length >= o) { const a = document.getElementById(s.response_id); if (!a) return; const b = a.querySelectorAll(".lrn-input"); b && b[o - 1] && b[o - 1].click(); } } function be(n, p) { if (!T.items.isMaskingEnabled() || !Y()) return; const o = Q(p); if (o == null) return; const a = T.items.itemElement(); if (!a) return; const b = a.querySelectorAll(".lrn-mcq-option"), u = b && b[o - 1]; if (!u) return; const e = u.querySelector(".lrn-mask"); e && e.click(); } function Q(n) { const p = /(\d)$/.exec(n); if (!p) return null; const s = Number(p[1]); return Number.isFinite(s) ? s : null; } function Y() { const n = T.questions(); let p = null; for (const s of n) if (s && s.type === "mcq") { if (p) return null; p = s; } return p; } function we(n, p) { const s = { global: { itemFlag: [], maskingEnable: [] }, item: { responseSet: [], responseMask: [] } }; if (n && Array.isArray(n.global)) for (const o of n.global) { if (!o || !o.type || !o.bindings) continue; const a = o.bindings[p] || []; !Array.isArray(a) || a.length === 0 || (o.type === "item.flag" ? s.global.itemFlag.push(...a) : o.type === "masking.enable" && s.global.maskingEnable.push(...a)); } if (n && Array.isArray(n.item)) for (const o of n.item) { if (!o || !o.type || !o.bindings) continue; const a = o.bindings[p] || []; !Array.isArray(a) || a.length === 0 || (o.type === "response.set" ? s.item.responseSet.push(...a) : o.type === "response.mask" && s.item.responseMask.push(...a)); } return s; } function ke() { for (const n of E.supportedPlatforms) if (ue[n]) return n; return null; } function _e() { D.prototype.stopCallback = (n, p) => { const s = document.activeElement; return s && (s.getAttribute("type") === "radio" || s.getAttribute("type") === "checkbox") || (" " + p.className + " ").indexOf(" mousetrap ") > -1 ? !1 : p.tagName === "INPUT" || p.tagName === "SELECT" || p.tagName === "TEXTAREA" || p.contentEditable && p.contentEditable === "true"; }; } function xe() { return { global: [ { bindings: { chromeos: ["ctrl+shift+v"], macos: ["command+shift+v"], windows: ["ctrl+shift+v"] }, type: "item.flag" }, { bindings: { chromeos: ["ctrl+alt+0"], macos: ["command+option+0"], windows: ["ctrl+alt+0"] }, type: "masking.enable" } ], item: [ { bindings: { chromeos: ["ctrl+shift+1", "ctrl+shift+2", "ctrl+shift+3", "ctrl+shift+4", "ctrl+shift+5", "ctrl+shift+6"], macos: ["command+ctrl+1", "command+ctrl+2", "command+ctrl+3", "command+ctrl+4", "command+ctrl+5", "command+ctrl+6"], windows: ["ctrl+shift+1", "ctrl+shift+2", "ctrl+shift+3", "ctrl+shift+4", "ctrl+shift+5", "ctrl+shift+6"] }, restrictTo: ["mcq"], type: "response.set" }, { bindings: { chromeos: ["ctrl+alt+1", "ctrl+alt+2", "ctrl+alt+3", "ctrl+alt+4", "ctrl+alt+5", "ctrl+alt+6"], macos: ["command+option+1", "command+option+2", "command+option+3", "command+option+4", "command+option+5", "command+option+6"], windows: ["ctrl+alt+1", "ctrl+alt+2", "ctrl+alt+3", "ctrl+alt+4", "ctrl+alt+5", "ctrl+alt+6"] }, type: "response.mask" } ] }; } const Ae = se("keyboardShortcuts", me); export { Ae as keyboardShortcuts };