@bloklabs/cli 1.16.1 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{block-builder-Cg5bL2dS.mjs → block-builder-DZMbuM0Z.mjs} +159 -208
- package/dist/cli.mjs +3 -4
- package/dist/{convert-gdocs-BNVlyZ1j.mjs → convert-gdocs-88U6OWzq.mjs} +3 -4
- package/dist/{convert-html-1lRolRGH.mjs → convert-html-BgTU9Qpk.mjs} +3 -4
- package/package.json +1 -1
- package/dist/block-builder-BEbdp0xc.mjs +0 -1019
- package/dist/block-builder-BV7ySSOn.mjs +0 -1269
- package/dist/block-builder-CTpURcXu.mjs +0 -1022
- package/dist/block-builder-DaGEOJ2S.mjs +0 -831
- package/dist/block-builder-Dc6PL7RK.mjs +0 -825
- package/dist/block-builder-DeebuGHy.mjs +0 -1453
- package/dist/block-builder-Dqos6hzP.mjs +0 -1067
- package/dist/block-builder-lzpU_6ZF.mjs +0 -827
- package/dist/convert-gdocs--8aPMm3f.mjs +0 -205
- package/dist/convert-gdocs-7NAwDDZ2.mjs +0 -214
- package/dist/convert-gdocs-9-fmO8W7.mjs +0 -214
- package/dist/convert-gdocs-BSQNj9_W.mjs +0 -13
- package/dist/convert-gdocs-BZ2ovDNS.mjs +0 -205
- package/dist/convert-gdocs-CB-kubaI.mjs +0 -208
- package/dist/convert-gdocs-CizVIpiR.mjs +0 -205
- package/dist/convert-gdocs-DtU-P2qd.mjs +0 -13
- package/dist/convert-gdocs-ZqRLNT9X.mjs +0 -13
- package/dist/convert-gdocs-msIm10vX.mjs +0 -214
- package/dist/convert-html-BI7SFKwK.mjs +0 -13
- package/dist/convert-html-BbJEHZTW.mjs +0 -13
- package/dist/convert-html-BcYeUJKw.mjs +0 -13
- package/dist/convert-html-BxJX_msU.mjs +0 -13
- package/dist/convert-html-CS_2LG6q.mjs +0 -13
- package/dist/convert-html-DEW3D-Ub.mjs +0 -13
- package/dist/convert-html-DGBMQXkH.mjs +0 -13
- package/dist/convert-html-DGTszKTe.mjs +0 -13
- package/dist/convert-html-Oocfb7JD.mjs +0 -13
- package/dist/convert-html-RCkTt7d_.mjs +0 -13
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
// src/shared/color-presets.ts
|
|
2
2
|
var e = [
|
|
3
3
|
{
|
|
4
4
|
name: "gray",
|
|
@@ -92,8 +92,7 @@ var e = [
|
|
|
92
92
|
bg: "#4e1a18"
|
|
93
93
|
}
|
|
94
94
|
];
|
|
95
|
-
|
|
96
|
-
//#region src/components/utils/default-page-colors.ts
|
|
95
|
+
// src/shared/default-page-colors.ts
|
|
97
96
|
function n(e) {
|
|
98
97
|
let t = e.replace(/\s/g, "").toLowerCase();
|
|
99
98
|
return t === "rgb(255,255,255)" || t === "#ffffff" || t === "#fff" || t === "white";
|
|
@@ -184,8 +183,7 @@ function l(e) {
|
|
|
184
183
|
let t = o(e);
|
|
185
184
|
return t !== null && t.r <= c && t.g <= c && t.b <= c;
|
|
186
185
|
}
|
|
187
|
-
|
|
188
|
-
//#region src/components/utils/color-mapping.ts
|
|
186
|
+
// src/shared/color-mapping.ts
|
|
189
187
|
function u(e, t, n) {
|
|
190
188
|
let r = t / 100, i = n / 100;
|
|
191
189
|
if (r === 0) {
|
|
@@ -233,12 +231,12 @@ function d(e) {
|
|
|
233
231
|
];
|
|
234
232
|
let a = /^rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*[\d.]+\s*)?\)$/i.exec(e);
|
|
235
233
|
if (a) return [
|
|
236
|
-
Number(a[1]),
|
|
237
|
-
Number(a[2]),
|
|
238
|
-
Number(a[3])
|
|
234
|
+
Math.min(255, Number(a[1])),
|
|
235
|
+
Math.min(255, Number(a[2])),
|
|
236
|
+
Math.min(255, Number(a[3]))
|
|
239
237
|
];
|
|
240
238
|
let o = /^hsla?\(\s*([\d.]+)\s*,\s*([\d.]+)%\s*,\s*([\d.]+)%\s*(?:,\s*[\d.]+\s*)?\)$/i.exec(e);
|
|
241
|
-
return o ? u(Number(o[1]), Number(o[2]), Number(o[3])) : null;
|
|
239
|
+
return o ? u(Number(o[1]), Math.min(100, Number(o[2])), Math.min(100, Number(o[3]))) : null;
|
|
242
240
|
}
|
|
243
241
|
var f = .1;
|
|
244
242
|
function p(e) {
|
|
@@ -283,26 +281,27 @@ function h(t, r) {
|
|
|
283
281
|
distance: Infinity
|
|
284
282
|
}).color;
|
|
285
283
|
}
|
|
286
|
-
function g(
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
let
|
|
284
|
+
function g(e, t) {
|
|
285
|
+
return t === "bg" && (n(e) || i(e)) ? null : ee(e, t);
|
|
286
|
+
}
|
|
287
|
+
function ee(n, r) {
|
|
288
|
+
let i = d(n);
|
|
289
|
+
if (i === null) return null;
|
|
290
|
+
let a = p(i);
|
|
291
291
|
return [...e, ...t].reduce((e, t) => {
|
|
292
|
-
let n = d(t[
|
|
292
|
+
let n = d(t[r]);
|
|
293
293
|
if (n === null) return e;
|
|
294
|
-
let
|
|
295
|
-
return e === null ||
|
|
294
|
+
let i = m(a, p(n));
|
|
295
|
+
return e === null || i < e.distance ? {
|
|
296
296
|
name: t.name,
|
|
297
|
-
distance:
|
|
297
|
+
distance: i
|
|
298
298
|
} : e;
|
|
299
299
|
}, null)?.name ?? null;
|
|
300
300
|
}
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
var _ = "data-blok-page-id", ee = "Page", te = (e) => {
|
|
301
|
+
// src/shared/page-reference.ts
|
|
302
|
+
var _ = "data-blok-page-id", te = "Page", ne = (e) => {
|
|
304
303
|
let t = e.getAttribute(_);
|
|
305
|
-
return t !== null && t !== "" ? (e.textContent =
|
|
304
|
+
return t !== null && t !== "" ? (e.textContent = te, { [_]: !0 }) : {
|
|
306
305
|
href: !0,
|
|
307
306
|
target: !0,
|
|
308
307
|
rel: !0
|
|
@@ -324,7 +323,7 @@ var _ = "data-blok-page-id", ee = "Page", te = (e) => {
|
|
|
324
323
|
"SMALL",
|
|
325
324
|
"SPAN",
|
|
326
325
|
"FONT"
|
|
327
|
-
]),
|
|
326
|
+
]), re = new Set([...v].filter((e) => e !== "A")), ie = /* @__PURE__ */ new Set([
|
|
328
327
|
"IMG",
|
|
329
328
|
"IFRAME",
|
|
330
329
|
"VIDEO",
|
|
@@ -334,12 +333,12 @@ var _ = "data-blok-page-id", ee = "Page", te = (e) => {
|
|
|
334
333
|
"CANVAS",
|
|
335
334
|
"OBJECT",
|
|
336
335
|
"EMBED"
|
|
337
|
-
]),
|
|
336
|
+
]), ae = /* @__PURE__ */ new Set([
|
|
338
337
|
"U",
|
|
339
338
|
"S",
|
|
340
339
|
"DEL",
|
|
341
340
|
"INS"
|
|
342
|
-
]),
|
|
341
|
+
]), oe = /* @__PURE__ */ new Set([
|
|
343
342
|
"background-color",
|
|
344
343
|
"background",
|
|
345
344
|
"text-decoration",
|
|
@@ -348,7 +347,7 @@ var _ = "data-blok-page-id", ee = "Page", te = (e) => {
|
|
|
348
347
|
"border-bottom",
|
|
349
348
|
"box-shadow",
|
|
350
349
|
"outline"
|
|
351
|
-
]),
|
|
350
|
+
]), se = /* @__PURE__ */ new Set([
|
|
352
351
|
"",
|
|
353
352
|
"none",
|
|
354
353
|
"transparent",
|
|
@@ -360,16 +359,16 @@ var _ = "data-blok-page-id", ee = "Page", te = (e) => {
|
|
|
360
359
|
}, b = (e) => e.attributes.some((t) => {
|
|
361
360
|
let n = t.name.toLowerCase();
|
|
362
361
|
return n === "id" || e.tagName === "A" && n === "data-blok-page-id";
|
|
363
|
-
}),
|
|
364
|
-
if (!
|
|
362
|
+
}), ce = (e) => ae.has(e.tagName) ? !0 : e.styleDeclarations.some((e) => oe.has(e.property.toLowerCase()) && !se.has(e.value.trim().toLowerCase())), le = (e) => {
|
|
363
|
+
if (!re.has(e.tagName)) return !1;
|
|
365
364
|
let t = e.text();
|
|
366
|
-
return t.trim().length > 0 || e.hasVoidContentDescendant() ? !1 : t.length === 0 || !
|
|
367
|
-
},
|
|
365
|
+
return t.trim().length > 0 || e.hasVoidContentDescendant() ? !1 : t.length === 0 || !ce(e);
|
|
366
|
+
}, ue = (e, t) => !v.has(e.tagName) || b(e) || b(t) ? !1 : y(e) === y(t), de = (e, t) => {
|
|
368
367
|
if (!v.has(e.tagName) || b(e)) return !1;
|
|
369
368
|
let n = y(e);
|
|
370
369
|
return t.some((e) => y(e) === n);
|
|
371
370
|
}, x = { current: void 0 };
|
|
372
|
-
function
|
|
371
|
+
function S(e) {
|
|
373
372
|
x.current ??= document.implementation.createHTMLDocument("");
|
|
374
373
|
let t = x.current.createElement("div");
|
|
375
374
|
return t.innerHTML = e, t;
|
|
@@ -377,9 +376,8 @@ function de(e) {
|
|
|
377
376
|
function fe(e) {
|
|
378
377
|
return new DOMParser().parseFromString(e, "text/html");
|
|
379
378
|
}
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
var S = (e) => {
|
|
379
|
+
// src/components/utils/inline-normalization.ts
|
|
380
|
+
var C = (e) => {
|
|
383
381
|
let t = e.style, n = Array.from({ length: t.length }, (e, n) => {
|
|
384
382
|
let r = t.item(n);
|
|
385
383
|
return {
|
|
@@ -395,11 +393,11 @@ var S = (e) => {
|
|
|
395
393
|
})),
|
|
396
394
|
styleDeclarations: n,
|
|
397
395
|
text: () => e.textContent ?? "",
|
|
398
|
-
hasVoidContentDescendant: () => Array.from(e.querySelectorAll("*")).some((e) =>
|
|
396
|
+
hasVoidContentDescendant: () => Array.from(e.querySelectorAll("*")).some((e) => ie.has(e.tagName.toUpperCase()))
|
|
399
397
|
};
|
|
400
|
-
},
|
|
398
|
+
}, w = (e, t) => {
|
|
401
399
|
let n = e.parentElement;
|
|
402
|
-
return n === null || n === t ? [] : [
|
|
400
|
+
return n === null || n === t ? [] : [C(n), ...w(n, t)];
|
|
403
401
|
}, pe = (e) => {
|
|
404
402
|
let t = e.parentNode;
|
|
405
403
|
if (t !== null) {
|
|
@@ -409,34 +407,32 @@ var S = (e) => {
|
|
|
409
407
|
}, me = (e) => {
|
|
410
408
|
let t = (t) => e.contains(t), n = (e) => t(e) && v.has(e.tagName.toUpperCase()), r = Array.from(e.querySelectorAll("*")).filter((t) => {
|
|
411
409
|
if (!n(t)) return !1;
|
|
412
|
-
let r =
|
|
413
|
-
return
|
|
410
|
+
let r = C(t);
|
|
411
|
+
return le(r) || de(r, w(t, e));
|
|
414
412
|
});
|
|
415
413
|
r.forEach(pe);
|
|
416
414
|
let i = (e, t) => {
|
|
417
415
|
let n = e.nextSibling;
|
|
418
|
-
if (n === null || n.nodeType !== Node.ELEMENT_NODE || !
|
|
416
|
+
if (n === null || n.nodeType !== Node.ELEMENT_NODE || !ue(t, C(n))) return !1;
|
|
419
417
|
let r = n;
|
|
420
418
|
for (; r.firstChild !== null;) e.appendChild(r.firstChild);
|
|
421
419
|
return r.remove(), i(e, t), !0;
|
|
422
|
-
}, a = Array.from(e.querySelectorAll("*")).filter(n).map((e) => t(e) && i(e,
|
|
420
|
+
}, a = Array.from(e.querySelectorAll("*")).filter(n).map((e) => t(e) && i(e, C(e))).some(Boolean);
|
|
423
421
|
return r.length > 0 || a;
|
|
424
|
-
},
|
|
422
|
+
}, T = (e) => {
|
|
425
423
|
let t = (n) => n === 0 || !me(e) ? !1 : (t(n - 1), !0), n = t(10);
|
|
426
424
|
return n && e.normalize?.(), n;
|
|
427
425
|
}, he = "data-blok-columns-candidate", ge = /(<br\s*\/?>)/i, _e = /^<br\s*\/?>$/i;
|
|
428
|
-
function
|
|
426
|
+
function E(e) {
|
|
429
427
|
let t = e.split(ge), n = t.reduce((e, t, n) => _e.test(t) || t.trim() === "" ? e : n, -1);
|
|
430
428
|
return t.slice(0, n + 1).join("").trimEnd();
|
|
431
429
|
}
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
function E(e, t = {}) {
|
|
430
|
+
// src/components/utils/spacer-paragraph.ts
|
|
431
|
+
function D(e, t = {}) {
|
|
435
432
|
let { lineBreaksAreContent: n = !0 } = t, r = Array.from(e.children);
|
|
436
433
|
return !(n ? r.length > 0 : r.some((e) => e.tagName !== "BR")) && (e.textContent ?? "").replace(/\s/g, "") === "";
|
|
437
434
|
}
|
|
438
|
-
|
|
439
|
-
//#region src/tools/list/paste-handler.ts
|
|
435
|
+
// src/tools/list/paste-handler.ts
|
|
440
436
|
var ve = /* @__PURE__ */ new Set(/* @__PURE__ */ "decimal.decimal-leading-zero.lower-roman.upper-roman.lower-greek.lower-latin.upper-latin.lower-alpha.upper-alpha.arabic-indic.armenian.bengali.cambodian.cjk-decimal.devanagari.georgian.gujarati.gurmukhi.hebrew.kannada.khmer.lao.malayalam.mongolian.myanmar.oriya.persian.telugu.thai.tibetan".split(".")), ye = /* @__PURE__ */ new Set([
|
|
441
437
|
"disc",
|
|
442
438
|
"circle",
|
|
@@ -452,15 +448,15 @@ var ve = /* @__PURE__ */ new Set(/* @__PURE__ */ "decimal.decimal-leading-zero.l
|
|
|
452
448
|
if (!r) return null;
|
|
453
449
|
let i = r[1].trim().toLowerCase();
|
|
454
450
|
return ve.has(i) ? "ordered" : ye.has(i) ? "unordered" : null;
|
|
455
|
-
},
|
|
451
|
+
}, O = (e) => {
|
|
456
452
|
if (e instanceof HTMLInputElement && e.type === "checkbox") return e;
|
|
457
453
|
let t = e.querySelector("input[type=\"checkbox\"]");
|
|
458
454
|
return t instanceof HTMLInputElement ? t : null;
|
|
459
455
|
}, xe = (e, t) => {
|
|
460
|
-
let n = e.parentElement, r =
|
|
456
|
+
let n = e.parentElement, r = O(e) !== null;
|
|
461
457
|
return n?.tagName === "OL" ? "ordered" : n?.tagName === "UL" ? r ? "checklist" : "unordered" : be(e) || (r ? "checklist" : t);
|
|
462
458
|
}, Se = (e) => {
|
|
463
|
-
let t =
|
|
459
|
+
let t = O(e);
|
|
464
460
|
if (t === null) return {
|
|
465
461
|
text: e.innerHTML || e.textContent || "",
|
|
466
462
|
checked: !1
|
|
@@ -473,11 +469,11 @@ var ve = /* @__PURE__ */ new Set(/* @__PURE__ */ "decimal.decimal-leading-zero.l
|
|
|
473
469
|
}, Ce = (e) => {
|
|
474
470
|
let t = e.getAttribute("aria-level");
|
|
475
471
|
if (t) return Math.max(0, parseInt(t, 10) - 1);
|
|
476
|
-
let n =
|
|
472
|
+
let n = k(e) - 1;
|
|
477
473
|
return n > 0 ? n : 0;
|
|
478
|
-
},
|
|
474
|
+
}, k = (e) => {
|
|
479
475
|
let t = e.parentElement;
|
|
480
|
-
return t === null ? 0 : +(t.tagName === "UL" || t.tagName === "OL") +
|
|
476
|
+
return t === null ? 0 : +(t.tagName === "UL" || t.tagName === "OL") + k(t);
|
|
481
477
|
}, we = /<br\s*\/?>/i, Te = (e) => e.split(we).map((e) => e.trim()).filter(Boolean), Ee = (e) => e instanceof HTMLElement && (e.tagName === "UL" || e.tagName === "OL"), De = (e) => Array.from(e.querySelectorAll("li")).map((t) => {
|
|
482
478
|
let n = xe(t, e.tagName === "OL" ? "ordered" : "unordered"), r = Ce(t), i = t.cloneNode(!0);
|
|
483
479
|
i.querySelectorAll("ul, ol").forEach((e) => e.remove());
|
|
@@ -485,16 +481,16 @@ var ve = /* @__PURE__ */ new Set(/* @__PURE__ */ "decimal.decimal-leading-zero.l
|
|
|
485
481
|
return {
|
|
486
482
|
tool: "list",
|
|
487
483
|
data: {
|
|
488
|
-
text:
|
|
484
|
+
text: E(a).trim(),
|
|
489
485
|
style: n,
|
|
490
486
|
checked: o,
|
|
491
487
|
depth: r
|
|
492
488
|
}
|
|
493
489
|
};
|
|
494
|
-
}),
|
|
490
|
+
}), A = (e) => Array.from(e.querySelectorAll("tr")).filter((t) => {
|
|
495
491
|
let n = t.closest("table")?.parentElement?.closest("table");
|
|
496
492
|
return n == null || !e.contains(n);
|
|
497
|
-
}),
|
|
493
|
+
}), j = (e) => Array.from(e.children).filter((e) => e.tagName === "TD" || e.tagName === "TH"), Oe = (e) => {
|
|
498
494
|
let t = e.cloneNode(!0);
|
|
499
495
|
return t.querySelectorAll("br").forEach((e) => e.replaceWith("\n")), t.textContent ?? "";
|
|
500
496
|
}, ke = [
|
|
@@ -510,7 +506,7 @@ var ve = /* @__PURE__ */ new Set(/* @__PURE__ */ "decimal.decimal-leading-zero.l
|
|
|
510
506
|
let e = t.ownerDocument;
|
|
511
507
|
t.replaceWith(e.createElement("br"), ...Array.from(t.childNodes), e.createElement("br"));
|
|
512
508
|
}
|
|
513
|
-
}, je = (e) => e instanceof HTMLElement && (e.tagName === "PRE" || e.tagName === "BLOK-CELL-CODE"),
|
|
509
|
+
}, je = (e) => e instanceof HTMLElement && (e.tagName === "PRE" || e.tagName === "BLOK-CELL-CODE"), M = (e) => {
|
|
514
510
|
let t = [], n = [], r = () => {
|
|
515
511
|
Te(n.join("")).forEach((e) => t.push({
|
|
516
512
|
tool: "paragraph",
|
|
@@ -520,28 +516,27 @@ var ve = /* @__PURE__ */ new Set(/* @__PURE__ */ "decimal.decimal-leading-zero.l
|
|
|
520
516
|
for (let i of e) Ee(i) ? (r(), t.push(...De(i))) : i instanceof HTMLElement && (i.tagName === "P" || i.tagName === "DIV") ? (r(), n.push(i.innerHTML), r()) : je(i) ? (r(), t.push({
|
|
521
517
|
tool: "code",
|
|
522
518
|
data: { code: Oe(i) }
|
|
523
|
-
})) : i instanceof HTMLElement && i.tagName === "TABLE" ? (r(),
|
|
519
|
+
})) : i instanceof HTMLElement && i.tagName === "TABLE" ? (r(), A(i).flatMap(j).forEach((e) => t.push(...M(Array.from(e.childNodes))))) : n.push(i instanceof HTMLElement ? i.outerHTML : i.textContent ?? "");
|
|
524
520
|
return r(), t;
|
|
525
521
|
}, Me = (e) => {
|
|
526
|
-
let t =
|
|
522
|
+
let t = S(e), n = M(Array.from(t.childNodes));
|
|
527
523
|
return n.length > 0 ? n : [{
|
|
528
524
|
tool: "paragraph",
|
|
529
525
|
data: { text: "" }
|
|
530
526
|
}];
|
|
531
|
-
}, Ne = /* @__PURE__ */ new Set(/* @__PURE__ */ "aliceblue.antiquewhite.aqua.aquamarine.azure.beige.bisque.black.blanchedalmond.blue.blueviolet.brown.burlywood.cadetblue.chartreuse.chocolate.coral.cornflowerblue.cornsilk.crimson.cyan.darkblue.darkcyan.darkgoldenrod.darkgray.darkgreen.darkgrey.darkkhaki.darkmagenta.darkolivegreen.darkorange.darkorchid.darkred.darksalmon.darkseagreen.darkslateblue.darkslategray.darkslategrey.darkturquoise.darkviolet.deeppink.deepskyblue.dimgray.dimgrey.dodgerblue.firebrick.floralwhite.forestgreen.fuchsia.gainsboro.ghostwhite.gold.goldenrod.gray.green.greenyellow.grey.honeydew.hotpink.indianred.indigo.ivory.khaki.lavender.lavenderblush.lawngreen.lemonchiffon.lightblue.lightcoral.lightcyan.lightgoldenrodyellow.lightgray.lightgreen.lightgrey.lightpink.lightsalmon.lightseagreen.lightskyblue.lightslategray.lightslategrey.lightsteelblue.lightyellow.lime.limegreen.linen.magenta.maroon.mediumaquamarine.mediumblue.mediumorchid.mediumpurple.mediumseagreen.mediumslateblue.mediumspringgreen.mediumturquoise.mediumvioletred.midnightblue.mintcream.mistyrose.moccasin.navajowhite.navy.oldlace.olive.olivedrab.orange.orangered.orchid.palegoldenrod.palegreen.paleturquoise.palevioletred.papayawhip.peachpuff.peru.pink.plum.powderblue.purple.rebeccapurple.red.rosybrown.royalblue.saddlebrown.salmon.sandybrown.seagreen.seashell.sienna.silver.skyblue.slateblue.slategray.slategrey.snow.springgreen.steelblue.tan.teal.thistle.tomato.turquoise.violet.wheat.white.whitesmoke.yellow.yellowgreen".split(".")), Pe = /* @__PURE__ */ new Set(["transparent", "currentcolor"]), Fe = 256,
|
|
527
|
+
}, Ne = /* @__PURE__ */ new Set(/* @__PURE__ */ "aliceblue.antiquewhite.aqua.aquamarine.azure.beige.bisque.black.blanchedalmond.blue.blueviolet.brown.burlywood.cadetblue.chartreuse.chocolate.coral.cornflowerblue.cornsilk.crimson.cyan.darkblue.darkcyan.darkgoldenrod.darkgray.darkgreen.darkgrey.darkkhaki.darkmagenta.darkolivegreen.darkorange.darkorchid.darkred.darksalmon.darkseagreen.darkslateblue.darkslategray.darkslategrey.darkturquoise.darkviolet.deeppink.deepskyblue.dimgray.dimgrey.dodgerblue.firebrick.floralwhite.forestgreen.fuchsia.gainsboro.ghostwhite.gold.goldenrod.gray.green.greenyellow.grey.honeydew.hotpink.indianred.indigo.ivory.khaki.lavender.lavenderblush.lawngreen.lemonchiffon.lightblue.lightcoral.lightcyan.lightgoldenrodyellow.lightgray.lightgreen.lightgrey.lightpink.lightsalmon.lightseagreen.lightskyblue.lightslategray.lightslategrey.lightsteelblue.lightyellow.lime.limegreen.linen.magenta.maroon.mediumaquamarine.mediumblue.mediumorchid.mediumpurple.mediumseagreen.mediumslateblue.mediumspringgreen.mediumturquoise.mediumvioletred.midnightblue.mintcream.mistyrose.moccasin.navajowhite.navy.oldlace.olive.olivedrab.orange.orangered.orchid.palegoldenrod.palegreen.paleturquoise.palevioletred.papayawhip.peachpuff.peru.pink.plum.powderblue.purple.rebeccapurple.red.rosybrown.royalblue.saddlebrown.salmon.sandybrown.seagreen.seashell.sienna.silver.skyblue.slateblue.slategray.slategrey.snow.springgreen.steelblue.tan.teal.thistle.tomato.turquoise.violet.wheat.white.whitesmoke.yellow.yellowgreen".split(".")), Pe = /* @__PURE__ */ new Set(["transparent", "currentcolor"]), Fe = 256, N = "[+-]?(?:\\d+(?:\\.\\d+)?|\\.\\d+)", P = `${N}%?`, F = `${N}%`, I = `${N}(?:deg|grad|rad|turn)?`, L = " *, *", R = " +", z = `(?: */ *${P})?`, Ie = RegExp(`^rgba?\\( *${P}${L}${P}${L}${P}(?:${L}${P})? *\\)$`, "i"), Le = RegExp(`^rgba?\\( *${P}${R}${P}${R}${P}${z} *\\)$`, "i"), Re = RegExp(`^hsla?\\( *${I}${L}${F}${L}${F}(?:${L}${P})? *\\)$`, "i"), ze = RegExp(`^hsla?\\( *${I}${R}${P}${R}${P}${z} *\\)$`, "i"), Be = /^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/i, Ve = /^var\(--[a-zA-Z0-9_-]+\)$/, B = (e) => {
|
|
532
528
|
if (typeof e != "string" || e.length === 0 || e.length > Fe) return !1;
|
|
533
529
|
let t = e.toLowerCase();
|
|
534
530
|
return Ne.has(t) || Pe.has(t) || Be.test(e) || Ve.test(e) || Ie.test(e) || Le.test(e) || Re.test(e) || ze.test(e);
|
|
535
531
|
};
|
|
536
|
-
|
|
537
|
-
//#region src/components/modules/paste/google-docs-preprocessor.ts
|
|
532
|
+
// src/components/modules/paste/google-docs-preprocessor.ts
|
|
538
533
|
function He(e, { keepTables: t = !1 } = {}) {
|
|
539
|
-
let n =
|
|
540
|
-
return nt(n, r), r && !t && it(n), ct(n), r && !t && at(n), r && Ke(n),
|
|
534
|
+
let n = S(e), r = qe(n);
|
|
535
|
+
return nt(n, r), r && !t && it(n), ct(n), r && !t && at(n), r && Ke(n), T(n), n.innerHTML;
|
|
541
536
|
}
|
|
542
|
-
function
|
|
537
|
+
function V(e, t) {
|
|
543
538
|
let n = e.parentElement;
|
|
544
|
-
return n === null ? null : n === t ? e :
|
|
539
|
+
return n === null ? null : n === t ? e : V(n, t);
|
|
545
540
|
}
|
|
546
541
|
function Ue(e, t, n) {
|
|
547
542
|
let r = e.cloneNode(!1), i = [];
|
|
@@ -571,15 +566,15 @@ function Ge(e, t) {
|
|
|
571
566
|
};
|
|
572
567
|
return n(e, null, null);
|
|
573
568
|
}
|
|
574
|
-
function
|
|
569
|
+
function H(e, t) {
|
|
575
570
|
let n = e.parentElement;
|
|
576
|
-
return n === null || n === t ? !1 : n.tagName === "TABLE" ||
|
|
571
|
+
return n === null || n === t ? !1 : n.tagName === "TABLE" || H(n, t);
|
|
577
572
|
}
|
|
578
573
|
function Ke(e) {
|
|
579
574
|
let t = Array.from(e.querySelectorAll("img"));
|
|
580
575
|
for (let n of t) {
|
|
581
|
-
if (
|
|
582
|
-
let t =
|
|
576
|
+
if (H(n, e)) continue;
|
|
577
|
+
let t = V(n, e);
|
|
583
578
|
if (!t) continue;
|
|
584
579
|
let { before: r, after: i } = Ge(n, t), a = document.createDocumentFragment();
|
|
585
580
|
r && a.appendChild(r), a.appendChild(n), i && a.appendChild(i), t.replaceWith(a);
|
|
@@ -595,7 +590,7 @@ function qe(e) {
|
|
|
595
590
|
function Je(e, t, n) {
|
|
596
591
|
return e ? `background-color: ${n}` : t ? "background-color: transparent" : "";
|
|
597
592
|
}
|
|
598
|
-
function
|
|
593
|
+
function U(e) {
|
|
599
594
|
if (e.closest("a") !== null) return !0;
|
|
600
595
|
let t = e.querySelector("a");
|
|
601
596
|
return t !== null && t.textContent?.trim() === e.textContent?.trim();
|
|
@@ -648,9 +643,9 @@ var Qe = /* @__PURE__ */ new Set([
|
|
|
648
643
|
"H5",
|
|
649
644
|
"H6"
|
|
650
645
|
]);
|
|
651
|
-
function
|
|
646
|
+
function W(e) {
|
|
652
647
|
let t = e.parentElement;
|
|
653
|
-
return t === null ? !1 : Qe.has(t.tagName) ? !0 :
|
|
648
|
+
return t === null ? !1 : Qe.has(t.tagName) ? !0 : W(t);
|
|
654
649
|
}
|
|
655
650
|
var $e = {
|
|
656
651
|
super: "sup",
|
|
@@ -663,10 +658,10 @@ function et(e) {
|
|
|
663
658
|
let n = document.implementation.createHTMLDocument("").createElement("div");
|
|
664
659
|
n.style.cssText = e;
|
|
665
660
|
let r = n.style.backgroundColor;
|
|
666
|
-
return
|
|
661
|
+
return B(r) && r.toLowerCase() !== "currentcolor" ? r : void 0;
|
|
667
662
|
}
|
|
668
663
|
function tt(e, t) {
|
|
669
|
-
let n = e.getAttribute("style") ?? "", r = /font-weight\s*:\s*(700|bold)/i.test(n) && !
|
|
664
|
+
let n = e.getAttribute("style") ?? "", r = /font-weight\s*:\s*(700|bold)/i.test(n) && !W(e), i = /font-style\s*:\s*italic/i.test(n), a = /(?<![a-z-])color\s*:\s*([^;]+)/i.exec(n)?.[1]?.trim(), o = et(n), c = !(a !== void 0 && U(e)) && (t ? a !== void 0 && !l(a) : a !== void 0 && !l(a) && !Xe(a)), u = o !== void 0 && !s(o), d = t ? /text-decoration(?:-line)?\s*:\s*([^;]+)/i.exec(n)?.[1] ?? "" : "", f = t ? /vertical-align\s*:\s*([^;]+)/i.exec(n)?.[1]?.trim() ?? "" : "", p = /underline/i.test(d) && !U(e), m = /line-through/i.test(d), h = $e[f.toLowerCase()];
|
|
670
665
|
if (!r && !i && !c && !u && !p && !m && h === void 0) return null;
|
|
671
666
|
let g = Ze(e.innerHTML, c, u, a, o);
|
|
672
667
|
return [
|
|
@@ -693,14 +688,14 @@ function rt(e) {
|
|
|
693
688
|
function it(e) {
|
|
694
689
|
if (e.querySelector("google-sheets-html-origin") === null) for (let t of Array.from(e.querySelectorAll("table"))) {
|
|
695
690
|
if (t.parentElement?.closest("table") !== null) continue;
|
|
696
|
-
let e =
|
|
691
|
+
let e = A(t).map(j);
|
|
697
692
|
e.length === 0 || e.some((e) => e.length !== 1) || (e.length === 1 || t.querySelector("img") !== null) && t.replaceWith(...e.flatMap(([e]) => Array.from(e.childNodes)));
|
|
698
693
|
}
|
|
699
694
|
}
|
|
700
695
|
function at(e) {
|
|
701
696
|
if (e.querySelector("google-sheets-html-origin") === null) for (let t of Array.from(e.querySelectorAll("table"))) {
|
|
702
697
|
if (t.parentElement?.closest("table") !== null) continue;
|
|
703
|
-
let e =
|
|
698
|
+
let e = A(t).map(j);
|
|
704
699
|
if (e.length === 0) continue;
|
|
705
700
|
let n = e[0].length;
|
|
706
701
|
if (!e.every((e) => e.length === n)) continue;
|
|
@@ -709,35 +704,34 @@ function at(e) {
|
|
|
709
704
|
}
|
|
710
705
|
}
|
|
711
706
|
function ot(e) {
|
|
712
|
-
if (
|
|
707
|
+
if (D(e)) {
|
|
713
708
|
e.remove();
|
|
714
709
|
return;
|
|
715
710
|
}
|
|
716
711
|
let t = e.ownerDocument.createRange().createContextualFragment(e.innerHTML + "<br>");
|
|
717
712
|
e.replaceWith(t);
|
|
718
713
|
}
|
|
719
|
-
var
|
|
714
|
+
var G = /(?<![a-z-])text-align\s*:\s*([^;]+)/i;
|
|
720
715
|
function st(e) {
|
|
721
|
-
let t =
|
|
716
|
+
let t = G.exec(e.getAttribute("style") ?? "")?.[1], n = e.getAttribute("align")?.trim();
|
|
722
717
|
return (t ?? (n !== void 0 && /^[a-z]+$/i.test(n) ? n : void 0))?.trim().toLowerCase();
|
|
723
718
|
}
|
|
724
|
-
function
|
|
719
|
+
function K(e) {
|
|
725
720
|
let t = e.getAttribute("style") ?? "";
|
|
726
|
-
if (
|
|
727
|
-
let n = Array.from(e.querySelectorAll("p")).filter((t) => t.closest("td, th") === e && !
|
|
721
|
+
if (G.test(t)) return;
|
|
722
|
+
let n = Array.from(e.querySelectorAll("p")).filter((t) => t.closest("td, th") === e && !D(t)), r = new Set(n.map(st)), [i] = r;
|
|
728
723
|
r.size === 1 && i !== void 0 && e.setAttribute("style", t === "" ? `text-align:${i}` : `${t};text-align:${i}`);
|
|
729
724
|
}
|
|
730
725
|
function ct(e) {
|
|
731
726
|
let t = Array.from(e.querySelectorAll("td, th"));
|
|
732
|
-
t.forEach(
|
|
727
|
+
t.forEach(K);
|
|
733
728
|
for (let e of t) {
|
|
734
729
|
let t = e.querySelectorAll("p");
|
|
735
|
-
t.length !== 0 && (Array.from(t).forEach(ot), e.innerHTML =
|
|
730
|
+
t.length !== 0 && (Array.from(t).forEach(ot), e.innerHTML = E(e.innerHTML));
|
|
736
731
|
}
|
|
737
732
|
}
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
var lt = 1e3, ut = 65534, K = (e, t, n) => {
|
|
733
|
+
// src/tools/table/table-operations.ts
|
|
734
|
+
var lt = 1e3, ut = 65534, q = (e, t, n) => {
|
|
741
735
|
let r = Number.parseInt(e.getAttribute(t) ?? "", 10);
|
|
742
736
|
return !Number.isFinite(r) || r < 1 ? 1 : Math.min(r, n);
|
|
743
737
|
}, dt = (e, t) => {
|
|
@@ -749,8 +743,8 @@ var lt = 1e3, ut = 65534, K = (e, t, n) => {
|
|
|
749
743
|
});
|
|
750
744
|
};
|
|
751
745
|
n.forEach((e, s) => {
|
|
752
|
-
|
|
753
|
-
let l = a(r[s], e), u =
|
|
746
|
+
j(e).reduce((e, c) => {
|
|
747
|
+
let l = a(r[s], e), u = q(c, "colspan", lt), d = Math.min(q(c, "rowspan", ut), n.length - s);
|
|
754
748
|
return r[s][l] = t.cell(c, {
|
|
755
749
|
colspan: u,
|
|
756
750
|
rowspan: d
|
|
@@ -759,7 +753,7 @@ var lt = 1e3, ut = 65534, K = (e, t, n) => {
|
|
|
759
753
|
});
|
|
760
754
|
let s = i.hasMerges ? r : r.filter((e) => e.length > 0), c = s.reduce((e, t) => Math.max(e, t.length), 0);
|
|
761
755
|
return s.map((e) => Array.from({ length: c }, (n, r) => e[r] ?? t.filler()));
|
|
762
|
-
},
|
|
756
|
+
}, J = "data-latex", ft = /* @__PURE__ */ new Set(["color", "background-color"]), pt = {
|
|
763
757
|
br: !0,
|
|
764
758
|
strong: {},
|
|
765
759
|
b: {},
|
|
@@ -768,18 +762,20 @@ var lt = 1e3, ut = 65534, K = (e, t, n) => {
|
|
|
768
762
|
u: {},
|
|
769
763
|
s: {},
|
|
770
764
|
del: {},
|
|
771
|
-
a:
|
|
765
|
+
a: ne,
|
|
772
766
|
code: {},
|
|
773
767
|
sup: {},
|
|
774
768
|
sub: {},
|
|
775
769
|
mark: (e) => {
|
|
776
|
-
let t = e.style
|
|
770
|
+
let t = e.style;
|
|
771
|
+
if (t === void 0) return {};
|
|
772
|
+
let n = Array.from({ length: t.length }, (e, n) => t.item(n));
|
|
777
773
|
for (let e of n) ft.has(e) || t.removeProperty(e);
|
|
778
774
|
return t.length > 0 ? { style: !0 } : {};
|
|
779
775
|
},
|
|
780
776
|
span: (e) => {
|
|
781
|
-
let t = e.getAttribute(
|
|
782
|
-
return t !== null && (e.textContent !== t && (e.textContent = t), { [
|
|
777
|
+
let t = e.getAttribute(J);
|
|
778
|
+
return t !== null && (e.textContent !== t && (e.textContent = t), { [J]: !0 });
|
|
783
779
|
}
|
|
784
780
|
}, mt = [
|
|
785
781
|
"left",
|
|
@@ -809,9 +805,9 @@ function yt(e) {
|
|
|
809
805
|
let n = document.implementation.createHTMLDocument("").createElement("div");
|
|
810
806
|
return n.style.cssText = e, n.style.backgroundColor || void 0;
|
|
811
807
|
}
|
|
812
|
-
function
|
|
808
|
+
function Y(e) {
|
|
813
809
|
let t = (/(?<![a-z-])direction\s*:\s*(rtl|ltr)\b/i.exec(e.getAttribute("style") ?? "")?.[1] ?? e.getAttribute("dir"))?.trim().toLowerCase();
|
|
814
|
-
return t === "rtl" || t === "ltr" ? t : e.parentElement === null ? "ltr" :
|
|
810
|
+
return t === "rtl" || t === "ltr" ? t : e.parentElement === null ? "ltr" : Y(e.parentElement);
|
|
815
811
|
}
|
|
816
812
|
function bt(e, t = "ltr") {
|
|
817
813
|
let n = {}, r = yt(e);
|
|
@@ -823,20 +819,18 @@ function bt(e, t = "ltr") {
|
|
|
823
819
|
}
|
|
824
820
|
function xt(e, t = "ltr") {
|
|
825
821
|
let n = e.getAttribute("style") ?? "", r = [n], i = e.getAttribute("align")?.trim(), a = e.getAttribute("valign")?.trim(), o = e.getAttribute("bgcolor")?.trim();
|
|
826
|
-
return i !== void 0 && /^[a-z]+$/i.test(i) && !/(?<![a-z-])text-align\s*:/i.test(n) && r.push(`text-align:${i}`), a !== void 0 && /^[a-z]+$/i.test(a) && !/vertical-align\s*:/i.test(n) && r.push(`vertical-align:${a}`),
|
|
822
|
+
return i !== void 0 && /^[a-z]+$/i.test(i) && !/(?<![a-z-])text-align\s*:/i.test(n) && r.push(`text-align:${i}`), a !== void 0 && /^[a-z]+$/i.test(a) && !/vertical-align\s*:/i.test(n) && r.push(`vertical-align:${a}`), B(o) && !/(?<![a-z-])background(?:-color)?\s*:/i.test(n) && r.push(`background-color:${o}`), bt(r.join(";"), t);
|
|
827
823
|
}
|
|
828
|
-
|
|
829
|
-
//#region src/components/modules/paste/table-direction-preprocessor.ts
|
|
824
|
+
// src/components/modules/paste/table-direction-preprocessor.ts
|
|
830
825
|
function St(e) {
|
|
831
826
|
if (!/<table[\s>]/i.test(e)) return e;
|
|
832
827
|
let t = fe(e), n = Array.from(t.querySelectorAll("table")).filter((e) => {
|
|
833
828
|
let t = e.getAttribute("dir")?.trim().toLowerCase() === "rtl" ? "rtl" : "ltr";
|
|
834
|
-
return
|
|
829
|
+
return Y(e) !== t;
|
|
835
830
|
});
|
|
836
|
-
return n.length === 0 ? e : (n.forEach((e) => e.setAttribute("dir",
|
|
831
|
+
return n.length === 0 ? e : (n.forEach((e) => e.setAttribute("dir", Y(e))), t.documentElement.outerHTML);
|
|
837
832
|
}
|
|
838
|
-
|
|
839
|
-
//#region src/preprocess/legacy-cms-html.ts
|
|
833
|
+
// src/preprocess/legacy-cms-html.ts
|
|
840
834
|
function Ct(e) {
|
|
841
835
|
wt(e), Dt(e), At(e), Mt(e), Nt(e), Ft(e);
|
|
842
836
|
}
|
|
@@ -845,7 +839,7 @@ function wt(e) {
|
|
|
845
839
|
for (let n of Array.from(e.querySelectorAll("div[style]"))) {
|
|
846
840
|
if (n.closest("table")) continue;
|
|
847
841
|
let e = kt(n);
|
|
848
|
-
if (!e ||
|
|
842
|
+
if (!e || Z(e)) continue;
|
|
849
843
|
let r = t.createElement("aside");
|
|
850
844
|
r.style.backgroundColor = e, r.append(...Array.from(n.childNodes)), Tt(r), Et(r), n.replaceWith(r);
|
|
851
845
|
}
|
|
@@ -863,12 +857,12 @@ function Et(e) {
|
|
|
863
857
|
e?.tagName === "BR" && e.remove();
|
|
864
858
|
}
|
|
865
859
|
}
|
|
866
|
-
var
|
|
860
|
+
var X = 250;
|
|
867
861
|
function Dt(e) {
|
|
868
862
|
let t = e.querySelectorAll("[style*=\"background-color\"]");
|
|
869
|
-
for (let e of Array.from(t))
|
|
863
|
+
for (let e of Array.from(t)) Z(e.style.backgroundColor) && (e.style.removeProperty("background-color"), e.getAttribute("style")?.trim() === "" && e.removeAttribute("style"), Ot(e) && e.replaceWith(...Array.from(e.childNodes)));
|
|
870
864
|
}
|
|
871
|
-
function
|
|
865
|
+
function Z(e) {
|
|
872
866
|
if (!e) return !1;
|
|
873
867
|
let t = e.replace(/\s/g, "").toLowerCase();
|
|
874
868
|
if (t === "transparent") return !0;
|
|
@@ -876,7 +870,7 @@ function X(e) {
|
|
|
876
870
|
if (!n) return !1;
|
|
877
871
|
if ((n[4] === void 0 ? 1 : parseFloat(n[4])) === 0) return !0;
|
|
878
872
|
let r = parseInt(n[1], 10), i = parseInt(n[2], 10), a = parseInt(n[3], 10);
|
|
879
|
-
return r >=
|
|
873
|
+
return r >= X && i >= X && a >= X;
|
|
880
874
|
}
|
|
881
875
|
function Ot(e) {
|
|
882
876
|
return e.attributes.length > 0 ? !1 : (e.textContent ?? "").replace(/[\s\u00A0]/g, "").length === 0;
|
|
@@ -908,7 +902,7 @@ function jt(e) {
|
|
|
908
902
|
n.append(...Array.from(e.childNodes)), n.append(t.createElement("br")), e.replaceWith(n);
|
|
909
903
|
}
|
|
910
904
|
function Mt(e) {
|
|
911
|
-
for (let t of Array.from(e.querySelectorAll("p"))) t.closest("td") || t.closest("th") ||
|
|
905
|
+
for (let t of Array.from(e.querySelectorAll("p"))) t.closest("td") || t.closest("th") || D(t, { lineBreaksAreContent: !1 }) && t.remove();
|
|
912
906
|
}
|
|
913
907
|
function Nt(e) {
|
|
914
908
|
let t = e.ownerDocument;
|
|
@@ -958,8 +952,7 @@ function zt(e) {
|
|
|
958
952
|
}
|
|
959
953
|
return null;
|
|
960
954
|
}
|
|
961
|
-
|
|
962
|
-
//#region src/cli/commands/convert-html/sanitizer.ts
|
|
955
|
+
// src/cli/commands/convert-html/sanitizer.ts
|
|
963
956
|
var Bt = {
|
|
964
957
|
B: !0,
|
|
965
958
|
STRONG: !0,
|
|
@@ -1023,22 +1016,17 @@ function Ht(e) {
|
|
|
1023
1016
|
return e.remove(), t.filter((e) => e.nodeType === e.ELEMENT_NODE);
|
|
1024
1017
|
}
|
|
1025
1018
|
function Ut(e, t) {
|
|
1026
|
-
for (let n of Array.from(e.attributes))
|
|
1019
|
+
for (let n of Array.from(e.attributes)) t !== !0 && t.has(n.name) || e.removeAttribute(n.name);
|
|
1027
1020
|
}
|
|
1028
1021
|
function Wt(e) {
|
|
1029
1022
|
let t = Array.from(e.childNodes);
|
|
1030
1023
|
for (let e of t) {
|
|
1031
1024
|
if (e.nodeType !== e.ELEMENT_NODE) continue;
|
|
1032
1025
|
let n = e, r = Bt[n.tagName];
|
|
1033
|
-
|
|
1034
|
-
t.push(...Ht(n));
|
|
1035
|
-
continue;
|
|
1036
|
-
}
|
|
1037
|
-
Ut(n, r), Wt(n);
|
|
1026
|
+
r === void 0 ? t.push(...Ht(n)) : (Ut(n, r), Wt(n));
|
|
1038
1027
|
}
|
|
1039
1028
|
}
|
|
1040
|
-
|
|
1041
|
-
//#region src/cli/commands/convert-html/id-generator.ts
|
|
1029
|
+
// src/cli/commands/convert-html/id-generator.ts
|
|
1042
1030
|
function Gt() {
|
|
1043
1031
|
let e = /* @__PURE__ */ new Map();
|
|
1044
1032
|
return (t) => {
|
|
@@ -1046,8 +1034,7 @@ function Gt() {
|
|
|
1046
1034
|
return e.set(t, n), `${t}-${n}`;
|
|
1047
1035
|
};
|
|
1048
1036
|
}
|
|
1049
|
-
|
|
1050
|
-
//#region src/components/modules/normalizeInlineImages.ts
|
|
1037
|
+
// src/components/modules/normalizeInlineImages.ts
|
|
1051
1038
|
var Kt = (e) => {
|
|
1052
1039
|
let t = document.createElement("template");
|
|
1053
1040
|
return t.content.append(e), {
|
|
@@ -1085,15 +1072,15 @@ var Kt = (e) => {
|
|
|
1085
1072
|
18,
|
|
1086
1073
|
24
|
|
1087
1074
|
].map((t) => Jt[e >>> t & 63])).join("");
|
|
1088
|
-
},
|
|
1075
|
+
}, Q = (e, t, n, r = 0) => {
|
|
1089
1076
|
let i = Yt(`${e}:${t}:${r}`);
|
|
1090
|
-
return n.has(i) ?
|
|
1077
|
+
return n.has(i) ? Q(e, t, n, r + 1) : (n.add(i), i);
|
|
1091
1078
|
}, Xt = (e, t, n, r, i) => {
|
|
1092
1079
|
let a = [], o = r.find((e) => e.kind === "text" && !e.empty);
|
|
1093
1080
|
for (let [s, c] of r.entries()) {
|
|
1094
1081
|
if (c.kind === "image") {
|
|
1095
1082
|
a.push({
|
|
1096
|
-
id:
|
|
1083
|
+
id: Q(t, s, i),
|
|
1097
1084
|
tool: "image",
|
|
1098
1085
|
data: c.alt !== null && c.alt !== "" ? {
|
|
1099
1086
|
url: c.url,
|
|
@@ -1117,7 +1104,7 @@ var Kt = (e) => {
|
|
|
1117
1104
|
}
|
|
1118
1105
|
let r = {
|
|
1119
1106
|
...e,
|
|
1120
|
-
id:
|
|
1107
|
+
id: Q(t, s, i),
|
|
1121
1108
|
data: {
|
|
1122
1109
|
...e.data,
|
|
1123
1110
|
text: c.html
|
|
@@ -1181,16 +1168,11 @@ var Kt = (e) => {
|
|
|
1181
1168
|
continue;
|
|
1182
1169
|
}
|
|
1183
1170
|
let r = e === void 0 ? void 0 : n.get(e);
|
|
1184
|
-
|
|
1185
|
-
a.push(...r.blocks);
|
|
1186
|
-
continue;
|
|
1187
|
-
}
|
|
1188
|
-
a.push(t);
|
|
1171
|
+
r === void 0 ? a.push(t) : a.push(...r.blocks);
|
|
1189
1172
|
}
|
|
1190
1173
|
return a;
|
|
1191
1174
|
};
|
|
1192
|
-
|
|
1193
|
-
//#region src/cli/commands/convert-html/block-builder.ts
|
|
1175
|
+
// src/cli/commands/convert-html/block-builder.ts
|
|
1194
1176
|
function Qt(e) {
|
|
1195
1177
|
let t = Gt(), n = [];
|
|
1196
1178
|
for (let r of Array.from(e.childNodes)) en(r, n, t);
|
|
@@ -1232,15 +1214,12 @@ function en(e, t, n) {
|
|
|
1232
1214
|
}
|
|
1233
1215
|
if (e.nodeType !== Node.ELEMENT_NODE) return;
|
|
1234
1216
|
let r = e, i = r.tagName;
|
|
1235
|
-
if (i === "P") {
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
return;
|
|
1242
|
-
}
|
|
1243
|
-
if (/^H[1-6]$/.test(i)) {
|
|
1217
|
+
if (i === "P") t.push({
|
|
1218
|
+
id: n("paragraph"),
|
|
1219
|
+
type: "paragraph",
|
|
1220
|
+
data: { text: r.innerHTML }
|
|
1221
|
+
});
|
|
1222
|
+
else if (/^H[1-6]$/.test(i)) {
|
|
1244
1223
|
let e = Number(i[1]);
|
|
1245
1224
|
t.push({
|
|
1246
1225
|
id: n("header"),
|
|
@@ -1250,40 +1229,29 @@ function en(e, t, n) {
|
|
|
1250
1229
|
level: e
|
|
1251
1230
|
}
|
|
1252
1231
|
});
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
}
|
|
1277
|
-
if (i === "HR") {
|
|
1278
|
-
t.push({
|
|
1279
|
-
id: n("divider"),
|
|
1280
|
-
type: "divider",
|
|
1281
|
-
data: {}
|
|
1282
|
-
});
|
|
1283
|
-
return;
|
|
1284
|
-
}
|
|
1285
|
-
if (i === "IMG") {
|
|
1286
|
-
let e = r.getAttribute("src") ?? "", i = r.getAttribute("alt") ?? "", a = on(r, "width");
|
|
1232
|
+
} else if (i === "BLOCKQUOTE") t.push({
|
|
1233
|
+
id: n("quote"),
|
|
1234
|
+
type: "quote",
|
|
1235
|
+
data: {
|
|
1236
|
+
text: r.innerHTML,
|
|
1237
|
+
size: "default"
|
|
1238
|
+
}
|
|
1239
|
+
});
|
|
1240
|
+
else if (i === "PRE") t.push({
|
|
1241
|
+
id: n("code"),
|
|
1242
|
+
type: "code",
|
|
1243
|
+
data: {
|
|
1244
|
+
code: r.textContent ?? "",
|
|
1245
|
+
language: "plain-text"
|
|
1246
|
+
}
|
|
1247
|
+
});
|
|
1248
|
+
else if (i === "HR") t.push({
|
|
1249
|
+
id: n("divider"),
|
|
1250
|
+
type: "divider",
|
|
1251
|
+
data: {}
|
|
1252
|
+
});
|
|
1253
|
+
else if (i === "IMG") {
|
|
1254
|
+
let e = r.getAttribute("src") ?? "", i = r.getAttribute("alt") ?? "", a = sn(r, "width");
|
|
1287
1255
|
t.push({
|
|
1288
1256
|
id: n("image"),
|
|
1289
1257
|
type: "image",
|
|
@@ -1295,36 +1263,20 @@ function en(e, t, n) {
|
|
|
1295
1263
|
key: null,
|
|
1296
1264
|
width: a
|
|
1297
1265
|
});
|
|
1298
|
-
|
|
1299
|
-
}
|
|
1300
|
-
if (i === "DETAILS") {
|
|
1266
|
+
} else if (i === "DETAILS") {
|
|
1301
1267
|
let e = r.querySelector("summary"), i = e ? e.innerHTML : r.innerHTML;
|
|
1302
1268
|
t.push({
|
|
1303
1269
|
id: n("toggle"),
|
|
1304
1270
|
type: "toggle",
|
|
1305
1271
|
data: { text: i }
|
|
1306
1272
|
});
|
|
1307
|
-
|
|
1308
|
-
}
|
|
1309
|
-
if (i === "UL" || i === "OL") {
|
|
1310
|
-
Q(r, i === "OL" ? "ordered" : "unordered", 0, t, n);
|
|
1311
|
-
return;
|
|
1312
|
-
}
|
|
1313
|
-
if (i === "TABLE") {
|
|
1314
|
-
tn(r, t, n);
|
|
1315
|
-
return;
|
|
1316
|
-
}
|
|
1317
|
-
if (i === "ASIDE") {
|
|
1318
|
-
nn(r, t, n);
|
|
1319
|
-
return;
|
|
1320
|
-
}
|
|
1321
|
-
t.push({
|
|
1273
|
+
} else i === "UL" || i === "OL" ? tn(r, i === "OL" ? "ordered" : "unordered", 0, t, n) : i === "TABLE" ? nn(r, t, n) : i === "ASIDE" ? rn(r, t, n) : t.push({
|
|
1322
1274
|
id: n("paragraph"),
|
|
1323
1275
|
type: "paragraph",
|
|
1324
1276
|
data: { text: r.innerHTML }
|
|
1325
1277
|
});
|
|
1326
1278
|
}
|
|
1327
|
-
function
|
|
1279
|
+
function tn(e, t, n, r, i) {
|
|
1328
1280
|
let a = e.getAttribute("start"), o = a ? Number(a) : null, s = Array.from(e.children).filter((e) => e.tagName === "LI");
|
|
1329
1281
|
for (let [e, a] of s.entries()) {
|
|
1330
1282
|
let s = a.cloneNode(!0), c = [];
|
|
@@ -1341,17 +1293,17 @@ function Q(e, t, n, r, i) {
|
|
|
1341
1293
|
start: e === 0 && o !== null ? o : null
|
|
1342
1294
|
}
|
|
1343
1295
|
});
|
|
1344
|
-
for (let e of c)
|
|
1296
|
+
for (let e of c) tn(e, e.tagName === "OL" ? "ordered" : "unordered", n + 1, r, i);
|
|
1345
1297
|
}
|
|
1346
1298
|
}
|
|
1347
|
-
function
|
|
1299
|
+
function nn(e, t, n) {
|
|
1348
1300
|
let r = Array.from(e.children).find((e) => e.tagName === "CAPTION")?.innerHTML.trim() ?? "";
|
|
1349
1301
|
r && t.push({
|
|
1350
1302
|
id: n("paragraph"),
|
|
1351
1303
|
type: "paragraph",
|
|
1352
1304
|
data: { text: r }
|
|
1353
1305
|
}), Ae(e);
|
|
1354
|
-
let i = n("table"), a =
|
|
1306
|
+
let i = n("table"), a = A(e), o = dt(a, {
|
|
1355
1307
|
cell: (e, t) => ({
|
|
1356
1308
|
kind: "cell",
|
|
1357
1309
|
el: e,
|
|
@@ -1362,14 +1314,14 @@ function tn(e, t, n) {
|
|
|
1362
1314
|
origin: e
|
|
1363
1315
|
}),
|
|
1364
1316
|
filler: () => ({ kind: "filler" })
|
|
1365
|
-
}), s =
|
|
1317
|
+
}), s = Y(e), c = o.map((e) => e.map((e) => e.kind === "covered" ? {
|
|
1366
1318
|
blocks: [],
|
|
1367
1319
|
mergedInto: e.origin
|
|
1368
1320
|
} : e.kind === "filler" ? {
|
|
1369
1321
|
blocks: [],
|
|
1370
1322
|
color: null,
|
|
1371
1323
|
textColor: null
|
|
1372
|
-
} :
|
|
1324
|
+
} : an(e, s, i, t, n))), l = (e) => e?.tagName === "TH", u = a[0] ? j(a[0]) : [], d = a.some((e) => e.parentElement?.tagName === "THEAD") || u.length > 0 && u.every(l), f = a.length >= 2 && a.every((e) => l(j(e)[0])), p = (o[0] ?? []).map((e) => {
|
|
1373
1325
|
if (e.kind !== "cell" || e.colspan > 1) return null;
|
|
1374
1326
|
let t = parseInt($(e.el, "width") ?? "", 10);
|
|
1375
1327
|
return isNaN(t) ? null : t;
|
|
@@ -1385,10 +1337,10 @@ function tn(e, t, n) {
|
|
|
1385
1337
|
}, h = t.findIndex((e) => e.parent === i);
|
|
1386
1338
|
h >= 0 ? t.splice(h, 0, m) : t.push(m);
|
|
1387
1339
|
}
|
|
1388
|
-
function
|
|
1340
|
+
function rn(e, t, r) {
|
|
1389
1341
|
let a = r("callout"), o = $(e, "background-color"), s = o && !n(o) && !i(o) ? g(o, "bg") : null, c = [];
|
|
1390
1342
|
for (let n of Array.from(e.childNodes)) {
|
|
1391
|
-
let e =
|
|
1343
|
+
let e = on(n, a, t, r);
|
|
1392
1344
|
e && c.push(e);
|
|
1393
1345
|
}
|
|
1394
1346
|
let l = t.findIndex((e) => e.parent === a), u = {
|
|
@@ -1402,7 +1354,7 @@ function nn(e, t, r) {
|
|
|
1402
1354
|
};
|
|
1403
1355
|
l >= 0 ? t.splice(l, 0, u) : t.push(u);
|
|
1404
1356
|
}
|
|
1405
|
-
function
|
|
1357
|
+
function an(e, t, n, r, i) {
|
|
1406
1358
|
let a = e.el, { color: o, textColor: s, placement: c } = xt(a, t), l = a.innerHTML.trim();
|
|
1407
1359
|
return {
|
|
1408
1360
|
blocks: l ? Me(l).map((e) => {
|
|
@@ -1421,7 +1373,7 @@ function rn(e, t, n, r, i) {
|
|
|
1421
1373
|
...e.rowspan > 1 ? { rowspan: e.rowspan } : {}
|
|
1422
1374
|
};
|
|
1423
1375
|
}
|
|
1424
|
-
function
|
|
1376
|
+
function on(e, t, n, r) {
|
|
1425
1377
|
if (e.nodeType === Node.ELEMENT_NODE) {
|
|
1426
1378
|
let i = e, a = r("paragraph");
|
|
1427
1379
|
return n.push({
|
|
@@ -1444,7 +1396,7 @@ function an(e, t, n, r) {
|
|
|
1444
1396
|
}
|
|
1445
1397
|
return null;
|
|
1446
1398
|
}
|
|
1447
|
-
function
|
|
1399
|
+
function sn(e, t) {
|
|
1448
1400
|
let n = $(e, t);
|
|
1449
1401
|
if (!n) return null;
|
|
1450
1402
|
let r = parseInt(n, 10);
|
|
@@ -1456,5 +1408,4 @@ function $(e, t) {
|
|
|
1456
1408
|
let r = RegExp(`(?<![\\-a-z])${t}\\s*:\\s*([^;]+)`).exec(n);
|
|
1457
1409
|
return r ? r[1].trim() : null;
|
|
1458
1410
|
}
|
|
1459
|
-
|
|
1460
|
-
export { G as a, St as i, Vt as n, He as o, Ct as r, w as s, Qt as t };
|
|
1411
|
+
export { K as a, St as i, Vt as n, He as o, Ct as r, T as s, Qt as t };
|