Files
lcbp3.np-dms.work/n8n-cache/n8n/public/assets/RunDataTable-Rj0zhULj.js
2025-09-21 20:29:15 +07:00

888 lines
37 KiB
JavaScript
Executable File

import { d as defineComponent, as as useCssModule, x as computed, ez as getCurrentInstance, h as createElementBlock, f as createCommentVNode, g as openBlock, F as Fragment, A as renderList, n as normalizeClass, l as unref, X as renderSlot, j as createBaseVNode, t as toDisplayString, e as createBlock, br as createSlots, w as withCtx, K as mergeProps, _ as _export_sfc, aG as useTemplateRef, r as ref, aY as useNDVStore, a1 as useWorkflowsStore, cK as useTelemetryContext, dI as useExecutionHelpers, et as storeToRefs, o as onMounted, a7 as watch, b2 as withDirectives, i as createVNode, aa as _sfc_main$2, b3 as vShow, c as useI18n, a9 as Tooltip, k as createTextVNode, cQ as InfoTip, ge as Draggable, h7 as __unplugin_components_0, N as N8nIcon, h8 as MappingPill, h9 as shorten, ab as I18nT, ha as getPairedItemId, hb as getMappedExpression, bp as useExternalHooks, al as useTelemetry } from "./index--OJ5nhDf.js";
const _hoisted_1$1 = {
key: 0,
class: "n8n-tree"
};
const _hoisted_2$1 = { key: 1 };
const _hoisted_3$1 = { key: 3 };
const _hoisted_4$1 = { key: 1 };
const _hoisted_5$1 = { key: 1 };
const _sfc_main$1 = /* @__PURE__ */ defineComponent({
...{ name: "N8nTree" },
__name: "Tree",
props: {
value: { default: () => ({}) },
path: { default: () => [] },
depth: { default: 0 },
nodeClass: { default: "" }
},
setup(__props) {
const props = __props;
const $style = useCssModule();
const classes = computed(() => {
return { [props.nodeClass]: !!props.nodeClass, [$style.indent]: props.depth > 0 };
});
const isObject = (data) => {
return typeof data === "object" && data !== null;
};
const isSimple = (data) => {
if (data === null || data === void 0) {
return true;
}
if (typeof data === "object" && Object.keys(data).length === 0) {
return true;
}
if (Array.isArray(data) && data.length === 0) {
return true;
}
return typeof data !== "object";
};
const getPath = (key) => {
if (Array.isArray(props.value)) {
return [...props.path, parseInt(key, 10)];
}
return [...props.path, key];
};
const N8nTree = getCurrentInstance()?.type;
return (_ctx, _cache) => {
return isObject(_ctx.value) ? (openBlock(), createElementBlock("div", _hoisted_1$1, [
(openBlock(true), createElementBlock(Fragment, null, renderList(Object.keys(_ctx.value), (label, i) => {
return openBlock(), createElementBlock("div", {
key: i,
class: normalizeClass(classes.value)
}, [
isSimple(_ctx.value[label]) ? (openBlock(), createElementBlock("div", {
key: 0,
class: normalizeClass(unref($style).simple)
}, [
!!_ctx.$slots.label ? renderSlot(_ctx.$slots, "label", {
key: 0,
label,
path: getPath(label)
}) : (openBlock(), createElementBlock("span", _hoisted_2$1, toDisplayString(label), 1)),
_cache[0] || (_cache[0] = createBaseVNode("span", null, ":", -1)),
!!_ctx.$slots.value ? renderSlot(_ctx.$slots, "value", {
key: 2,
value: _ctx.value[label]
}) : (openBlock(), createElementBlock("span", _hoisted_3$1, toDisplayString(_ctx.value[label]), 1))
], 2)) : (openBlock(), createElementBlock("div", _hoisted_4$1, [
!!_ctx.$slots.label ? renderSlot(_ctx.$slots, "label", {
key: 0,
label,
path: getPath(label)
}) : (openBlock(), createElementBlock("span", _hoisted_5$1, toDisplayString(label), 1)),
isObject(_ctx.value[label]) ? (openBlock(), createBlock(unref(N8nTree), {
key: 2,
path: getPath(label),
depth: _ctx.depth + 1,
value: _ctx.value[label],
"node-class": _ctx.nodeClass
}, createSlots({ _: 2 }, [
!!_ctx.$slots.label ? {
name: "label",
fn: withCtx((data) => [
renderSlot(_ctx.$slots, "label", mergeProps({ ref_for: true }, data))
]),
key: "0"
} : void 0,
!!_ctx.$slots.value ? {
name: "value",
fn: withCtx((data) => [
renderSlot(_ctx.$slots, "value", mergeProps({ ref_for: true }, data))
]),
key: "1"
} : void 0
]), 1032, ["path", "depth", "value", "node-class"])) : createCommentVNode("", true)
]))
], 2);
}), 128))
])) : createCommentVNode("", true);
};
}
});
const indent = "_indent_1jh97_123";
const simple = "_simple_1jh97_127";
const style0$1 = {
indent,
simple
};
const cssModules$1 = {
"$style": style0$1
};
const Tree = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__cssModules", cssModules$1]]);
const _imports_0 = "/n8n/static/data-mapping-gif.gif";
const _hoisted_1 = ["data-row"];
const _hoisted_2 = ["data-row"];
const _hoisted_3 = { key: 0 };
const _hoisted_4 = ["width"];
const _hoisted_5 = ["data-test-id"];
const _hoisted_6 = ["data-row"];
const _hoisted_7 = ["data-row", "data-col"];
const _hoisted_8 = { key: 1 };
const MAX_COLUMNS_LIMIT = 40;
const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "RunDataTable",
props: {
node: {},
inputData: {},
distanceFromActive: {},
pageOffset: {},
runIndex: { default: 0 },
outputIndex: { default: 0 },
totalRuns: { default: 0 },
mappingEnabled: { type: Boolean, default: false },
hasDefaultHoverState: { type: Boolean, default: false },
search: { default: "" },
headerBgColor: { default: "base" },
compact: { type: Boolean, default: false },
disableHoverHighlight: { type: Boolean, default: false },
collapsingColumnName: {}
},
emits: ["activeRowChanged", "displayModeChange", "mounted", "collapsingColumnChanged"],
setup(__props, { emit: __emit }) {
const props = __props;
const emit = __emit;
const externalHooks = useExternalHooks();
const tableRef = useTemplateRef("tableRef");
const activeColumn = ref(-1);
const forceShowGrip = ref(false);
const draggedColumn = ref(false);
const draggingPath = ref(null);
const hoveringPath = ref(null);
const hoveringColumnIndex = ref(-1);
const activeRow = ref(null);
const columnLimit = ref(MAX_COLUMNS_LIMIT);
const columnLimitExceeded = ref(false);
const draggableRef = ref();
const fixedColumnWidths = ref();
const ndvStore = useNDVStore();
const workflowsStore = useWorkflowsStore();
const i18n = useI18n();
const telemetry = useTelemetry();
const telemetryContext = useTelemetryContext();
const { trackOpeningRelatedExecution, resolveRelatedExecutionUrl } = useExecutionHelpers();
const {
hoveringItem,
focusedMappableInput,
highlightDraggables: highlight2
} = storeToRefs(ndvStore);
const canDraggableDrop = computed(() => ndvStore.canDraggableDrop);
const draggableStickyPosition = computed(() => ndvStore.draggableStickyPos);
const pairedItemMappings = computed(() => workflowsStore.workflowExecutionPairedItemMappings);
const tableData = computed(() => convertToTable(props.inputData));
const collapsingColumnIndex = computed(() => {
if (!props.collapsingColumnName) {
return -1;
}
return tableData.value.columns.indexOf(props.collapsingColumnName);
});
onMounted(() => {
if (tableData.value?.columns && draggableRef.value) {
const tbody = draggableRef.value.$refs.wrapper;
if (tbody) {
emit("mounted", {
avgRowHeight: tbody.offsetHeight / tableData.value.data.length
});
}
}
});
function isHoveringRow(row) {
if (props.disableHoverHighlight) {
return false;
}
if (row === activeRow.value) {
return true;
}
const itemIndex = props.pageOffset + row;
if (itemIndex === 0 && !hoveringItem.value && props.hasDefaultHoverState && props.distanceFromActive === 1) {
return true;
}
const itemNodeId = getPairedItemId(
props.node?.name ?? "",
props.runIndex || 0,
props.outputIndex || 0,
itemIndex
);
if (!hoveringItem.value || !pairedItemMappings.value[itemNodeId]) {
return false;
}
const hoveringItemId = getPairedItemId(
hoveringItem.value.nodeName,
hoveringItem.value.runIndex,
hoveringItem.value.outputIndex,
hoveringItem.value.itemIndex
);
return pairedItemMappings.value[itemNodeId].has(hoveringItemId);
}
function showExecutionLink(index) {
if (index === activeRow.value) {
return true;
}
if (activeRow.value === null) {
return index === 0;
}
return false;
}
function onMouseEnterCell(e) {
const target = e.target;
const col = target.dataset.col;
const parsedCol = col ? parseInt(col, 10) : Number.NaN;
if (!isNaN(parsedCol)) {
hoveringColumnIndex.value = parsedCol;
if (target && props.mappingEnabled) {
activeColumn.value = parsedCol;
}
}
if (target) {
const row = target.dataset.row;
if (row && !isNaN(parseInt(row, 10))) {
activeRow.value = parseInt(row, 10);
emit("activeRowChanged", props.pageOffset + activeRow.value);
}
}
}
function onMouseLeaveCell() {
activeColumn.value = -1;
activeRow.value = null;
emit("activeRowChanged", null);
hoveringColumnIndex.value = -1;
}
function onMouseEnterKey(path, colIndex) {
hoveringPath.value = getCellExpression(path, colIndex);
}
function onMouseLeaveKey() {
hoveringPath.value = null;
}
function isHovering(path, colIndex) {
const expr = getCellExpression(path, colIndex);
return hoveringPath.value === expr;
}
function getExpression(column) {
if (!props.node) {
return "";
}
return getMappedExpression({
nodeName: props.node.name,
distanceFromActive: props.distanceFromActive,
path: [column]
});
}
function getPathNameFromTarget(el) {
if (!el) {
return "";
}
return el.dataset.name;
}
function getCellPathName(path, colIndex) {
const lastKey = path[path.length - 1];
if (typeof lastKey === "string") {
return lastKey;
}
if (path.length > 1) {
const prevKey = path[path.length - 2];
return `${prevKey}[${lastKey}]`;
}
const column = tableData.value.columns[colIndex];
return `${column}[${lastKey}]`;
}
function getCellExpression(path, colIndex) {
if (!props.node) {
return "";
}
const column = tableData.value.columns[colIndex];
return getMappedExpression({
nodeName: props.node.name,
distanceFromActive: props.distanceFromActive,
path: [column, ...path]
});
}
function isEmpty(value2) {
return value2 === "" || Array.isArray(value2) && value2.length === 0 || typeof value2 === "object" && value2 !== null && Object.keys(value2).length === 0 || value2 === null || value2 === void 0;
}
function getValueToRender(value2) {
if (value2 === "") {
return i18n.baseText("runData.emptyString");
}
if (typeof value2 === "string") {
return value2;
}
if (Array.isArray(value2) && value2.length === 0) {
return i18n.baseText("runData.emptyArray");
}
if (typeof value2 === "object" && value2 !== null && Object.keys(value2).length === 0) {
return i18n.baseText("runData.emptyObject");
}
if (value2 === null || value2 === void 0) {
return `${value2}`;
}
if (value2 === true || value2 === false || typeof value2 === "number") {
return value2.toString();
}
return JSON.stringify(value2);
}
function onDragStart(el, data) {
draggedColumn.value = true;
ndvStore.draggableStartDragging({
type: "mapping",
data: data ?? "",
dimensions: el?.getBoundingClientRect() ?? null
});
ndvStore.resetMappingTelemetry();
}
function onCellDragStart(el, data) {
if (el?.dataset.value) {
draggingPath.value = el.dataset.value;
}
onDragStart(el, data);
}
function onCellDragEnd(el) {
draggingPath.value = null;
onDragEnd(el.dataset.name ?? "", "tree", el.dataset.depth ?? "0");
}
function isDraggingKey(path, colIndex) {
if (!draggingPath.value) {
return;
}
return draggingPath.value === getCellExpression(path, colIndex);
}
function onDragEnd(column, src, depth = "0") {
ndvStore.draggableStopDragging();
setTimeout(() => {
const mappingTelemetry = ndvStore.mappingTelemetry;
const telemetryPayload = {
src_node_type: props.node.type,
src_field_name: column,
src_nodes_back: props.distanceFromActive,
src_run_index: props.runIndex,
src_runs_total: props.totalRuns,
src_field_nest_level: parseInt(depth, 10),
src_view: "table",
src_element: src,
success: false,
view_shown: telemetryContext.view_shown,
...mappingTelemetry
};
void externalHooks.run("runDataTable.onDragEnd", telemetryPayload);
telemetry.track("User dragged data for mapping", telemetryPayload);
}, 1e3);
}
function isSimple(data) {
return typeof data !== "object" || data === null || Array.isArray(data) && data.length === 0 || typeof data === "object" && Object.keys(data).length === 0;
}
function isObject(data) {
return !isSimple(data);
}
function hasJsonInColumn(colIndex) {
return tableData.value.hasJson[tableData.value.columns[colIndex]];
}
function convertToTable(inputData) {
const resultTableData = [];
const tableColumns = [];
let leftEntryColumns, entryRows;
let entry;
const metadata = {
hasExecutionIds: false,
data: []
};
const hasJson = {};
inputData.forEach((data) => {
if (!data.hasOwnProperty("json")) {
return;
}
entry = data.json;
entryRows = [];
const entryColumns = Object.keys(entry || {});
if (entryColumns.length > MAX_COLUMNS_LIMIT) {
columnLimitExceeded.value = true;
leftEntryColumns = entryColumns.slice(0, MAX_COLUMNS_LIMIT);
} else {
leftEntryColumns = entryColumns;
}
if (data.metadata?.subExecution) {
metadata.data.push(data.metadata);
metadata.hasExecutionIds = true;
} else {
metadata.data.push(void 0);
}
tableColumns.forEach((key) => {
if (entry.hasOwnProperty(key)) {
entryRows.push(entry[key]);
leftEntryColumns.splice(leftEntryColumns.indexOf(key), 1);
hasJson[key] = hasJson[key] || typeof entry[key] === "object" && Object.keys(entry[key] ?? {}).length > 0 || false;
} else {
entryRows.push(void 0);
}
});
leftEntryColumns.forEach((key) => {
tableColumns.push(key);
entryRows.push(entry[key]);
hasJson[key] = hasJson[key] || typeof entry[key] === "object" && Object.keys(entry[key] ?? {}).length > 0 || false;
});
resultTableData.push(entryRows);
});
resultTableData.forEach((rows) => {
if (tableColumns.length > rows.length) {
rows.push(...new Array(tableColumns.length - rows.length));
}
});
return {
hasJson,
columns: tableColumns,
data: resultTableData,
metadata
};
}
function switchToJsonView() {
emit("displayModeChange", "json");
}
function handleSetCollapsingColumn(columnIndex) {
emit(
"collapsingColumnChanged",
collapsingColumnIndex.value === columnIndex ? null : tableData.value.columns[columnIndex] ?? null
);
}
watch(focusedMappableInput, (curr) => {
setTimeout(
() => {
forceShowGrip.value = !!focusedMappableInput.value;
},
curr ? 300 : 150
);
});
watch(
[collapsingColumnIndex, tableRef],
([index, table2]) => {
if (index === -1) {
fixedColumnWidths.value = void 0;
return;
}
if (table2 === null) {
return;
}
fixedColumnWidths.value = [...table2.querySelectorAll("thead tr th")].map(
(el) => el instanceof HTMLElement ? el.getBoundingClientRect().width : 0
);
},
{ immediate: true, flush: "post" }
);
return (_ctx, _cache) => {
const _component_n8n_icon = N8nIcon;
return openBlock(), createElementBlock("div", {
class: normalizeClass([
_ctx.$style.dataDisplay,
{
[_ctx.$style.highlight]: unref(highlight2),
[_ctx.$style.lightHeader]: _ctx.headerBgColor === "light",
[_ctx.$style.compact]: props.compact,
[_ctx.$style.hasCollapsingColumn]: fixedColumnWidths.value !== void 0
}
])
}, [
tableData.value.columns && tableData.value.columns.length === 0 ? (openBlock(), createElementBlock("table", {
key: 0,
class: normalizeClass(_ctx.$style.table)
}, [
createBaseVNode("thead", null, [
createBaseVNode("tr", null, [
tableData.value.metadata.hasExecutionIds ? (openBlock(), createElementBlock("th", {
key: 0,
class: normalizeClass(_ctx.$style.executionLinkRowHeader)
}, null, 2)) : createCommentVNode("", true),
createBaseVNode("th", {
class: normalizeClass(_ctx.$style.emptyCell)
}, null, 2),
createBaseVNode("th", {
class: normalizeClass(_ctx.$style.tableRightMargin)
}, null, 2)
])
]),
createBaseVNode("tbody", null, [
(openBlock(true), createElementBlock(Fragment, null, renderList(tableData.value.data, (_, index1) => {
return openBlock(), createElementBlock("tr", {
key: index1,
class: normalizeClass({ [_ctx.$style.hoveringRow]: isHoveringRow(index1) })
}, [
tableData.value.metadata.hasExecutionIds ? (openBlock(), createElementBlock("td", {
key: 0,
"data-row": index1,
class: normalizeClass(_ctx.$style.executionLinkCell),
onMouseenter: onMouseEnterCell,
onMouseleave: onMouseLeaveCell
}, [
tableData.value.metadata.data[index1] ? (openBlock(), createBlock(unref(Tooltip), {
key: 0,
content: unref(i18n).baseText("runData.table.viewSubExecution", {
interpolate: {
id: `${tableData.value.metadata.data[index1]?.subExecution.executionId}`
}
}),
placement: "left",
"hide-after": 0
}, {
default: withCtx(() => [
withDirectives(createVNode(unref(_sfc_main$2), {
element: "a",
type: "secondary",
icon: "external-link",
"data-test-id": "debug-sub-execution",
size: "mini",
target: "_blank",
href: unref(resolveRelatedExecutionUrl)(tableData.value.metadata.data[index1]),
onClick: ($event) => unref(trackOpeningRelatedExecution)(tableData.value.metadata.data[index1], "table")
}, null, 8, ["href", "onClick"]), [
[vShow, showExecutionLink(index1)]
])
]),
_: 2
}, 1032, ["content"])) : createCommentVNode("", true)
], 42, _hoisted_1)) : createCommentVNode("", true),
createBaseVNode("td", {
"data-row": index1,
"data-col": 0,
onMouseenter: onMouseEnterCell,
onMouseleave: onMouseLeaveCell
}, [
createVNode(unref(InfoTip), null, {
default: withCtx(() => [
createTextVNode(toDisplayString(unref(i18n).baseText("runData.emptyItemHint")), 1)
]),
_: 1
})
], 40, _hoisted_2),
createBaseVNode("td", {
class: normalizeClass(_ctx.$style.tableRightMargin)
}, null, 2)
], 2);
}), 128))
])
], 2)) : (openBlock(), createElementBlock("table", {
key: 1,
ref_key: "tableRef",
ref: tableRef,
class: normalizeClass(_ctx.$style.table)
}, [
fixedColumnWidths.value ? (openBlock(), createElementBlock("colgroup", _hoisted_3, [
(openBlock(true), createElementBlock(Fragment, null, renderList(fixedColumnWidths.value, (width, i) => {
return openBlock(), createElementBlock("col", {
key: i,
width
}, null, 8, _hoisted_4);
}), 128))
])) : createCommentVNode("", true),
createBaseVNode("thead", null, [
createBaseVNode("tr", null, [
tableData.value.metadata.hasExecutionIds ? (openBlock(), createElementBlock("th", {
key: 0,
class: normalizeClass(_ctx.$style.executionLinkRowHeader)
}, null, 2)) : createCommentVNode("", true),
(openBlock(true), createElementBlock(Fragment, null, renderList(tableData.value.columns || [], (column, i) => {
return openBlock(), createElementBlock("th", {
key: column,
class: normalizeClass({
[_ctx.$style.isCollapsingColumn]: collapsingColumnIndex.value === i,
[_ctx.$style.isHoveredColumn]: hoveringColumnIndex.value === i
})
}, [
createVNode(unref(Tooltip), {
placement: "bottom-start",
disabled: !_ctx.mappingEnabled,
"show-after": 1e3
}, {
content: withCtx(() => [
createBaseVNode("div", null, [
_cache[0] || (_cache[0] = createBaseVNode("img", { src: _imports_0 }, null, -1)),
createTextVNode(" " + toDisplayString(unref(i18n).baseText("dataMapping.dragColumnToFieldHint")), 1)
])
]),
default: withCtx(() => [
createVNode(Draggable, {
type: "mapping",
data: getExpression(column),
disabled: !_ctx.mappingEnabled,
"can-drop": canDraggableDrop.value,
"sticky-position": draggableStickyPosition.value,
onDragstart: onDragStart,
onDragend: (column2) => onDragEnd(column2?.textContent ?? "", "column")
}, {
preview: withCtx(({ canDrop }) => [
createVNode(MappingPill, {
html: unref(shorten)(column, 16, 2),
"can-drop": canDrop
}, null, 8, ["html", "can-drop"])
]),
default: withCtx(({ isDragging }) => [
createBaseVNode("div", {
class: normalizeClass({
[_ctx.$style.header]: true,
[_ctx.$style.draggableHeader]: _ctx.mappingEnabled,
[_ctx.$style.activeHeader]: (i === activeColumn.value || forceShowGrip.value) && _ctx.mappingEnabled,
[_ctx.$style.draggingHeader]: isDragging
})
}, [
createVNode(__unplugin_components_0, {
content: getValueToRender(column || ""),
search: _ctx.search
}, null, 8, ["content", "search"]),
createVNode(unref(Tooltip), {
content: unref(i18n).baseText("dataMapping.tableView.columnCollapsing.tooltip"),
disabled: _ctx.mappingEnabled || collapsingColumnIndex.value === i
}, {
default: withCtx(() => [
createVNode(unref(_sfc_main$2), {
class: normalizeClass(_ctx.$style.collapseColumnButton),
type: "tertiary",
size: "xmini",
text: "",
icon: collapsingColumnIndex.value === i ? "chevrons-up-down" : "chevrons-down-up",
"aria-label": unref(i18n).baseText("dataMapping.tableView.columnCollapsing"),
onClick: ($event) => handleSetCollapsingColumn(i)
}, null, 8, ["class", "icon", "aria-label", "onClick"])
]),
_: 2
}, 1032, ["content", "disabled"]),
_ctx.mappingEnabled ? (openBlock(), createElementBlock("div", {
key: 0,
class: normalizeClass(_ctx.$style.dragButton)
}, [
createVNode(_component_n8n_icon, { icon: "grip-vertical" })
], 2)) : createCommentVNode("", true)
], 2)
]),
_: 2
}, 1032, ["data", "disabled", "can-drop", "sticky-position", "onDragend"])
]),
_: 2
}, 1032, ["disabled"])
], 2);
}), 128)),
columnLimitExceeded.value ? (openBlock(), createElementBlock("th", {
key: 1,
class: normalizeClass(_ctx.$style.header)
}, [
createVNode(unref(Tooltip), { placement: "bottom-end" }, {
content: withCtx(() => [
createBaseVNode("div", null, [
createVNode(unref(I18nT), {
tag: "span",
keypath: "dataMapping.tableView.tableColumnsExceeded.tooltip",
scope: "global"
}, {
columnLimit: withCtx(() => [
createTextVNode(toDisplayString(columnLimit.value), 1)
]),
link: withCtx(() => [
createBaseVNode("a", { onClick: switchToJsonView }, toDisplayString(unref(i18n).baseText("dataMapping.tableView.tableColumnsExceeded.tooltip.link")), 1)
]),
_: 1
})
])
]),
default: withCtx(() => [
createBaseVNode("span", null, [
createVNode(_component_n8n_icon, {
class: normalizeClass(_ctx.$style["warningTooltip"]),
icon: "triangle-alert"
}, null, 8, ["class"]),
createTextVNode(" " + toDisplayString(unref(i18n).baseText("dataMapping.tableView.tableColumnsExceeded")), 1)
])
]),
_: 1
})
], 2)) : createCommentVNode("", true),
createBaseVNode("th", {
class: normalizeClass(_ctx.$style.tableRightMargin)
}, null, 2)
])
]),
createVNode(Draggable, {
ref_key: "draggableRef",
ref: draggableRef,
tag: "tbody",
type: "mapping",
"target-data-key": "mappable",
disabled: !_ctx.mappingEnabled,
onDragstart: onCellDragStart,
onDragend: onCellDragEnd
}, {
preview: withCtx(({ canDrop, el }) => [
createVNode(MappingPill, {
html: unref(shorten)(getPathNameFromTarget(el) || "", 16, 2),
"can-drop": canDrop
}, null, 8, ["html", "can-drop"])
]),
default: withCtx(() => [
(openBlock(true), createElementBlock(Fragment, null, renderList(tableData.value.data, (row, index1) => {
return openBlock(), createElementBlock("tr", {
key: index1,
class: normalizeClass({ [_ctx.$style.hoveringRow]: isHoveringRow(index1) }),
"data-test-id": isHoveringRow(index1) ? "hovering-item" : void 0
}, [
tableData.value.metadata.hasExecutionIds ? (openBlock(), createElementBlock("td", {
key: 0,
"data-row": index1,
class: normalizeClass(_ctx.$style.executionLinkCell),
onMouseenter: onMouseEnterCell,
onMouseleave: onMouseLeaveCell
}, [
tableData.value.metadata.data[index1] ? (openBlock(), createBlock(unref(Tooltip), {
key: 0,
content: unref(i18n).baseText("runData.table.viewSubExecution", {
interpolate: {
id: `${tableData.value.metadata.data[index1]?.subExecution.executionId}`
}
}),
placement: "left",
"hide-after": 0
}, {
default: withCtx(() => [
withDirectives(createVNode(unref(_sfc_main$2), {
element: "a",
type: "secondary",
icon: "external-link",
"data-test-id": "debug-sub-execution",
size: "mini",
target: "_blank",
href: unref(resolveRelatedExecutionUrl)(tableData.value.metadata.data[index1]),
onClick: ($event) => unref(trackOpeningRelatedExecution)(tableData.value.metadata.data[index1], "table")
}, null, 8, ["href", "onClick"]), [
[vShow, showExecutionLink(index1)]
])
]),
_: 2
}, 1032, ["content"])) : createCommentVNode("", true)
], 42, _hoisted_6)) : createCommentVNode("", true),
(openBlock(true), createElementBlock(Fragment, null, renderList(row, (data, index2) => {
return openBlock(), createElementBlock("td", {
key: index2,
"data-row": index1,
"data-col": index2,
class: normalizeClass([
hasJsonInColumn(index2) ? _ctx.$style.minColWidth : _ctx.$style.limitColWidth,
collapsingColumnIndex.value === index2 ? _ctx.$style.isCollapsingColumn : ""
]),
onMouseenter: onMouseEnterCell,
onMouseleave: onMouseLeaveCell
}, [
isSimple(data) ? (openBlock(), createBlock(__unplugin_components_0, {
key: 0,
content: getValueToRender(data),
search: _ctx.search,
class: normalizeClass({ [_ctx.$style.value]: true, [_ctx.$style.empty]: isEmpty(data) })
}, null, 8, ["content", "search", "class"])) : isObject(data) ? (openBlock(), createBlock(unref(Tree), {
key: 1,
"node-class": _ctx.$style.nodeClass,
value: data
}, {
label: withCtx(({ label, path }) => [
createVNode(__unplugin_components_0, {
"data-target": "mappable",
class: normalizeClass({
[_ctx.$style.hoveringKey]: _ctx.mappingEnabled && isHovering(path, index2),
[_ctx.$style.draggingKey]: isDraggingKey(path, index2),
[_ctx.$style.dataKey]: true,
[_ctx.$style.mappable]: _ctx.mappingEnabled
}),
content: label || unref(i18n).baseText("runData.unnamedField"),
search: _ctx.search,
"data-name": getCellPathName(path, index2),
"data-value": getCellExpression(path, index2),
"data-depth": path.length,
onMouseenter: () => onMouseEnterKey(path, index2),
onMouseleave: onMouseLeaveKey
}, null, 8, ["class", "content", "search", "data-name", "data-value", "data-depth", "onMouseenter"])
]),
value: withCtx(({ value: value2 }) => [
createVNode(__unplugin_components_0, {
content: getValueToRender(value2),
search: _ctx.search,
class: normalizeClass({ [_ctx.$style.nestedValue]: true, [_ctx.$style.empty]: isEmpty(value2) })
}, null, 8, ["content", "search", "class"])
]),
_: 2
}, 1032, ["node-class", "value"])) : createCommentVNode("", true)
], 42, _hoisted_7);
}), 128)),
columnLimitExceeded.value ? (openBlock(), createElementBlock("td", _hoisted_8)) : createCommentVNode("", true),
createBaseVNode("td", {
class: normalizeClass(_ctx.$style.tableRightMargin)
}, null, 2)
], 10, _hoisted_5);
}), 128))
]),
_: 1
}, 8, ["disabled"])
], 2))
], 2);
};
}
});
const dataDisplay = "_dataDisplay_1csa6_123";
const compact = "_compact_1csa6_135";
const table = "_table_1csa6_139";
const lightHeader = "_lightHeader_1csa6_156";
const tableRightMargin = "_tableRightMargin_1csa6_159";
const hasCollapsingColumn = "_hasCollapsingColumn_1csa6_194";
const isCollapsingColumn = "_isCollapsingColumn_1csa6_197";
const nodeClass = "_nodeClass_1csa6_226";
const emptyCell = "_emptyCell_1csa6_230";
const header = "_header_1csa6_234";
const draggableHeader = "_draggableHeader_1csa6_246";
const dragButton = "_dragButton_1csa6_250";
const highlight = "_highlight_1csa6_254";
const draggingHeader = "_draggingHeader_1csa6_258";
const activeHeader = "_activeHeader_1csa6_263";
const dataKey = "_dataKey_1csa6_274";
const value = "_value_1csa6_283";
const nestedValue = "_nestedValue_1csa6_287 _value_1csa6_283";
const mappable = "_mappable_1csa6_292";
const empty = "_empty_1csa6_230";
const limitColWidth = "_limitColWidth_1csa6_301";
const minColWidth = "_minColWidth_1csa6_305";
const hoveringKey = "_hoveringKey_1csa6_309";
const draggingKey = "_draggingKey_1csa6_313";
const hoveringRow = "_hoveringRow_1csa6_329";
const warningTooltip = "_warningTooltip_1csa6_334";
const executionLinkCell = "_executionLinkCell_1csa6_338";
const executionLinkRowHeader = "_executionLinkRowHeader_1csa6_342";
const collapseColumnButton = "_collapseColumnButton_1csa6_346";
const isHoveredColumn = "_isHoveredColumn_1csa6_353";
const style0 = {
dataDisplay,
compact,
table,
lightHeader,
tableRightMargin,
hasCollapsingColumn,
isCollapsingColumn,
nodeClass,
emptyCell,
header,
draggableHeader,
dragButton,
highlight,
draggingHeader,
activeHeader,
dataKey,
value,
nestedValue,
mappable,
empty,
limitColWidth,
minColWidth,
hoveringKey,
draggingKey,
hoveringRow,
warningTooltip,
executionLinkCell,
executionLinkRowHeader,
collapseColumnButton,
isHoveredColumn
};
const cssModules = {
"$style": style0
};
const RunDataTable = /* @__PURE__ */ _export_sfc(_sfc_main, [["__cssModules", cssModules]]);
export {
RunDataTable as default
};