UNPKG

laif-ds

Version:

Design System di Laif con componenti React basati su principi di Atomic Design

154 lines (153 loc) 4.82 kB
"use client"; import { factoryDestination as d } from "../../micromark-factory-destination/index.js"; import { factoryLabel as h } from "../../micromark-factory-label/index.js"; import { factoryTitle as M } from "../../micromark-factory-title/index.js"; import { factoryWhitespace as k } from "../../micromark-factory-whitespace/index.js"; import { markdownLineEndingOrSpace as m } from "../../micromark-util-character/index.js"; import { push as b, splice as y } from "../../micromark-util-chunked/index.js"; import { normalizeIdentifier as g } from "../../micromark-util-normalize-identifier/index.js"; import { resolveAll as E } from "../../micromark-util-resolve-all/index.js"; const j = { name: "labelEnd", resolveAll: S, resolveTo: w, tokenize: D }, L = { tokenize: T }, z = { tokenize: C }, x = { tokenize: A }; function S(e) { let u = -1; const a = []; for (; ++u < e.length; ) { const n = e[u][1]; if (a.push(e[u]), n.type === "labelImage" || n.type === "labelLink" || n.type === "labelEnd") { const i = n.type === "labelImage" ? 4 : 2; n.type = "data", u += i; } } return e.length !== a.length && y(e, 0, e.length, a), e; } function w(e, u) { let a = e.length, n = 0, i, t, o, l; for (; a--; ) if (i = e[a][1], t) { if (i.type === "link" || i.type === "labelLink" && i._inactive) break; e[a][0] === "enter" && i.type === "labelLink" && (i._inactive = !0); } else if (o) { if (e[a][0] === "enter" && (i.type === "labelImage" || i.type === "labelLink") && !i._balanced && (t = a, i.type !== "labelLink")) { n = 2; break; } } else i.type === "labelEnd" && (o = a); const p = { type: e[t][1].type === "labelLink" ? "link" : "image", start: { ...e[t][1].start }, end: { ...e[e.length - 1][1].end } }, f = { type: "label", start: { ...e[t][1].start }, end: { ...e[o][1].end } }, c = { type: "labelText", start: { ...e[t + n + 2][1].end }, end: { ...e[o - 2][1].start } }; return l = [["enter", p, u], ["enter", f, u]], l = b(l, e.slice(t + 1, t + n + 3)), l = b(l, [["enter", c, u]]), l = b(l, E(u.parser.constructs.insideSpan.null, e.slice(t + n + 4, o - 3), u)), l = b(l, [["exit", c, u], e[o - 2], e[o - 1], ["exit", f, u]]), l = b(l, e.slice(o + 1)), l = b(l, [["exit", p, u]]), y(e, t, e.length, l), e; } function D(e, u, a) { const n = this; let i = n.events.length, t, o; for (; i--; ) if ((n.events[i][1].type === "labelImage" || n.events[i][1].type === "labelLink") && !n.events[i][1]._balanced) { t = n.events[i][1]; break; } return l; function l(s) { return t ? t._inactive ? r(s) : (o = n.parser.defined.includes(g(n.sliceSerialize({ start: t.end, end: n.now() }))), e.enter("labelEnd"), e.enter("labelMarker"), e.consume(s), e.exit("labelMarker"), e.exit("labelEnd"), p) : a(s); } function p(s) { return s === 40 ? e.attempt(L, c, o ? c : r)(s) : s === 91 ? e.attempt(z, c, o ? f : r)(s) : o ? c(s) : r(s); } function f(s) { return e.attempt(x, c, r)(s); } function c(s) { return u(s); } function r(s) { return t._balanced = !0, a(s); } } function T(e, u, a) { return n; function n(r) { return e.enter("resource"), e.enter("resourceMarker"), e.consume(r), e.exit("resourceMarker"), i; } function i(r) { return m(r) ? k(e, t)(r) : t(r); } function t(r) { return r === 41 ? c(r) : d(e, o, l, "resourceDestination", "resourceDestinationLiteral", "resourceDestinationLiteralMarker", "resourceDestinationRaw", "resourceDestinationString", 32)(r); } function o(r) { return m(r) ? k(e, p)(r) : c(r); } function l(r) { return a(r); } function p(r) { return r === 34 || r === 39 || r === 40 ? M(e, f, a, "resourceTitle", "resourceTitleMarker", "resourceTitleString")(r) : c(r); } function f(r) { return m(r) ? k(e, c)(r) : c(r); } function c(r) { return r === 41 ? (e.enter("resourceMarker"), e.consume(r), e.exit("resourceMarker"), e.exit("resource"), u) : a(r); } } function C(e, u, a) { const n = this; return i; function i(l) { return h.call(n, e, t, o, "reference", "referenceMarker", "referenceString")(l); } function t(l) { return n.parser.defined.includes(g(n.sliceSerialize(n.events[n.events.length - 1][1]).slice(1, -1))) ? u(l) : a(l); } function o(l) { return a(l); } } function A(e, u, a) { return n; function n(t) { return e.enter("reference"), e.enter("referenceMarker"), e.consume(t), e.exit("referenceMarker"), i; } function i(t) { return t === 93 ? (e.enter("referenceMarker"), e.consume(t), e.exit("referenceMarker"), e.exit("reference"), u) : a(t); } } export { j as labelEnd };