vue-gantt-3
Version:
A gantt component for Vue 3
53 lines (52 loc) • 1.66 kB
JavaScript
import { toRef, markRaw, shallowRef, watch, onBeforeMount } from "vue";
import _sfc_main from "./FirstColumnCellRender.vue.mjs";
/* empty css */
const useTableColumns = ({
props,
getRowNode
}) => {
const columns = toRef(props, "columns");
const firstColumnCellRenderComp = markRaw(_sfc_main);
const columnDefs = shallowRef([]);
let firstColumId = "";
watch(columns, (val) => {
formatColumnDefs(val);
});
onBeforeMount(() => {
formatColumnDefs(columns.value);
});
function formatColumnDefs(columnDatas) {
var _a;
firstColumId = ((_a = columnDatas[0]) == null ? void 0 : _a.field) || "";
const newColumnDefs = [];
for (let columnData of columnDatas) {
const newColumnData = { ...columnData };
newColumnData.cellRendererSelector = cellRendererSelector;
newColumnDefs.push(newColumnData);
}
columnDefs.value = newColumnDefs;
}
function cellRendererSelector(params) {
var _a, _b, _c;
const field = (_a = params.colDef) == null ? void 0 : _a.field;
const cellRendererParams = (_b = params.colDef) == null ? void 0 : _b.cellRendererParams;
if (firstColumId && field === firstColumId && (cellRendererParams == null ? void 0 : cellRendererParams.expandable)) {
return {
component: firstColumnCellRenderComp,
params: {
...cellRendererParams,
component: (_c = params.colDef) == null ? void 0 : _c.cellRenderer,
rowNode: getRowNode(params.data)
}
};
}
return void 0;
}
return {
columnDefs
};
};
export {
useTableColumns
};
//# sourceMappingURL=useTableColumn.mjs.map