Search code examples
powerbipowerbi-custom-visuals

Numeric input in Power BI with min and max


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?


Solution

  • 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;
    }