@anoki/fse-ui
Version:
FSE UI components library
225 lines (224 loc) • 7.84 kB
JavaScript
import { __require as k } from "./index.es686.js";
import { __require as D } from "./index.es689.js";
import { __require as P } from "./index.es695.js";
import { __require as q } from "./index.es703.js";
var y, v;
function j() {
if (v) return y;
v = 1;
let h = k(), p = D(), R = P(), { isClean: x, my: m } = q(), a, d, w, l;
function O(s) {
return s.map((e) => (e.nodes && (e.nodes = O(e.nodes)), delete e.source, e));
}
function g(s) {
if (s[x] = !1, s.proxyOf.nodes)
for (let e of s.proxyOf.nodes)
g(e);
}
class f extends R {
get first() {
if (this.proxyOf.nodes)
return this.proxyOf.nodes[0];
}
get last() {
if (this.proxyOf.nodes)
return this.proxyOf.nodes[this.proxyOf.nodes.length - 1];
}
append(...e) {
for (let t of e) {
let r = this.normalize(t, this.last);
for (let i of r) this.proxyOf.nodes.push(i);
}
return this.markDirty(), this;
}
cleanRaws(e) {
if (super.cleanRaws(e), this.nodes)
for (let t of this.nodes) t.cleanRaws(e);
}
each(e) {
if (!this.proxyOf.nodes) return;
let t = this.getIterator(), r, i;
for (; this.indexes[t] < this.proxyOf.nodes.length && (r = this.indexes[t], i = e(this.proxyOf.nodes[r], r), i !== !1); )
this.indexes[t] += 1;
return delete this.indexes[t], i;
}
every(e) {
return this.nodes.every(e);
}
getIterator() {
this.lastEach || (this.lastEach = 0), this.indexes || (this.indexes = {}), this.lastEach += 1;
let e = this.lastEach;
return this.indexes[e] = 0, e;
}
getProxyProcessor() {
return {
get(e, t) {
return t === "proxyOf" ? e : e[t] ? t === "each" || typeof t == "string" && t.startsWith("walk") ? (...r) => e[t](
...r.map((i) => typeof i == "function" ? (n, o) => i(n.toProxy(), o) : i)
) : t === "every" || t === "some" ? (r) => e[t](
(i, ...n) => r(i.toProxy(), ...n)
) : t === "root" ? () => e.root().toProxy() : t === "nodes" ? e.nodes.map((r) => r.toProxy()) : t === "first" || t === "last" ? e[t].toProxy() : e[t] : e[t];
},
set(e, t, r) {
return e[t] === r || (e[t] = r, (t === "name" || t === "params" || t === "selector") && e.markDirty()), !0;
}
};
}
index(e) {
return typeof e == "number" ? e : (e.proxyOf && (e = e.proxyOf), this.proxyOf.nodes.indexOf(e));
}
insertAfter(e, t) {
let r = this.index(e), i = this.normalize(t, this.proxyOf.nodes[r]).reverse();
r = this.index(e);
for (let o of i) this.proxyOf.nodes.splice(r + 1, 0, o);
let n;
for (let o in this.indexes)
n = this.indexes[o], r < n && (this.indexes[o] = n + i.length);
return this.markDirty(), this;
}
insertBefore(e, t) {
let r = this.index(e), i = r === 0 ? "prepend" : !1, n = this.normalize(
t,
this.proxyOf.nodes[r],
i
).reverse();
r = this.index(e);
for (let u of n) this.proxyOf.nodes.splice(r, 0, u);
let o;
for (let u in this.indexes)
o = this.indexes[u], r <= o && (this.indexes[u] = o + n.length);
return this.markDirty(), this;
}
normalize(e, t) {
if (typeof e == "string")
e = O(d(e).nodes);
else if (typeof e > "u")
e = [];
else if (Array.isArray(e)) {
e = e.slice(0);
for (let i of e)
i.parent && i.parent.removeChild(i, "ignore");
} else if (e.type === "root" && this.type !== "document") {
e = e.nodes.slice(0);
for (let i of e)
i.parent && i.parent.removeChild(i, "ignore");
} else if (e.type)
e = [e];
else if (e.prop) {
if (typeof e.value > "u")
throw new Error("Value field is missed in node creation");
typeof e.value != "string" && (e.value = String(e.value)), e = [new p(e)];
} else if (e.selector || e.selectors)
e = [new l(e)];
else if (e.name)
e = [new a(e)];
else if (e.text)
e = [new h(e)];
else
throw new Error("Unknown node type in node creation");
return e.map((i) => (i[m] || f.rebuild(i), i = i.proxyOf, i.parent && i.parent.removeChild(i), i[x] && g(i), i.raws || (i.raws = {}), typeof i.raws.before > "u" && t && typeof t.raws.before < "u" && (i.raws.before = t.raws.before.replace(/\S/g, "")), i.parent = this.proxyOf, i));
}
prepend(...e) {
e = e.reverse();
for (let t of e) {
let r = this.normalize(t, this.first, "prepend").reverse();
for (let i of r) this.proxyOf.nodes.unshift(i);
for (let i in this.indexes)
this.indexes[i] = this.indexes[i] + r.length;
}
return this.markDirty(), this;
}
push(e) {
return e.parent = this, this.proxyOf.nodes.push(e), this;
}
removeAll() {
for (let e of this.proxyOf.nodes) e.parent = void 0;
return this.proxyOf.nodes = [], this.markDirty(), this;
}
removeChild(e) {
e = this.index(e), this.proxyOf.nodes[e].parent = void 0, this.proxyOf.nodes.splice(e, 1);
let t;
for (let r in this.indexes)
t = this.indexes[r], t >= e && (this.indexes[r] = t - 1);
return this.markDirty(), this;
}
replaceValues(e, t, r) {
return r || (r = t, t = {}), this.walkDecls((i) => {
t.props && !t.props.includes(i.prop) || t.fast && !i.value.includes(t.fast) || (i.value = i.value.replace(e, r));
}), this.markDirty(), this;
}
some(e) {
return this.nodes.some(e);
}
walk(e) {
return this.each((t, r) => {
let i;
try {
i = e(t, r);
} catch (n) {
throw t.addToError(n);
}
return i !== !1 && t.walk && (i = t.walk(e)), i;
});
}
walkAtRules(e, t) {
return t ? e instanceof RegExp ? this.walk((r, i) => {
if (r.type === "atrule" && e.test(r.name))
return t(r, i);
}) : this.walk((r, i) => {
if (r.type === "atrule" && r.name === e)
return t(r, i);
}) : (t = e, this.walk((r, i) => {
if (r.type === "atrule")
return t(r, i);
}));
}
walkComments(e) {
return this.walk((t, r) => {
if (t.type === "comment")
return e(t, r);
});
}
walkDecls(e, t) {
return t ? e instanceof RegExp ? this.walk((r, i) => {
if (r.type === "decl" && e.test(r.prop))
return t(r, i);
}) : this.walk((r, i) => {
if (r.type === "decl" && r.prop === e)
return t(r, i);
}) : (t = e, this.walk((r, i) => {
if (r.type === "decl")
return t(r, i);
}));
}
walkRules(e, t) {
return t ? e instanceof RegExp ? this.walk((r, i) => {
if (r.type === "rule" && e.test(r.selector))
return t(r, i);
}) : this.walk((r, i) => {
if (r.type === "rule" && r.selector === e)
return t(r, i);
}) : (t = e, this.walk((r, i) => {
if (r.type === "rule")
return t(r, i);
}));
}
}
return f.registerParse = (s) => {
d = s;
}, f.registerRule = (s) => {
l = s;
}, f.registerAtRule = (s) => {
a = s;
}, f.registerRoot = (s) => {
w = s;
}, y = f, f.default = f, f.rebuild = (s) => {
s.type === "atrule" ? Object.setPrototypeOf(s, a.prototype) : s.type === "rule" ? Object.setPrototypeOf(s, l.prototype) : s.type === "decl" ? Object.setPrototypeOf(s, p.prototype) : s.type === "comment" ? Object.setPrototypeOf(s, h.prototype) : s.type === "root" && Object.setPrototypeOf(s, w.prototype), s[m] = !0, s.nodes && s.nodes.forEach((e) => {
f.rebuild(e);
});
}, y;
}
export {
j as __require
};
//# sourceMappingURL=index.es687.js.map