<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Font Size Property render in Custom Visual in Developer</title>
    <link>https://community.fabric.microsoft.com/t5/Developer/Font-Size-Property-Unit-Issue-in-Custom-Visual/m-p/498864#M15315</link>
    <description>&lt;PRE&gt;{
    "dataRoles": [
        {
            "displayName": "Values",
            "name": "values",
            "kind": "Grouping"
        }
    ],
    "dataViewMappings": [
        {
            "conditions": [
                {
                    "values": {
                        "max": 1
                    }
                }
            ],
            "categorical": {
                "categories": {
                    "for": {
                        "in": "values"
                    },
                    "dataReductionAlgorithm": {
                        "top": {
                            "count": 100000
                        }
                    }
                }
            }
        }
    ],
    "objects": {
        "defaults": {
            "displayName": "Defaults",
            "properties": {                
                "defaultId": {
                    "type": {
                        "integer": true
                    },
                    "displayName": "Default Item Index",
                    "description": "Select default item index"
                }
            }
        },
        "labels": {
            "displayName": "Labels",
            "properties": {
                "vertical": {
                    "displayName": "Vertical",
                    "description": "If true, the radio buttons will be displayed vertically.",
                    "type": {
                        "bool": true
                    }
                },   
                "backgroundColor": {
                    "type": {
                        "fill": {
                            "solid": {
                                "color": true
                            }
                        }
                    },
                    "displayName": "Background Color",
                    "description": "Select background color"
                },
                "fontSize": {
                    "type": {
                        "formatting": {
                            "fontSize": true
                        }
                    },
                    "displayName": "Font Size",
                    "description": "Select font size"
                },
                "fontColor": {
                    "type": {
                        "fill": {
                            "solid": {
                                "color": true
                            }
                        }
                    },
                    "displayName": "Font Color",
                    "description": "Select font color"
                },
                "fontFamily": {
                    "displayName": "Font family",
                    "description": "Select font family",
                    "type": {
                        "enumeration": [
                            {
                                "displayName": "Default",
                                "description": "helvetica, arial, sans-serif",
                                "value": "helvetica, arial, sans-serif"
                            },
                            {
                                "displayName": "Arial",
                                "value": "Arial"
                            },
                            {
                                "displayName": "Arial Black",
                                "value": "\"Arial Black\""
                            },
                            {
                                "displayName": "Arial Unicode MS",
                                "value": "\"Arial Unicode MS\""
                            },
                            {
                                "displayName": "Calibri",
                                "value": "Calibri"
                            },
                            {
                                "displayName": "Cambria",
                                "value": "Cambria"
                            },
                            {
                                "displayName": "Cambria Math",
                                "value": "\"Cambria Math\""
                            },
                            {
                                "displayName": "Candara",
                                "value": "Candara"
                            },
                            {
                                "displayName": "Comic Sans MS",
                                "value": "\"Comic Sans MS\""
                            },
                            {
                                "displayName": "Consolas",
                                "value": "Consolas"
                            },
                            {
                                "displayName": "Constantia",
                                "value": "Constantia"
                            },
                            {
                                "displayName": "Corbel",
                                "value": "Corbel"
                            },
                            {
                                "displayName": "Courier New",
                                "value": "\"Courier New\""
                            },
                            {
                                "displayName": "Georgia",
                                "value": "Georgia"
                            },
                            {
                                "displayName": "Lucida Sans Unicode",
                                "value": "\"Lucida Sans Unicode\""
                            },
                            {
                                "displayName": "Segoe (Bold)",
                                "value": "\"Segoe UI Bold\", wf_segoe-ui_bold, helvetica, arial, sans-serif"
                            },
                            {
                                "displayName": "Segoe UI",
                                "value": "\"Segoe UI\", wf_segoe-ui_normal, helvetica, arial, sans-serif"
                            },
                            {
                                "displayName": "Segoe UI Light",
                                "value": "\"Segoe UI Light\", wf_segoe-ui_bold, helvetica, arial, sans-serif"
                            },
                            {
                                "displayName": "Symbol",
                                "value": "Symbol"
                            },
                            {
                                "displayName": "Tahoma",
                                "value": "Tahoma"
                            },
                            {
                                "displayName": "Times New Roman",
                                "value": "\"Times New Roman\""
                            },
                            {
                                "displayName": "Trebuchet MS",
                                "value": "\"Trebuchet MS\""
                            },
                            {
                                "displayName": "Verdana",
                                "value": "Verdana"
                            },
                            {
                                "displayName": "Wingdings",
                                "value": "Wingdings"
                            }
                        ]
                    }
                },
                "btnSize": {
                    "type": {
                        "integer": true                        
                    },
                    "displayName": "Button Size",
                    "description": "Select button size"
                }
            }
        }
    }
}&lt;/PRE&gt;&lt;P&gt;visual.ts:&lt;/P&gt;&lt;PRE&gt;/*
 *  Power BI Visual CLI
 *
 *  Copyright (c) Microsoft Corporation
 *  All rights reserved.
 *  MIT License
 *
 *  Permission is hereby granted, free of charge, to any person obtaining a copy
 *  of this software and associated documentation files (the ""Software""), to deal
 *  in the Software without restriction, including without limitation the rights
 *  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 *  copies of the Software, and to permit persons to whom the Software is
 *  furnished to do so, subject to the following conditions:
 *
 *  The above copyright notice and this permission notice shall be included in
 *  all copies or substantial portions of the Software.
 *
 *  THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 *  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 *  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 *  THE SOFTWARE.
 */

