JavaScript
let pivot = new Flexmonster({
container: 'pivot-container',
toolbar: true,
componentFolder: 'https://cdn.flexmonster.com/',
height: 400,
report: {
dataSource: {
type: 'api',
url: pivotEndpoint,
index: 'INDEX',
},
slice: {
rows: [{ uniqueName: 'filename' }],
columns: [{ uniqueName: 'operation' }, { uniqueName: '[Measures]' }],
measures: [
{ uniqueName: 'id', aggregation: 'min', format: '-1i1i64la47eq0' },
{ uniqueName: 'id_min', aggregation: 'differenceofrow' },
],
},
},
});
/* ---------- Responses ---------- */
const fieldsResponse = {
fields: [
{ uniqueName: 'filename', type: 'string' },
{ uniqueName: 'operation', type: 'string' },
{ uniqueName: 'id', type: 'number' },
{ uniqueName: 'id_min', type: 'number', aggregations: ['min'] },
],
aggregations: {
any: ['count', 'distinctcount'],
date: ['count', 'distinctcount', 'min', 'max'],
number: ['sum', 'average', 'count', 'distinctcount', 'min', 'max'],
},
sorted: false,
};
const membersResponses = {
filename: {
members: [
{ id: 'test', value: 'test' },
{ id: 'test 1', value: 'test 1' },
{ id: 'test 2', value: 'test 2' },
],
sorted: true,
pageTotal: 1,
page: 0,
nextPageToken: null,
},
operation: {
members: [
{ id: 'file ops', value: 'file ops' },
{ id: 'test console', value: 'test console' },
],
sorted: true,
pageTotal: 1,
page: 0,
nextPageToken: null,
},
};
const selectResponse = {
fields: null,
hits: null,
aggs: [
{ keys: {}, values: { id: { min: 117 }, id_min: { min: 117 } } },
{ keys: { filename: 'test 2' }, values: { id: { min: 119 }, id_min: { min: 119 } } },
{ keys: { filename: 'test' }, values: { id: { min: 122 }, id_min: { min: 122 } } },
{ keys: { filename: 'test 1' }, values: { id: { min: 117 }, id_min: {...