@visactor/vue-vtable
Version:
The vue version of VTable
47 lines (43 loc) • 2.06 kB
JavaScript
'use strict';
var vue = require('vue');
var vnodeUtils = require('../utils/vnodeUtils.js');
require('@visactor/vtable');
require('@visactor/vutils');
var slotUtils = require('../utils/slotUtils.js');
var baseTable_vue_vue_type_script_setup_true_lang = require('./base-table.vue.js');
var _sfc_main = vue.defineComponent({
__name: 'pivot-chart',
props: {
options: { type: Object, required: true },
records: { type: Array, required: false },
width: { type: [String, Number], required: false },
height: { type: [String, Number], required: false }
},
setup(__props, { expose: __expose }) {
const props = __props;
const baseTableRef = vue.shallowRef(null);
const slots = vue.useSlots();
const computedOptions = vue.computed(() => {
var _a;
const flattenedSlots = vnodeUtils.flattenVNodes(((_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots)) || []);
const slotOptions = slotUtils.extractPivotSlotOptions(flattenedSlots);
return slotUtils.mergeSlotOptions(props.options, slotOptions);
});
__expose({ vTableInstance: vue.computed(() => { var _a; return ((_a = baseTableRef.value) === null || _a === void 0 ? void 0 : _a.vTableInstance) || null; }) });
return (_ctx, _cache) => {
return (vue.openBlock(), vue.createElementBlock(vue.Fragment, null, [
vue.createVNode(baseTable_vue_vue_type_script_setup_true_lang, vue.mergeProps({
type: "chart",
options: computedOptions.value,
records: _ctx.records,
width: _ctx.width,
height: _ctx.height,
ref_key: "baseTableRef",
ref: baseTableRef
}, _ctx.$attrs), null, 16, ["options", "records", "width", "height"]),
vue.renderSlot(_ctx.$slots, "default")
], 64));
};
}
});
module.exports = _sfc_main;