module powerbi.extensibility.visual {
    "use strict";
    interface FlexiSlicerViewModel {
        vertical: boolean;
        defaultId: number;
        numberCats: number;
        fontSize: number;
        fontFamily: string;
        fontColor: string;
        backgroundColor: string;
        radioBtnSize: number;
    };

    function visualTransform(options: VisualUpdateOptions, host: IVisualHost): FlexiSlicerViewModel {
        let dataViews = options.dataViews;
        let viewModel: FlexiSlicerViewModel = {
           vertical: true,
           defaultId: 0,
           numberCats: 0,
           fontSize: 12,
           fontFamily: "Arial",
           fontColor: "blue",
           backgroundColor: "white",
           radioBtnSize: 12
        };
       
        if (!dataViews
            || !dataViews[0]
            || !dataViews[0].categorical
            || !dataViews[0].categorical.categories
            || !dataViews[0].categorical.categories[0]
        )
            return viewModel;        
        
        let category = options.dataViews[0].categorical.categories[0];
        var numCats = category.values.length;

        let dvobjs = dataViews[0].metadata.objects;
        try{
            let style: FlexiSlicerViewModel = {
                    vertical: getValue&amp;lt;boolean&amp;gt;(dvobjs, 'labels', 'vertical', true),
                    defaultId: getValue&amp;lt;number&amp;gt;(dvobjs, 'defaults', 'defaultId', 0),
                    numberCats: numCats,
                    fontSize: getValue&amp;lt;number&amp;gt;(dvobjs, 'labels', 'fontSize', 12),
                    fontFamily: getValue&amp;lt;string&amp;gt;(dvobjs, 'labels', 'fontFamily', "Arial"),
                    fontColor: getFill(dataViews[0], 'labels', 'fontColor', "blue"),
                    backgroundColor: getFill(dataViews[0], 'labels', 'backgroundColor', "white"),
                    radioBtnSize: getValue&amp;lt;number&amp;gt;(dvobjs, 'labels', 'btnSize', 12)
                };
                
            return style;
        }
        catch(e){
            return viewModel;
        }
    }


    export class Visual implements IVisual {
        private target: HTMLElement;
        private flexiSlicerViewModel: FlexiSlicerViewModel;
        //private numberCats: number;
        private selectionManager: ISelectionManager;
        private selectionIds: any = {};
        private host: IVisualHost;
        private isEventUpdate: boolean = false;
        private lastSelectedValue: any;

        constructor(options: VisualConstructorOptions) {
            this.target = options.element;
            this.host = options.host;
            this.selectionManager = options.host.createSelectionManager();
        }

        public update(options: VisualUpdateOptions) {
            this.flexiSlicerViewModel = visualTransform(options, this.host);
            if (this.flexiSlicerViewModel &amp;amp;&amp;amp; !this.isEventUpdate){             
                this.init(options);

                //update if default item is set
                if(this.flexiSlicerViewModel.defaultId &amp;gt; 0){
                    this.selectionManager.clear(); // Clean up previous filter before applying another one.                    
                    // Find the selectionId and select it
                    this.selectionManager.select(this.lastSelectedValue).then((ids: ISelectionId[]) =&amp;gt; {  });                
                    // This call applys the previously selected selectionId                    
                    this.selectionManager.applySelectionFilter();
                }
            }
        }

        public init(options: VisualUpdateOptions) {
            // Return if we don't have a category
            if (!options ||
                !options.dataViews ||
                !options.dataViews[0] ||
                !options.dataViews[0].categorical ||
                !options.dataViews[0].categorical.categories ||
                !options.dataViews[0].categorical.categories[0]) {
                return;
            }
            let viewmodel = this.flexiSlicerViewModel;

            // remove any children from previous renders
            while (this.target.firstChild) {
                this.target.removeChild(this.target.firstChild);
            }

            // clear out any previous selection ids
            this.selectionIds = {};

            // get the category data.
            let category = options.dataViews[0].categorical.categories[0];
            let values = category.values;

            // build selection ids to be used by filtering capabilities later
            var itemctr: number = 0;
            let scroller = document.createElement("div");
            scroller.className="container";
            scroller.style.width = options.viewport.width.toString() +"px";
            scroller.style.height = options.viewport.height.toString() +"px";
            scroller.style.backgroundColor = viewmodel.backgroundColor;

            values.forEach((item: number, index: number) =&amp;gt; {
                itemctr++;
                // create an in-memory version of the selection id so it can be used in onclick event.
                this.selectionIds[item] = this.host.createSelectionIdBuilder()
                    .withCategory(category, index)
                    .createSelectionId();               

                let value = item.toString();
                let radio = document.createElement("input");
                radio.type = "radio";
                radio.value = value;
                radio.name = "values";
                radio.id = itemctr.toString();

                radio.style.height= viewmodel.radioBtnSize.toString()+"px";// viewmodel.fontSize.toString() + "px";
                radio.style.width= viewmodel.radioBtnSize.toString()+"px";//viewmodel.fontSize.toString() + "px"; 
                //set default checked item
                if(itemctr == viewmodel.defaultId ){
                    radio.checked = true;
                    this.lastSelectedValue = this.selectionIds[value];
                }

                radio.onclick = function (ev) {
                    this.isEventUpdate = true;
                     // This is checked in the update method. If true it won't re-render, this prevents an infinite loop                   
                    this.selectionManager.clear(); // Clean up previous filter before applying another one.                    
                    // select saved selectionid
                    this.selectionManager.select(this.selectionIds[value]).then((ids: ISelectionId[]) =&amp;gt; {  });                
                    // This call applys the previously saved selectionId                    
                    this.selectionManager.applySelectionFilter();

                }.bind(this);
            
                let label = document.createElement("label");
                label.innerHTML += value;
                label.style.fontFamily= viewmodel.fontFamily;
                label.style.color = viewmodel.fontColor;
                label.style.fontSize = viewmodel.fontSize.toString() + "px";
                label.htmlFor=itemctr.toString();
    
                scroller.appendChild(radio);
                scroller.appendChild(label);

                if (viewmodel.vertical == true &amp;amp;&amp;amp; itemctr &amp;lt; values.length ) {
                    scroller.appendChild(document.createElement("br"));
                }

            });
            this.target.appendChild(scroller);
        }


