@anoki/fse-ui
Version:
FSE UI components library
184 lines (183 loc) • 7.97 kB
JavaScript
import p from "./index.es705.js";
import { __require as y } from "./index.es692.js";
var h, U;
function L() {
if (U) return h;
U = 1;
let { dirname: n, relative: u, resolve: m, sep: c } = p, { SourceMapConsumer: f, SourceMapGenerator: a } = p, { pathToFileURL: g } = p, O = y(), S = !!(f && a), C = !!(n && m && u && c);
class w {
constructor(t, e, s, i) {
this.stringify = t, this.mapOpts = s.map || {}, this.root = e, this.opts = s, this.css = i, this.originalCSS = i, this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute, this.memoizedFileURLs = /* @__PURE__ */ new Map(), this.memoizedPaths = /* @__PURE__ */ new Map(), this.memoizedURLs = /* @__PURE__ */ new Map();
}
addAnnotation() {
let t;
this.isInline() ? t = "data:application/json;base64," + this.toBase64(this.map.toString()) : typeof this.mapOpts.annotation == "string" ? t = this.mapOpts.annotation : typeof this.mapOpts.annotation == "function" ? t = this.mapOpts.annotation(this.opts.to, this.root) : t = this.outputFile() + ".map";
let e = `
`;
this.css.includes(`\r
`) && (e = `\r
`), this.css += e + "/*# sourceMappingURL=" + t + " */";
}
applyPrevMaps() {
for (let t of this.previous()) {
let e = this.toUrl(this.path(t.file)), s = t.root || n(t.file), i;
this.mapOpts.sourcesContent === !1 ? (i = new f(t.text), i.sourcesContent && (i.sourcesContent = null)) : i = t.consumer(), this.map.applySourceMap(i, e, this.toUrl(this.path(s)));
}
}
clearAnnotation() {
if (this.mapOpts.annotation !== !1) {
if (this.root) {
let t;
for (let e = this.root.nodes.length - 1; e >= 0; e--)
t = this.root.nodes[e], t.type === "comment" && t.text.startsWith("# sourceMappingURL=") && this.root.removeChild(e);
} else if (this.css) {
let t;
for (; (t = this.css.lastIndexOf("/*#")) !== -1; ) {
let e = this.css.indexOf("*/", t + 3);
if (e === -1) break;
for (; t > 0 && this.css[t - 1] === `
`; )
t--;
this.css = this.css.slice(0, t) + this.css.slice(e + 2);
}
}
}
}
generate() {
if (this.clearAnnotation(), C && S && this.isMap())
return this.generateMap();
{
let t = "";
return this.stringify(this.root, (e) => {
t += e;
}), [t];
}
}
generateMap() {
if (this.root)
this.generateString();
else if (this.previous().length === 1) {
let t = this.previous()[0].consumer();
t.file = this.outputFile(), this.map = a.fromSourceMap(t, {
ignoreInvalidMapping: !0
});
} else
this.map = new a({
file: this.outputFile(),
ignoreInvalidMapping: !0
}), this.map.addMapping({
generated: { column: 0, line: 1 },
original: { column: 0, line: 1 },
source: this.opts.from ? this.toUrl(this.path(this.opts.from)) : "<no source>"
});
return this.isSourcesContent() && this.setSourcesContent(), this.root && this.previous().length > 0 && this.applyPrevMaps(), this.isAnnotation() && this.addAnnotation(), this.isInline() ? [this.css] : [this.css, this.map];
}
generateString() {
this.css = "", this.map = new a({
file: this.outputFile(),
ignoreInvalidMapping: !0
});
let t = 1, e = 1, s = "<no source>", i = {
generated: { column: 0, line: 0 },
original: { column: 0, line: 0 },
source: ""
}, d, l;
this.stringify(this.root, (o, r, v) => {
if (this.css += o, r && v !== "end" && (i.generated.line = t, i.generated.column = e - 1, r.source && r.source.start ? (i.source = this.sourcePath(r), i.original.line = r.source.start.line, i.original.column = r.source.start.column - 1, this.map.addMapping(i)) : (i.source = s, i.original.line = 1, i.original.column = 0, this.map.addMapping(i))), l = o.match(/\n/g), l ? (t += l.length, d = o.lastIndexOf(`
`), e = o.length - d) : e += o.length, r && v !== "start") {
let M = r.parent || { raws: {} };
(!(r.type === "decl" || r.type === "atrule" && !r.nodes) || r !== M.last || M.raws.semicolon) && (r.source && r.source.end ? (i.source = this.sourcePath(r), i.original.line = r.source.end.line, i.original.column = r.source.end.column - 1, i.generated.line = t, i.generated.column = e - 2, this.map.addMapping(i)) : (i.source = s, i.original.line = 1, i.original.column = 0, i.generated.line = t, i.generated.column = e - 1, this.map.addMapping(i)));
}
});
}
isAnnotation() {
return this.isInline() ? !0 : typeof this.mapOpts.annotation < "u" ? this.mapOpts.annotation : this.previous().length ? this.previous().some((t) => t.annotation) : !0;
}
isInline() {
if (typeof this.mapOpts.inline < "u")
return this.mapOpts.inline;
let t = this.mapOpts.annotation;
return typeof t < "u" && t !== !0 ? !1 : this.previous().length ? this.previous().some((e) => e.inline) : !0;
}
isMap() {
return typeof this.opts.map < "u" ? !!this.opts.map : this.previous().length > 0;
}
isSourcesContent() {
return typeof this.mapOpts.sourcesContent < "u" ? this.mapOpts.sourcesContent : this.previous().length ? this.previous().some((t) => t.withContent()) : !0;
}
outputFile() {
return this.opts.to ? this.path(this.opts.to) : this.opts.from ? this.path(this.opts.from) : "to.css";
}
path(t) {
if (this.mapOpts.absolute || t.charCodeAt(0) === 60 || /^\w+:\/\//.test(t)) return t;
let e = this.memoizedPaths.get(t);
if (e) return e;
let s = this.opts.to ? n(this.opts.to) : ".";
typeof this.mapOpts.annotation == "string" && (s = n(m(s, this.mapOpts.annotation)));
let i = u(s, t);
return this.memoizedPaths.set(t, i), i;
}
previous() {
if (!this.previousMaps)
if (this.previousMaps = [], this.root)
this.root.walk((t) => {
if (t.source && t.source.input.map) {
let e = t.source.input.map;
this.previousMaps.includes(e) || this.previousMaps.push(e);
}
});
else {
let t = new O(this.originalCSS, this.opts);
t.map && this.previousMaps.push(t.map);
}
return this.previousMaps;
}
setSourcesContent() {
let t = {};
if (this.root)
this.root.walk((e) => {
if (e.source) {
let s = e.source.input.from;
if (s && !t[s]) {
t[s] = !0;
let i = this.usesFileUrls ? this.toFileUrl(s) : this.toUrl(this.path(s));
this.map.setSourceContent(i, e.source.input.css);
}
}
});
else if (this.css) {
let e = this.opts.from ? this.toUrl(this.path(this.opts.from)) : "<no source>";
this.map.setSourceContent(e, this.css);
}
}
sourcePath(t) {
return this.mapOpts.from ? this.toUrl(this.mapOpts.from) : this.usesFileUrls ? this.toFileUrl(t.source.input.from) : this.toUrl(this.path(t.source.input.from));
}
toBase64(t) {
return Buffer ? Buffer.from(t).toString("base64") : window.btoa(unescape(encodeURIComponent(t)));
}
toFileUrl(t) {
let e = this.memoizedFileURLs.get(t);
if (e) return e;
if (g) {
let s = g(t).toString();
return this.memoizedFileURLs.set(t, s), s;
} else
throw new Error(
"`map.absolute` option is not available in this PostCSS build"
);
}
toUrl(t) {
let e = this.memoizedURLs.get(t);
if (e) return e;
c === "\\" && (t = t.replace(/\\/g, "/"));
let s = encodeURI(t).replace(/[#?]/g, encodeURIComponent);
return this.memoizedURLs.set(t, s), s;
}
}
return h = w, h;
}
export {
L as __require
};
//# sourceMappingURL=index.es708.js.map