// (C) 2019-2021 GoodData Corporation import { ExecuteAFM as AFM } from "@gooddata/typings"; import { Granularities } from "../../../../../constants/granularities"; import { ALL_TIME_GRANULARITY } from "../../mergeFilters"; export const empty: AFM.IAfm = {}; export const METRIC_IDENTIFIER = "metric.id"; export const METRIC_URI = "/gdc/md/project/obj/metric.id"; export const ATTRIBUTE_DISPLAY_FORM_URI = "/gdc/md/project/obj/1"; export const ATTRIBUTE_DISPLAY_FORM_IDENTIFIER = "1"; export const ATTRIBUTE_URI = "/gdc/md/project/obj/11"; export const ATTRIBUTE_DISPLAY_FORM_URI_2 = "/gdc/md/project/obj/2"; export const ATTRIBUTE_URI_2 = "/gdc/md/project/obj/22"; export const DATE_DISPLAY_FORM_URI = "/gdc/md/project/obj/3"; export const DATE_URI = "/gdc/md/project/33"; export const DATE_DATA_SET_URI = "/gdc/md/project/333"; export const simpleMeasure: AFM.IAfm = { measures: [ { localIdentifier: "m1", definition: { measure: { item: { uri: METRIC_URI, }, }, }, alias: "Measure M1", }, ], }; export const simpleMeasureWithFormat: AFM.IAfm = { measures: [ { localIdentifier: "m1", definition: { measure: { item: { uri: METRIC_URI, }, }, }, alias: "Measure M1", format: "GD #,##0.00000", }, ], }; export const simpleMeasureWithIdentifiers: AFM.IAfm = { measures: [ { localIdentifier: "m1", definition: { measure: { item: { identifier: METRIC_IDENTIFIER, }, }, }, alias: "Measure M1", }, ], }; export const simpleMeasureWithTextFilter: AFM.IAfm = { measures: [ { localIdentifier: "m1", definition: { measure: { item: { uri: METRIC_URI, }, filters: [ { positiveAttributeFilter: { displayForm: { identifier: "foo" }, in: ["val1", "val2"], }, }, ], }, }, }, ], }; export const renamedMeasure: AFM.IAfm = { measures: [ { localIdentifier: "m1", definition: { measure: { item: { uri: METRIC_URI, }, }, }, alias: "Alias A1", }, ], }; export const filteredMeasure: AFM.IAfm = { measures: [ { localIdentifier: "m1", definition: { measure: { item: { uri: METRIC_URI, }, filters: [ { positiveAttributeFilter: { displayForm: { uri: ATTRIBUTE_DISPLAY_FORM_URI, }, in: [`${ATTRIBUTE_URI}?id=1`, `${ATTRIBUTE_URI}?id=2`], }, }, ], }, }, alias: "Measure M1", }, ], }; export const measureWithRelativeDate: AFM.IAfm = { measures: [ { localIdentifier: "m1", definition: { measure: { item: { uri: METRIC_URI, }, filters: [ { relativeDateFilter: { dataSet: { uri: DATE_DATA_SET_URI, }, granularity: Granularities.DATE, from: -89, to: 0, }, }, { positiveAttributeFilter: { displayForm: { uri: ATTRIBUTE_DISPLAY_FORM_URI, }, in: [`${ATTRIBUTE_URI}?id=1`, `${ATTRIBUTE_URI}?id=2`], }, }, ], }, }, alias: "Measure M1", }, ], }; export const measureWithAbsoluteDate: AFM.IAfm = { measures: [ { localIdentifier: "m1", definition: { measure: { item: { uri: METRIC_URI, }, filters: [ { absoluteDateFilter: { dataSet: { uri: DATE_DATA_SET_URI, }, from: "2016-01-01", to: "2017-01-01", }, }, { positiveAttributeFilter: { displayForm: { uri: ATTRIBUTE_DISPLAY_FORM_URI, }, in: [`${ATTRIBUTE_URI}?id=1`, `${ATTRIBUTE_URI}?id=2`], }, }, ], }, }, alias: "Measure M1", }, ], }; export const popMeasure: AFM.IAfm = { measures: [ { localIdentifier: "m1_pop", definition: { popMeasure: { measureIdentifier: "m1", popAttribute: { uri: ATTRIBUTE_URI, }, }, }, alias: "Measure M1 - previous year", }, { localIdentifier: "m1", definition: { measure: { item: { uri: METRIC_URI, }, }, }, alias: "Measure M1", }, ], attributes: [ { displayForm: { uri: ATTRIBUTE_DISPLAY_FORM_URI, }, localIdentifier: "a1", }, ], }; export const showInPercent: AFM.IAfm = { measures: [ { localIdentifier: "m1", format: "#,##0.00%", definition: { measure: { item: { uri: METRIC_URI, }, computeRatio: true, }, }, alias: "Measure M1", }, ], attributes: [ { displayForm: { uri: ATTRIBUTE_DISPLAY_FORM_URI, }, localIdentifier: "a1", }, ], }; export const showInPercentWithDate: AFM.IAfm = { measures: [ { localIdentifier: "m1", format: "#,##0.00%", definition: { measure: { item: { uri: METRIC_URI, }, computeRatio: true, }, }, alias: "Measure M1", }, ], attributes: [ { displayForm: { uri: DATE_DISPLAY_FORM_URI, }, localIdentifier: "a1", }, ], }; export const measureWithSorting: AFM.IAfm = { measures: [ { localIdentifier: "m1", definition: { measure: { item: { uri: METRIC_URI, }, }, }, alias: "Measure M1", }, ], }; export const factBasedMeasure: AFM.IAfm = { measures: [ { localIdentifier: "m1", definition: { measure: { item: { uri: "/gdc/md/project/obj/fact.id", }, aggregation: "sum", }, }, }, ], }; export const factBasedRenamedMeasure: AFM.IAfm = { measures: [ { localIdentifier: "m1", definition: { measure: { item: { uri: "/gdc/md/project/obj/fact.id", }, aggregation: "sum", }, }, alias: "Summary", }, ], }; export const attributeBasedMeasure: AFM.IAfm = { measures: [ { localIdentifier: "m1", definition: { measure: { item: { uri: ATTRIBUTE_DISPLAY_FORM_URI, }, aggregation: "count", }, }, format: "#,##0", }, ], }; export const attributeBasedRenamedMeasure: AFM.IAfm = { measures: [ { localIdentifier: "m1", definition: { measure: { item: { uri: ATTRIBUTE_DISPLAY_FORM_URI, }, aggregation: "count", }, }, alias: "Count", format: "#,##0", }, ], }; export const stackingAttribute: AFM.IAfm = { measures: [ { localIdentifier: "m1", definition: { measure: { item: { uri: METRIC_URI, }, aggregation: "sum", }, }, alias: "Sum of Bundle cost", format: "#,##0.00", }, ], attributes: [ { displayForm: { uri: DATE_DISPLAY_FORM_URI, }, localIdentifier: "a1", }, { displayForm: { uri: ATTRIBUTE_DISPLAY_FORM_URI, }, localIdentifier: "a2", }, ], filters: [ { relativeDateFilter: { dataSet: { uri: DATE_DATA_SET_URI, }, granularity: "GDC.time.quarter", from: -3, to: 0, }, }, { negativeAttributeFilter: { displayForm: { uri: ATTRIBUTE_DISPLAY_FORM_URI, }, notIn: [`${ATTRIBUTE_URI}?id=1`], }, }, ], }; export const stackingRenamedAttribute: AFM.IAfm = { measures: [ { localIdentifier: "m1", definition: { measure: { item: { uri: METRIC_URI, }, aggregation: "sum", }, }, alias: "My Metric Alias", }, ], attributes: [ { alias: "My Date Alias", displayForm: { uri: DATE_DISPLAY_FORM_URI, }, localIdentifier: "a1", }, { alias: "My Attribute Alias", displayForm: { uri: ATTRIBUTE_DISPLAY_FORM_URI, }, localIdentifier: "a2", }, ], }; export const attributeFilter: AFM.IAfm = { filters: [ { positiveAttributeFilter: { displayForm: { uri: ATTRIBUTE_DISPLAY_FORM_URI, }, in: [`${ATTRIBUTE_URI}?id=1`, `${ATTRIBUTE_URI}?id=2`, `${ATTRIBUTE_URI}?id=3`], }, }, { positiveAttributeFilter: { displayForm: { uri: ATTRIBUTE_DISPLAY_FORM_URI_2, }, in: [`${ATTRIBUTE_URI_2}?id=a`], }, }, ], }; export const attributeTextFilter: AFM.IAfm = { filters: [ { positiveAttributeFilter: { displayForm: { uri: ATTRIBUTE_DISPLAY_FORM_URI, }, in: ["val1", "val2", "val3"], }, }, { positiveAttributeFilter: { displayForm: { uri: ATTRIBUTE_DISPLAY_FORM_URI_2, }, in: ["valA"], }, }, ], }; export const attributeFilterWithAll: AFM.IAfm = { filters: [ { positiveAttributeFilter: { displayForm: { uri: ATTRIBUTE_DISPLAY_FORM_URI_2, }, in: [`${ATTRIBUTE_URI_2}?id=a`], }, }, ], }; export const dateFilter: AFM.IAfm = { filters: [ { relativeDateFilter: { dataSet: { uri: DATE_DATA_SET_URI, }, from: -89, to: 0, granularity: Granularities.DATE, }, }, ], }; export const dateFilterWithoutInterval: AFM.IAfm = {}; export const attributeWithIdentifier: AFM.IAfm = { measures: [ { localIdentifier: "m1", definition: { measure: { item: { identifier: "foo", }, }, }, }, ], attributes: [ { displayForm: { identifier: "bar", }, localIdentifier: "a1", }, ], }; export const segmentedAndTrendedLineChart: AFM.IAfm = { measures: [ { localIdentifier: "m1", definition: { measure: { item: { uri: METRIC_URI, }, aggregation: "sum", }, }, alias: "Sum of Bundle cost", }, ], attributes: [ { displayForm: { uri: DATE_DISPLAY_FORM_URI, }, localIdentifier: "a1", }, { displayForm: { uri: ATTRIBUTE_DISPLAY_FORM_URI, }, localIdentifier: "a2", }, ], }; export const measuresOnlyPieChart: AFM.IAfm = { measures: [ { localIdentifier: "m1", definition: { measure: { item: { uri: METRIC_URI, }, }, }, alias: "Close BOP", }, { localIdentifier: "m2", definition: { measure: { item: { uri: METRIC_URI, }, }, }, alias: "Close EOP", }, ], }; export const oneMeasureOneAttribute: AFM.IAfm = { measures: [ { localIdentifier: "m1", definition: { measure: { aggregation: "sum", item: { uri: METRIC_URI, }, }, }, alias: "Sum of Bundle cost", format: "#,##0.00", }, ], attributes: [ { localIdentifier: "a1", displayForm: { uri: ATTRIBUTE_DISPLAY_FORM_URI, }, }, ], }; export const oneMeasureOneAttributeWithIdentifiers: AFM.IAfm = { measures: [ { localIdentifier: "m1", definition: { measure: { aggregation: "sum", item: { identifier: METRIC_IDENTIFIER, }, }, }, alias: "Sum of Bundle cost", format: "#,##0.00", }, ], attributes: [ { localIdentifier: "a1", displayForm: { identifier: ATTRIBUTE_DISPLAY_FORM_IDENTIFIER, }, }, ], }; export const reducedMultipleSorts: AFM.IAfm = { measures: [ { localIdentifier: "m1", definition: { measure: { aggregation: "sum", item: { uri: METRIC_URI, }, }, }, alias: "Sum of Bundle cost", format: "#,##0.00", }, { localIdentifier: "m2", definition: { measure: { aggregation: "sum", item: { uri: METRIC_URI, }, }, }, alias: "Sum of Bundle cost", format: "#,##0.00", }, ], }; export const nativeSubTotals: AFM.IAfm = { attributes: [ { displayForm: { identifier: "1", }, localIdentifier: "a1", }, { displayForm: { identifier: "2", }, localIdentifier: "a2", }, ], measures: [ { alias: "Sum of Bundle cost", definition: { measure: { aggregation: "sum", item: { identifier: "metric.id", }, }, }, format: "#,##0.00", localIdentifier: "m1", }, ], nativeTotals: [ { attributeIdentifiers: [], measureIdentifier: "m1", }, { attributeIdentifiers: ["a1"], measureIdentifier: "m1", }, ], }; export const nativeSubtotalsInTwoDimensions = { attributes: [ { displayForm: { identifier: "1", }, localIdentifier: "a1", }, { displayForm: { identifier: "2", }, localIdentifier: "a2", }, { displayForm: { identifier: "1", }, localIdentifier: "col1", }, { displayForm: { identifier: "2", }, localIdentifier: "col2", }, ], measures: [ { alias: "Sum of Bundle cost", definition: { measure: { aggregation: "sum", item: { identifier: "metric.id", }, }, }, format: "#,##0.00", localIdentifier: "m1", }, ], nativeTotals: [ { attributeIdentifiers: [], measureIdentifier: "m1", }, { attributeIdentifiers: ["a1"], measureIdentifier: "m1", }, { attributeIdentifiers: [], measureIdentifier: "m1", }, { attributeIdentifiers: ["col1"], measureIdentifier: "m1", }, ], }; export const absoluteDateFilter1: AFM.IAbsoluteDateFilter = { absoluteDateFilter: { dataSet: { uri: "/gdc/md/project/obj/727", }, from: "2014-01-01", to: "2016-01-01", }, }; export const absoluteDateFilter2: AFM.IAbsoluteDateFilter = { absoluteDateFilter: { dataSet: { uri: "/gdc/md/project/obj/626", }, from: "2017-01-01", to: "2018-01-01", }, }; export const relativeDateFilter: AFM.IRelativeDateFilter = { relativeDateFilter: { dataSet: { uri: "/gdc/md/project/obj/727", }, from: -10, to: -9, granularity: Granularities.YEAR, }, }; export const allTimeDateFilter: AFM.IRelativeDateFilter = { relativeDateFilter: { dataSet: { identifier: "/gdc/md/project/obj/727", }, from: 0, to: 0, granularity: ALL_TIME_GRANULARITY, }, }; export const positiveAttributeFilter: AFM.IPositiveAttributeFilter = { positiveAttributeFilter: { displayForm: { uri: "/gdc/md/project/obj/42", }, in: ["/gdc/md/project/obj/42?val=1", "/gdc/md/project/obj/42?val=2"], }, }; export const negativeAttributeFilter: AFM.INegativeAttributeFilter = { negativeAttributeFilter: { displayForm: { uri: "/gdc/md/project/obj/43", }, notIn: ["/gdc/md/project/obj/43?val=1"], }, }; export const measureValueFilter1: AFM.IMeasureValueFilter = { measureValueFilter: { measure: { localIdentifier: "m1", }, condition: { comparison: { operator: "GREATER_THAN", value: 42, }, }, }, }; export const measureValueFilter2: AFM.IMeasureValueFilter = { measureValueFilter: { measure: { localIdentifier: "m2", }, condition: { comparison: { operator: "GREATER_THAN", value: 420, }, }, }, }; export const rankingFilter1: AFM.IRankingFilter = { rankingFilter: { measures: [ { localIdentifier: "m1", }, ], operator: "TOP", value: 3, }, }; export const rankingFilter2: AFM.IRankingFilter = { rankingFilter: { measures: [ { localIdentifier: "m1", }, ], attributes: [ { localIdentifier: "a1", }, ], operator: "BOTTOM", value: 10, }, };