        /**
         * Enumerates through the objects defined in the capabilities and adds the properties to the format pane
         *
         * @function
         * @param {EnumerateVisualObjectInstancesOptions} options - Map of defined objects
         */
        //@logExceptions()
        public enumerateObjectInstances(options: EnumerateVisualObjectInstancesOptions): VisualObjectInstanceEnumeration {
            let objectName = options.objectName;
            let objectEnumeration: VisualObjectInstance[] = [];
            let viewModel = this.flexiSlicerViewModel;
            switch (objectName) {
                case 'defaults':
                    var id: number = 0;
                    if(viewModel.defaultId &amp;gt; viewModel.numberCats) id= 0; else id= viewModel.defaultId;

                    objectEnumeration.push({
                        objectName: objectName,
                        properties: {                           
                            defaultId: id
                        },
                        validValues: {                            
                            defaultId: {
                                numberRange: {
                                    min: 0,
                                    max: viewModel.numberCats
                                }
                            }
                        },
                        selector: null
                    });
                    break;
                case 'labels':
                    objectEnumeration.push({
                        objectName: objectName,
                        properties: {
                            vertical: viewModel.vertical,
                            backgroundColor: viewModel.backgroundColor,
                            fontSize: viewModel.fontSize,
                            fontFamily: viewModel.fontFamily,
                            fontColor: viewModel.fontColor,
                            btnSize: viewModel.radioBtnSize
                        },
                        validValues: {                            
                            btnSize: {
                                numberRange: {
                                    min: 1,
                                    max: 40
                                }
                            }
                        },
                        selector: null
                    });
                    break;                
            };
            this.isEventUpdate = false;
            
            return objectEnumeration;
        }
    }
}&lt;/PRE&gt;</description>
    <pubDate>Fri, 24 Aug 2018 19:24:52 GMT</pubDate>
    <dc:creator>tcd1nc</dc:creator>
    <dc:date>2018-08-24T19:24:52Z</dc:date>
    <item>
      <title>Font Size Property Unit Issue in Custom Visual</title>
      <link>https://community.fabric.microsoft.com/t5/Developer/Font-Size-Property-Unit-Issue-in-Custom-Visual/m-p/252044#M7791</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have an issue with creating a custom visual in which I need to be able to set 2 different font sizes from the property pane. The issue is that the first font size control is a slider which allows values from 8-40 whereas subsequent controls allow 0-100 percent.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I can show this using the basic new visualisation&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;pbiviz new fontVisual&lt;BR /&gt;npm install&lt;/PRE&gt;&lt;P&gt;Then edit capabilities.json to include a second font size property (in this case "fontSize1")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;},
                "fontSize": {
                    "displayName": "Text Size",
                    "type": {
                        "formatting": {
                            "fontSize": true
                        }
                    }
                },
                "fontSize1": {
                    "displayName": "Text Size 1",
                    "type": {
                        "formatting": {
                            "fontSize": true
                        }
                    }
                }&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;Update settings.ts to include the new property&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;     // Text Size
      public fontSize: number = 12;
      public fontSize1: number = 12;&lt;/PRE&gt;&lt;P&gt;Then build and run&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;pbiviz start&lt;/PRE&gt;&lt;P&gt;This is the result&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="2 different font size controls" style="width: 484px;"&gt;&lt;img src="https://community.fabric.microsoft.com/t5/image/serverpage/image-id/60255iDD346470A9870DC6/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="2 different font size controls" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;2 different font size controls&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Is this the expected behaviour? Or is the second font size meant to be a percentage of the first? If not, Is there any way I can make them the same control?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 14 Sep 2017 14:49:55 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Developer/Font-Size-Property-Unit-Issue-in-Custom-Visual/m-p/252044#M7791</guid>
      <dc:creator>saviourofdp</dc:creator>
      <dc:date>2017-09-14T14:49:55Z</dc:date>
    </item>
    <item>
      <title>Re: Font Size Property Unit Issue in Custom Visual</title>
      <link>https://community.fabric.microsoft.com/t5/Developer/Font-Size-Property-Unit-Issue-in-Custom-Visual/m-p/252591#M7799</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.fabric.microsoft.com/t5/user/viewprofilepage/user-id/22039"&gt;@saviourofdp&lt;/a&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The fontSize is predefined Power BI capabilities&amp;nbsp;name.&lt;/P&gt;&lt;P&gt;You might try to rename the second fontSize property to &lt;STRONG&gt;textSize&lt;/STRONG&gt;, &lt;STRONG&gt;titleFontSize&lt;/STRONG&gt;, &lt;STRONG&gt;secFontSize&lt;/STRONG&gt;, &lt;STRONG&gt;secTitleFontSize&lt;/STRONG&gt;.&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Ignat Vilesov,&lt;/P&gt;&lt;P&gt;Software Engineer&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Microsoft Power BI Custom Visuals&lt;/P&gt;&lt;P&gt;&lt;A href="mailto:pbicvsupport@microsoft.com" target="_blank"&gt;&lt;SPAN&gt;pbicvsupport@microsoft.com&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 15 Sep 2017 07:25:29 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Developer/Font-Size-Property-Unit-Issue-in-Custom-Visual/m-p/252591#M7799</guid>
      <dc:creator>v-viig</dc:creator>
      <dc:date>2017-09-15T07:25:29Z</dc:date>
    </item>
    <item>
      <title>Re: Font Size Property Unit Issue in Custom Visual</title>
      <link>https://community.fabric.microsoft.com/t5/Developer/Font-Size-Property-Unit-Issue-in-Custom-Visual/m-p/252656#M7801</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;ok, thanks Ignat that works.&amp;nbsp;To conclude, I have to use one of&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;fontSize&lt;/LI&gt;&lt;LI&gt;textSize&lt;/LI&gt;&lt;LI&gt;titleFontSize&lt;/LI&gt;&lt;LI&gt;secFontSize&lt;/LI&gt;&lt;LI&gt;secTitleFontSize&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;to get the absolute value slider. Otherwise, I get a percentage slider.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This then begs further questions:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Are there any other predefined capabilities names? For example there might be one to get at the Font Family enumeration. Documentation for these would be great and very useful.&lt;/LI&gt;&lt;LI&gt;Why not have a configuration property that allows us to specify which control to use without relying on undocumented hardcoded names?&lt;/LI&gt;&lt;LI&gt;Why does creating a capabilities property without using a name from the aforementioned list create a percentage slider? Of what value is the percentage meant to be?&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;Thanks for the help&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 15 Sep 2017 08:27:27 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Developer/Font-Size-Property-Unit-Issue-in-Custom-Visual/m-p/252656#M7801</guid>
      <dc:creator>saviourofdp</dc:creator>
      <dc:date>2017-09-15T08:27:27Z</dc:date>
    </item>
    <item>
      <title>Re: Font Size Property Unit Issue in Custom Visual</title>
      <link>https://community.fabric.microsoft.com/t5/Developer/Font-Size-Property-Unit-Issue-in-Custom-Visual/m-p/253691#M7821</link>
      <description>&lt;P&gt;Regarding your questions:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Power BI API doesn't suppor this. This is in our backlog&lt;/LI&gt;&lt;LI&gt;This is related to historical reasons&lt;/LI&gt;&lt;LI&gt;Percentage slicer is a fallback for all of slider if the predefined name isn't used&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Ignat Vilesov,&lt;/P&gt;&lt;P&gt;Software Engineer&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Microsoft Power BI Custom Visuals&lt;/P&gt;&lt;P&gt;&lt;A href="mailto:pbicvsupport@microsoft.com" target="_blank"&gt;&lt;SPAN&gt;pbicvsupport@microsoft.com&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 18 Sep 2017 07:06:48 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Developer/Font-Size-Property-Unit-Issue-in-Custom-Visual/m-p/253691#M7821</guid>
      <dc:creator>v-viig</dc:creator>
      <dc:date>2017-09-18T07:06:48Z</dc:date>
    </item>
    <item>
      <title>Re: Font Size Property Unit Issue in Custom Visual</title>
      <link>https://community.fabric.microsoft.com/t5/Developer/Font-Size-Property-Unit-Issue-in-Custom-Visual/m-p/456794#M14067</link>
      <description>&lt;P&gt;using secFontSize results in errors:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&amp;nbsp;info&amp;nbsp;&amp;nbsp; JSON change detected. Rebuilding...&lt;BR /&gt;&amp;nbsp;error&amp;nbsp; JSON&amp;nbsp; capabilities.json :&amp;nbsp; instance.objects.dataPoint.properties.d1FontSize2.type.formatting additionalProperty "secFontSize" exists in instance when not allowed&lt;BR /&gt;&amp;nbsp;error&amp;nbsp; JSON&amp;nbsp; capabilities.json :&amp;nbsp; instance.objects.dataPoint.properties.d1FontSize2.type.formatting is not exactly one from [subschema 0],[subschema 1],[subschema 2]&lt;BR /&gt;&amp;nbsp;error&amp;nbsp; JSON&amp;nbsp; capabilities.json :&amp;nbsp; instance.objects.dataPoint.properties.fontSize.type.formatting additionalProperty "textSize" exists in instance when not allowed&lt;BR /&gt;&amp;nbsp;error&amp;nbsp; JSON&amp;nbsp; capabilities.json :&amp;nbsp; instance.objects.dataPoint.properties.fontSize.type.formatting is not exactly one from [subschema 0],[subschema 1],[subschema 2]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 06 Jul 2018 17:01:37 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Developer/Font-Size-Property-Unit-Issue-in-Custom-Visual/m-p/456794#M14067</guid>
      <dc:creator>nagendramishr</dc:creator>
      <dc:date>2018-07-06T17:01:37Z</dc:date>
    </item>
    <item>
      <title>Re: Font Size Property Unit Issue in Custom Visual</title>
      <link>https://community.fabric.microsoft.com/t5/Developer/Font-Size-Property-Unit-Issue-in-Custom-Visual/m-p/456796#M14068</link>
      <description>&lt;P&gt;Do you have a list of actual values that work?&lt;/P&gt;</description>
      <pubDate>Fri, 06 Jul 2018 17:03:28 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Developer/Font-Size-Property-Unit-Issue-in-Custom-Visual/m-p/456796#M14068</guid>
      <dc:creator>nagendramishr</dc:creator>
      <dc:date>2018-07-06T17:03:28Z</dc:date>
    </item>
    <item>
      <title>Re: Font Size Property Unit Issue in Custom Visual</title>
      <link>https://community.fabric.microsoft.com/t5/Developer/Font-Size-Property-Unit-Issue-in-Custom-Visual/m-p/457492#M14089</link>
      <description>&lt;P&gt;Can you share a whole capabilities.json file to figure out a root of this issue?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0in; font-family: Calibri; font-size: 11.0pt; color: #333333;"&gt;&lt;SPAN style="background: white;"&gt;Ignat Vilesov,&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0in; font-family: Calibri; font-size: 11.0pt; color: #333333;"&gt;&lt;SPAN style="background: white;"&gt;Software Engineer&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0in; font-family: Calibri; font-size: 11.0pt; color: #333333;"&gt;&lt;SPAN style="background: white;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0in; font-family: Calibri; font-size: 11.0pt; color: #333333;"&gt;&lt;SPAN style="background: white;"&gt;Microsoft Power BI Custom Visuals&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0in; font-family: Calibri; font-size: 11.0pt;"&gt;&lt;A href="mailto:pbicvsupport@microsoft.com" target="_blank"&gt;&lt;SPAN style="background: white;"&gt;pbicvsupport@microsoft.com&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 09 Jul 2018 06:55:54 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Developer/Font-Size-Property-Unit-Issue-in-Custom-Visual/m-p/457492#M14089</guid>
      <dc:creator>v-viig</dc:creator>
      <dc:date>2018-07-09T06:55:54Z</dc:date>
    </item>
    <item>
      <title>Re: Font Size Property Unit Issue in Custom Visual</title>
      <link>https://community.fabric.microsoft.com/t5/Developer/Font-Size-Property-Unit-Issue-in-Custom-Visual/m-p/489668#M15001</link>
      <description>&lt;P&gt;Is there an up to date list of the reserved names?&lt;/P&gt;</description>
      <pubDate>Tue, 14 Aug 2018 22:15:56 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Developer/Font-Size-Property-Unit-Issue-in-Custom-Visual/m-p/489668#M15001</guid>
      <dc:creator>tcd1nc</dc:creator>
      <dc:date>2018-08-14T22:15:56Z</dc:date>
    </item>
    <item>
      <title>Re: Font Size Property Unit Issue in Custom Visual</title>
      <link>https://community.fabric.microsoft.com/t5/Developer/Font-Size-Property-Unit-Issue-in-Custom-Visual/m-p/490344#M15023</link>
      <description>&lt;P&gt;This is a full list of properties that I know about:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;P lang="x-none"&gt;weight&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P lang="x-none"&gt;angle&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P lang="x-none"&gt;textSize&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P lang="x-none"&gt;fontSize&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P lang="x-none"&gt;titleFontSize&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P lang="x-none"&gt;secFontSize&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P lang="x-none"&gt;secTitleFontSize&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P lang="x-none"&gt;outlineWeight&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P lang="x-none"&gt;gridVerticalWeight&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P lang="x-none"&gt;gridHorizontalWeight&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P lang="x-none"&gt;barWeight&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P lang="x-none"&gt;rowPadding&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P lang="x-none"&gt;cardPadding&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P lang="x-none"&gt;imageHeight&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P lang="x-none"&gt;steppedLayoutIndentation&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P lang="x-none"&gt;borderThickness&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P lang="x-none"&gt;preferredCategoryWidth&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P lang="x-none"&gt;strokeWidth&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P lang="x-none"&gt;gridlineThickness&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P lang="x-none"&gt;markerSize&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P style="margin: 0in; font-family: Calibri; font-size: 11.0pt; color: #333333;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0in; font-family: Calibri; font-size: 11.0pt; color: #333333;"&gt;Ignat Vilesov,&lt;/P&gt;
