@mozaic-ds/web-components 0.7.0 → 0.9.0-beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/public/ClickOutside-63071e7a.js +15 -1
- package/public/ClickOutside-63071e7a.js.map +1 -1
- package/public/DataTableDefaultAction.nested-c37a5d51.js +762 -0
- package/public/DataTableDefaultAction.nested-c37a5d51.js.map +1 -0
- package/public/DataTableUtilities-313a448d.js +386 -0
- package/public/DataTableUtilities-313a448d.js.map +1 -0
- package/public/EventForward-8492ff62.js +109 -1
- package/public/EventForward-8492ff62.js.map +1 -1
- package/public/EventHandler-02058705.js +15 -1
- package/public/EventHandler-02058705.js.map +1 -1
- package/public/adeo/{DataTableDefaultAction.nested-90536fe3.js → DataTableDefaultAction.nested-ac2e3dbe.js} +2 -2
- package/public/adeo/{DataTableDefaultAction.nested-90536fe3.js.map → DataTableDefaultAction.nested-ac2e3dbe.js.map} +1 -1
- package/public/adeo/DataTableUtilities-313a448d.js +2 -0
- package/public/adeo/DataTableUtilities-313a448d.js.map +1 -0
- package/public/adeo/bundle.js +5 -0
- package/public/adeo/components/barchart/BarChart.svelte +3 -4
- package/public/adeo/components/chart/BarChart.js +1 -1
- package/public/adeo/components/chart/BarChart.js.map +1 -1
- package/public/adeo/components/datatable/DataTable.js +1 -1
- package/public/adeo/components/datatable/DataTable.js.map +1 -1
- package/public/adeo/components/datatable/DataTable.svelte +12 -0
- package/public/adeo/components/datatable/DataTableDefaultAction.nested.js +1 -1
- package/public/adeo/components/datatable/DataTableDefaultEdtion.nested.js +1 -1
- package/public/adeo/components/datatable/DataTableDefaultFilterTags.nested.js +1 -1
- package/public/adeo/components/datatable/DataTableFooter.nested.js +1 -1
- package/public/adeo/components/datatable/data.d.ts.map +1 -1
- package/public/adeo/components/datatable/datatable.types.d.ts +9 -2
- package/public/adeo/components/datatable/datatable.types.d.ts.map +1 -1
- package/public/adeo/components/header/Header.js +1 -1
- package/public/adeo/components/header/Header.js.map +1 -1
- package/public/adeo/components/header/Header.svelte +2 -2
- package/public/adeo/components/kpi/Kpi.js +2 -0
- package/public/adeo/components/kpi/Kpi.js.map +1 -0
- package/public/adeo/components/kpi/Kpi.svelte +232 -0
- package/public/adeo/components/sidebar/Sidebar.js +1 -1
- package/public/adeo/components/sidebar/Sidebar.js.map +1 -1
- package/public/adeo/components/sidebar/Sidebar.svelte +1 -1
- package/public/adeo/icons-storybook.js +16 -0
- package/public/adeo/main.d.ts +1 -0
- package/public/adeo/main.d.ts.map +1 -1
- package/public/adeo/utilities/DataTableUtilities.d.ts.map +1 -1
- package/public/adeo/utilities/DataTableUtilities.ts +22 -2
- package/public/array-5b770a93.js +13 -1
- package/public/array-5b770a93.js.map +1 -1
- package/public/axis-fbc0f7b5.js +174 -1
- package/public/axis-fbc0f7b5.js.map +1 -1
- package/public/band-d7a07d2c.js +186 -1
- package/public/band-d7a07d2c.js.map +1 -1
- package/public/bricoman/{DataTableDefaultAction.nested-928e5e2d.js → DataTableDefaultAction.nested-bcc599d1.js} +2 -2
- package/public/bricoman/{DataTableDefaultAction.nested-928e5e2d.js.map → DataTableDefaultAction.nested-bcc599d1.js.map} +1 -1
- package/public/bricoman/DataTableUtilities-313a448d.js +2 -0
- package/public/bricoman/DataTableUtilities-313a448d.js.map +1 -0
- package/public/bricoman/bundle.js +5 -0
- package/public/bricoman/components/barchart/BarChart.svelte +3 -4
- package/public/bricoman/components/chart/BarChart.js +1 -1
- package/public/bricoman/components/chart/BarChart.js.map +1 -1
- package/public/bricoman/components/datatable/DataTable.js +1 -1
- package/public/bricoman/components/datatable/DataTable.js.map +1 -1
- package/public/bricoman/components/datatable/DataTable.svelte +12 -0
- package/public/bricoman/components/datatable/DataTableDefaultAction.nested.js +1 -1
- package/public/bricoman/components/datatable/DataTableDefaultEdtion.nested.js +1 -1
- package/public/bricoman/components/datatable/DataTableDefaultFilterTags.nested.js +1 -1
- package/public/bricoman/components/datatable/DataTableFooter.nested.js +1 -1
- package/public/bricoman/components/datatable/data.d.ts.map +1 -1
- package/public/bricoman/components/datatable/datatable.types.d.ts +9 -2
- package/public/bricoman/components/datatable/datatable.types.d.ts.map +1 -1
- package/public/bricoman/components/header/Header.js +1 -1
- package/public/bricoman/components/header/Header.js.map +1 -1
- package/public/bricoman/components/header/Header.svelte +2 -2
- package/public/bricoman/components/kpi/Kpi.js +2 -0
- package/public/bricoman/components/kpi/Kpi.js.map +1 -0
- package/public/bricoman/components/kpi/Kpi.svelte +232 -0
- package/public/bricoman/components/sidebar/Sidebar.js +1 -1
- package/public/bricoman/components/sidebar/Sidebar.js.map +1 -1
- package/public/bricoman/components/sidebar/Sidebar.svelte +1 -1
- package/public/bricoman/icons-storybook.js +16 -0
- package/public/bricoman/main.d.ts +1 -0
- package/public/bricoman/main.d.ts.map +1 -1
- package/public/bricoman/utilities/DataTableUtilities.d.ts.map +1 -1
- package/public/bricoman/utilities/DataTableUtilities.ts +22 -2
- package/public/bundle.js +5 -0
- package/public/components/accordion/Accordion.js +365 -1
- package/public/components/accordion/Accordion.js.map +1 -1
- package/public/components/autocomplete/Autocomplete.js +1515 -1
- package/public/components/autocomplete/Autocomplete.js.map +1 -1
- package/public/components/badge/Badge.js +155 -1
- package/public/components/badge/Badge.js.map +1 -1
- package/public/components/badge/Badge.nested.js +101 -1
- package/public/components/badge/Badge.nested.js.map +1 -1
- package/public/components/barchart/BarChart.svelte +3 -4
- package/public/components/breadcrumb/Breadcrumb.js +372 -1
- package/public/components/breadcrumb/Breadcrumb.js.map +1 -1
- package/public/components/breadcrumb/Breadcrumb.nested.js +319 -1
- package/public/components/breadcrumb/Breadcrumb.nested.js.map +1 -1
- package/public/components/button/Button.js +1138 -1
- package/public/components/button/Button.js.map +1 -1
- package/public/components/card/Card.js +369 -1
- package/public/components/card/Card.js.map +1 -1
- package/public/components/chart/BarChart.js +583 -1
- package/public/components/chart/BarChart.js.map +1 -1
- package/public/components/chart/Donut.js +1189 -1
- package/public/components/chart/Donut.js.map +1 -1
- package/public/components/chart/GroupedBarChart.js +750 -1
- package/public/components/chart/GroupedBarChart.js.map +1 -1
- package/public/components/chart/LineChart.js +1731 -1
- package/public/components/chart/LineChart.js.map +1 -1
- package/public/components/chart/Radar.js +729 -1
- package/public/components/chart/Radar.js.map +1 -1
- package/public/components/chart/StackedBarChart.js +745 -1
- package/public/components/chart/StackedBarChart.js.map +1 -1
- package/public/components/checkbox/Checkbox.js +307 -1
- package/public/components/checkbox/Checkbox.js.map +1 -1
- package/public/components/checkboxgroup/checkboxGroup.js +404 -1
- package/public/components/checkboxgroup/checkboxGroup.js.map +1 -1
- package/public/components/datatable/DataTable.js +3098 -1
- package/public/components/datatable/DataTable.js.map +1 -1
- package/public/components/datatable/DataTable.svelte +12 -0
- package/public/components/datatable/DataTableDefaultAction.nested.js +4 -1
- package/public/components/datatable/DataTableDefaultAction.nested.js.map +1 -1
- package/public/components/datatable/DataTableDefaultEdtion.nested.js +164 -1
- package/public/components/datatable/DataTableDefaultEdtion.nested.js.map +1 -1
- package/public/components/datatable/DataTableDefaultFilterTags.nested.js +380 -1
- package/public/components/datatable/DataTableDefaultFilterTags.nested.js.map +1 -1
- package/public/components/datatable/DataTableDefaultSelection.nested.js +424 -1
- package/public/components/datatable/DataTableDefaultSelection.nested.js.map +1 -1
- package/public/components/datatable/DataTableDefaultSelectionLabel.nested.js +263 -1
- package/public/components/datatable/DataTableDefaultSelectionLabel.nested.js.map +1 -1
- package/public/components/datatable/DataTableFooter.nested.js +637 -1
- package/public/components/datatable/DataTableFooter.nested.js.map +1 -1
- package/public/components/datatable/data.d.ts.map +1 -1
- package/public/components/datatable/datatable.types.d.ts +9 -2
- package/public/components/datatable/datatable.types.d.ts.map +1 -1
- package/public/components/dropdown/Dropdown.js +1426 -1
- package/public/components/dropdown/Dropdown.js.map +1 -1
- package/public/components/field/Field.js +375 -1
- package/public/components/field/Field.js.map +1 -1
- package/public/components/fileuploader/FileUploader.js +603 -1
- package/public/components/fileuploader/FileUploader.js.map +1 -1
- package/public/components/fileuploader/ResultFile.nested.js +344 -1
- package/public/components/fileuploader/ResultFile.nested.js.map +1 -1
- package/public/components/flag/Flag.js +174 -1
- package/public/components/flag/Flag.js.map +1 -1
- package/public/components/header/Header.js +918 -1
- package/public/components/header/Header.js.map +1 -1
- package/public/components/header/Header.svelte +2 -2
- package/public/components/hero/Hero.js +271 -1
- package/public/components/hero/Hero.js.map +1 -1
- package/public/components/kpi/Kpi.js +405 -0
- package/public/components/kpi/Kpi.js.map +1 -0
- package/public/components/kpi/Kpi.svelte +232 -0
- package/public/components/layer/Layer.js +471 -1
- package/public/components/layer/Layer.js.map +1 -1
- package/public/components/link/Link.js +380 -1
- package/public/components/link/Link.js.map +1 -1
- package/public/components/listbox/Listbox.js +595 -1
- package/public/components/listbox/Listbox.js.map +1 -1
- package/public/components/listbox/Listbox.nested.js +629 -1
- package/public/components/listbox/Listbox.nested.js.map +1 -1
- package/public/components/loader/Loader.js +246 -1
- package/public/components/loader/Loader.js.map +1 -1
- package/public/components/loader/Loader.nested.js +176 -1
- package/public/components/loader/Loader.nested.js.map +1 -1
- package/public/components/modal/Modal.js +395 -1
- package/public/components/modal/Modal.js.map +1 -1
- package/public/components/notification/Notification.js +458 -1
- package/public/components/notification/Notification.js.map +1 -1
- package/public/components/optionbutton/OptionButton.js +316 -1
- package/public/components/optionbutton/OptionButton.js.map +1 -1
- package/public/components/overlay/Overlay.js +104 -1
- package/public/components/overlay/Overlay.js.map +1 -1
- package/public/components/overlay/OverlayLoader.js +151 -1
- package/public/components/overlay/OverlayLoader.js.map +1 -1
- package/public/components/pagination/Pagination.js +613 -1
- package/public/components/pagination/Pagination.js.map +1 -1
- package/public/components/passwordinput/PasswordInput.js +291 -1
- package/public/components/passwordinput/PasswordInput.js.map +1 -1
- package/public/components/phonenumber/PhoneNumber.js +6894 -1
- package/public/components/phonenumber/PhoneNumber.js.map +1 -1
- package/public/components/price/Price.js +768 -1
- package/public/components/price/Price.js.map +1 -1
- package/public/components/progressbar/ProgressBar.js +278 -1
- package/public/components/progressbar/ProgressBar.js.map +1 -1
- package/public/components/quantityselector/QuantitySelector.js +397 -1
- package/public/components/quantityselector/QuantitySelector.js.map +1 -1
- package/public/components/radio/Radio.js +273 -1
- package/public/components/radio/Radio.js.map +1 -1
- package/public/components/radiogroup/RadioGroup.js +414 -1
- package/public/components/radiogroup/RadioGroup.js.map +1 -1
- package/public/components/ratings/StarsInput.js +292 -1
- package/public/components/ratings/StarsInput.js.map +1 -1
- package/public/components/ratings/StarsResult.js +246 -1
- package/public/components/ratings/StarsResult.js.map +1 -1
- package/public/components/select/Select.js +451 -1
- package/public/components/select/Select.js.map +1 -1
- package/public/components/sidebar/Sidebar.js +784 -1
- package/public/components/sidebar/Sidebar.js.map +1 -1
- package/public/components/sidebar/Sidebar.svelte +1 -1
- package/public/components/sidebar/sidebar-feature-group.nested.js +594 -1
- package/public/components/sidebar/sidebar-feature-group.nested.js.map +1 -1
- package/public/components/sidebar/sidebar-feature.nested.js +402 -1
- package/public/components/sidebar/sidebar-feature.nested.js.map +1 -1
- package/public/components/sidebar/sidebar-section.nested.js +394 -1
- package/public/components/sidebar/sidebar-section.nested.js.map +1 -1
- package/public/components/sidebar/sidebar-segment.nested.js +200 -1
- package/public/components/sidebar/sidebar-segment.nested.js.map +1 -1
- package/public/components/sidebar/sidebar-separator.nested.js +49 -1
- package/public/components/sidebar/sidebar-separator.nested.js.map +1 -1
- package/public/components/sidebar/sidebar-sub-features.nested.js +312 -1
- package/public/components/sidebar/sidebar-sub-features.nested.js.map +1 -1
- package/public/components/sidebar/sidebar-user.nested.js +733 -1
- package/public/components/sidebar/sidebar-user.nested.js.map +1 -1
- package/public/components/stepper/Stepper.js +371 -1
- package/public/components/stepper/Stepper.js.map +1 -1
- package/public/components/tabs/Tabs.js +615 -1
- package/public/components/tabs/Tabs.js.map +1 -1
- package/public/components/tabs/Tabs.nested.js +472 -1
- package/public/components/tabs/Tabs.nested.js.map +1 -1
- package/public/components/tag/Tag.js +665 -1
- package/public/components/tag/Tag.js.map +1 -1
- package/public/components/tag/Tag.nested.js +554 -1
- package/public/components/tag/Tag.nested.js.map +1 -1
- package/public/components/taglist/TagList.js +475 -1
- package/public/components/taglist/TagList.js.map +1 -1
- package/public/components/textarea/Textarea.js +303 -1
- package/public/components/textarea/Textarea.js.map +1 -1
- package/public/components/textinput/Textinput.js +497 -1
- package/public/components/textinput/Textinput.js.map +1 -1
- package/public/components/textinput/Textinput.nested.js +320 -1
- package/public/components/textinput/Textinput.nested.js.map +1 -1
- package/public/components/toggle/Toggle.js +278 -1
- package/public/components/toggle/Toggle.js.map +1 -1
- package/public/components/tooltip/Tooltip.js +173 -1
- package/public/components/tooltip/Tooltip.js.map +1 -1
- package/public/icons-storybook.js +16 -0
- package/public/index-c33b3772.js +873 -1
- package/public/index-c33b3772.js.map +1 -1
- package/public/linear-f46d7e9e.js +700 -1
- package/public/linear-f46d7e9e.js.map +1 -1
- package/public/main.d.ts +1 -0
- package/public/main.d.ts.map +1 -1
- package/public/path-1b5da959.js +186 -1
- package/public/path-1b5da959.js.map +1 -1
- package/public/sidebar-service-275bf9ef.js +129 -1
- package/public/sidebar-service-275bf9ef.js.map +1 -1
- package/public/symbol-b05a6e2b.js +169 -1
- package/public/symbol-b05a6e2b.js.map +1 -1
- package/public/transform-15d69d5d.js +2743 -1
- package/public/transform-15d69d5d.js.map +1 -1
- package/public/utilities/DataTableUtilities.d.ts.map +1 -1
- package/public/utilities/DataTableUtilities.ts +22 -2
- package/public/utilities/EventForward.js +136 -1
- package/public/utilities/EventForward.js.map +1 -1
- package/public/utilities/EventHandler.js +36 -1
- package/public/utilities/EventHandler.js.map +1 -1
- package/public/utilities/components/datatable/data.d.ts.map +1 -1
- package/public/utilities/components/datatable/datatable.types.d.ts +9 -2
- package/public/utilities/components/datatable/datatable.types.d.ts.map +1 -1
- package/public/utilities/main.d.ts +1 -0
- package/public/utilities/main.d.ts.map +1 -1
- package/public/utilities/stories/datatable/DataTable.stories.d.ts.map +1 -1
- package/public/utilities/stories/header/Header.stories.d.ts.map +1 -1
- package/public/utilities/stories/kpi/kpi.stories.d.ts +7 -0
- package/public/utilities/stories/kpi/kpi.stories.d.ts.map +1 -0
- package/public/utilities/utilities/DataTableUtilities.d.ts.map +1 -1
- package/public/DataTableDefaultAction.nested-483f8bb0.js +0 -2
- package/public/DataTableDefaultAction.nested-483f8bb0.js.map +0 -1
- package/public/DataTableUtilities-60220c78.js +0 -2
- package/public/DataTableUtilities-60220c78.js.map +0 -1
- package/public/adeo/DataTableUtilities-60220c78.js +0 -2
- package/public/adeo/DataTableUtilities-60220c78.js.map +0 -1
- package/public/bricoman/DataTableUtilities-60220c78.js +0 -2
- package/public/bricoman/DataTableUtilities-60220c78.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroupedBarChart.js","sources":["../../../src/components/chart/GroupedBarChart.svelte"],"sourcesContent":["<svelte:options tag={null} />\n\n<script lang=\"ts\">\n import {\n select,\n scaleBand,\n scaleLinear,\n axisBottom,\n axisLeft,\n Selection,\n ScaleBand,\n ScaleLinear,\n NumberValue,\n axisRight,\n } from 'd3';\n import { onMount } from 'svelte';\n import { EventHandler } from '../../utilities/EventHandler';\n import type {\n GroupedBarData,\n GroupedBarKeyValue,\n BarMargin,\n } from './grouped-bar-chart.types';\n\n export let data = '';\n let subgroups: string[];\n $: parsedData = data\n ? (JSON.parse(data) as GroupedBarData[])\n : ([] as GroupedBarData[]);\n $: groups = parsedData.map((d: GroupedBarData) => d.group);\n $: subgroups = parsedData[0]\n ? Object.keys(parsedData[0]).filter((d: string) => d !== 'group')\n : [];\n\n export let chartheight = '300';\n $: height = parseInt(chartheight, 10);\n\n export let backgroundcolor = '#fff';\n export let leftscalemax = 50;\n export let rightscalemax: number;\n export let color = '#0B96CC';\n export let ticknumbers = 4;\n export let tickleftformat: (d: NumberValue, i: number) => string = (d) =>\n `${Number(d)}`;\n export let tickbottomformat: (d: NumberValue, i: number) => string = (d) =>\n `${d}`;\n export let tickrightformat: (d: NumberValue, i: number) => string = (d) =>\n `${Number(d)}`;\n\n export let svgs: string;\n $: parsedSvgs = svgs ? (JSON.parse(svgs) as SVGElement[]) : [];\n\n export let margins: string;\n\n let _data: string;\n let chart: HTMLDivElement;\n let svg: Selection<SVGGElement, any, any, any>;\n let hasMounted = false;\n let tooltipData = { show: false, text: '', top: 0, left: 0, width: 0 };\n let eventHandler = new EventHandler();\n let leftScaleWidth = 0;\n let width = 0;\n\n $: if (data.length > 0 && hasMounted) {\n if (!_data) {\n render();\n _data = data;\n } else if (data !== _data) {\n update();\n _data = data;\n }\n }\n\n function getParsedMargins(margins: string): BarMargin {\n if (margins) return JSON.parse(margins) as BarMargin;\n else\n return {\n top: 10,\n right: 40,\n bottom: 20,\n left: 60,\n xAxis: 20,\n } as BarMargin;\n }\n\n function getChartWidth() {\n let chartWidth = select(chart).style('width');\n if (chartWidth === '' || !chartWidth) {\n chartWidth = `${window.innerWidth / 2}`;\n }\n return parseInt(chartWidth);\n }\n\n function getBarKeyValue(d: GroupedBarData): GroupedBarKeyValue[] {\n return subgroups.map((key) => ({\n key: key,\n value: d[key].value,\n scalePosition: d[key].scalePosition,\n color: d[key].color,\n customtooltip: d[key].customtooltip,\n }));\n }\n\n function getAxes(width: number) {\n // If there is no right scale, we only remove the right margin as the axis should continue to the edge of the chart\n const xWidth = rightscalemax\n ? width -\n (getParsedMargins(margins).left + getParsedMargins(margins).right)\n : width - getParsedMargins(margins).right;\n const x = scaleBand().domain(groups).range([0, xWidth]).padding(0.2);\n const yleft = scaleLinear().domain([0, leftscalemax]).range([height, 0]);\n const yright = scaleLinear().domain([0, rightscalemax]).range([height, 0]);\n const xSubgroup = scaleBand()\n .domain(subgroups)\n .range([0, x.bandwidth()])\n .padding(0.05);\n return { x, yleft, yright, xSubgroup };\n }\n\n function getAxisWidth(position: 'left' | 'right') {\n const { width } = chart\n .getElementsByClassName(`y-${position}-axis`)[0]\n .getBoundingClientRect();\n return width;\n }\n\n function addRectandles(\n x: ScaleBand<string>,\n xSubgroup: ScaleBand<string>,\n yleft: ScaleLinear<number, number, never>,\n yright: ScaleLinear<number, number, never>,\n ) {\n svg\n .append('g')\n .selectAll('g')\n .data(parsedData)\n .join('g')\n .attr('transform', (d) => `translate(${String(x(d.group))}, 0)`)\n .attr('class', 'bar')\n .selectAll('rect')\n .data((d) => getBarKeyValue(d))\n .join('rect')\n .attr('x', (d) => xSubgroup(d.key)!)\n .attr('y', (d) => (d.scalePosition === 'right' ? yright(0) : yleft(0)))\n .attr('width', xSubgroup.bandwidth())\n .attr(\n 'height',\n (d) => height - (d.scalePosition === 'right' ? yright(0) : yleft(0)),\n )\n .style('fill', (d) => d.color || color)\n .style('cursor', 'pointer')\n .on('mouseout', (_e: MouseEvent, chartEvent: GroupedBarKeyValue) => {\n const others = svg.selectAll('rect').filter(function (arc) {\n return arc != chartEvent;\n });\n others.style('opacity', 1);\n tooltipData.show = false;\n })\n .on('mouseover', (e: MouseEvent, chartEvent: GroupedBarKeyValue) => {\n const others = svg.selectAll('rect').filter(function (arc) {\n return arc != chartEvent;\n });\n others.style('opacity', 0.7);\n const { left, top, width } = (\n e.target as HTMLElement\n ).parentElement?.getBoundingClientRect() ?? {\n left: 0,\n top: 0,\n width: 0,\n };\n tooltipData = {\n show: true,\n text: chartEvent.customtooltip\n ? `${chartEvent.customtooltip}`\n : `${chartEvent.key} - ${chartEvent.value}`,\n left: left,\n top: top - 50,\n width,\n };\n })\n\n .on('click', (_e: MouseEvent, chartEvent: GroupedBarKeyValue) => {\n eventHandler.dispatch('bar-clicked', chartEvent);\n });\n\n svg\n .selectAll<SVGElement, GroupedBarKeyValue>('rect')\n .transition()\n .duration(800)\n .attr('y', (d) =>\n d.scalePosition === 'right' ? yright(+d.value) : yleft(+d.value),\n )\n .attr(\n 'height',\n (d) =>\n height -\n (d.scalePosition === 'right' ? yright(+d.value) : yleft(+d.value)),\n )\n .delay((_d, i) => i * 100);\n }\n\n function updateAxes(\n x: ScaleBand<string>,\n yleft: ScaleLinear<number, number, never>,\n yright: ScaleLinear<number, number, never>,\n ) {\n svg\n .select('.x-axis')\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call\n .call((axisBottom(x) as any).tickFormat(tickbottomformat));\n svg\n .select('.y-left-axis')\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call\n .call(\n (axisLeft(yleft) as any).ticks(ticknumbers).tickFormat(tickleftformat),\n );\n\n if (rightscalemax) {\n svg\n .select('.y-right-axis')\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call\n .call(\n (axisRight(yright) as any)\n .ticks(ticknumbers)\n .tickFormat(tickrightformat),\n )\n .attr(\n 'transform',\n // Right scale should be at width minus the width of the left scale plus its marging\n `translate(${\n width - getParsedMargins(margins).left - leftScaleWidth\n },0)`,\n );\n }\n\n // x2 is the end of left scale line and should stops where right scale starts (ie: same position)\n const x2 = rightscalemax\n ? width - getParsedMargins(margins).left - leftScaleWidth\n : width - leftScaleWidth;\n svg\n .selectAll('.y-left-axis .tick line')\n .attr('stroke', '#EEEDEA')\n .attr('stroke-width', '1px')\n .attr('x2', x2);\n }\n\n function render() {\n width = getChartWidth();\n const { x, yleft, yright, xSubgroup } = getAxes(width);\n\n svg = select<HTMLElement, any>(chart)\n .append('svg')\n .attr('width', width)\n .attr(\n 'height',\n Number(height) +\n Number(getParsedMargins(margins).top) +\n Number(getParsedMargins(margins).bottom) +\n Number(getParsedMargins(margins).xAxis),\n )\n .attr('id', 'svg-chart')\n .append('g')\n .attr(\n 'transform',\n `translate(${\n getParsedMargins(margins).left / 2 +\n getParsedMargins(margins).right / 2\n },${getParsedMargins(margins).top})`,\n );\n\n svg\n .append('g')\n .attr(\n 'transform',\n `translate(0, ${\n Number(height) + Number(getParsedMargins(margins).xAxis)\n })`,\n )\n .call(axisBottom(x))\n .attr('class', 'x-axis')\n .attr('stroke-width', '0');\n\n svg\n .append('g')\n .call(axisLeft(yleft).ticks(ticknumbers).tickFormat(tickleftformat))\n .attr('class', 'y-left-axis')\n .attr('stroke-width', '0');\n leftScaleWidth = getAxisWidth('left');\n\n if (rightscalemax) {\n svg\n .append('g')\n .call(axisRight(yright).ticks(ticknumbers).tickFormat(tickleftformat))\n .attr('class', 'y-right-axis')\n .attr(\n 'transform',\n // Right scale should be at width minus the width of the left scale plus its marging\n `translate(${\n width - getParsedMargins(margins).left - leftScaleWidth\n },0)`,\n )\n .attr('stroke-width', '0');\n }\n\n addRectandles(x, xSubgroup, yleft, yright);\n }\n\n function update() {\n chart.querySelector('#svg-chart')?.setAttribute('width', `${width}px`);\n\n const { x, yleft, yright, xSubgroup } = getAxes(width);\n updateAxes(x, yleft, yright);\n svg.selectAll('.bar').remove();\n addRectandles(x, xSubgroup, yleft, yright);\n }\n\n function resize() {\n width = getChartWidth();\n if (_data) {\n const width = getChartWidth();\n chart.querySelector('#svg-chart')?.setAttribute('width', `${width}px`);\n\n const { x, yleft, yright, xSubgroup } = getAxes(width);\n updateAxes(x, yleft, yright);\n\n svg\n .selectAll('.bar')\n .data(parsedData)\n .attr('transform', (d) => `translate(${String(x(d.group))}, 0)`)\n .selectAll<SVGElement, GroupedBarKeyValue>('rect')\n .data((d) => getBarKeyValue(d))\n .attr('x', (d) => xSubgroup(d.key)!)\n .attr('width', xSubgroup.bandwidth());\n }\n }\n\n function getLegendColor(\n subgroup: string,\n parsedData: GroupedBarData[],\n ): string {\n if (parsedData.length > 0) return parsedData[0][subgroup]?.color;\n return '';\n }\n\n onMount(() => {\n const resizeObserver = new ResizeObserver(resize);\n resizeObserver.observe(chart);\n hasMounted = true;\n });\n</script>\n\n<div bind:this={chart} style=\"background-color: {backgroundcolor};\" />\n\n<div class=\"legend\">\n {#each subgroups as subgroup}\n <div class=\"legend__item\">\n <svg class=\"legend__box\">\n <rect\n x=\"0\"\n y=\"0\"\n width=\"24\"\n height=\"16\"\n fill={getLegendColor(subgroup, parsedData)}\n />\n </svg>\n <span class=\"legend__title\">{subgroup}</span>\n </div>\n {/each}\n</div>\n\n{#if tooltipData.show}\n <div\n class=\"tooltip\"\n style={`top: ${tooltipData.top}px; left: ${tooltipData.left}px; width: ${tooltipData.width}px;`}\n >\n {tooltipData.text}\n </div>\n{/if}\n\n<div style=\"height: 0; width: 0;\" class=\"pattern\">\n {#each parsedSvgs as svg}\n {@html svg}\n {/each}\n</div>\n<text />\n\n<style lang=\"scss\">\n @import '@mozaic-ds/styles/settings-tools/_all-settings';\n\n .legend {\n margin-top: magic-unit-rem(1);\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 0 magic-unit-rem(1.5);\n height: 100%;\n color: $color-grey-999;\n gap: magic-unit-rem(1);\n\n &__item {\n display: flex;\n justify-content: center;\n font-size: $size-font-04;\n align-items: center;\n }\n\n &__title {\n white-space: nowrap;\n margin: 0;\n }\n\n &__box {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: magic-unit-rem(0.25);\n height: 16px;\n width: 24px;\n }\n }\n\n .tooltip {\n height: auto;\n background-color: $color-grey-700;\n border-radius: 4px;\n color: $color-grey-000;\n text-align: center;\n padding: magic-unit-rem(0.5) 0;\n position: absolute;\n }\n\n .pattern {\n z-index: -1;\n position: absolute;\n }\n\n text {\n font-family: 'LeroyMerlin', sans-serif;\n font-size: $size-font-04;\n color: $color-grey-700;\n }\n</style>\n"],"names":["ctx","insert","target","div","anchor","append","svg_1","rect","span","set_data","t1","t1_value","t_value","text","top","left","width","dirty","t","html_tag","p","raw_value","length","i","if_block","show","create_if_block","div0","div1","div2","text_1","getParsedMargins","margins","JSON","parse","right","bottom","xAxis","subgroups","_data","chart","svg","data","$$props","chartheight","backgroundcolor","leftscalemax","rightscalemax","color","ticknumbers","tickleftformat","d","Number","tickbottomformat","tickrightformat","svgs","hasMounted","tooltipData","eventHandler","EventHandler","leftScaleWidth","getChartWidth","chartWidth","select","style","window","innerWidth","parseInt","getBarKeyValue","map","key","value","scalePosition","customtooltip","getAxes","xWidth","x","scaleBand","domain","groups","range","padding","yleft","scaleLinear","height","yright","xSubgroup","bandwidth","addRectandles","selectAll","parsedData","join","attr","String","group","on","_e","chartEvent","filter","arc","e","_b","_a","parentElement","getBoundingClientRect","dispatch","transition","duration","delay","_d","updateAxes","call","axisBottom","tickFormat","axisLeft","ticks","axisRight","x2","render","$$invalidate","position","getElementsByClassName","getAxisWidth","resize","querySelector","setAttribute","onMount","ResizeObserver","observe","Object","keys","parsedSvgs","remove","update","subgroup","$$value"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GroupedBarChart.js","sources":["../../../src/components/chart/GroupedBarChart.svelte"],"sourcesContent":["<svelte:options tag={null} />\n\n<script lang=\"ts\">\n import {\n select,\n scaleBand,\n scaleLinear,\n axisBottom,\n axisLeft,\n Selection,\n ScaleBand,\n ScaleLinear,\n NumberValue,\n axisRight,\n } from 'd3';\n import { onMount } from 'svelte';\n import { EventHandler } from '../../utilities/EventHandler';\n import type {\n GroupedBarData,\n GroupedBarKeyValue,\n BarMargin,\n } from './grouped-bar-chart.types';\n\n export let data = '';\n let subgroups: string[];\n $: parsedData = data\n ? (JSON.parse(data) as GroupedBarData[])\n : ([] as GroupedBarData[]);\n $: groups = parsedData.map((d: GroupedBarData) => d.group);\n $: subgroups = parsedData[0]\n ? Object.keys(parsedData[0]).filter((d: string) => d !== 'group')\n : [];\n\n export let chartheight = '300';\n $: height = parseInt(chartheight, 10);\n\n export let backgroundcolor = '#fff';\n export let leftscalemax = 50;\n export let rightscalemax: number;\n export let color = '#0B96CC';\n export let ticknumbers = 4;\n export let tickleftformat: (d: NumberValue, i: number) => string = (d) =>\n `${Number(d)}`;\n export let tickbottomformat: (d: NumberValue, i: number) => string = (d) =>\n `${d}`;\n export let tickrightformat: (d: NumberValue, i: number) => string = (d) =>\n `${Number(d)}`;\n\n export let svgs: string;\n $: parsedSvgs = svgs ? (JSON.parse(svgs) as SVGElement[]) : [];\n\n export let margins: string;\n\n let _data: string;\n let chart: HTMLDivElement;\n let svg: Selection<SVGGElement, any, any, any>;\n let hasMounted = false;\n let tooltipData = { show: false, text: '', top: 0, left: 0, width: 0 };\n let eventHandler = new EventHandler();\n let leftScaleWidth = 0;\n let width = 0;\n\n $: if (data.length > 0 && hasMounted) {\n if (!_data) {\n render();\n _data = data;\n } else if (data !== _data) {\n update();\n _data = data;\n }\n }\n\n function getParsedMargins(margins: string): BarMargin {\n if (margins) return JSON.parse(margins) as BarMargin;\n else\n return {\n top: 10,\n right: 40,\n bottom: 20,\n left: 60,\n xAxis: 20,\n } as BarMargin;\n }\n\n function getChartWidth() {\n let chartWidth = select(chart).style('width');\n if (chartWidth === '' || !chartWidth) {\n chartWidth = `${window.innerWidth / 2}`;\n }\n return parseInt(chartWidth);\n }\n\n function getBarKeyValue(d: GroupedBarData): GroupedBarKeyValue[] {\n return subgroups.map((key) => ({\n key: key,\n value: d[key].value,\n scalePosition: d[key].scalePosition,\n color: d[key].color,\n customtooltip: d[key].customtooltip,\n }));\n }\n\n function getAxes(width: number) {\n // If there is no right scale, we only remove the right margin as the axis should continue to the edge of the chart\n const xWidth = rightscalemax\n ? width -\n (getParsedMargins(margins).left + getParsedMargins(margins).right)\n : width - getParsedMargins(margins).right;\n const x = scaleBand().domain(groups).range([0, xWidth]).padding(0.2);\n const yleft = scaleLinear().domain([0, leftscalemax]).range([height, 0]);\n const yright = scaleLinear().domain([0, rightscalemax]).range([height, 0]);\n const xSubgroup = scaleBand()\n .domain(subgroups)\n .range([0, x.bandwidth()])\n .padding(0.05);\n return { x, yleft, yright, xSubgroup };\n }\n\n function getAxisWidth(position: 'left' | 'right') {\n const { width } = chart\n .getElementsByClassName(`y-${position}-axis`)[0]\n .getBoundingClientRect();\n return width;\n }\n\n function addRectandles(\n x: ScaleBand<string>,\n xSubgroup: ScaleBand<string>,\n yleft: ScaleLinear<number, number, never>,\n yright: ScaleLinear<number, number, never>,\n ) {\n svg\n .append('g')\n .selectAll('g')\n .data(parsedData)\n .join('g')\n .attr('transform', (d) => `translate(${String(x(d.group))}, 0)`)\n .attr('class', 'bar')\n .selectAll('rect')\n .data((d) => getBarKeyValue(d))\n .join('rect')\n .attr('x', (d) => xSubgroup(d.key)!)\n .attr('y', (d) => (d.scalePosition === 'right' ? yright(0) : yleft(0)))\n .attr('width', xSubgroup.bandwidth())\n .attr(\n 'height',\n (d) => height - (d.scalePosition === 'right' ? yright(0) : yleft(0)),\n )\n .style('fill', (d) => d.color || color)\n .style('cursor', 'pointer')\n .on('mouseout', (_e: MouseEvent, chartEvent: GroupedBarKeyValue) => {\n const others = svg.selectAll('rect').filter(function (arc) {\n return arc != chartEvent;\n });\n others.style('opacity', 1);\n tooltipData.show = false;\n })\n .on('mouseover', (e: MouseEvent, chartEvent: GroupedBarKeyValue) => {\n const others = svg.selectAll('rect').filter(function (arc) {\n return arc != chartEvent;\n });\n others.style('opacity', 0.7);\n const { left, top, width } = (\n e.target as HTMLElement\n ).parentElement?.getBoundingClientRect() ?? {\n left: 0,\n top: 0,\n width: 0,\n };\n tooltipData = {\n show: true,\n text: chartEvent.customtooltip\n ? `${chartEvent.customtooltip}`\n : `${chartEvent.key} - ${chartEvent.value}`,\n left: left,\n top: top - 50,\n width,\n };\n })\n\n .on('click', (_e: MouseEvent, chartEvent: GroupedBarKeyValue) => {\n eventHandler.dispatch('bar-clicked', chartEvent);\n });\n\n svg\n .selectAll<SVGElement, GroupedBarKeyValue>('rect')\n .transition()\n .duration(800)\n .attr('y', (d) =>\n d.scalePosition === 'right' ? yright(+d.value) : yleft(+d.value),\n )\n .attr(\n 'height',\n (d) =>\n height -\n (d.scalePosition === 'right' ? yright(+d.value) : yleft(+d.value)),\n )\n .delay((_d, i) => i * 100);\n }\n\n function updateAxes(\n x: ScaleBand<string>,\n yleft: ScaleLinear<number, number, never>,\n yright: ScaleLinear<number, number, never>,\n ) {\n svg\n .select('.x-axis')\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call\n .call((axisBottom(x) as any).tickFormat(tickbottomformat));\n svg\n .select('.y-left-axis')\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call\n .call(\n (axisLeft(yleft) as any).ticks(ticknumbers).tickFormat(tickleftformat),\n );\n\n if (rightscalemax) {\n svg\n .select('.y-right-axis')\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call\n .call(\n (axisRight(yright) as any)\n .ticks(ticknumbers)\n .tickFormat(tickrightformat),\n )\n .attr(\n 'transform',\n // Right scale should be at width minus the width of the left scale plus its marging\n `translate(${\n width - getParsedMargins(margins).left - leftScaleWidth\n },0)`,\n );\n }\n\n // x2 is the end of left scale line and should stops where right scale starts (ie: same position)\n const x2 = rightscalemax\n ? width - getParsedMargins(margins).left - leftScaleWidth\n : width - leftScaleWidth;\n svg\n .selectAll('.y-left-axis .tick line')\n .attr('stroke', '#EEEDEA')\n .attr('stroke-width', '1px')\n .attr('x2', x2);\n }\n\n function render() {\n width = getChartWidth();\n const { x, yleft, yright, xSubgroup } = getAxes(width);\n\n svg = select<HTMLElement, any>(chart)\n .append('svg')\n .attr('width', width)\n .attr(\n 'height',\n Number(height) +\n Number(getParsedMargins(margins).top) +\n Number(getParsedMargins(margins).bottom) +\n Number(getParsedMargins(margins).xAxis),\n )\n .attr('id', 'svg-chart')\n .append('g')\n .attr(\n 'transform',\n `translate(${\n getParsedMargins(margins).left / 2 +\n getParsedMargins(margins).right / 2\n },${getParsedMargins(margins).top})`,\n );\n\n svg\n .append('g')\n .attr(\n 'transform',\n `translate(0, ${\n Number(height) + Number(getParsedMargins(margins).xAxis)\n })`,\n )\n .call(axisBottom(x))\n .attr('class', 'x-axis')\n .attr('stroke-width', '0');\n\n svg\n .append('g')\n .call(axisLeft(yleft).ticks(ticknumbers).tickFormat(tickleftformat))\n .attr('class', 'y-left-axis')\n .attr('stroke-width', '0');\n leftScaleWidth = getAxisWidth('left');\n\n if (rightscalemax) {\n svg\n .append('g')\n .call(axisRight(yright).ticks(ticknumbers).tickFormat(tickleftformat))\n .attr('class', 'y-right-axis')\n .attr(\n 'transform',\n // Right scale should be at width minus the width of the left scale plus its marging\n `translate(${\n width - getParsedMargins(margins).left - leftScaleWidth\n },0)`,\n )\n .attr('stroke-width', '0');\n }\n\n addRectandles(x, xSubgroup, yleft, yright);\n }\n\n function update() {\n chart.querySelector('#svg-chart')?.setAttribute('width', `${width}px`);\n\n const { x, yleft, yright, xSubgroup } = getAxes(width);\n updateAxes(x, yleft, yright);\n svg.selectAll('.bar').remove();\n addRectandles(x, xSubgroup, yleft, yright);\n }\n\n function resize() {\n width = getChartWidth();\n if (_data) {\n const width = getChartWidth();\n chart.querySelector('#svg-chart')?.setAttribute('width', `${width}px`);\n\n const { x, yleft, yright, xSubgroup } = getAxes(width);\n updateAxes(x, yleft, yright);\n\n svg\n .selectAll('.bar')\n .data(parsedData)\n .attr('transform', (d) => `translate(${String(x(d.group))}, 0)`)\n .selectAll<SVGElement, GroupedBarKeyValue>('rect')\n .data((d) => getBarKeyValue(d))\n .attr('x', (d) => xSubgroup(d.key)!)\n .attr('width', xSubgroup.bandwidth());\n }\n }\n\n function getLegendColor(\n subgroup: string,\n parsedData: GroupedBarData[],\n ): string {\n if (parsedData.length > 0) return parsedData[0][subgroup]?.color;\n return '';\n }\n\n onMount(() => {\n const resizeObserver = new ResizeObserver(resize);\n resizeObserver.observe(chart);\n hasMounted = true;\n });\n</script>\n\n<div bind:this={chart} style=\"background-color: {backgroundcolor};\" />\n\n<div class=\"legend\">\n {#each subgroups as subgroup}\n <div class=\"legend__item\">\n <svg class=\"legend__box\">\n <rect\n x=\"0\"\n y=\"0\"\n width=\"24\"\n height=\"16\"\n fill={getLegendColor(subgroup, parsedData)}\n />\n </svg>\n <span class=\"legend__title\">{subgroup}</span>\n </div>\n {/each}\n</div>\n\n{#if tooltipData.show}\n <div\n class=\"tooltip\"\n style={`top: ${tooltipData.top}px; left: ${tooltipData.left}px; width: ${tooltipData.width}px;`}\n >\n {tooltipData.text}\n </div>\n{/if}\n\n<div style=\"height: 0; width: 0;\" class=\"pattern\">\n {#each parsedSvgs as svg}\n {@html svg}\n {/each}\n</div>\n<text />\n\n<style lang=\"scss\">\n @import '@mozaic-ds/styles/settings-tools/_all-settings';\n\n .legend {\n margin-top: magic-unit-rem(1);\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 0 magic-unit-rem(1.5);\n height: 100%;\n color: $color-grey-999;\n gap: magic-unit-rem(1);\n\n &__item {\n display: flex;\n justify-content: center;\n font-size: $size-font-04;\n align-items: center;\n }\n\n &__title {\n white-space: nowrap;\n margin: 0;\n }\n\n &__box {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: magic-unit-rem(0.25);\n height: 16px;\n width: 24px;\n }\n }\n\n .tooltip {\n height: auto;\n background-color: $color-grey-700;\n border-radius: 4px;\n color: $color-grey-000;\n text-align: center;\n padding: magic-unit-rem(0.5) 0;\n position: absolute;\n }\n\n .pattern {\n z-index: -1;\n position: absolute;\n }\n\n text {\n font-family: 'LeroyMerlin', sans-serif;\n font-size: $size-font-04;\n color: $color-grey-700;\n }\n</style>\n"],"names":["scaleBand","scaleLinear"],"mappings":"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"}
|