hongluan-ui
Version:
Hongluan Component Library for Vue 3
166 lines (161 loc) • 6.5 kB
JavaScript
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var vue = require('vue');
var cell = require('./cell.js');
var simpleTable = require('../simple-table2.js');
var pluginVue_exportHelper = require('../../../../_virtual/plugin-vue_export-helper.js');
const _sfc_main = vue.defineComponent({
name: "BodyRow",
components: { Cell: cell["default"] },
props: {
data: simpleTable.simpleTableProps.data,
level: {
type: Number,
default: 0
}
},
emits: ["row-click", "cell-click"],
setup() {
const {
rowClassName,
rowStyle,
cellClassName,
cellStyle,
firstColumnIndex,
load,
getSpan,
currentSelectedRow,
slotNames,
expandSlotNames,
realColsInfo,
getRowKey,
toggleExpandRow,
expandedKeyExisted,
isShowTooltipMap,
tdMouseover,
tdMouseleave,
tableTreeMap,
hasChildren,
hasTreeData,
toggleExpandTree
} = vue.inject(simpleTable.simpleTableContextKey);
return {
rowClassName,
rowStyle,
cellClassName,
cellStyle,
firstColumnIndex,
load,
getSpan,
currentSelectedRow,
slotNames,
expandSlotNames,
realColsInfo,
getRowKey,
toggleExpandRow,
expandedKeyExisted,
isShowTooltipMap,
tdMouseover,
tdMouseleave,
tableTreeMap,
hasChildren,
hasTreeData,
toggleExpandTree
};
}
});
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
const _component_cell = vue.resolveComponent("cell");
const _component_body_row = vue.resolveComponent("body-row");
return vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.data, (row, rowIndex) => {
var _a, _b;
return vue.openBlock(), vue.createElementBlock(vue.Fragment, {
key: _ctx.getRowKey(row)
}, [
vue.createElementVNode("tr", {
class: vue.normalizeClass([
typeof _ctx.rowClassName === "string" ? _ctx.rowClassName : _ctx.rowClassName({ row, rowIndex }),
_ctx.currentSelectedRow === row ? "current-row" : ""
]),
style: vue.normalizeStyle([
typeof _ctx.rowStyle === "function" ? _ctx.rowStyle({ row, rowIndex }) : _ctx.rowStyle,
_ctx.level && `--tree-level:${_ctx.level}`
]),
onClick: ($event) => _ctx.$emit("row-click", row, rowIndex, $event)
}, [
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.realColsInfo.realCols, (column, columnIndex) => {
var _a2, _b2, _c;
return vue.openBlock(), vue.createBlock(_component_cell, {
key: `${column.columnKey || ""}${_ctx.getRowKey(row)},${columnIndex}`,
column,
"column-index": columnIndex,
row,
"row-index": rowIndex,
"cell-class-name": _ctx.cellClassName,
"cell-style": _ctx.cellStyle,
span: _ctx.getSpan({ row, column, rowIndex, columnIndex }),
expanded: _ctx.expandedKeyExisted(row, (_a2 = column.expand) == null ? void 0 : _a2.slotName),
"tree-expanded": (_b2 = _ctx.tableTreeMap[_ctx.getRowKey(row)]) == null ? void 0 : _b2.expanded,
"show-tooltip": column.showTooltip && _ctx.isShowTooltipMap[rowIndex + "/" + columnIndex],
"has-children": _ctx.hasChildren(row),
"is-loading": (_c = _ctx.tableTreeMap[_ctx.getRowKey(row)]) == null ? void 0 : _c.isLoading,
"first-column-index": _ctx.firstColumnIndex,
"has-tree-data": _ctx.hasTreeData,
onCellClick: ($event) => _ctx.$emit("cell-click", row, column, rowIndex, columnIndex, $event),
onExpand: ($event) => {
var _a3;
return _ctx.toggleExpandRow(row, (_a3 = column.expand) == null ? void 0 : _a3.slotName);
},
onTreeExpand: ($event) => _ctx.toggleExpandTree(row),
onMouseover: ($event) => _ctx.tdMouseover($event, rowIndex, columnIndex),
onMouseleave: _ctx.tdMouseleave
}, {
default: vue.withCtx(() => [
vue.renderSlot(_ctx.$slots, column.slotName, vue.normalizeProps(vue.guardReactiveProps({ row, rowIndex, column, columnIndex })))
]),
_: 2
}, 1032, ["column", "column-index", "row", "row-index", "cell-class-name", "cell-style", "span", "expanded", "tree-expanded", "show-tooltip", "has-children", "is-loading", "first-column-index", "has-tree-data", "onCellClick", "onExpand", "onTreeExpand", "onMouseover", "onMouseleave"]);
}), 128))
], 14, ["onClick"]),
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.expandSlotNames, (name) => {
return vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: name }, [
_ctx.expandedKeyExisted(row, name) ? (vue.openBlock(), vue.createElementBlock("tr", {
key: 0,
class: vue.normalizeClass(["expand-row", name])
}, [
vue.createElementVNode("td", {
colspan: _ctx.realColsInfo.realCols.length
}, [
vue.renderSlot(_ctx.$slots, name, { row })
], 8, ["colspan"])
], 2)) : vue.createCommentVNode("v-if", true)
], 64);
}), 128)),
((_a = _ctx.tableTreeMap[_ctx.getRowKey(row)]) == null ? void 0 : _a.expanded) ? (vue.openBlock(), vue.createBlock(_component_body_row, {
key: 0,
data: (_b = row == null ? void 0 : row.children) != null ? _b : [],
level: _ctx.level + 1
}, vue.createSlots({ _: 2 }, [
vue.renderList(_ctx.slotNames, (name) => {
return {
name,
fn: vue.withCtx((colData) => [
vue.renderSlot(_ctx.$slots, name, vue.normalizeProps(vue.guardReactiveProps(colData)))
])
};
}),
vue.renderList(_ctx.expandSlotNames, (name) => {
return {
name,
fn: vue.withCtx((colData) => [
vue.renderSlot(_ctx.$slots, name, vue.normalizeProps(vue.guardReactiveProps(colData)))
])
};
})
]), 1032, ["data", "level"])) : vue.createCommentVNode("v-if", true)
], 64);
}), 128);
}
var BodyRow = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["render", _sfc_render]]);
exports["default"] = BodyRow;
//# sourceMappingURL=row.js.map