ant-design-x-vue
Version:
Craft AI-driven interfaces effortlessly
77 lines (76 loc) • 2.67 kB
JavaScript
import { useStyleInject as m, ATTR_TOKEN as g, CSS_IN_JS_INSTANCE as C } from "../StyleContext.mjs";
import y from "./useGlobalCache.mjs";
import { flattenToken as k, token2key as S } from "../util.mjs";
import { ref as A, computed as d } from "vue";
function p(t) {
for (var e = 0, o, n = 0, c = t.length; c >= 4; ++n, c -= 4)
o = t.charCodeAt(n) & 255 | (t.charCodeAt(++n) & 255) << 8 | (t.charCodeAt(++n) & 255) << 16 | (t.charCodeAt(++n) & 255) << 24, o = /* Math.imul(k, m): */
(o & 65535) * 1540483477 + ((o >>> 16) * 59797 << 16), o ^= /* k >>> r: */
o >>> 24, e = /* Math.imul(k, m): */
(o & 65535) * 1540483477 + ((o >>> 16) * 59797 << 16) ^ /* Math.imul(h, m): */
(e & 65535) * 1540483477 + ((e >>> 16) * 59797 << 16);
switch (c) {
case 3:
e ^= (t.charCodeAt(n + 2) & 255) << 16;
case 2:
e ^= (t.charCodeAt(n + 1) & 255) << 8;
case 1:
e ^= t.charCodeAt(n) & 255, e = /* Math.imul(h, m): */
(e & 65535) * 1540483477 + ((e >>> 16) * 59797 << 16);
}
return e ^= e >>> 13, e = /* Math.imul(h, m): */
(e & 65535) * 1540483477 + ((e >>> 16) * 59797 << 16), ((e ^ e >>> 15) >>> 0).toString(36);
}
const x = {}, E = "css", r = /* @__PURE__ */ new Map();
function _(t) {
r.set(t, (r.get(t) || 0) + 1);
}
function b(t, e) {
typeof document < "u" && document.querySelectorAll(`style[${g}="${t}"]`).forEach((n) => {
var c;
n[C] === e && ((c = n.parentNode) == null || c.removeChild(n));
});
}
const I = 0;
function K(t, e) {
r.set(t, (r.get(t) || 0) - 1);
const o = Array.from(r.keys()), n = o.filter((c) => (r.get(c) || 0) <= 0);
o.length - n.length > I && n.forEach((c) => {
b(c, e), r.delete(c);
});
}
const N = (t, e, o, n) => {
let s = {
...o == null ? void 0 : o.getDerivativeToken(t),
...e
};
return n && (s = n(s)), s;
};
function j(t, e, o = A({})) {
const n = m(), c = d(() => Object.assign({}, ...e.value || [])), s = d(() => k(c.value)), T = d(() => {
var f;
return k(((f = o.value) == null ? void 0 : f.override) || x);
});
return y("token", d(() => {
var f, a;
return [((f = o.value) == null ? void 0 : f.salt) || "", (a = t.value) == null ? void 0 : a.id, s.value, T.value];
}), () => {
const {
salt: f = "",
override: a = x,
formatToken: h,
getComputedToken: l
} = o.value || {}, u = l ? l(c.value, a, t.value) : N(c.value, a, t.value, h), i = S(u, f);
u._tokenKey = i, _(i);
const v = `${E}-${p(i)}`;
return u._hashId = v, [u, v];
}, (f) => {
var a;
K(f[0]._tokenKey, (a = n.value) == null ? void 0 : a.cache.instanceId);
});
}
export {
N as g,
p as m,
j as u
};