&lt;P style="margin: 0in; font-family: Calibri; font-size: 11.0pt; color: #333333;"&gt;Software Engineer&lt;/P&gt;
&lt;P style="margin: 0in; font-family: Calibri; font-size: 11.0pt; color: #333333;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0in; font-family: Calibri; font-size: 11.0pt; color: #333333;"&gt;Microsoft Power BI Custom Visuals&lt;/P&gt;
&lt;P style="margin: 0in; font-family: Calibri; font-size: 11.0pt;"&gt;&lt;A href="mailto:pbicvsupport@microsoft.com" target="_blank"&gt;pbicvsupport@microsoft.com&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 15 Aug 2018 13:09:11 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Developer/Font-Size-Property-Unit-Issue-in-Custom-Visual/m-p/490344#M15023</guid>
      <dc:creator>v-viig</dc:creator>
      <dc:date>2018-08-15T13:09:11Z</dc:date>
    </item>
    <item>
      <title>Re: Font Size Property render in Custom Visual</title>
      <link>https://community.fabric.microsoft.com/t5/Developer/Font-Size-Property-Unit-Issue-in-Custom-Visual/m-p/497211#M15220</link>
      <description>&lt;P&gt;Why does the font size property in the properry pane get rendered as a numeric(integer %) up/down control under its label and not a slider on the same line as the label, when not using the settings.ts file?&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 23 Aug 2018 09:44:27 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Developer/Font-Size-Property-Unit-Issue-in-Custom-Visual/m-p/497211#M15220</guid>
      <dc:creator>tcd1nc</dc:creator>
      <dc:date>2018-08-23T09:44:27Z</dc:date>
    </item>
    <item>
      <title>Re: Font Size Property render in Custom Visual</title>
      <link>https://community.fabric.microsoft.com/t5/Developer/Font-Size-Property-Unit-Issue-in-Custom-Visual/m-p/498104#M15274</link>
      <description>&lt;P&gt;Not sure. Please share your code sample.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0in; font-family: Calibri; font-size: 11.0pt; color: #333333;"&gt;Ignat Vilesov,&lt;/P&gt;
