diff --git a/packages/builder/src/components/userInterface/temporaryPanelStructure.js b/packages/builder/src/components/userInterface/temporaryPanelStructure.js index 21bb4b7ad8..6d929d333c 100644 --- a/packages/builder/src/components/userInterface/temporaryPanelStructure.js +++ b/packages/builder/src/components/userInterface/temporaryPanelStructure.js @@ -533,6 +533,316 @@ export default { ], }, }, + { + name: "Scatterplot", + _component: "@budibase/standard-components/scatterplot", + description: "Scatterplot chart", + icon: "ri-bar-chart-fill", + presetProps: { + data: [ + { + name: "topic", + x: 123, + y: 24, + }, + { + name: "topic1", + x: 53, + y: 31, + }, + { + name: "topic2", + x: 631, + y: 321, + }, + { + name: "topic1", + x: 231, + y: 111, + }, + ], + }, + properties: { + settings: [ + { + label: "Colors", + key: "color", + control: OptionSelect, + options: [ + { label: "Normal", value: "britecharts" }, + { label: "Blue Green", value: "blueGreen" }, + { label: "Green", value: "green" }, + { label: "Grey", value: "grey" }, + { label: "Orange", value: "orange" }, + { label: "Pink", value: "pink" }, + { label: "Purple", value: "purple" }, + { label: "Red", value: "red" }, + { label: "Teal", value: "teal" }, + { label: "Yellow", value: "yellow" }, + ], + }, + { + label: "height", + key: "height", + control: Input, + }, + { + label: "Width", + key: "width", + control: Input, + }, + { + label: "Aspect Ratio", + key: "aspectRatio", + control: Input, + }, + { + label: "Circle Opacity", + key: "circleOpacity", + control: Input, + }, + { + label: "Grid", + key: "grid", + control: OptionSelect, + options: ["vertical", "horizontal", "full"], + }, + { + label: "Has Crosshairs", + key: "hasCrossHairs", + valueKey: "checked", + control: Checkbox, + }, + { + label: "Is Animated", + key: "isAnimated", + valueKey: "checked", + control: Checkbox, + }, + { + label: "Max Circle Area", + key: "maxCircleArea", + control: Input, + }, + { + label: "X Axis Label", + key: "xAxisLabel", + control: Input, + }, + { + label: "X Axis Label Offset", + key: "xAxisLabelOffset", + control: Input, + }, + { + label: "X Axis", + key: "xTicks", + control: Input, + }, + { + label: "Y Axis Format", + key: "yAxisFormat", + control: Input, + }, + { + label: "Y Axis Label", + key: "yAxisLabel", + control: Input, + }, + { + label: "Y Axis Label Offset", + key: "yAxisLabelOffset", + control: Input, + }, + { + label: "Y Ticks", + key: "yTicks", + control: Input, + }, + ], + }, + }, + { + name: "StackedArea", + _component: "@budibase/standard-components/stackedarea", + description: "StackedArea chart", + icon: "ri-bar-chart-fill", + presetProps: { + data: [ + { + date: "2011-01-05T00:00:00Z", + name: "Direct", + value: 0, + }, + ], + }, + properties: { + settings: [ + { + label: "Color", + key: "color", + control: OptionSelect, + options: [ + "britecharts", + "blueGreen", + "green", + "grey", + "orange", + "pink", + "purple", + "red", + "teal", + "yellow", + ], + }, + { + label: "Height", + key: "height", + control: Input, + }, + { + label: "Width", + key: "width", + control: Input, + }, + { + label: "Aspect Ratio", + key: "aspectRatio", + control: Input, + }, + { + label: "Height", + key: "height", + control: Input, + }, + { + label: "Grid", + key: "grid", + control: OptionSelect, + options: ["vertical", "horizontal", "full"], + }, + { + label: "X Axis Label", + key: "xAxisLabel", + control: Input, + }, + { + label: "X Axis Label Offset", + key: "xAxisLabelOffset", + control: Input, + }, + { + label: "Y Axis", + key: "yAxisLabel", + control: Input, + }, + { + label: "Y Axis Label Offset", + key: "yAxisLabelOffset", + control: Input, + }, + { + label: "Area Curve", + key: "areaCurve", + control: Input, + }, + { + label: "Area Opacity", + key: "areaOpacity", + control: Input, + }, + { + label: "Area Opacity", + key: "areaOpacity", + control: Input, + }, + { + label: "dateLabel", + key: "dateLabel", + control: Input, + }, + { + key: "isAnimated", + label: "Is Animated", + valueKey: "checked", + control: Checkbox, + }, + { + label: "Key Label", + key: "keyLabel", + control: Input, + }, + { + label: "Locale", + key: "locale", + control: Input, + }, + { + label: "Value Label", + key: "valueLabel", + control: Input, + }, + { + label: "Use Legend", + key: "useLegend", + keyValue: "checked", + control: Checkbox, + }, + ], + }, + }, + { + name: "Step", + _component: "@budibase/standard-components/step", + description: "Step chart", + icon: "ri-bar-chart-fill", + presetProps: { + data: [ + { + value: 1, + key: "glittering", + }, + { + value: 2, + key: "luminous", + }, + ], + }, + properties: { + settings: [ + { + label: "height", + key: "height", + control: Input, + }, + { + label: "Width", + key: "width", + control: Input, + }, + { + label: "Y Axis Label", + key: "yAxisLabel", + control: Input, + }, + { + label: "Y Axis Label Offset", + key: "yAxisLabelOffset", + control: Input, + }, + { + label: "Y Ticks", + key: "yTicks", + control: Input, + }, + { + label: "X Axis Label Offset", + key: "xAxisLabelOffset", + control: Input, + }, + ], + }, + }, { name: "Sparkline", _component: "@budibase/standard-components/sparkline", @@ -742,6 +1052,7 @@ export default { { label: "Use Legend", key: "useLegend", + keyValue: "checked", control: Checkbox, }, ], @@ -1007,6 +1318,137 @@ export default { ], }, }, + { + name: "Stacked Bar", + _component: "@budibase/standard-components/stackedbar", + description: "Stacked Bar Chart", + icon: "ri-file-list-fill", + presetProps: { + data: [ + { + name: "2011-01", + stack: "Direct", + value: 0, + }, + ], + }, + properties: { + settings: [ + { + label: "Colors", + key: "color", + control: OptionSelect, + options: [ + "britecharts", + "blueGreen", + "green", + "grey", + "orange", + "pink", + "purple", + "red", + "teal", + "yellow", + ], + }, + { + label: "Grid", + key: "grid", + control: OptionSelect, + options: ["vertical", "horizontal", "full"], + }, + { + label: "Aspect Ratio", + key: "aspectRatio", + control: Input, + }, + { + label: "Between Bars Padding", + key: "betweenBarsPadding", + control: Input, + }, + { + label: "Max Ratio Percentage", + key: "percentageToMaxRatio", + control: Input, + }, + { + label: "Date Label", + key: "dateLabel", + control: Input, + }, + { + label: "Name Label", + key: "nameLabel", + control: Input, + }, + { + label: "Stack Label", + key: "stackLabel", + control: Input, + }, + { + label: "Width", + key: "width", + control: Input, + }, + { + label: "Height", + key: "height", + control: Input, + }, + { + label: "Locale", + key: "locale", + control: Input, + }, + { + label: "Is Animated", + key: "isAnimated", + control: Checkbox, + valueKey: "checked", + }, + { + label: "Is Horizontal", + key: "isHorizontal", + control: Checkbox, + valueKey: "checked", + }, + { + label: "Has Reversed Stacks", + key: "hasReversedStacks", + control: Checkbox, + valueKey: "checked", + }, + { + label: "Has Percentage", + key: "hasPercentage", + control: Checkbox, + valueKey: "checked", + }, + { + label: "X Ticks", + key: "xTicks", + control: Input, + }, + { + label: "Y Ticks", + key: "yTicks", + control: Input, + }, + { + label: "Y Axis Label", + key: "yTicksLabel", + control: Input, + }, + { + label: "Y Axis Label Offset", + key: "yAxisLabelOffset", + control: Input, + }, + ], + }, + }, { name: "Line", _component: "@budibase/standard-components/line", diff --git a/packages/standard-components/components.json b/packages/standard-components/components.json index b1c1da528a..6a90567f76 100644 --- a/packages/standard-components/components.json +++ b/packages/standard-components/components.json @@ -286,6 +286,103 @@ "valueLabel": "string" } }, + "stackedbar": { + "description": "Stacked Bar Chart", + "data": true, + "props": { + "color": "string", + "height": "number", + "width": "number", + "margin": "string", + "aspectRatio": "string", + "betweenBarsPadding": "number", + "grid": "string", + "hasPercentage": "bool", + "hasReversedStacks": "bool", + "isAnimated": "bool", + "isHorizontal": "bool", + "locale": "string", + "nameLabel": "string", + "percentageAxisToMaxRatio": "number", + "stackLabel": "string", + "valueLabel": "string", + "valueLabelFormat": "string", + "xTicks": "number", + "yTicks": "number", + "yAxisLabel": "string", + "yAxisLabelOffset": "number", + "useLegend": "bool" + } + }, + "stackarea": { + "description": "Step Chart", + "data": true, + "props": { + "color": "string", + "height": "number", + "width": "number", + "margin": "string", + "xAxisLabel": "string", + "xAxisLabelOffset": "string", + "yAxisLabel": "string", + "yAxisLabelOffset": "string", + "areaCurve": "number", + "areaOpacity": "number", + "aspectRatio": "number", + "dateLabel": "string", + "grid": "string", + "isAnimated": "bool", + "keyLabel": "string", + "locale": "string", + "tooltipThreshold": "number", + "topicsOrder": "string", + "valueLabel": "string", + "xAxisCustomFormat": "string", + "xAxisFormat": "string", + "xAxisScale": "string", + "xAxisValueType":"string", + "yTicks": "number", + "xTicks": "number", + "yAxisBaseline": "string", + "useLegend": "bool" + } + }, + "step": { + "description": "Step Chart", + "data": true, + "props": { + "height": "number", + "width": "number", + "margin": "string", + "xAxisLabel": "string", + "xAxisLabelOffset": "string", + "yAxisLabel": "string", + "yAxisLabelOffset": "string", + "yTicks": "string" + } + }, + "scatterplot": { + "description": "Scatterplot Chart", + "data": true, + "props": { + "color": "string", + "height": "number", + "width": "number", + "aspectRatio": "string", + "circleOpacity": "string", + "grid": "string", + "hasCrossHairs": "bool", + "isAnimated": "bool", + "maxCircleArea": "number", + "xAxisLabel": "string", + "xAxisLabelOffset": "string", + "xTicks": "string", + "yAxisFormat": "string", + "yAxisLabel": "string", + "yAxisLabelOffset": "string", + "yTicks": "string" + } + }, "bar": { "description": "Bar Chart", "data": true, diff --git a/packages/standard-components/src/Chart/ScatterPlot.svelte b/packages/standard-components/src/Chart/ScatterPlot.svelte index e69de29bb2..9c92a635cc 100644 --- a/packages/standard-components/src/Chart/ScatterPlot.svelte +++ b/packages/standard-components/src/Chart/ScatterPlot.svelte @@ -0,0 +1,163 @@ + + +
+{#if useLegend} + +{/if} diff --git a/packages/standard-components/src/Chart/StackedArea.svelte b/packages/standard-components/src/Chart/StackedArea.svelte index e69de29bb2..8eabacef49 100644 --- a/packages/standard-components/src/Chart/StackedArea.svelte +++ b/packages/standard-components/src/Chart/StackedArea.svelte @@ -0,0 +1,157 @@ + + + +{#if useLegend} + +{/if} diff --git a/packages/standard-components/src/Chart/StackedBar.svelte b/packages/standard-components/src/Chart/StackedBar.svelte new file mode 100644 index 0000000000..c8f2bc7fbc --- /dev/null +++ b/packages/standard-components/src/Chart/StackedBar.svelte @@ -0,0 +1,152 @@ + + + +{#if useLegend} + +{/if} diff --git a/packages/standard-components/src/Chart/Step.svelte b/packages/standard-components/src/Chart/Step.svelte index e69de29bb2..e1f53ca317 100644 --- a/packages/standard-components/src/Chart/Step.svelte +++ b/packages/standard-components/src/Chart/Step.svelte @@ -0,0 +1,105 @@ + + + +{#if useLegend} + +{/if} diff --git a/packages/standard-components/src/Chart/index.js b/packages/standard-components/src/Chart/index.js index 127c76caf4..9f4427600d 100644 --- a/packages/standard-components/src/Chart/index.js +++ b/packages/standard-components/src/Chart/index.js @@ -6,4 +6,8 @@ export { default as bullet } from "./Bullet.svelte" export { default as groupedbar } from "./GroupedBar.svelte" export { default as heatmap } from "./Heatmap.svelte" export { default as sparkline } from "./Sparkline.svelte" +export { default as scatterplot } from "./ScatterPlot.svelte" +export { default as step } from "./Step.svelte" +export { default as stackedarea } from "./StackedArea.svelte" +export { default as stackedbar } from "./StackedBar.svelte"