@data_wise/hyper-markdown 1.2.0 → 1.2.1
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/hyper-markdown.css +1 -1
- package/dist/hyper-markdown.es.js +77 -37
- package/dist/hyper-markdown.umd.js +10 -8
- package/package.json +1 -1
|
@@ -59583,34 +59583,36 @@ class zZe extends nD {
|
|
|
59583
59583
|
return;
|
|
59584
59584
|
}
|
|
59585
59585
|
const r = Array.from(e).map(async (n, i) => {
|
|
59586
|
-
if (
|
|
59587
|
-
|
|
59588
|
-
|
|
59589
|
-
|
|
59590
|
-
|
|
59591
|
-
|
|
59592
|
-
|
|
59593
|
-
|
|
59594
|
-
|
|
59586
|
+
if (n.dataset.rendered)
|
|
59587
|
+
return;
|
|
59588
|
+
const a = n.dataset.originalCode || n.textContent || n.dataset.dataset || "", s = n.dataset.datasetId || `dataset-${i}`;
|
|
59589
|
+
try {
|
|
59590
|
+
const o = n.dataset.dataset || "", l = n.dataset.isDatasource === "true" || n.dataset.isDatasource === !0;
|
|
59591
|
+
if (!o.trim())
|
|
59592
|
+
throw new Error("数据集内容为空");
|
|
59593
|
+
let u;
|
|
59594
|
+
if (l)
|
|
59595
|
+
u = await this.parseDataSourceQuery(o);
|
|
59596
|
+
else
|
|
59597
|
+
try {
|
|
59598
|
+
u = new Function(`return (${o})`)();
|
|
59599
|
+
} catch {
|
|
59595
59600
|
try {
|
|
59596
|
-
|
|
59601
|
+
u = JSON.parse(o);
|
|
59597
59602
|
} catch {
|
|
59598
|
-
|
|
59599
|
-
o = JSON.parse(a);
|
|
59600
|
-
} catch {
|
|
59601
|
-
throw new Error("无法解析数据集配置");
|
|
59602
|
-
}
|
|
59603
|
+
throw new Error("无法解析数据集配置");
|
|
59603
59604
|
}
|
|
59604
|
-
|
|
59605
|
-
|
|
59606
|
-
|
|
59607
|
-
|
|
59608
|
-
|
|
59609
|
-
|
|
59610
|
-
|
|
59611
|
-
|
|
59612
|
-
|
|
59613
|
-
}
|
|
59605
|
+
}
|
|
59606
|
+
this.renderDataset(n, u, s), n.dataset.rendered = "true";
|
|
59607
|
+
} catch (o) {
|
|
59608
|
+
console.error("Error rendering dataset:", o), console.error("Dataset ID:", s), console.error("Dataset content that caused error:", a), n.innerHTML = `<div class="dataset-error">数据集渲染错误: ${o.message}</div>`, this.addError({
|
|
59609
|
+
type: "Dataset",
|
|
59610
|
+
message: o.message,
|
|
59611
|
+
code: a,
|
|
59612
|
+
datasetId: s,
|
|
59613
|
+
timestamp: Date.now()
|
|
59614
|
+
});
|
|
59615
|
+
}
|
|
59614
59616
|
});
|
|
59615
59617
|
await Promise.all(r), this.triggerRenderComplete();
|
|
59616
59618
|
}
|
|
@@ -59760,7 +59762,24 @@ class zZe extends nD {
|
|
|
59760
59762
|
* 获取数据集字段
|
|
59761
59763
|
*/
|
|
59762
59764
|
getDatasetFields(e) {
|
|
59763
|
-
|
|
59765
|
+
if (e.dimensions && Array.isArray(e.dimensions))
|
|
59766
|
+
return e.dimensions;
|
|
59767
|
+
if (Array.isArray(e.source) && e.source.length > 0) {
|
|
59768
|
+
const r = e.source[0];
|
|
59769
|
+
if (Array.isArray(r))
|
|
59770
|
+
return r;
|
|
59771
|
+
if (typeof r == "object" && r !== null)
|
|
59772
|
+
return Object.keys(r);
|
|
59773
|
+
throw console.error("getDatasetFields: dataset.source[0] 格式错误", { firstRow: r, dataset: e }), new Error(`数据集第一行格式错误,期望数组或对象,实际类型: ${typeof r}`);
|
|
59774
|
+
} else if (Array.isArray(e) && e.length > 0) {
|
|
59775
|
+
const r = e[0];
|
|
59776
|
+
if (Array.isArray(r))
|
|
59777
|
+
return r;
|
|
59778
|
+
if (typeof r == "object" && r !== null)
|
|
59779
|
+
return Object.keys(r);
|
|
59780
|
+
throw console.error("getDatasetFields: dataset[0] 格式错误", { firstRow: r, dataset: e }), new Error(`数据集第一行格式错误,期望数组或对象,实际类型: ${typeof r}`);
|
|
59781
|
+
}
|
|
59782
|
+
throw console.error("getDatasetFields: 无法提取字段", { dataset: e }), new Error("数据集格式错误: 无法提取字段信息,请检查数据集结构");
|
|
59764
59783
|
}
|
|
59765
59784
|
/**
|
|
59766
59785
|
* 获取数据数量
|
|
@@ -59773,6 +59792,8 @@ class zZe extends nD {
|
|
|
59773
59792
|
*/
|
|
59774
59793
|
getPreviewRows(e, r, n = 5) {
|
|
59775
59794
|
const i = [];
|
|
59795
|
+
if (!Array.isArray(r))
|
|
59796
|
+
throw console.error("getPreviewRows: fields 不是数组", { fields: r, dataset: e }), new Error(`字段列表必须是数组,当前类型: ${typeof r}`);
|
|
59776
59797
|
if (e.dimensions && Array.isArray(e.source))
|
|
59777
59798
|
for (let a = 0; a < Math.min(n, e.source.length); a++) {
|
|
59778
59799
|
const s = e.source[a], o = r.map((l) => `<td>${s[l] || ""}</td>`).join("");
|
|
@@ -59780,12 +59801,18 @@ class zZe extends nD {
|
|
|
59780
59801
|
}
|
|
59781
59802
|
else if (Array.isArray(e.source))
|
|
59782
59803
|
for (let a = 1; a < Math.min(n + 1, e.source.length); a++) {
|
|
59783
|
-
const
|
|
59804
|
+
const s = e.source[a];
|
|
59805
|
+
if (!Array.isArray(s))
|
|
59806
|
+
throw console.error("getPreviewRows: 行数据不是数组", { row: s, index: a, dataset: e }), new Error(`第 ${a} 行数据必须是数组,当前类型: ${typeof s}`);
|
|
59807
|
+
const o = s.map((l) => `<td>${l}</td>`).join("");
|
|
59784
59808
|
i.push(`<tr>${o}</tr>`);
|
|
59785
59809
|
}
|
|
59786
59810
|
else if (Array.isArray(e))
|
|
59787
59811
|
for (let a = 1; a < Math.min(n + 1, e.length); a++) {
|
|
59788
|
-
const
|
|
59812
|
+
const s = e[a];
|
|
59813
|
+
if (!Array.isArray(s))
|
|
59814
|
+
throw console.error("getPreviewRows: 行数据不是数组", { row: s, index: a, dataset: e }), new Error(`第 ${a} 行数据必须是数组,当前类型: ${typeof s}`);
|
|
59815
|
+
const o = s.map((l) => `<td>${l}</td>`).join("");
|
|
59789
59816
|
i.push(`<tr>${o}</tr>`);
|
|
59790
59817
|
}
|
|
59791
59818
|
return i;
|
|
@@ -59883,9 +59910,19 @@ class zZe extends nD {
|
|
|
59883
59910
|
* 获取预览行数据(支持分页)
|
|
59884
59911
|
*/
|
|
59885
59912
|
getPreviewRows(e, r, n = 10, i = 0) {
|
|
59886
|
-
const a = []
|
|
59913
|
+
const a = [];
|
|
59914
|
+
if (!Array.isArray(r))
|
|
59915
|
+
throw console.error("getPreviewRows (分页): fields 不是数组", { fields: r, dataset: e }), new Error(`字段列表必须是数组,当前类型: ${typeof r}`);
|
|
59916
|
+
if (!e.source || !Array.isArray(e.source))
|
|
59917
|
+
throw console.error("getPreviewRows (分页): dataset.source 不存在或不是数组", { dataset: e }), new Error("数据集source必须是数组");
|
|
59918
|
+
const s = Math.min(i + n, e.source.length);
|
|
59887
59919
|
for (let o = i; o < s; o++) {
|
|
59888
|
-
const l = e.source[o]
|
|
59920
|
+
const l = e.source[o];
|
|
59921
|
+
if (!l) {
|
|
59922
|
+
console.warn(`getPreviewRows (分页): 第 ${o} 行数据为空`);
|
|
59923
|
+
continue;
|
|
59924
|
+
}
|
|
59925
|
+
const u = r.map((h) => {
|
|
59889
59926
|
let d = "";
|
|
59890
59927
|
if (Array.isArray(l)) {
|
|
59891
59928
|
const f = r.indexOf(h);
|
|
@@ -60113,12 +60150,15 @@ function UZe(t) {
|
|
|
60113
60150
|
const f = u.includes("datasourceId:");
|
|
60114
60151
|
let p = l;
|
|
60115
60152
|
if (f) {
|
|
60116
|
-
const
|
|
60117
|
-
|
|
60153
|
+
const y = u.match(/datasourceId:\s*(\S+)/);
|
|
60154
|
+
y && y[1] && (p = `datasetId: ${d ? d[1] : h} datasourceId: ${y[1]}
|
|
60118
60155
|
${l}`);
|
|
60119
60156
|
}
|
|
60157
|
+
const g = p.replace(/'/g, "'").replace(/"/g, """), v = `\`\`\`${u}
|
|
60158
|
+
${l}
|
|
60159
|
+
\`\`\``.replace(/'/g, "'").replace(/"/g, """);
|
|
60120
60160
|
return `
|
|
60121
|
-
<div class="dataset-container" data-dataset="${
|
|
60161
|
+
<div class="dataset-container" data-dataset="${g}" data-dataset-id="${h}" data-is-datasource="${f}" data-original-code="${v}">${l}</div>
|
|
60122
60162
|
`;
|
|
60123
60163
|
} catch (h) {
|
|
60124
60164
|
return `<pre class="error">Invalid dataset configuration: ${h.message}</pre>`;
|
|
@@ -141404,12 +141444,12 @@ const Y7t = /* @__PURE__ */ l6e(L7t, [["render", q7t], ["__scopeId", "data-v-3f2
|
|
|
141404
141444
|
findErrorLocation(t, e, r = null, n = null) {
|
|
141405
141445
|
let i = -1, a = r || "Unknown", s = t;
|
|
141406
141446
|
r || (t.includes("ECharts") ? a = "ECharts" : t.includes("数据集") || t.includes("dataset") ? a = "Dataset" : t.includes("Mermaid") && (a = "Mermaid"));
|
|
141407
|
-
let o =
|
|
141447
|
+
let o = -1;
|
|
141408
141448
|
for (let l = 0; l < e.length; l++) {
|
|
141409
141449
|
const u = e[l];
|
|
141410
|
-
|
|
141450
|
+
a === "ECharts" && u.includes("```echarts") || (a === "Dataset" && u.includes("```dataset") ? n && n.includes(u.trim()) && (o = l + 1) : a === "Mermaid" && u.includes("```mermaid") || a === "Container" && u.includes("::: cell"));
|
|
141411
141451
|
}
|
|
141412
|
-
if (o
|
|
141452
|
+
if (o > 0 && (i = o), i > 0) {
|
|
141413
141453
|
const l = Math.max(0, i - 1);
|
|
141414
141454
|
let u = l + 1;
|
|
141415
141455
|
if (a === "Container") {
|
|
@@ -141551,7 +141591,7 @@ function K7t(t, e, r, n, i, a) {
|
|
|
141551
141591
|
}, null, 8, ["visible", "content", "component-type", "onSave", "onClose"])
|
|
141552
141592
|
], 12, X7t);
|
|
141553
141593
|
}
|
|
141554
|
-
const $fr = /* @__PURE__ */ l6e(H7t, [["render", K7t], ["__scopeId", "data-v-
|
|
141594
|
+
const $fr = /* @__PURE__ */ l6e(H7t, [["render", K7t], ["__scopeId", "data-v-4bdabdba"]]);
|
|
141555
141595
|
class Wo {
|
|
141556
141596
|
// The + prefix indicates that these fields aren't writeable
|
|
141557
141597
|
// Lexer holding the input string.
|