&lt;P style="margin: 0in; font-family: Calibri; font-size: 11.0pt; color: #333333;"&gt;Software Engineer&lt;/P&gt;
&lt;P style="margin: 0in; font-family: Calibri; font-size: 11.0pt; color: #333333;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0in; font-family: Calibri; font-size: 11.0pt; color: #333333;"&gt;Microsoft Power BI Custom Visuals&lt;/P&gt;
&lt;P style="margin: 0in; font-family: Calibri; font-size: 11.0pt;"&gt;&lt;A href="mailto:pbicvsupport@microsoft.com" target="_blank"&gt;pbicvsupport@microsoft.com&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 24 Aug 2018 07:18:00 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Developer/Font-Size-Property-Unit-Issue-in-Custom-Visual/m-p/498104#M15274</guid>
      <dc:creator>v-viig</dc:creator>
      <dc:date>2018-08-24T07:18:00Z</dc:date>
    </item>
    <item>
      <title>Re: Font Size Property render in Custom Visual</title>
      <link>https://community.fabric.microsoft.com/t5/Developer/Font-Size-Property-Unit-Issue-in-Custom-Visual/m-p/498864#M15315</link>
      <description>&lt;PRE&gt;{
    "dataRoles": [
        {
            "displayName": "Values",
            "name": "values",
            "kind": "Grouping"
        }
    ],
    "dataViewMappings": [
        {
            "conditions": [
                {
                    "values": {
                        "max": 1
                    }
                }
            ],
            "categorical": {
                "categories": {
                    "for": {
                        "in": "values"
                    },
                    "dataReductionAlgorithm": {
                        "top": {
                            "count": 100000
                        }
                    }
                }
            }
        }
    ],
    "objects": {
        "defaults": {
            "displayName": "Defaults",
            "properties": {                
                "defaultId": {
                    "type": {
                        "integer": true
                    },
                    "displayName": "Default Item Index",
                    "description": "Select default item index"
                }
            }
        },
        "labels": {
            "displayName": "Labels",
            "properties": {
                "vertical": {
                    "displayName": "Vertical",
                    "description": "If true, the radio buttons will be displayed vertically.",
                    "type": {
                        "bool": true
                    }
                },   
                "backgroundColor": {
                    "type": {
                        "fill": {
                            "solid": {
                                "color": true
                            }
                        }
                    },
                    "displayName": "Background Color",
                    "description": "Select background color"
                },
                "fontSize": {
                    "type": {
                        "formatting": {
                            "fontSize": true
                        }
                    },
                    "displayName": "Font Size",
                    "description": "Select font size"
                },
                "fontColor": {
                    "type": {
                        "fill": {
                            "solid": {
                                "color": true
                            }
                        }
                    },
                    "displayName": "Font Color",
                    "description": "Select font color"
                },
                "fontFamily": {
                    "displayName": "Font family",
                    "description": "Select font family",
                    "type": {
                        "enumeration": [
                            {
                                "displayName": "Default",
                                "description": "helvetica, arial, sans-serif",
                                "value": "helvetica, arial, sans-serif"
                            },
                            {
                                "displayName": "Arial",
                                "value": "Arial"
                            },
                            {
                                "displayName": "Arial Black",
                                "value": "\"Arial Black\""
                            },
                            {
                                "displayName": "Arial Unicode MS",
                                "value": "\"Arial Unicode MS\""
                            },
                            {
                                "displayName": "Calibri",
                                "value": "Calibri"
                            },
                            {
                                "displayName": "Cambria",
                                "value": "Cambria"
                            },
                            {
                                "displayName": "Cambria Math",
                                "value": "\"Cambria Math\""
                            },
                            {
                                "displayName": "Candara",
                                "value": "Candara"
                            },
                            {
                                "displayName": "Comic Sans MS",
                                "value": "\"Comic Sans MS\""
                            },
                            {
                                "displayName": "Consolas",
                                "value": "Consolas"
                            },
                            {
                                "displayName": "Constantia",
                                "value": "Constantia"
                            },
                            {
                                "displayName": "Corbel",
                                "value": "Corbel"
                            },
                            {
                                "displayName": "Courier New",
                                "value": "\"Courier New\""
                            },
                            {
                                "displayName": "Georgia",
                                "value": "Georgia"
                            },
                            {
                                "displayName": "Lucida Sans Unicode",
                                "value": "\"Lucida Sans Unicode\""
                            },
                            {
                                "displayName": "Segoe (Bold)",
                                "value": "\"Segoe UI Bold\", wf_segoe-ui_bold, helvetica, arial, sans-serif"
                            },
                            {
                                "displayName": "Segoe UI",
                                "value": "\"Segoe UI\", wf_segoe-ui_normal, helvetica, arial, sans-serif"
                            },
                            {
                                "displayName": "Segoe UI Light",
                                "value": "\"Segoe UI Light\", wf_segoe-ui_bold, helvetica, arial, sans-serif"
                            },
                            {
                                "displayName": "Symbol",
                                "value": "Symbol"
                            },
                            {
                                "displayName": "Tahoma",
                                "value": "Tahoma"
                            },
                            {
                                "displayName": "Times New Roman",
                                "value": "\"Times New Roman\""
                            },
                            {
                                "displayName": "Trebuchet MS",
                                "value": "\"Trebuchet MS\""
                            },
                            {
                                "displayName": "Verdana",
                                "value": "Verdana"
                            },
                            {
                                "displayName": "Wingdings",
                                "value": "Wingdings"
                            }
                        ]
                    }
                },
                "btnSize": {
                    "type": {
                        "integer": true                        
                    },
                    "displayName": "Button Size",
                    "description": "Select button size"
                }
            }
        }
    }
}&lt;/PRE&gt;&lt;P&gt;visual.ts:&lt;/P&gt;&lt;PRE&gt;/*
 *  Power BI Visual CLI
 *
 *  Copyright (c) Microsoft Corporation
 *  All rights reserved.
 *  MIT License
 *
 *  Permission is hereby granted, free of charge, to any person obtaining a copy
 *  of this software and associated documentation files (the ""Software""), to deal
 *  in the Software without restriction, including without limitation the rights
 *  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 *  copies of the Software, and to permit persons to whom the Software is
 *  furnished to do so, subject to the following conditions:
 *
 *  The above copyright notice and this permission notice shall be included in
 *  all copies or substantial portions of the Software.
 *
 *  THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 *  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 *  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 *  THE SOFTWARE.
 */

