UNPKG

@stanfordspezi/spezi-web-design-system

Version:

Stanford Biodesign Digital Health Spezi Web Design System

588 lines (587 loc) 10.7 kB
import { useRef as E, useState as F, useCallback as P, useMemo as Q, useEffect as X } from "react"; const Y = { À: "A", Á: "A", Â: "A", Ã: "A", Ä: "A", Å: "A", Ấ: "A", Ắ: "A", Ẳ: "A", Ẵ: "A", Ặ: "A", Æ: "AE", Ầ: "A", Ằ: "A", Ȃ: "A", Ç: "C", Ḉ: "C", È: "E", É: "E", Ê: "E", Ë: "E", Ế: "E", Ḗ: "E", Ề: "E", Ḕ: "E", Ḝ: "E", Ȇ: "E", Ì: "I", Í: "I", Î: "I", Ï: "I", Ḯ: "I", Ȋ: "I", Ð: "D", Ñ: "N", Ò: "O", Ó: "O", Ô: "O", Õ: "O", Ö: "O", Ø: "O", Ố: "O", Ṍ: "O", Ṓ: "O", Ȏ: "O", Ù: "U", Ú: "U", Û: "U", Ü: "U", Ý: "Y", à: "a", á: "a", â: "a", ã: "a", ä: "a", å: "a", ấ: "a", ắ: "a", ẳ: "a", ẵ: "a", ặ: "a", æ: "ae", ầ: "a", ằ: "a", ȃ: "a", ç: "c", ḉ: "c", è: "e", é: "e", ê: "e", ë: "e", ế: "e", ḗ: "e", ề: "e", ḕ: "e", ḝ: "e", ȇ: "e", ì: "i", í: "i", î: "i", ï: "i", ḯ: "i", ȋ: "i", ð: "d", ñ: "n", ò: "o", ó: "o", ô: "o", õ: "o", ö: "o", ø: "o", ố: "o", ṍ: "o", ṓ: "o", ȏ: "o", ù: "u", ú: "u", û: "u", ü: "u", ý: "y", ÿ: "y", Ā: "A", ā: "a", Ă: "A", ă: "a", Ą: "A", ą: "a", Ć: "C", ć: "c", Ĉ: "C", ĉ: "c", Ċ: "C", ċ: "c", Č: "C", č: "c", C̆: "C", c̆: "c", Ď: "D", ď: "d", Đ: "D", đ: "d", Ē: "E", ē: "e", Ĕ: "E", ĕ: "e", Ė: "E", ė: "e", Ę: "E", ę: "e", Ě: "E", ě: "e", Ĝ: "G", Ǵ: "G", ĝ: "g", ǵ: "g", Ğ: "G", ğ: "g", Ġ: "G", ġ: "g", Ģ: "G", ģ: "g", Ĥ: "H", ĥ: "h", Ħ: "H", ħ: "h", Ḫ: "H", ḫ: "h", Ĩ: "I", ĩ: "i", Ī: "I", ī: "i", Ĭ: "I", ĭ: "i", Į: "I", į: "i", İ: "I", ı: "i", IJ: "IJ", ij: "ij", Ĵ: "J", ĵ: "j", Ķ: "K", ķ: "k", Ḱ: "K", ḱ: "k", K̆: "K", k̆: "k", Ĺ: "L", ĺ: "l", Ļ: "L", ļ: "l", Ľ: "L", ľ: "l", Ŀ: "L", ŀ: "l", Ł: "l", ł: "l", Ḿ: "M", ḿ: "m", M̆: "M", m̆: "m", Ń: "N", ń: "n", Ņ: "N", ņ: "n", Ň: "N", ň: "n", ʼn: "n", N̆: "N", n̆: "n", Ō: "O", ō: "o", Ŏ: "O", ŏ: "o", Ő: "O", ő: "o", Œ: "OE", œ: "oe", P̆: "P", p̆: "p", Ŕ: "R", ŕ: "r", Ŗ: "R", ŗ: "r", Ř: "R", ř: "r", R̆: "R", r̆: "r", Ȓ: "R", ȓ: "r", Ś: "S", ś: "s", Ŝ: "S", ŝ: "s", Ş: "S", Ș: "S", ș: "s", ş: "s", Š: "S", š: "s", Ţ: "T", ţ: "t", ț: "t", Ț: "T", Ť: "T", ť: "t", Ŧ: "T", ŧ: "t", T̆: "T", t̆: "t", Ũ: "U", ũ: "u", Ū: "U", ū: "u", Ŭ: "U", ŭ: "u", Ů: "U", ů: "u", Ű: "U", ű: "u", Ų: "U", ų: "u", Ȗ: "U", ȗ: "u", V̆: "V", v̆: "v", Ŵ: "W", ŵ: "w", Ẃ: "W", ẃ: "w", X̆: "X", x̆: "x", Ŷ: "Y", ŷ: "y", Ÿ: "Y", Y̆: "Y", y̆: "y", Ź: "Z", ź: "z", Ż: "Z", ż: "z", Ž: "Z", ž: "z", ſ: "s", ƒ: "f", Ơ: "O", ơ: "o", Ư: "U", ư: "u", Ǎ: "A", ǎ: "a", Ǐ: "I", ǐ: "i", Ǒ: "O", ǒ: "o", Ǔ: "U", ǔ: "u", Ǖ: "U", ǖ: "u", Ǘ: "U", ǘ: "u", Ǚ: "U", ǚ: "u", Ǜ: "U", ǜ: "u", Ứ: "U", ứ: "u", Ṹ: "U", ṹ: "u", Ǻ: "A", ǻ: "a", Ǽ: "AE", ǽ: "ae", Ǿ: "O", ǿ: "o", Þ: "TH", þ: "th", Ṕ: "P", ṕ: "p", Ṥ: "S", ṥ: "s", X́: "X", x́: "x", Ѓ: "Г", ѓ: "г", Ќ: "К", ќ: "к", A̋: "A", a̋: "a", E̋: "E", e̋: "e", I̋: "I", i̋: "i", Ǹ: "N", ǹ: "n", Ồ: "O", ồ: "o", Ṑ: "O", ṑ: "o", Ừ: "U", ừ: "u", Ẁ: "W", ẁ: "w", Ỳ: "Y", ỳ: "y", Ȁ: "A", ȁ: "a", Ȅ: "E", ȅ: "e", Ȉ: "I", ȉ: "i", Ȍ: "O", ȍ: "o", Ȑ: "R", ȑ: "r", Ȕ: "U", ȕ: "u", B̌: "B", b̌: "b", Č̣: "C", č̣: "c", Ê̌: "E", ê̌: "e", F̌: "F", f̌: "f", Ǧ: "G", ǧ: "g", Ȟ: "H", ȟ: "h", J̌: "J", ǰ: "j", Ǩ: "K", ǩ: "k", M̌: "M", m̌: "m", P̌: "P", p̌: "p", Q̌: "Q", q̌: "q", Ř̩: "R", ř̩: "r", Ṧ: "S", ṧ: "s", V̌: "V", v̌: "v", W̌: "W", w̌: "w", X̌: "X", x̌: "x", Y̌: "Y", y̌: "y", A̧: "A", a̧: "a", B̧: "B", b̧: "b", Ḑ: "D", ḑ: "d", Ȩ: "E", ȩ: "e", Ɛ̧: "E", ɛ̧: "e", Ḩ: "H", ḩ: "h", I̧: "I", i̧: "i", Ɨ̧: "I", ɨ̧: "i", M̧: "M", m̧: "m", O̧: "O", o̧: "o", Q̧: "Q", q̧: "q", U̧: "U", u̧: "u", X̧: "X", x̧: "x", Z̧: "Z", z̧: "z" }, B = Object.keys(Y).join("|"), G = new RegExp(B, "g"); function J(e) { return e.replace(G, (r) => Y[r]); } const A = { CASE_SENSITIVE_EQUAL: 7, EQUAL: 6, STARTS_WITH: 5, WORD_STARTS_WITH: 4, CONTAINS: 3, ACRONYM: 2, MATCHES: 1, NO_MATCH: 0 }; function tr(e, r, n) { var u; if (n = n || {}, n.threshold = (u = n.threshold) != null ? u : A.MATCHES, !n.accessors) { const a = L(e, r, n); return { // ends up being duplicate of 'item' in matches but consistent rankedValue: e, rank: a, accessorIndex: -1, accessorThreshold: n.threshold, passed: a >= n.threshold }; } const d = Z(e, n.accessors), c = { rankedValue: e, rank: A.NO_MATCH, accessorIndex: -1, accessorThreshold: n.threshold, passed: !1 }; for (let a = 0; a < d.length; a++) { const o = d[a]; let t = L(o.itemValue, r, n); const { minRanking: l, maxRanking: s, threshold: f = n.threshold } = o.attributes; t < l && t >= A.MATCHES ? t = l : t > s && (t = s), t = Math.min(t, s), t >= f && t > c.rank && (c.rank = t, c.passed = !0, c.accessorIndex = a, c.accessorThreshold = f, c.rankedValue = o.itemValue); } return c; } function L(e, r, n) { return e = R(e, n), r = R(r, n), r.length > e.length ? A.NO_MATCH : e === r ? A.CASE_SENSITIVE_EQUAL : (e = e.toLowerCase(), r = r.toLowerCase(), e === r ? A.EQUAL : e.startsWith(r) ? A.STARTS_WITH : e.includes(` ${r}`) ? A.WORD_STARTS_WITH : e.includes(r) ? A.CONTAINS : r.length === 1 ? A.NO_MATCH : K(e).includes(r) ? A.ACRONYM : q(e, r)); } function K(e) { let r = ""; return e.split(" ").forEach((u) => { u.split("-").forEach((c) => { r += c.substr(0, 1); }); }), r; } function q(e, r) { let n = 0, u = 0; function d(t, l, s) { for (let f = s, y = l.length; f < y; f++) if (l[f] === t) return n += 1, f + 1; return -1; } function c(t) { const l = 1 / t, s = n / r.length; return A.MATCHES + s * l; } const a = d(r[0], e, 0); if (a < 0) return A.NO_MATCH; u = a; for (let t = 1, l = r.length; t < l; t++) { const s = r[t]; if (u = d(s, e, u), !(u > -1)) return A.NO_MATCH; } const o = u - a; return c(o); } function R(e, r) { let { keepDiacritics: n } = r; return e = `${e}`, n || (e = J(e)), e; } function z(e, r) { let n = r; typeof r == "object" && (n = r.accessor); const u = n(e); return u == null ? [] : Array.isArray(u) ? u : [String(u)]; } function Z(e, r) { const n = []; for (let u = 0, d = r.length; u < d; u++) { const c = r[u], a = $(c), o = z(e, c); for (let t = 0, l = o.length; t < l; t++) n.push({ itemValue: o[t], attributes: a }); } return n; } const D = { maxRanking: 1 / 0, minRanking: -1 / 0 }; function $(e) { return typeof e == "function" ? D : { ...D, ...e }; } function rr(e, r, n, u) { var d = this, c = E(null), a = E(0), o = E(0), t = E(null), l = E([]), s = E(), f = E(), y = E(e), I = E(!0), O = E(), S = E(); y.current = e; var b = typeof window < "u", g = !r && r !== 0 && b; if (typeof e != "function") throw new TypeError("Expected a function"); r = +r || 0; var x = !!(n = n || {}).leading, H = !("trailing" in n) || !!n.trailing, U = !!n.flushOnExit && H, v = "maxWait" in n, V = "debounceOnServer" in n && !!n.debounceOnServer, N = v ? Math.max(+n.maxWait || 0, r) : null, _ = Q(function() { var m = function(i) { var h = l.current, C = s.current; return l.current = s.current = null, a.current = i, o.current = o.current || i, f.current = y.current.apply(C, h); }, M = function(i, h) { g && cancelAnimationFrame(t.current), t.current = g ? requestAnimationFrame(i) : setTimeout(i, h); }, k = function(i) { if (!I.current) return !1; var h = i - c.current; return !c.current || h >= r || h < 0 || v && i - a.current >= N; }, W = function(i) { return t.current = null, H && l.current ? m(i) : (l.current = s.current = null, f.current); }, w = function i() { var h = Date.now(); if (x && o.current === a.current && j(), k(h)) return W(h); if (I.current) { var C = r - (h - c.current), p = v ? Math.min(C, N - (h - a.current)) : C; M(i, p); } }, j = function() { u && u({}); }, T = function() { if (b || V) { var i, h = Date.now(), C = k(h); if (l.current = [].slice.call(arguments), s.current = d, c.current = h, U && !O.current && (O.current = function() { var p; ((p = global.document) == null ? void 0 : p.visibilityState) === "hidden" && S.current.flush(); }, (i = global.document) == null || i.addEventListener == null || i.addEventListener("visibilitychange", O.current)), C) { if (!t.current && I.current) return a.current = c.current, M(w, r), x ? m(c.current) : f.current; if (v) return M(w, r), m(c.current); } return t.current || M(w, r), f.current; } }; return T.cancel = function() { var i = t.current; i && (g ? cancelAnimationFrame(t.current) : clearTimeout(t.current)), a.current = 0, l.current = c.current = s.current = t.current = null, i && u && u({}); }, T.isPending = function() { return !!t.current; }, T.flush = function() { return t.current ? W(Date.now()) : f.current; }, T; }, [x, v, r, N, H, U, g, b, V, u]); return S.current = _, X(function() { return I.current = !0, function() { var m; U && S.current.flush(), O.current && ((m = global.document) == null || m.removeEventListener == null || m.removeEventListener("visibilitychange", O.current), O.current = null), I.current = !1; }; }, [U]), _; } function er(e, r) { return e === r; } function ur(e, r, n) { var u = er, d = E(e), c = F({})[1], a = rr(P(function(t) { d.current = t, c({}); }, [c]), r, n, c), o = E(e); return u(o.current, e) || (a(e), o.current = e), [d.current, a]; } export { A as a, rr as c, ur as l, tr as r };