diff --git a/capabilities.json b/capabilities.json index 74595a7..8e86aa1 100644 --- a/capabilities.json +++ b/capabilities.json @@ -129,6 +129,7 @@ "displayName": "Force display", "displayNameKey": "Visual_Force_Display", "description": "Display all labels anyway", + "descriptionKey": "Visual_Description_Force_Display", "type": { "bool": true } @@ -256,13 +257,13 @@ "displayNameKey": "Visual_Cycles", "properties": { "drawCycles": { - "displayName": "Dublicate nodes", - "displayNameKey": "Visual_DublicateNodes", + "displayName": "Duplicate nodes", + "displayNameKey": "Visual_DuplicateNodes", "type": { "enumeration": [ { - "displayName": "Dublicate", - "displayNameKey": "Visual_Dublicate", + "displayName": "Duplicate", + "displayNameKey": "Visual_Duplicate", "value": "0" }, { diff --git a/package.json b/package.json index 676dd77..776a4a6 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,8 @@ "package": "pbiviz package", "lint": "node node_modules/tslint/bin/tslint \"+(src|test)/**/*.ts\"", "pretest": "pbiviz package --resources --no-minify --no-pbiviz --no-plugin", - "test": "karma start" + "test": "karma start", + "cert": "pbiviz --create-cert" }, "author": { "name": "Microsoft", @@ -56,7 +57,7 @@ "powerbi-models": "1.0.3", "powerbi-visuals-utils-interactivityutils": "3.1.0", "powerbi-visuals-utils-svgutils": "^0.2.1", - "powerbi-visuals-utils-testutils": "^0.2.1", + "powerbi-visuals-utils-testutils": "1.2.1", "powerbi-visuals-utils-tooltiputils": "^0.3.0", "powerbi-visuals-utils-typeutils": "^0.2.0", "tslint": "4.0.2", diff --git a/src/settings.ts b/src/settings.ts index 3685cb0..f468eed 100644 --- a/src/settings.ts +++ b/src/settings.ts @@ -28,7 +28,7 @@ module powerbi.extensibility.visual { import DataViewObjectsParser = powerbi.extensibility.utils.dataview.DataViewObjectsParser; export enum CyclesDrawType { - Dublicate, + Duplicate, Backward } @@ -67,7 +67,7 @@ module powerbi.extensibility.visual { } export class SankeyNodeCycles { - public drawCycles: number = CyclesDrawType.Dublicate; + public drawCycles: number = CyclesDrawType.Duplicate; public selfLinksWeight: boolean = true; } diff --git a/src/visual.ts b/src/visual.ts index c75d458..b310f17 100755 --- a/src/visual.ts +++ b/src/visual.ts @@ -159,7 +159,7 @@ module powerbi.extensibility.visual { private static MinRangeOfScale = 0; private static DefaultMaxRangeOfScale = 100; - public static DublicatedNamePostfix: string = "_SK_SELFLINK"; + public static DuplicatedNamePostfix: string = "_SK_SELFLINK"; private static DefaultWeightOfLink: number = 1; @@ -203,6 +203,7 @@ module powerbi.extensibility.visual { private colorPalette: IColorPalette; private visualHost: IVisualHost; + private localizationManager: ILocalizationManager; private viewport: IViewport; @@ -234,6 +235,7 @@ module powerbi.extensibility.visual { private init(options: VisualConstructorOptions): void { this.visualHost = options.host; + this.localizationManager = this.visualHost.createLocalizationManager(); this.root = d3.select(options.element) .append("svg") @@ -369,7 +371,7 @@ module powerbi.extensibility.visual { let cycles: SankeyDiagramCycleDictionary = this.checkCycles(nodes); - if (settings.cyclesLinks.drawCycles === CyclesDrawType.Dublicate) { + if (settings.cyclesLinks.drawCycles === CyclesDrawType.Duplicate) { links = this.processCyclesForwardLinks(cycles, nodes, links, settings); } @@ -412,7 +414,7 @@ module powerbi.extensibility.visual { let firstCyclesNode: SankeyDiagramNode = cycles[nodeName][cycles[nodeName].length - 1]; // create a clone of the node and save a link to each other. In selection behavior, selection of clone lead to select original and visa versa let nodeCopy: SankeyDiagramNode = _.cloneDeep(firstCyclesNode); - nodeCopy.label.name += SankeyDiagram.DublicatedNamePostfix; + nodeCopy.label.name += SankeyDiagram.DuplicatedNamePostfix; firstCyclesNode.cloneLink = nodeCopy; nodeCopy.cloneLink = firstCyclesNode; @@ -500,7 +502,7 @@ module powerbi.extensibility.visual { }); } - // remove dublicated links + // remove Duplicated links private static fixLinksCount(node: SankeyDiagramNode) { node.links = _.uniq(node.links); } @@ -615,7 +617,7 @@ module powerbi.extensibility.visual { let categories: any[] = sourceCategories.concat(destinationCategories); categories.forEach((item: any, index: number) => { - let formattedValue: string = valueFormatterForCategories.format((labelsDictionary[item].toString()).replace(SankeyDiagram.DublicatedNamePostfix, "")), + let formattedValue: string = valueFormatterForCategories.format((labelsDictionary[item].toString()).replace(SankeyDiagram.DuplicatedNamePostfix, "")), label: SankeyDiagramLabel, selectableDataPoint: SelectableDataPoint, textProperties: TextProperties = { @@ -627,7 +629,7 @@ module powerbi.extensibility.visual { label = { internalName: item, name: item, - formattedName: valueFormatterForCategories.format((labelsDictionary[item].toString()).replace(SankeyDiagram.DublicatedNamePostfix, "")), + formattedName: valueFormatterForCategories.format((labelsDictionary[item].toString()).replace(SankeyDiagram.DuplicatedNamePostfix, "")), width: textMeasurementService.measureSvgTextWidth(textProperties), height: textMeasurementService.estimateSvgTextHeight(textProperties), color: settings.labels.fill @@ -770,10 +772,12 @@ module powerbi.extensibility.visual { nodes.inputWeight ? nodes.inputWeight : nodes.outputWeight, + this.localizationManager, nodes.inputWeight > 0 && nodes.outputWeight > 0 ? `${sourceFieldName}-${destinationFieldName}` : nodes.outputWeight > 0 ? sourceFieldName : destinationFieldName, - valueFieldName); + valueFieldName + ); }); @@ -889,8 +893,9 @@ module powerbi.extensibility.visual { valueFormatter: IValueFormatter, nodeName: string, nodeWeight: number, + localizationManager: ILocalizationManager, nodeDisplayName?: string, - valueDisplayName?: string, + valueDisplayName?: string ): VisualTooltipDataItem[] { let formattedNodeWeigth: string; @@ -903,7 +908,7 @@ module powerbi.extensibility.visual { return [ { - displayName: nodeDisplayName || SankeyDiagram.TooltipDisplayName, + displayName: localizationManager.getDisplayName("Visual_TooltipDisplayName"), value: nodeName }, { displayName: valueDisplayName || SankeyDiagram.RoleNames.values, diff --git a/stringResources/en-US/resources.resjson b/stringResources/en-US/resources.resjson index 8fd1a1a..cfead94 100644 --- a/stringResources/en-US/resources.resjson +++ b/stringResources/en-US/resources.resjson @@ -20,5 +20,12 @@ "Visual_SankeySettings": "Sankey settigns", "Visual_NodePositions": "Node positions", "Visual_ViewportSize": "Viewport sizes", - "Visual_Display_Units": "Display units" + "Visual_Display_Units": "Display units", + "Visual_Cycles": "Cycles displaying", + "Visual_DuplicateNodes": "Duplicate nodes", + "Visual_Duplicate": "Duplicate", + "Visual_DrawBackwardLink": "Draw backward link", + "Visual_SelflinkWeight": "Ignore weight of self links", + "Visual_TooltipDisplayName": "Name", + "Visual_Description_Force_Display": "Display all labels anyway" } \ No newline at end of file