module powerbi.extensibility.visual {
    "use strict";
    interface FlexiSlicerViewModel {
        vertical: boolean;
        defaultId: number;
        numberCats: number;
        fontSize: number;
        fontFamily: string;
        fontColor: string;
        backgroundColor: string;
        radioBtnSize: number;
    };

    function visualTransform(options: VisualUpdateOptions, host: IVisualHost): FlexiSlicerViewModel {
        let dataViews = options.dataViews;
        let viewModel: FlexiSlicerViewModel = {
           vertical: true,
           defaultId: 0,
           numberCats: 0,
           fontSize: 12,
           fontFamily: "Arial",
           fontColor: "blue",
           backgroundColor: "white",
           radioBtnSize: 12
        };
       
        if (!dataViews
            || !dataViews[0]
            || !dataViews[0].categorical
            || !dataViews[0].categorical.categories
            || !dataViews[0].categorical.categories[0]
        )
            return viewModel;        
        
        let category = options.dataViews[0].categorical.categories[0];
        var numCats = category.values.length;

        let dvobjs = dataViews[0].metadata.objects;
        try{
            let style: FlexiSlicerViewModel = {
                    vertical: getValue&amp;lt;boolean&amp;gt;(dvobjs, 'labels', 'vertical', true),
                    defaultId: getValue&amp;lt;number&amp;gt;(dvobjs, 'defaults', 'defaultId', 0),
                    numberCats: numCats,
                    fontSize: getValue&amp;lt;number&amp;gt;(dvobjs, 'labels', 'fontSize', 12),
                    fontFamily: getValue&amp;lt;string&amp;gt;(dvobjs, 'labels', 'fontFamily', "Arial"),
                    fontColor: getFill(dataViews[0], 'labels', 'fontColor', "blue"),
                    backgroundColor: getFill(dataViews[0], 'labels', 'backgroundColor', "white"),
                    radioBtnSize: getValue&amp;lt;number&amp;gt;(dvobjs, 'labels', 'btnSize', 12)
                };
                
            return style;
        }
        catch(e){
            return viewModel;
        }
    }


