I'm doing some custom R HTML visuals in Power BI. I can get a number input in Power BI by adding
"TestNumeric": {
"displayName": "Number",
"description": "test number",
"type": {
"numeric": true
}
}
in capabilities.json (and adapting src/settings.ts accordingly).
I would like to constrain this number input with a minimum and a maximum value. How can I do that?
I've found a solution. One has to modify the file src/visual.ts.
At the beginning, in the block of imports, add this import:
import VisualObjectInstanceEnumeration = powerbi.VisualObjectInstanceEnumeration;
Then, at the end, replace the function enumerateObjectInstances
with:
public enumerateObjectInstances(options: EnumerateVisualObjectInstancesOptions): VisualObjectInstanceEnumeration {
var enumeratedObjects: VisualObjectInstanceEnumerationObject =
<VisualObjectInstanceEnumerationObject>VisualSettings.enumerateObjectInstances(
this.settings || VisualSettings.getDefault(), options
);
if (options.objectName === "YOUR_OBJECT_NAME") {
enumeratedObjects.instances[0].validValues = {
YOUR_PROPERTY_NAME: { numberRange: { min: 8, max: 20 } }
};
}
return enumeratedObjects;
}