From bd58d2917ec62621846ef5d43256dc4e68cbc7e2 Mon Sep 17 00:00:00 2001 From: Andrew Johnson Date: Mon, 24 Jul 2023 23:44:44 +0300 Subject: [PATCH 1/2] Remove unnecessary deps --- package.json | 7 +---- pbiviz.json | 2 +- src/D3 Plotting Functions/index.ts | 8 +++++ src/visual.ts | 50 ++++++++++-------------------- style/visual.less | 9 ------ 5 files changed, 27 insertions(+), 49 deletions(-) create mode 100644 src/D3 Plotting Functions/index.ts delete mode 100644 style/visual.less diff --git a/package.json b/package.json index 7a25fe1..bb84ca0 100644 --- a/package.json +++ b/package.json @@ -7,16 +7,11 @@ "eslint": "npx eslint . --ext .js,.jsx,.ts,.tsx" }, "dependencies": { - "@babel/runtime": "7.20.7", - "@babel/runtime-corejs3": "7.20.7", "@stdlib/math": "^0.0.11", - "core-js": "3.27.2", "d3": "^7.8.2", - "minimist": "^1.2.7", "powerbi-visuals-api": "~3.6.0", "powerbi-visuals-utils-dataviewutils": "^2.2.1", - "powerbi-visuals-utils-typeutils": "^6.0.1", - "regenerator-runtime": "^0.13.11" + "powerbi-visuals-utils-typeutils": "^6.0.1" }, "devDependencies": { "@types/d3": "^7.4.0", diff --git a/pbiviz.json b/pbiviz.json index 98a1b3f..dabf930 100644 --- a/pbiviz.json +++ b/pbiviz.json @@ -18,7 +18,7 @@ "icon":"assets/icon.png" }, "externalJS":null, - "style":"style/visual.less", + "style":null, "capabilities":"capabilities.json", "dependencies":null, "stringResources":[] diff --git a/src/D3 Plotting Functions/index.ts b/src/D3 Plotting Functions/index.ts new file mode 100644 index 0000000..21e35c3 --- /dev/null +++ b/src/D3 Plotting Functions/index.ts @@ -0,0 +1,8 @@ +export { default as addContextMenu } from "./addContextMenu" +export { default as drawDots } from "./drawDots" +export { default as drawIcons } from "./drawIcons" +export { default as drawLines } from "./drawLines" +export { default as drawTooltipLine } from "./drawTooltipLine" +export { default as drawXAxis } from "./drawXAxis" +export { default as drawYAxis } from "./drawYAxis" +export { default as updateHighlighting } from "./updateHighlighting" diff --git a/src/visual.ts b/src/visual.ts index e65ea98..4cb684a 100644 --- a/src/visual.ts +++ b/src/visual.ts @@ -1,39 +1,23 @@ "use strict"; -import "core-js/stable"; -import "regenerator-runtime/runtime"; -import "../style/visual.less"; import powerbi from "powerbi-visuals-api"; -import IVisual = powerbi.extensibility.IVisual; -import VisualConstructorOptions = powerbi.extensibility.visual.VisualConstructorOptions; -import VisualUpdateOptions = powerbi.extensibility.visual.VisualUpdateOptions; import EnumerateVisualObjectInstancesOptions = powerbi.EnumerateVisualObjectInstancesOptions; import VisualObjectInstanceEnumerationObject = powerbi.VisualObjectInstanceEnumerationObject; -import IVisualHost = powerbi.extensibility.visual.IVisualHost; -import ISelectionManager = powerbi.extensibility.ISelectionManager; -import IVisualEventService = powerbi.extensibility.IVisualEventService; -import viewModelClass from "./Classes/viewModelClass" import * as d3 from "d3"; -import updateHighlighting from "./D3 Plotting Functions/updateHighlighting"; -import drawXAxis from "./D3 Plotting Functions/drawXAxis"; -import drawYAxis from "./D3 Plotting Functions/drawYAxis"; -import drawTooltipLine from "./D3 Plotting Functions/drawTooltipLine"; -import drawLines from "./D3 Plotting Functions/drawLines"; -import drawDots from "./D3 Plotting Functions/drawDots"; -import drawIcons from "./D3 Plotting Functions/drawIcons"; -import addContextMenu from "./D3 Plotting Functions/addContextMenu"; +import * as spc from "./D3 Plotting Functions" +import viewModelClass from "./Classes/viewModelClass" export type svgBaseType = d3.Selection; -export class Visual implements IVisual { - host: IVisualHost; +export class Visual implements powerbi.extensibility.IVisual { + host: powerbi.extensibility.visual.IVisualHost; svg: svgBaseType; viewModel: viewModelClass; - selectionManager: ISelectionManager; + selectionManager: powerbi.extensibility.ISelectionManager; // Service for notifying external clients (export to powerpoint/pdf) of rendering status - events: IVisualEventService; + events: powerbi.extensibility.IVisualEventService; - constructor(options: VisualConstructorOptions) { + constructor(options: powerbi.extensibility.visual.VisualConstructorOptions) { this.svg = d3.select(options.element).append("svg"); this.events = options.host.eventService; this.host = options.host; @@ -41,7 +25,7 @@ export class Visual implements IVisual { this.selectionManager = this.host.createSelectionManager(); this.selectionManager.registerOnSelectCallback(() => { - this.svg.call(updateHighlighting, this); + this.svg.call(spc.updateHighlighting, this); }); this.svg.append('g').classed("dotsgroup", true) @@ -54,21 +38,21 @@ export class Visual implements IVisual { this.svg.append('text').classed("yaxislabel", true) } - public update(options: VisualUpdateOptions) { + public update(options: powerbi.extensibility.visual.VisualUpdateOptions) { try { this.events.renderingStarted(options); this.viewModel.update({ options: options, host: this.host }); this.svg.attr("width", this.viewModel.plotProperties.width) .attr("height", this.viewModel.plotProperties.height) - .call(drawXAxis, this) - .call(drawYAxis, this) - .call(drawTooltipLine, this) - .call(drawLines, this) - .call(drawDots, this) - .call(drawIcons, this) - .call(updateHighlighting, this) - .call(addContextMenu, this) + .call(spc.drawXAxis, this) + .call(spc.drawYAxis, this) + .call(spc.drawTooltipLine, this) + .call(spc.drawLines, this) + .call(spc.drawDots, this) + .call(spc.drawIcons, this) + .call(spc.updateHighlighting, this) + .call(spc.addContextMenu, this) this.events.renderingFinished(options); } catch (caught_error) { diff --git a/style/visual.less b/style/visual.less deleted file mode 100644 index 9b1f1dd..0000000 --- a/style/visual.less +++ /dev/null @@ -1,9 +0,0 @@ -p { - font-size: 20px; - font-weight: bold; - em { - background: yellow; - padding: 5px; - - } -} \ No newline at end of file From 62c3e93c89c4d59e1f8fcc8978113c810d10b16f Mon Sep 17 00:00:00 2001 From: Andrew Johnson Date: Mon, 24 Jul 2023 23:52:11 +0300 Subject: [PATCH 2/2] Unneeded typeutils dep --- package.json | 3 +-- pbiviz.json | 2 +- src/Classes/plotPropertiesClass.ts | 9 ++++----- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index bb84ca0..38f5770 100644 --- a/package.json +++ b/package.json @@ -10,8 +10,7 @@ "@stdlib/math": "^0.0.11", "d3": "^7.8.2", "powerbi-visuals-api": "~3.6.0", - "powerbi-visuals-utils-dataviewutils": "^2.2.1", - "powerbi-visuals-utils-typeutils": "^6.0.1" + "powerbi-visuals-utils-dataviewutils": "^2.2.1" }, "devDependencies": { "@types/d3": "^7.4.0", diff --git a/pbiviz.json b/pbiviz.json index dabf930..e8fd743 100644 --- a/pbiviz.json +++ b/pbiviz.json @@ -4,7 +4,7 @@ "displayName":"SPC Charts", "guid":"PBISPC", "visualClassName":"Visual", - "version":"1.3.3.10", + "version":"1.3.3.11", "description":"A PowerBI custom visual for SPC charts", "supportUrl":"https://github.com/AUS-DOH-Safety-and-Quality/PowerBI-SPC", "gitHubUrl":"https://github.com/AUS-DOH-Safety-and-Quality/PowerBI-SPC" diff --git a/src/Classes/plotPropertiesClass.ts b/src/Classes/plotPropertiesClass.ts index 081288c..411ffd5 100644 --- a/src/Classes/plotPropertiesClass.ts +++ b/src/Classes/plotPropertiesClass.ts @@ -6,7 +6,6 @@ import { plotData } from "./viewModelClass" import settingsClass from "./settingsClass"; import dataClass from "./dataClass"; import controlLimitsClass from "./controlLimitsClass"; -import { pixelConverter } from "powerbi-visuals-utils-typeutils"; export type axisProperties = { lower: number, @@ -114,13 +113,13 @@ export default class plotPropertiesClass { end_padding: args.inputSettings.canvas.right_padding, colour: args.inputSettings.x_axis.xlimit_colour, ticks: args.inputSettings.x_axis.xlimit_ticks, - tick_size: pixelConverter.toString(xTickSize), + tick_size: `${xTickSize}px`, tick_font: args.inputSettings.x_axis.xlimit_tick_font, tick_colour: args.inputSettings.x_axis.xlimit_tick_colour, tick_rotation: args.inputSettings.x_axis.xlimit_tick_rotation, tick_count: args.inputSettings.x_axis.xlimit_tick_count, label: args.inputSettings.x_axis.xlimit_label, - label_size: pixelConverter.toString(args.inputSettings.x_axis.xlimit_label_size), + label_size: `${args.inputSettings.x_axis.xlimit_label_size}px`, label_font: args.inputSettings.x_axis.xlimit_label_font, label_colour: args.inputSettings.x_axis.xlimit_label_colour }; @@ -132,13 +131,13 @@ export default class plotPropertiesClass { end_padding: args.inputSettings.canvas.upper_padding, colour: args.inputSettings.y_axis.ylimit_colour, ticks: args.inputSettings.y_axis.ylimit_ticks, - tick_size: pixelConverter.toString(yTickSize), + tick_size: `${yTickSize}px`, tick_font: args.inputSettings.y_axis.ylimit_tick_font, tick_colour: args.inputSettings.y_axis.ylimit_tick_colour, tick_rotation: args.inputSettings.y_axis.ylimit_tick_rotation, tick_count: args.inputSettings.y_axis.ylimit_tick_count, label: args.inputSettings.y_axis.ylimit_label, - label_size: pixelConverter.toString(args.inputSettings.y_axis.ylimit_label_size), + label_size: `${args.inputSettings.y_axis.ylimit_label_size}px`, label_font: args.inputSettings.y_axis.ylimit_label_font, label_colour: args.inputSettings.y_axis.ylimit_label_colour };