    export class Visual implements IVisual {
        private target: HTMLElement;
        private flexiSlicerViewModel: FlexiSlicerViewModel;
        //private numberCats: number;
        private selectionManager: ISelectionManager;
        private selectionIds: any = {};
        private host: IVisualHost;
        private isEventUpdate: boolean = false;
        private lastSelectedValue: any;

        constructor(options: VisualConstructorOptions) {
            this.target = options.element;
            this.host = options.host;
            this.selectionManager = options.host.createSelectionManager();
        }

        public update(options: VisualUpdateOptions) {
            this.flexiSlicerViewModel = visualTransform(options, this.host);
            if (this.flexiSlicerViewModel &amp;amp;&amp;amp; !this.isEventUpdate){             
                this.init(options);

                //update if default item is set
                if(this.flexiSlicerViewModel.defaultId &amp;gt; 0){
                    this.selectionManager.clear(); // Clean up previous filter before applying another one.                    
                    // Find the selectionId and select it
                    this.selectionManager.select(this.lastSelectedValue).then((ids: ISelectionId[]) =&amp;gt; {  });                
                    // This call applys the previously selected selectionId                    
                    this.selectionManager.applySelectionFilter();
                }
            }
        }

        public init(options: VisualUpdateOptions) {
            // Return if we don't have a category
            if (!options ||
                !options.dataViews ||
                !options.dataViews[0] ||
                !options.dataViews[0].categorical ||
                !options.dataViews[0].categorical.categories ||
                !options.dataViews[0].categorical.categories[0]) {
                return;
            }
            let viewmodel = this.flexiSlicerViewModel;

            // remove any children from previous renders
            while (this.target.firstChild) {
                this.target.removeChild(this.target.firstChild);
            }

            // clear out any previous selection ids
            this.selectionIds = {};

            // get the category data.
            let category = options.dataViews[0].categorical.categories[0];
            let values = category.values;

            // build selection ids to be used by filtering capabilities later
            var itemctr: number = 0;
            let scroller = document.createElement("div");
            scroller.className="container";
            scroller.style.width = options.viewport.width.toString() +"px";
            scroller.style.height = options.viewport.height.toString() +"px";
            scroller.style.backgroundColor = viewmodel.backgroundColor;

            values.forEach((item: number, index: number) =&amp;gt; {
                itemctr++;
                // create an in-memory version of the selection id so it can be used in onclick event.
                this.selectionIds[item] = this.host.createSelectionIdBuilder()
                    .withCategory(category, index)
                    .createSelectionId();               

                let value = item.toString();
                let radio = document.createElement("input");
                radio.type = "radio";
                radio.value = value;
                radio.name = "values";
                radio.id = itemctr.toString();

                radio.style.height= viewmodel.radioBtnSize.toString()+"px";// viewmodel.fontSize.toString() + "px";
                radio.style.width= viewmodel.radioBtnSize.toString()+"px";//viewmodel.fontSize.toString() + "px"; 
                //set default checked item
                if(itemctr == viewmodel.defaultId ){
                    radio.checked = true;
                    this.lastSelectedValue = this.selectionIds[value];
                }

                radio.onclick = function (ev) {
                    this.isEventUpdate = true;
                     // This is checked in the update method. If true it won't re-render, this prevents an infinite loop                   
                    this.selectionManager.clear(); // Clean up previous filter before applying another one.                    
                    // select saved selectionid
                    this.selectionManager.select(this.selectionIds[value]).then((ids: ISelectionId[]) =&amp;gt; {  });                
                    // This call applys the previously saved selectionId                    
                    this.selectionManager.applySelectionFilter();

                }.bind(this);
            
                let label = document.createElement("label");
                label.innerHTML += value;
                label.style.fontFamily= viewmodel.fontFamily;
                label.style.color = viewmodel.fontColor;
                label.style.fontSize = viewmodel.fontSize.toString() + "px";
                label.htmlFor=itemctr.toString();
    
                scroller.appendChild(radio);
                scroller.appendChild(label);

                if (viewmodel.vertical == true &amp;amp;&amp;amp; itemctr &amp;lt; values.length ) {
                    scroller.appendChild(document.createElement("br"));
                }

            });
            this.target.appendChild(scroller);
        }


