diff --git a/src/components/pivottable-ui/VPivottableUi.vue b/src/components/pivottable-ui/VPivottableUi.vue index cdafbf5..e01105d 100644 --- a/src/components/pivottable-ui/VPivottableUi.vue +++ b/src/components/pivottable-ui/VPivottableUi.vue @@ -113,7 +113,7 @@ import VDragAndDropCell from './VDragAndDropCell.vue' import { VPivottable } from '@/' import { computed, ref, toRefs, watch } from 'vue' import { usePropsState, useMaterializeInput } from '@/composables' -import TableRenderer from '../pivottable/renderer/index' +import TableRenderer from '../pivottable/renderer' const props = defineProps({ ...defaultProps, @@ -224,6 +224,13 @@ const onUpdateValueFilter = ({ attribute, valueFilter }) => { } const onUpdateRendererName = rendererName => { updateState('rendererName', rendererName) + if (rendererName === 'Table Heatmap') { + updateState('heatmapMode', 'full') + } else if (rendererName === 'Table Row Heatmap') { + updateState('heatmapMode', 'row') + } else if (rendererName === 'Table Col Heatmap') { + updateState('heatmapMode', 'col') + } } const onUpdateAggregatorName = aggregatorName => { updateState('aggregatorName', aggregatorName) diff --git a/src/components/pivottable/VPivottable.vue b/src/components/pivottable/VPivottable.vue index 8893faf..f6e1357 100644 --- a/src/components/pivottable/VPivottable.vue +++ b/src/components/pivottable/VPivottable.vue @@ -2,7 +2,7 @@ + /> - - diff --git a/src/components/pivottable/VPivottableBody.vue b/src/components/pivottable/VPivottableBody.vue index 17aade4..e5d93bb 100644 --- a/src/components/pivottable/VPivottableBody.vue +++ b/src/components/pivottable/VPivottableBody.vue @@ -1,29 +1,57 @@ +defineProps({ + rowTotal: { + type: Boolean, + default: true + }, + colTotal: { + type: Boolean, + default: true + }, + localeStrings: { + type: Object, + default: () => ({ + totals: 'Totals' + }) + }, + tableOptions: { + type: Object, + default: () => ({ + clickCallback: null + }) + } +}) - + diff --git a/src/components/pivottable/VPivottableBodyRows.vue b/src/components/pivottable/VPivottableBodyRows.vue index 56966f7..2304174 100644 --- a/src/components/pivottable/VPivottableBodyRows.vue +++ b/src/components/pivottable/VPivottableBodyRows.vue @@ -1,49 +1,97 @@ +const handleCellClick = (value, rowValues, colValues) => { + if (props.tableOptions?.clickCallback) { + const filters = {} + + // Add column filters + colAttrs.value.forEach((attr, i) => { + if (colValues[i] !== undefined && colValues[i] !== null) { + filters[attr] = colValues[i] + } + }) - + props.tableOptions.clickCallback(event, value, filters, pivotData.value) + } +} + diff --git a/src/components/pivottable/VPivottableBodyRowsTotalRow.vue b/src/components/pivottable/VPivottableBodyRowsTotalRow.vue index e69de29..62ea8ec 100644 --- a/src/components/pivottable/VPivottableBodyRowsTotalRow.vue +++ b/src/components/pivottable/VPivottableBodyRowsTotalRow.vue @@ -0,0 +1,90 @@ + + + diff --git a/src/components/pivottable/VPivottableHeader.vue b/src/components/pivottable/VPivottableHeader.vue index ad662dd..5360757 100644 --- a/src/components/pivottable/VPivottableHeader.vue +++ b/src/components/pivottable/VPivottableHeader.vue @@ -1,27 +1,52 @@ +defineProps({ + rowTotal: { + type: Boolean, + default: true + }, + localeStrings: { + type: Object, + default: () => ({ + totals: 'Totals' + }) + } +}) - + diff --git a/src/components/pivottable/VPivottableHeaderColumns.vue b/src/components/pivottable/VPivottableHeaderColumns.vue new file mode 100644 index 0000000..124aa1a --- /dev/null +++ b/src/components/pivottable/VPivottableHeaderColumns.vue @@ -0,0 +1,37 @@ + + + diff --git a/src/components/pivottable/VPivottableHeaderRows.vue b/src/components/pivottable/VPivottableHeaderRows.vue index caae377..3a75650 100644 --- a/src/components/pivottable/VPivottableHeaderRows.vue +++ b/src/components/pivottable/VPivottableHeaderRows.vue @@ -1,47 +1,38 @@ - - diff --git a/src/components/pivottable/VPivottableHeaderRowsTotal.vue b/src/components/pivottable/VPivottableHeaderRowsTotal.vue index e69de29..cf11427 100644 --- a/src/components/pivottable/VPivottableHeaderRowsTotal.vue +++ b/src/components/pivottable/VPivottableHeaderRowsTotal.vue @@ -0,0 +1,25 @@ + + + diff --git a/src/components/pivottable/renderer/TableRenderer.vue b/src/components/pivottable/renderer/TableRenderer.vue index 7e2c38d..26a6629 100644 --- a/src/components/pivottable/renderer/TableRenderer.vue +++ b/src/components/pivottable/renderer/TableRenderer.vue @@ -13,7 +13,7 @@