        /**
         * Enumerates through the objects defined in the capabilities and adds the properties to the format pane
         *
         * @function
         * @param {EnumerateVisualObjectInstancesOptions} options - Map of defined objects
         */
        //@logExceptions()
        public enumerateObjectInstances(options: EnumerateVisualObjectInstancesOptions): VisualObjectInstanceEnumeration {
            let objectName = options.objectName;
            let objectEnumeration: VisualObjectInstance[] = [];
            let viewModel = this.flexiSlicerViewModel;
            switch (objectName) {
                case 'defaults':
                    var id: number = 0;
                    if(viewModel.defaultId &amp;gt; viewModel.numberCats) id= 0; else id= viewModel.defaultId;

                    objectEnumeration.push({
                        objectName: objectName,
                        properties: {                           
                            defaultId: id
                        },
                        validValues: {                            
                            defaultId: {
                                numberRange: {
                                    min: 0,
                                    max: viewModel.numberCats
                                }
                            }
                        },
                        selector: null
                    });
                    break;
                case 'labels':
                    objectEnumeration.push({
                        objectName: objectName,
                        properties: {
                            vertical: viewModel.vertical,
                            backgroundColor: viewModel.backgroundColor,
                            fontSize: viewModel.fontSize,
                            fontFamily: viewModel.fontFamily,
                            fontColor: viewModel.fontColor,
                            btnSize: viewModel.radioBtnSize
                        },
                        validValues: {                            
                            btnSize: {
                                numberRange: {
                                    min: 1,
                                    max: 40
                                }
                            }
                        },
                        selector: null
                    });
                    break;                
            };
            this.isEventUpdate = false;
            
            return objectEnumeration;
        }
    }
}&lt;/PRE&gt;</description>
      <pubDate>Fri, 24 Aug 2018 19:24:52 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Developer/Font-Size-Property-Unit-Issue-in-Custom-Visual/m-p/498864#M15315</guid>
      <dc:creator>tcd1nc</dc:creator>
      <dc:date>2018-08-24T19:24:52Z</dc:date>
    </item>
    <item>
      <title>Re: Font Size Property render in Custom Visual</title>
      <link>https://community.fabric.microsoft.com/t5/Developer/Font-Size-Property-Unit-Issue-in-Custom-Visual/m-p/517576#M15990</link>
      <description>&lt;P&gt;Can you share full source code as a zip file?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0in; font-family: Calibri; font-size: 11.0pt; color: #333333;"&gt;Ignat Vilesov,&lt;/P&gt;
&lt;P style="margin: 0in; font-family: Calibri; font-size: 11.0pt; color: #333333;"&gt;Software Engineer&lt;/P&gt;
&lt;P style="margin: 0in; font-family: Calibri; font-size: 11.0pt; color: #333333;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0in; font-family: Calibri; font-size: 11.0pt; color: #333333;"&gt;Microsoft Power BI Custom Visuals&lt;/P&gt;
&lt;P style="margin: 0in; font-family: Calibri; font-size: 11.0pt;"&gt;&lt;A href="mailto:pbicvsupport@microsoft.com" target="_blank"&gt;pbicvsupport@microsoft.com&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 17 Sep 2018 13:20:24 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Developer/Font-Size-Property-Unit-Issue-in-Custom-Visual/m-p/517576#M15990</guid>
      <dc:creator>v-viig</dc:creator>
      <dc:date>2018-09-17T13:20:24Z</dc:date>
    </item>
  </channel>
</rss>

