From 915aaeb54c54e2fb84240c719911fd4cf4daaec6 Mon Sep 17 00:00:00 2001 From: "Michael S. Molina" <70410625+michael-s-molina@users.noreply.github.com> Date: Fri, 3 Nov 2023 13:24:15 -0300 Subject: [PATCH] feat: Improves the Waterfall chart (#25557) --- .../superset-ui-core/src/color/index.ts | 1 + .../superset-ui-core/src/color/types.ts | 7 + .../superset-ui-core/src/color/utils.ts | 33 ++ .../superset-ui-core/test/color/utils.test.ts | 26 +- .../src/MixedTimeseries/transformProps.ts | 8 +- .../src/Timeseries/transformProps.ts | 8 +- .../src/Timeseries/transformers.ts | 28 -- .../src/Waterfall/EchartsWaterfall.tsx | 58 +-- .../src/Waterfall/buildQuery.ts | 16 +- .../src/Waterfall/controlPanel.tsx | 80 ++-- .../src/Waterfall/images/example1.png | Bin 0 -> 69717 bytes .../src/Waterfall/images/example2.png | Bin 0 -> 51985 bytes .../src/Waterfall/images/example3.png | Bin 0 -> 57935 bytes .../src/Waterfall/images/thumbnail.png | Bin 77020 -> 54196 bytes .../src/Waterfall/index.ts | 19 +- .../src/Waterfall/transformProps.ts | 349 +++++++++++------- .../src/Waterfall/types.ts | 36 +- .../{getYAxisFormatter.ts => formatters.ts} | 28 ++ .../test/Waterfall/buildQuery.test.ts | 11 +- .../test/Waterfall/transformProps.test.ts | 112 +++--- .../src/components/Collapse/Collapse.test.tsx | 3 +- .../MetadataBar/MetadataBar.test.tsx | 3 +- .../VizTypeControl/VizTypeGallery.tsx | 1 + superset-frontend/src/utils/colorUtils.ts | 50 --- 24 files changed, 486 insertions(+), 391 deletions(-) create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Waterfall/images/example1.png create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Waterfall/images/example2.png create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Waterfall/images/example3.png rename superset-frontend/plugins/plugin-chart-echarts/src/utils/{getYAxisFormatter.ts => formatters.ts} (74%) delete mode 100644 superset-frontend/src/utils/colorUtils.ts diff --git a/superset-frontend/packages/superset-ui-core/src/color/index.ts b/superset-frontend/packages/superset-ui-core/src/color/index.ts index 3bbdb5d0dc578..cb7e569b47892 100644 --- a/superset-frontend/packages/superset-ui-core/src/color/index.ts +++ b/superset-frontend/packages/superset-ui-core/src/color/index.ts @@ -32,6 +32,7 @@ export * from './SequentialScheme'; export { default as ColorSchemeRegistry } from './ColorSchemeRegistry'; export * from './colorSchemes'; export * from './utils'; +export * from './types'; export { default as getSharedLabelColor, SharedLabelColor, diff --git a/superset-frontend/packages/superset-ui-core/src/color/types.ts b/superset-frontend/packages/superset-ui-core/src/color/types.ts index 2e4b528f9bfa5..bc8b50d7a9163 100644 --- a/superset-frontend/packages/superset-ui-core/src/color/types.ts +++ b/superset-frontend/packages/superset-ui-core/src/color/types.ts @@ -24,3 +24,10 @@ export interface ColorsInitLookup { export interface ColorsLookup { [key: string]: string; } + +export interface RgbaColor { + r: number; + g: number; + b: number; + a: number; +} diff --git a/superset-frontend/packages/superset-ui-core/src/color/utils.ts b/superset-frontend/packages/superset-ui-core/src/color/utils.ts index 1b362efe3e100..55284f16b4a52 100644 --- a/superset-frontend/packages/superset-ui-core/src/color/utils.ts +++ b/superset-frontend/packages/superset-ui-core/src/color/utils.ts @@ -86,3 +86,36 @@ export function addAlpha(color: string, opacity: number): string { return `${color}${alpha}`; } + +export function hexToRgb(h: string) { + let r = '0'; + let g = '0'; + let b = '0'; + + // 3 digits + if (h.length === 4) { + r = `0x${h[1]}${h[1]}`; + g = `0x${h[2]}${h[2]}`; + b = `0x${h[3]}${h[3]}`; + + // 6 digits + } else if (h.length === 7) { + r = `0x${h[1]}${h[2]}`; + g = `0x${h[3]}${h[4]}`; + b = `0x${h[5]}${h[6]}`; + } + + return `rgb(${+r}, ${+g}, ${+b})`; +} + +export function rgbToHex(red: number, green: number, blue: number) { + let r = red.toString(16); + let g = green.toString(16); + let b = blue.toString(16); + + if (r.length === 1) r = `0${r}`; + if (g.length === 1) g = `0${g}`; + if (b.length === 1) b = `0${b}`; + + return `#${r}${g}${b}`; +} diff --git a/superset-frontend/packages/superset-ui-core/test/color/utils.test.ts b/superset-frontend/packages/superset-ui-core/test/color/utils.test.ts index 308eec726b73a..131ea04a782d7 100644 --- a/superset-frontend/packages/superset-ui-core/test/color/utils.test.ts +++ b/superset-frontend/packages/superset-ui-core/test/color/utils.test.ts @@ -17,7 +17,12 @@ * under the License. */ -import { getContrastingColor, addAlpha } from '@superset-ui/core'; +import { + getContrastingColor, + addAlpha, + hexToRgb, + rgbToHex, +} from '@superset-ui/core'; describe('color utils', () => { describe('getContrastingColor', () => { @@ -82,4 +87,23 @@ describe('color utils', () => { }).toThrow(); }); }); + describe('hexToRgb', () => { + it('convert 3 digits hex', () => { + expect(hexToRgb('#fff')).toBe('rgb(255, 255, 255)'); + }); + it('convert 6 digits hex', () => { + expect(hexToRgb('#ffffff')).toBe('rgb(255, 255, 255)'); + }); + it('convert invalid hex', () => { + expect(hexToRgb('#ffffffffffffff')).toBe('rgb(0, 0, 0)'); + }); + }); + describe('rgbToHex', () => { + it('convert rgb to hex - white', () => { + expect(rgbToHex(255, 255, 255)).toBe('#ffffff'); + }); + it('convert rgb to hex - black', () => { + expect(rgbToHex(0, 0, 0)).toBe('#000000'); + }); + }); }); diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/MixedTimeseries/transformProps.ts b/superset-frontend/plugins/plugin-chart-echarts/src/MixedTimeseries/transformProps.ts index 25b7e5364aad7..47411e2477e89 100644 --- a/superset-frontend/plugins/plugin-chart-echarts/src/MixedTimeseries/transformProps.ts +++ b/superset-frontend/plugins/plugin-chart-echarts/src/MixedTimeseries/transformProps.ts @@ -78,8 +78,6 @@ import { convertInteger } from '../utils/convertInteger'; import { defaultGrid, defaultYAxis } from '../defaults'; import { getPadding, - getTooltipTimeFormatter, - getXAxisFormatter, transformEventAnnotation, transformFormulaAnnotation, transformIntervalAnnotation, @@ -88,7 +86,11 @@ import { } from '../Timeseries/transformers'; import { TIMESERIES_CONSTANTS, TIMEGRAIN_TO_TIMESTAMP } from '../constants'; import { getDefaultTooltip } from '../utils/tooltip'; -import { getYAxisFormatter } from '../utils/getYAxisFormatter'; +import { + getTooltipTimeFormatter, + getXAxisFormatter, + getYAxisFormatter, +} from '../utils/formatters'; const getFormatter = ( customFormatters: Record, diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/transformProps.ts b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/transformProps.ts index f76c457e1c34d..d44ae93580489 100644 --- a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/transformProps.ts +++ b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/transformProps.ts @@ -80,8 +80,6 @@ import { defaultGrid, defaultYAxis } from '../defaults'; import { getBaselineSeriesForStream, getPadding, - getTooltipTimeFormatter, - getXAxisFormatter, transformEventAnnotation, transformFormulaAnnotation, transformIntervalAnnotation, @@ -94,7 +92,11 @@ import { TIMEGRAIN_TO_TIMESTAMP, } from '../constants'; import { getDefaultTooltip } from '../utils/tooltip'; -import { getYAxisFormatter } from '../utils/getYAxisFormatter'; +import { + getTooltipTimeFormatter, + getXAxisFormatter, + getYAxisFormatter, +} from '../utils/formatters'; export default function transformProps( chartProps: EchartsTimeseriesChartProps, diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/transformers.ts b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/transformers.ts index 0bcc5baf8dcca..3b62417f16335 100644 --- a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/transformers.ts +++ b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/transformers.ts @@ -24,14 +24,10 @@ import { EventAnnotationLayer, FilterState, FormulaAnnotationLayer, - getTimeFormatter, IntervalAnnotationLayer, isTimeseriesAnnotationResult, LegendState, - smartDateDetailedFormatter, - smartDateFormatter, SupersetTheme, - TimeFormatter, TimeseriesAnnotationLayer, TimeseriesDataRecord, ValueFormatter, @@ -582,27 +578,3 @@ export function getPadding( : TIMESERIES_CONSTANTS.gridOffsetRight, }); } - -export function getTooltipTimeFormatter( - format?: string, -): TimeFormatter | StringConstructor { - if (format === smartDateFormatter.id) { - return smartDateDetailedFormatter; - } - if (format) { - return getTimeFormatter(format); - } - return String; -} - -export function getXAxisFormatter( - format?: string, -): TimeFormatter | StringConstructor | undefined { - if (format === smartDateFormatter.id || !format) { - return undefined; - } - if (format) { - return getTimeFormatter(format); - } - return String; -} diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/Waterfall/EchartsWaterfall.tsx b/superset-frontend/plugins/plugin-chart-echarts/src/Waterfall/EchartsWaterfall.tsx index a448c9f93eab6..b69d2d72b7a8e 100644 --- a/superset-frontend/plugins/plugin-chart-echarts/src/Waterfall/EchartsWaterfall.tsx +++ b/superset-frontend/plugins/plugin-chart-echarts/src/Waterfall/EchartsWaterfall.tsx @@ -16,59 +16,26 @@ * specific language governing permissions and limitations * under the License. */ -import React, { useCallback } from 'react'; +import React from 'react'; import Echart from '../components/Echart'; -import { allEventHandlers } from '../utils/eventHandlers'; import { WaterfallChartTransformedProps } from './types'; +import { EventHandlers } from '../types'; export default function EchartsWaterfall( props: WaterfallChartTransformedProps, ) { - const { - height, - width, - echartOptions, - setDataMask, - labelMap, - groupby, - refs, - selectedValues, - } = props; - const handleChange = useCallback( - (values: string[]) => { - const groupbyValues = values.map(value => labelMap[value]); + const { height, width, echartOptions, refs, onLegendStateChanged } = props; - setDataMask({ - extraFormData: { - filters: - values.length === 0 - ? [] - : groupby.map((col, idx) => { - const val = groupbyValues.map(v => v[idx]); - if (val === null || val === undefined) - return { - col, - op: 'IS NULL', - }; - return { - col, - op: 'IN', - val: val as (string | number | boolean)[], - }; - }), - }, - filterState: { - value: groupbyValues.length ? groupbyValues : null, - selectedValues: values.length ? values : null, - }, - }); + const eventHandlers: EventHandlers = { + legendselectchanged: payload => { + onLegendStateChanged?.(payload.selected); + }, + legendselectall: payload => { + onLegendStateChanged?.(payload.selected); + }, + legendinverseselect: payload => { + onLegendStateChanged?.(payload.selected); }, - [setDataMask, groupby, labelMap], - ); - - const eventHandlers = { - ...allEventHandlers(props), - handleChange, }; return ( @@ -78,7 +45,6 @@ export default function EchartsWaterfall( width={width} echartOptions={echartOptions} eventHandlers={eventHandlers} - selectedValues={selectedValues} /> ); } diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/Waterfall/buildQuery.ts b/superset-frontend/plugins/plugin-chart-echarts/src/Waterfall/buildQuery.ts index 353ee8fa20e00..e47effb3c2723 100644 --- a/superset-frontend/plugins/plugin-chart-echarts/src/Waterfall/buildQuery.ts +++ b/superset-frontend/plugins/plugin-chart-echarts/src/Waterfall/buildQuery.ts @@ -16,14 +16,24 @@ * specific language governing permissions and limitations * under the License. */ -import { buildQueryContext, QueryFormData } from '@superset-ui/core'; +import { + buildQueryContext, + ensureIsArray, + getXAxisColumn, + isXAxisSet, + QueryFormData, +} from '@superset-ui/core'; export default function buildQuery(formData: QueryFormData) { - const { series, columns } = formData; + const columns = [ + ...(isXAxisSet(formData) ? ensureIsArray(getXAxisColumn(formData)) : []), + ...ensureIsArray(formData.groupby), + ]; return buildQueryContext(formData, baseQueryObject => [ { ...baseQueryObject, - columns: columns?.length ? [series, columns] : [series], + columns, + orderby: columns?.map(column => [column, true]), }, ]); } diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/Waterfall/controlPanel.tsx b/superset-frontend/plugins/plugin-chart-echarts/src/Waterfall/controlPanel.tsx index 852f2680b3c15..7a71dd4fcba55 100644 --- a/superset-frontend/plugins/plugin-chart-echarts/src/Waterfall/controlPanel.tsx +++ b/superset-frontend/plugins/plugin-chart-echarts/src/Waterfall/controlPanel.tsx @@ -17,24 +17,26 @@ * under the License. */ import React from 'react'; -import { ensureIsArray, t } from '@superset-ui/core'; +import { t } from '@superset-ui/core'; import { ControlPanelConfig, + ControlSubSectionHeader, + D3_TIME_FORMAT_DOCS, + DEFAULT_TIME_FORMAT, formatSelectOptions, - getStandardizedControls, - sections, + sharedControls, } from '@superset-ui/chart-controls'; import { showValueControl } from '../controls'; const config: ControlPanelConfig = { controlPanelSections: [ - sections.legacyTimeseriesTime, { label: t('Query'), expanded: true, controlSetRows: [ - ['series'], - ['columns'], + ['x_axis'], + ['time_grain_sqla'], + ['groupby'], ['metric'], ['adhoc_filters'], ['row_limit'], @@ -44,7 +46,6 @@ const config: ControlPanelConfig = { label: t('Chart Options'), expanded: true, controlSetRows: [ - ['color_scheme'], [showValueControl], [ { @@ -58,21 +59,41 @@ const config: ControlPanelConfig = { }, }, ], + [ + + {t('Series colors')} + , + ], [ { - name: 'rich_tooltip', + name: 'increase_color', config: { - type: 'CheckboxControl', - label: t('Rich tooltip'), + label: t('Increase'), + type: 'ColorPickerControl', + default: { r: 90, g: 193, b: 137, a: 1 }, + renderTrigger: true, + }, + }, + { + name: 'decrease_color', + config: { + label: t('Decrease'), + type: 'ColorPickerControl', + default: { r: 224, g: 67, b: 85, a: 1 }, + renderTrigger: true, + }, + }, + { + name: 'total_color', + config: { + label: t('Total'), + type: 'ColorPickerControl', + default: { r: 102, g: 102, b: 102, a: 1 }, renderTrigger: true, - default: true, - description: t( - 'Shows a list of all series available at that point in time', - ), }, }, ], - [
{t('X Axis')}
], + [{t('X Axis')}], [ { name: 'x_axis_label', @@ -84,6 +105,16 @@ const config: ControlPanelConfig = { }, }, ], + [ + { + name: 'x_axis_time_format', + config: { + ...sharedControls.x_axis_time_format, + default: DEFAULT_TIME_FORMAT, + description: `${D3_TIME_FORMAT_DOCS}.`, + }, + }, + ], [ { name: 'x_ticks_layout', @@ -104,7 +135,7 @@ const config: ControlPanelConfig = { }, }, ], - [
{t('Y Axis')}
], + [{t('Y Axis')}], [ { name: 'y_axis_label', @@ -117,26 +148,19 @@ const config: ControlPanelConfig = { }, ], ['y_axis_format'], + ['currency_format'], ], }, ], controlOverrides: { - columns: { + groupby: { label: t('Breakdowns'), - description: t('Defines how each series is broken down'), + description: + t(`Breaks down the series by the category specified in this control. + This can help viewers understand how each category affects the overall value.`), multi: false, }, }, - formDataOverrides: formData => { - const series = getStandardizedControls() - .popAllColumns() - .filter(col => !ensureIsArray(formData.columns).includes(col)); - return { - ...formData, - series, - metric: getStandardizedControls().shiftMetric(), - }; - }, }; export default config; diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/Waterfall/images/example1.png b/superset-frontend/plugins/plugin-chart-echarts/src/Waterfall/images/example1.png new file mode 100644 index 0000000000000000000000000000000000000000..4785cace4adbf69bdf8a1e5c566748956f2102d8 GIT binary patch literal 69717 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 literal 0 HcmV?d00001 diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/Waterfall/images/example2.png b/superset-frontend/plugins/plugin-chart-echarts/src/Waterfall/images/example2.png new file mode 100644 index 0000000000000000000000000000000000000000..aee32be99193d3c64bac011e98d2c6ed077658bf GIT binary patch literal 51985 zcmeFa2T+vD(=Yt&l0iTPL`8xL$sh(YtfHbKL6964M3M+g&g_C97!XvV5{;FQNqF!cJC|)Jje6D@2&c(zI*Gwx3Fq`@=Q-pPj}C+dxm?O>MG2P`xzk! zV!m|ooE8L8gHvjVo)#Q1+`@qn#Q5G;Sy}UvvNE5hGs?>LmL&vTycZQicTIb2w?EmZ zMft2M{rStIYTitIM}zht#=c*;2oKtQosYib@h1*rCZR+6-(Cw937v1defPTguB>(% zgL9E?*?dAmGw_hUX}Ov5`Qdn(c}q$1*EMo6S-}OySLbr>1-m|v|26Yq>5nymJRIE0 zHO#O>m4|LJEl78}?m8hL0P#uMk;QnY;WoHl$vE8N44JHVweMF;F@!inU-PTE_#J)H zg@vPfM;ai=jsDj}#@C%{PI6V(jyLmFEu~1C2dli1c6j#9OqO3H=#B&jB!91Z*D(n3 z;xO8qUkdg`*;%DStCo#^*Peru&z?Q|th`KJb>ZTUfx~J;)*t<1j`gEt24Bg@#8V44 zPFfnyCf;_v%6M#*EFVS|eJA*&b3g6fC%ZpY9K5S@u3-}G{0tj;$LRsw+MqHnENS@M zJ=C&@ON+tr+^>V4E2`~pL>Oa-JOiYRo*fJ1K3%uwn%QKqC*{sXyH5`cz8VbQ9T~s; zr1~}KoTAY)rDMlMoTE?B?0R4&qaf3Y5eq)L_~7WlW)kr%Z+LM@Z*zId8%!Y*W>j+e z@bRyDB_0jNWZ#1>V%FY~c~U(17CSM1^t`WD1hB3VgU_bZCp9TI1nF!sO&6Rv}y6Q5U7I)=HR(f#gVSJ%>Jr`pFe+g$|PZ=pp*s}!dH6a!~tpqK^D?may&Zl zbsv7gq>2v(lR?nDN3e~;51Y}Z1t>VuPFFH52OxIRzW5+nNpp{nW6bxcKJ#gRUrqXg zz@B9G1Jo)A4rvzk+x(7ujH&f1nVXoW{Z*1#cih%9WA}yFc2f8ANuCS1c2M*pujHMy zgS0;xz0SZi>Die-on?5m^9dsL`9sZv*Qle;hCIJH$~n5jbyo@PB7!v;ZL`;#$uIb- z1jC!E{aLVEuoGtdldK^hRQsttY2v9yJ{a}yE;^t{D^`DK6WI5H_Txn~l6OQC?HE0DV~tlv>uCtk3DhV$-VpQIzPsJzIch^ff5 zn{WECDQ)JR!p}Z~7PDu4#VYn91C_#OKC$*6qo1SpyUlj+QRU$qYz4c*b{o=5F$4xN zynuguG4yLVLr*d5273S(LF_#X0n4l7Q;tQ!$oxb2r+*M1MJrBj75c z57&;>9UqGRGE~b^m++)iQ0kDzBdJH$UtE5+<6^!fJ;okWdV{!{rA2@3qE5#P&6kd9 z{dW$je?xpzeVh`T;(6}ZlL3h4{I}Ox0>-!txT`oz93O}3saHAgF14N=ce=^xcJ0#D zFS>$f1y$c&8H?BAWj=o*Ionn+&pt0AuQaa_w;y-KvSQ9^NOs6{$SKN8Xj;fO3LfPh zB`1`mGxpx}{g?N0*W#`vy?y@uO6%?Ky6?F)OVdtEhRZg3@pzbiD2tfqd0#!wKYnmL zwKe>$$NO+wo14ovcTW;-8aMC#_R6-zj^B2=Sw2%H?ff_A@4IcLnoE)wpJbe~Zq^<> zy5PR@wxFaSv*6rnmU|2#DD1g|lt3o&IWQ;!&jxaqfv(Y{vgyuCT(rGDsUt`xaPhF(aHi;j z$aN8SeOG1v8u9Ws|40a*WJqx{yu(hZsC{6?Btx*0^^dkr zJLllUOlkEJk5OQ~rCzSe`hm5!<^0u%HRW~H^(2~D>bq2id#ae$_e>ivdp;%|>VNSD zv9p$?d*AYrS_zx;O_?7$`jY!{`bG}w9!yo1JuCRUPTB6PQjk}WJ(CZ+1G^Xl>cOK2 z`n#`kALkj{XTaXcX}K$(fBZt8VIE(J3@s3Oek5O@9hhos9k|UR>JhXxr9o zSJxW-T12kU*g?jc_)h=ItsA%0COOslQsPhSsR`@il)_m$Ejc28b$gY1R{L_IcVPs2 zk5&kf&fiw8Y6$8-SNL(@<1U!0rjTdE&p1~JTX`9YVo5JBB3~x%P7?0e03H@lny2L8l5^cOMd+u8F z*=UK>6J1AqTnL(B9u1ADO{qnxKXmOfd$UR~%r5o)`At8H^6e*F+lSJ*jAwEyZc;fZ z&jsV1MO_{^<58jA9Zymo7b>Fq=#qGE&RfoZA}*blLCG#3UQziFZW3pIdZuSB-CxhK zyeTKEXtr+8bo7Lh!TPnimY;3Q=_Xy1h1?xsJ!0KxkC3jg_lNGhh<_1~z~pgy`o)Y; z$0B-ZuBZLJ{R7tNgVT>E$AlRKY*iO71NN71joXDeOv?;-Gf7k~#nqw9Yk*ibAHnG?7Mg$G zPzBiC12#szgi)>5*IiQ|rc7ei#gXL$enVPxxr0?YF{##>GA42^2~Oo>!Rrq{tCuze z<0sK}qd7A-%f=jYi@UN*Ut6DPB$^iXJ}8t&nH1Mo_zgC^kW=uep6SIF{xrq=^{#WW zYVnkL#S$F{zOB^6*3fADOk!8k!5ETCf6XlV5&TA06jtSu?kM`4tmO7wR9WFg(#|JF zByqCZGV5To&`$0hK1HiT12KV_=Q8;(%#p7xyWs6!wx^Jt$*C?UZ@SJtT(1AwB|38r zuTxRzhd;gNBw;~$JmlW5+u`qdQx%UZy7`8!$)C)gW13d|qBoc+ieJMjBwk5~XLtG- zKXw(mBXEG1wX*9nRQnCme6;U&k*8H+;vSn}F0*Hqn1QEHeGDgIZVLdR(?|V+ zcH(jO-Gu%3s=8sfEDnF~?DX(fPueXq_sO}|*E%h&1si{Fi;G70Xe(d31diGk&X$%AE;cCF zP-z}-aD&0|qJawp?Kw*M!7gbXnFZx{*j@uFSnZ0e1_A^y8;@TolIuB@i5r{yh!bGG(?XP^$n;}Vi55 z>bO`sE2Hc|rLKy9ci3jV|9rUlp}aVy?f>A#UyRD-xXp0LRtuUKQtr&4`V3=Bd3e2>*`u&##P z<-)(^gTFZJ%@8Ihbo>5Yz8AH_d=E-r-lcz01Pff17AmTLd*YCs!0P)+*qLuTa~{v? zaJaK3WE?RWyXKrYQodTkXOg0x;N83GL3)QwdcS|(b0TH=Ai^Jl!KvwY^8Iz9#T0rK zdezWA@cYij2|@({>pQpk&ekIidI3m?zH>Lj*2fzU{Na@{|0+~yrzUi5XU@^xe-=RF z@A7Bm^w;>3p|^ZDRFC{w03$T=2a)tU-y#q&%`>&p7ym4P9cuVzV*ovx0siph+mA#a z|5<;p zs9R%obiFPcxP8~zL)*RQYLX2O`d|FEr@`^sH7(K(dpGcAlM8eX}h z=+I?fATp7bOXyP!;dQ$5RL;X;gy51?>OzcJHd+oCY>F`6(>7E>a9Y233?)Lu^b zKGZ3vlgj1!9BPuEwM?;n+PpX~UsIzk@Gsmm0?%a0fZ#&JM_?C3wlIv|+wBb&C4=v3wG?i;-9oYWamxvbXXfK%KuTL>CcA41c z-EQp)L;WG-)1$dXdXO)n^#pFJko?Z~XAo;tN?Lb0wAc3uW=&EPn#`&$7<#YE@U22N z*)IxFn6&SNmAe?3SIXg5=MCJ2p^^!dP$_o#{E(#&_Epz(!LEN+3I$xC7nz5f^<|FD z+fC+=Os5w@ld|OD^Sz3MqKLY985f+2h79`gD$AqXvjGU>tfCen9*4 zLoTVTx;|`-vA3nnQW+{{s<5jh^0)==yB<>87$#9W$oYq;+q|um6o+`cZmjf$jO9P9 znEUR6iz1_xMNHu5M? z7Il6Zol0%PJNOXgS^vn7*U$BW%y3bJtR8K=@4)dPJ0y9@xjw&L7z!3BKJ$laQDeWT z0~xQc+SPTY3)6oVFEoBSAD%htBk8^Rgha4rnj{TyDtgV6IiMNEtSgCShQwJ0-U;7I z{H1hG;*y|u1G8;X(e?$MS}+NLfA?t#;yvIgdW{POdMEE2 zZ9*n2o|i0ajme!)T)z~dJLy}Ck8KNC&c_UkL!=RmxEP)|jfo@_!YA=7s+d*lm4&hN zI^JdyVgt@@E&A2p@3U&ix2-0W)A5}u5ZA-+r+ zn{;2eIwNeC_A9SpW}Xvjd842era*$0U zLEuSEqyH(Nt;dp~z2?I&i90LLD|{;Rn#Zm7Vs6=zSHl8(wF)|XTN;!>6Mk@MtX3He z4I4Rd`Ic7NrW88heT}^43aLcK08R6yNq^c4kqpE$VaTffnGR{WMo!h%!6UMN-bncto98Bc_4x*ND2p%Wn78BwS?MF(R*HWgPA!hwk38%ykmEMV;(S?81{w zO$(NIlq(psj9^XZzA@`O#YOUGBiSUFgbyL!xhVi8XyowgV;Aj@C1L0XBl?eO`EDa> z;eDzUt?2`_CNAU4_|CQLRS1dEqe;R$hNW>2~-!;bIqkn2Pzdf4J!oH6FKM40numR6O?c#?We-@J5 z2s{r(DmnQ-2GdTP+rY(P5R47@Q)Cwm5U?g|vyfwd)~E)2v6BaBPW;Q@D>4Z{D?27< z|5YOcsFDAb8SNj<=WDVCzEV;EcjBKlo;(9;3}XNKXNA-&BFWI`iLB~BEF~1c54^`` zk8bb#Lt6Y1Ni^(`AFaFRziOlgHL__*Q2p8T(Ol5<#!42AKXf(qGvJNcoMp87!%D*7 z+sxi(_LjsZZ%g*J8rf1*+iK*$kIsiIDFA+j%;Bi9hihx8Y4mbPw3(&hb9!N*hS!g82!J=$)24D_Nu1RcCQ*U^xMa`n05&l+{>r7_#xFS)m_uPz4K5By!KqUw z%OB3?=y~C92LL$6>oVZK?TR;8w$18o;o2Tf+Y01=kIF>Q1`J~Su6nsPOzu$KR}h@8 zi!toPl%|K+BcE{bAfM3Ljb?vd@DkgYNmU#NM&a{0^PQWD9+3c_f}43a!_6jMYeKDF zZ6cjI!ccTt%F9!FV3LI!ZjhT13s)kY^N#PQNAkrWlPnB)eP1%4 zHf%dA@_0l83FRTXk&gY1b?S0c`iaGZ?k3+@lm=oY0Z7r{*XTFhFoY!dShlazo^FVj zNj=~PTJ>?yx%nzxeO&CsUQcUll5&l-+4OOdG2?ZD{uQnDr z(Wil;gD+o+Lk;A%rMmOj(ma4>KB!CdnQV(%{X$du>XL9Yn}&2rD7Rd}M8(v@7!$M( zaaabwzYGbJxY)miQX(kRWRzy_n9KwgJW6hBYWjd(6B2n+%R;?h6ih5#<&}d~^&n&4UqeGbCQt$% zJ#HFa%l%kpG4~^STTrg;>|{ccf$7o@Jyu1+7wp&Alo9l!Qzp>`9DcIWyh zaUt=p)uS4{^)tUa=`g4&bSKV%dcP2;%0|NE^JP6~$C?|Olt2A9wA(Nh05IPFDUy4O ztSVNX6YtYoSVx%3blG>}jj`Y2sZShGb?mLJ`EaN{0w!@?NN%^yE8s9Z&UWP%GJ(z3 z9&Vviiq9+`$n;%|cdp^~$nS+`js63>C16%zC@~{cK2aj?M1y>(F{ZkHNOTojVeB>Z zeP{_&qz;p~@?{GvsH_F@cDOL-SO7n8X`aPiUV7Th0nLlgw>BmjIFwI?9~OdoU24xH z6tehYb>Nc=U#IH0@UzbjhWIRe+cy+Ds6KAI&vEWvO=PCuI==2yyD4y)Ui_rp^rMoc zfcJwkCGa<$1Sc)K4QAyT{iEwEjiBE7X{tI(yn{7qHoJjtEuq!>u@bs?h<5QulDK0p z5icrNpeWo|kMg!BHpgI1Gs+3HG?mGZe#2$u!0Gaqnx}`W?FLSx;KMtOFCZJDd@EoRS zPg%Bg*Jz1(tVijIX6mD=Bkghp;8gGv){2H`Vk$37_m!oY$cKeOarQZC8WV;9bM^j# zv7JhTY%Vn-p(}BOi!y{|Oj!rYkE=3>VQ^!}#go%#ViMecJTLpTxau}{6%t8rX`SD6 zo1cO%ecF;=upbPpYHeL;hm?Vkk@w2Z$~J2#4-ao5$xJa>N5!Fv)AO+V9YdxH1yd4w zOZ?{ThrZxhvR*OyzlIN7+G+wb+w30yV4CX(;0lbMOo(u^I!6yZC~tNI3r|j{sYI?7 zcDbkK%v7vK4u&bc7QwCsIcrVa_jeln>~=^Sa^1TYzB!qf5Q5QEzFn4&t(4>h19hJM zf;^Q*wzPozowYB9Q`rxLNj?{3FC+ ziq^Pmeok2cGQ85m=wHzLKSw;X$N19VW{;}GHwSOPCjjP&oKB$IZ4(6Q-*r6HhMorT z!1fGH<bBy}IWzlebCJa&r)5ubMD^5)dzqF^#~abN0rog>N6UA6+sxBOdb z{}s?^uR_1S5CQ~#WH18X3P)^3JG6ji(E5DyDhH@{ASfNW8xeJB3knqk)CyYUzr7E- z!>LLa`uGL+YOAr4K*L978(upPj?(7B(7+8#tu4!W8K?uCzUccy;25990XgMJ3U2BQ zzSp2xmT7x*9#fjvvE97Cx^}zwwuN(h?ER$#1GZJmw&vV64BLib+iTf&%C>#Z4Wo$I zcB!{#4F9js_bLzNJUeBl`&4!@0HkWw#pJgcTI}*EjoY04B9isMd@}Po;aHOhILV#U z?>PBT0J8cTYk*#yz>D2#m2AmMoL`^0 zq8}QP!$59l2Wg6Vez;yZ2I=HhJT`1pmxt95ZuI=zQg?yNUjOvdoU0ReNI?g~ix&%& zqP3MUR-I;ni#YR;3YS_xhuycq^;$WryeJEu`$saH=Oq`X}HQ!(pC2kbliv4AL2hXWQp3AKk`&?B@-FirVCYMy*5Laht8{07$K!q zA|?i_5vOZ9tI;T&={;0O$J;_0dSD%I;!yN!SkkunRZcrkX+CKVd!`sQzCI*{CE6Dc zHk8U?#*~&5P{M5d@=iwqnn9oR8woio28bJY#d6W?9e@|2g_hnXrtPAs)DTHnWA#jSyOlSxb|z1Q;jM3_Dv0w`~&Fa50*nwy8C^*MGJd-izWMh)$oe*%8t+G z4DV0%m@Z9slOc~7#>|IvNoAC+n$WqLuCdC$H96wD#+Ed}PPaN$s^LYNPwXjHg-P)J zL~bDx7=U1`JGothtEwVkS$VHi$nrpRDhP}7xG25#=Vj!(%7!zGn3cP_i>JFD$oX6^#{rt7>FReMbXBqD~pbkQ&J+X0M~m+l&}{ zJvu%llxj%-8XS5aLNX-yEh<{Zj41u$Bpp+l9*#o^rzD_tM_i~B-EqGXG)PEIkU;ng z-&?4#^f|q7S02+Hf)vf)YY;}&K!6}Frkvp<0j_8>(n!fj` zXykOc$4#%aMZLw8%yQjMkYiZ~Dw4cGgC$qH4N)>yLy-=}b6+%kZ`ArxNoCwLxjOs3 zEs7>JZ7$NeDkNNJigQwh+wbhibTxi8BL_Vp4zkSi@U)I!osPMk=AD0j7&o4(AqIfI zv6hs=-s`hN&7_@G1Sz@$%LJ+Lw?(mJVmJR5s3ve8)+fTZ(})6zVJ%HTxa10EG?uN- zIh}JpT!EmkSIljg#5B9oUQrUtt5o4arbIO;5G!j%(F`G(l9d||z+>0m8S*>bOS2<% zyyLz$WrV@oPR_;Wm`<>f zQxxVd7Ek7+;!vcK7m}#nvWBCpQ>sf{O25;O8#v&+(sNA>1w?W?=^R-DGo05j9G)=O z?@V52jnp6yda28d73B=vXB)v>93kvd;n5rZ`n1K%9J|=@`WAbpF)6t^%pG8JZ8emWh* zHEtF5v{i?h|4uqYpnwAGEt^zJwgo3|j^^}v0W!1tz9kl=fVC1GgBoH}OCvLdGr~s5 z#zL3kwfm`cQWaik1N;1x=)rJ>oQZ=Or1kuv$;?D;el^2vkaV6sgu<-)$V^wKxDpgd zMXatBijE{YmNM?=~rzPM^~>6#aT8Y3Hz1cstls-)?zP&osa6dO7n;@#;0|Jwg&L!!L(o zu-*gV1x!81M-#M9_rAYX@a43E8n*XG>Ovm5`A6|D8U)usYa4P7Wxsx&{He4&t8C5E zCo(`|B1yvh>_{BdXOJ-a)vnJ4-ezc5@7zk)+eLg|u~bg(Xh1G;E*$h{T_b+@(8wS? zcDTkhOqxI8CKvL_;(sw(vDhE;A3CfjTo&NA9Rm>LNCkx96GOQp#L>QM%r~ zHb`E4nZP+ug<^^&&yFOJ%bme`jC@78KAH5)b)WMi(-G>VYqr>0%y(g=DaG!@kq-{d z)fwsSiFZL8*rlH`eEq>ZVU>>2KSjwe-TCLPnXxivvpysGAD^mA@otEbba*w3)o-Dw zyh~k1V|MO}`=KU%7z$={>tr>p(J)x<0rYl^()w6K&XOup%QR>8K``_3h?3GZb<${x z953~9MK#MbJIz!AZ3d%fKa;y)X1Dds!EifF9Ab51jpA7JIyD*L_Qaun6qBoxNIAex ziEo(DA9}E_WG^b~crW*2Qg9qy=1ChRn`EeC%SV{?YFKO5t8;6|UrQw9eMv85Ixrpw z(ORyZ-GuA^Q_nVn6&+~j58^lt456+;Z>4;K8#S@E=x5fw?}T-9ZpGTeh9UA)X15() zY1W0ZX2zv)Rej|AnvaqA*LIZ2nI@7g#;UTgVm+`K%~bjGi-xEQ?_x!R9;{%-Cu>p1 z|5!l=+-9bwB9eSwy!&-|@q7#EbAU_3s{4re+7#!4T}JT*>($$g{@Asl%%R9|zc*hK z6;dV(CX}KuXrd`u`U&QDjKX^tNSS_NiGq)GWmDrTE}2kyE*F=mb&$# zk!WJhP;{JIMQ`Rh&nlNg(K}Est4Htt*+dWCR-$G_z@0qg$D|e^NUU@c*TA$^e>$Pr z>l<2iLX^e>?}AF%D?K{38dEQYztMLv0fTAxHmbxH_VP553^Lu0R`SPP5nSr_K^2d^ zF_QaKsp^i;cRN)zov_+PHUbu|0@XJ`-=()ZFH^tNOU-6u2s@)d_5ua zi2Q)x3=g5;_CY$Az%A;`Vu2gA_Z~C#SxPYG z|KBg+piZzL1AH*TD+x>pxo)wP0Cy(sIUi^zq5|>60!j1R!m!}V-&<_#eGbroAWiqfO`0IK zrW`mX84XWn!d1TMa#*z>c8@fQ41RtnJcDkBC2*3dmefGvGI9Bsq8>@n-mnve_ruL6 zElmcLuBmRVglh@}Ik0phrMqpC!AZb#5wjySm2k5kag7QyazkJX0Rbb2Yy+9m%Jq;b zVgwV~6upv576LG6)`7Wcs*oPk-|c+?z=sE?bLay2K^FJ3_=cuVc1T$vxLdaWV|Yvm z&x&2=()ZO!lSHL8@ii&1hlI@3LM{$u?BZ(FWhxc}{Oee~%Ct9p6!$2CzhF2j+9*eNy3 ziS)wJlJJMW;|@%exI@Qh1?odUt`5Cg_!!FQPjkae(-xy$+$SH-XT`MM!JV}<4(xm5-G?zEidjv8<8D|rdzlh#^! zkLx#kctJqIA!cN8`7WZgF+p#bG(CWz;)+7d!0R6J>b04AEcWv5{kiMJn?@nlUUGZl z8xxoM?{Y~;3%>}M9wsaV9qu-OWkGMT>r*pBMXX89#Y@YBikiAU3PeTbRMt@LFUY`qNm4G_u=PE`e)Ya**yHT4M;MXcd?HU z!us*^5>0cV`_EN+?LG4Lm4z%hS}m&=F45ZKCEZ$`{#v+i%}BCW&FvZ_as*EZfeMg6 zvExzV;^NCG{V{J$(8TXUTqE&F0N+0Z@I8xB?c+Uu?E~?AjQ;0Kf4r0m_$0&X<3sDi zrl03O@A&NkVKm8qJ`+>GB$op>dmA?I_%_5yRj-m*c%v+C{4Jz^v4WGd5HkcejJn!p z;*rpx16kCBapx@UvraV0!1fQ%4fL4mo04+C*lC}5_(|prJ5(;zg}DlU;KCy|9y@)k zDb;^IOYiuq_$Al~{z>ZrVm26Q>G2`T3f+b!@CNMB!Jca>G?i!P{ANFd;O?cTLO)Pc z9U~k*F`VU&F(1msODEquH+bR2EIx+{^2*OOY>fe0X?W)^58`3lGfK| z+z5vM1^7F;-rU3K6nP$BE`1EZrr$CMqiSYO4b{DgA9|_xi1x`F=RHApj_E`{cAiYYa0vB*j zzmfh`^cop#UPmU^CaJP-ZC*FoLl^(^T0h;aN^#(z0Aus3r9zK#7-C!pMF+gd7$e#Z|xP>?YzMvIh>OCBR7)=1U=G?#GGXWi7uspK19K<(!JsdyrKH?X;pi79I-v&jpCX{Ovsm(6t|SQ;~8#IL?oxXv0qf!O(!1r zkCsEXY2q=T{B^%O@xu_und1v1wKY~R7=BDF#k`n$K@Hh!8)T~mfP(G!*q?&iGfA^{ zy~!EaOD|3S4COyOL<5~TB*SXGFl$r{bL+T@W!uH>pqk$JSnufB7$+xPKbTS zdufm!aB|m9=w!gyoldyFsm;;VO=vsx2p_cfQmr$1f&DNaB=9*~_%%ILQkAi}#v$1Z z219&Ez7JN8AlSeuTdZlUC^ULUHz)irWn6g?4)=c?Bm!1`BaVa9>j$<;_)jjJpqD3f zNA5$<6e9V*%G$-ctQ8$sNMjSn-n>#bW7W^39)EbUXho=}o5l^qB+L*9NCNTAN1Pfe zZ?_`EQXI7vjlLLTGObCQ?y4=MyzG#9{YH-CYH0x)<%X z5&fv_pr?mEf7W?N=_<`Ke<<0rrTH>D6nP>25Zr>_k=)W4YS5`8=$TzSvcJW|>sNni zP2QRVr(#`IovROLtI}cU-wYI=Xb1rrBdaAD#^cD zs?$N5EEyg*ClXDK^t~Q3dK0P+S2K}IvcJ7ZOp=kQfVL&}M6(1Gr&J8_VW01w1CQp2ozEzY z#Ify!BCSn4)!_bBmpCpay8@|3JAF zz_>ec2nIXq z{l^CC>(K1NzEY2ZtE}k?t6c@mxmcpIMM(|Z|M-xOG)0iv1%M#$%$)=##qvRFIN}$O zodLC|j;BB(Ph?)OV}ka-i&dcvARYFd(6wxxAKk}bh&WB%!Hfxu zKqPm8${h;*SHNW>C>)GAiZ6?h0k@swYhLYvRmNrsMIzpTYpr6PHlPQapx4y~aDSE$ zY3dXjO~4R!eW-}}^cOWv_MntPBg8tm90B79jCIP~Gx-3xEz@A3^#C%vqR(+T`5L%> z*DYkn#|PQ?H}{Lc5Fuu|z+^!I89+6ZTu8!R|BIT@0?>vo(PT6XL2?1(7wDLc@f!wi z9~e3Q?mQ&HpT>Ap6X>esYYtJTb^@b{7;}tLa%v8{)oy==O7b_?i$YoS8iexR}UC%a0kLQMx_zi)KC9biTV z*u+KuFKS9e0ZZMP-Xft#D53fmB98qSF)!jKxWsCusnf6Yh_T^`akpaSGjMY32kK(f@ivXr*CssWyzT3O@R zP>=zLLLgr~4zNXVnMAcMhTCGeEr$P>YQwv*%2qou`>a<=R`n-qjLivB7@I4s{IpOD z(%b3E#Hdw2mw53xiu>y@eY<2sz43wJf96q-zy+v@+0AXYfG$vkX(`PVHNF9{Jp{jcJI9k9Q;F%IkuWW&A1y>N!|JII#6_)ddC8;1C95|Tj(Lh zhEiTiE(RqQs}04_Lqhm-?vE<(f*N<-OZ$sO;0?`3;03-~2lm6zXmE)v1G_L#|83f~ zzqwQoO02gR!k&XPiTpW%)E9uU550JU=654+14BV`#{K197(%M``=w-k&@b7Em$$YI z*l7ctOdAJn;!!XSkb2C0MB)XQ9Gp8Oyx9xD(Ew9P0s0)SPeA)W&rpYd0$jSkcy0e? z6Z{b_phTBAocJ#2TE)FdzJOhTq{F)ne(xokye$fVSKFdMk@sy;*cOFN)%V{>6n0bj zj}?;A=T>EYaL3zrPns7j;-!Ancm0?qVvW1oyvs|PZ%sJtvwG%tJ#!i@N-%;nA6U6R z+Ojj3frl*gZHM~{Be*ttDP3X_m*k$hay-)`(XT=j+Uqjp%kejkv0)bcfJ$A}ZJSgE zN8Zyn!?~Y8$u;}GPH$~`;;j#CU-d)l_IV26@F&=?VIO}0%M@yM%5A(=!nXOPc|oTY z6O(9OCB2e!M!jM*Jjpz+beg0my=Z5B=V*+v{A781ik1FwOfR5y0nJ5N z*+ma|m(xrsZ5c-oYN1_F_k5;LwIFicTQ%RU-9-2n`Ek0H{>XH6`(T9Tte#^ z2FUw;@ubLBWhpeEGGn(zxBfMz3f^e7j7stBtRWL%N;6(%y#L;hDNb5>*GuP&2?zDVZSN6D#g`F zp5bRM4FOZrWfO^c)|GYQ*aIxGj!9X4@cERwY4wtM%&D;kr8<$^AO*#8)s-QoE&*DG zV}AXqwvJhgx-+aObPHF@dAR?Tw@MgBXeHOgXY4J&EL#l;QJbDiQx`mn9;#TJVyXsf z1okQx;uFokoj1itk3LpOVo&rO!1kBVc18$8TcPUog(=^1YwBuXI&q*#zcvb<~^wIr?{V}{A{Ii|0}kzy`$dv%R^YQ zpX33j)_Y?@blh1U`VwO+O0Kwyui}Z_T3Iu_r6~`>WrttQE)SBKjr>N}&8wxb&UY}g z?jGGv9@0~xxh+mq>hh#n*Pmo77-DUXxBcO2`4wlbGdtJ^BH&lbkAhiyI$^w~oC8|0 zNR{Q^^t%wJDB^U$vF|Y$d)BHbSP^Lj6BNSpjNSBN#(ONf|4!9-YWi+nW2fSM3nZt( z`u=zqEZ66HSvzSWlS*Tj$m-C_E0qskml|(-4L_AT;Px@#Alh7Mw(n*0r&V7QdubhO&1>G|vdY+CCCF>@cP_xd%87^wqa79d2Ka)0eSwvt2Q2JqIF%>neU>QG zZB$^%OaPQTZS6mJY;)j89&1{J_|Q)kM;}>KrG1GZa+-QR?|+>6G?Xc;r+}9c1kP1s zkmyf3{VyJf?^|}p+q~>@z@CWzwdm5kx{i$vq7Gjl`Q_SFS>!+%LXWy<3zHRBxt}!j zPMk=(!h2NuB;-lxTpl7%f=$RGsu+buxD(rD(dvuDAFl&ENR(23g;C zje0|~Gd?q{ND^-BUG05g5l+ey*ep-U0rH7PMXrpBl@+khmobm2_t@*aI`m`-Zwj6? ztbuJWSpUfn+N=D0KX2a<2H8{pn(=DLiak`m<2;F55)A9T#}cj!s92><1oTq$dsB{ zfyB+l;Ejp}9lk;PPR3Q#AJz+aXc(cgX)m2R5(oIx+Mjjc(!&jD$hKV|wNkaWWogs7# zoh1n*-?c9zRX+t=U8NDQyeM{fDp?GD;@c`YH3KtFd#F?0qzKAom{YvE@hpG^jUtc&;9cGuFuWRSi zx~3f=O!PRaw}3DH)m81&TW(N$VS*Rzk+<^G|Ebk8TYX}uGz?ftGwIp+BsJdeg)<{8 zYMIkgT-3AQYDgy})GM=9c%Kk1*Lp)A8G*t1(Z4>^B^kebN4qLQLy_Zjhgo@6eH-sy z-6b1qFp(6NTA8ATUKZwB{uMuqI=iXI-#$UuQ~5vM-ybG7!y;b3taUeh!pYyu*FO*xJ56O*{hf9bAr}E81iaG)==qb z<~WDBF!NL;LdRf#5nDwh3w04ig`PQMEI7e2ODMG8t2j#%weAp8RO3@@K;a@ss*ibe z38v)@%#F>}p%+UX$1JfM#`A7D6dWeyIBYNyY~)aGk(_d-TYw3QHg^7%wPc#K|LsT` zDxTA!Vu&zX(q13aEtVB?47Q_op^fRk5@(>p`eI^8r`N{Yv8uddOJf>n`SO*-t7^b` zaU@7#Biza1;oT4Fa>sC~8O)r<%Yh53Yt|9s!>UIV=m*$qb`&kIDzW_9<4+v+v6o)1 z^lMRpeYPZD;-T@p(#*t{!B#ql9h~C&+&RXcB<)DLgV)HMtr1^f5-UQ;Vhy0#k8EV- znxy3+347ol{kni+p7CqklNtR}MI7K5-tY2PT#z)-dS^!1{Y?|9c|IV64*Z20H6|o+ zyuCV*RWUw{AqyKjkZRK@mX zX07Fn#Sr8oj2H*B=?1>9_b6st=sSHH%28`h(mPT}<11dQz^DG;m;x-?$f0w#Pnq>j z7YZxPOnbWL#>-byRs3Uf%UEF4jH4C8B-%K9*gq!Hyy*pq#e%NS;$SZ@{MkC(Y+Lg1 z3~s^-9a24TWHtpTSmU_RXQl5tBV#_Lb-cF&i;ZxNrS3@U0n?miTOX2$p;(RiS ztJ;jPN@*oHT;PNKp6e+}NFK@`9SV7;ox<{!OUl8xd68^y4%QO$#Bw6@7$H;NU!NSC zzoZ0Tir~4#d#MOt;j^PO-7L6jO-lyov7u+L+~tlyZ%rcP%(m=oJHH42g1F{8D0$=*H=>c!qZwaT z971R)jvC9|tsXT1L|Vpu4vRVnAQNQ+?sR~?q`Qjz###il03!A3O^&xZaNk|j+C1b$ zpwUu(H^kOV0Y~v|x=y;M?Eoe1!;RYj_rm72#lFo>@JBob&ikQLQQuv_G0`rkqRSkH zz@K_Y_1lT3z-*mwvMnqrsJy1GiZCchn7i&bB6T0&L+tO~r6q!Z%Yt#lVh;-ww32a& zd*@a^=YW!Nryp_)D}$1Pb7T!cV-3gjf5UE?uK<58s#z|^gX74vv>A7OsL4ZZ+<&Wz zC;+ovE3lo^-v>&PjQsxXGHC4O8p+>?)FI%9oWCiQIs&+((0;?Ouo~`PVW&lRZc9H> zV744Jiy9n=!bCn#3)2M!>B>fLnJ#*ELBL)uZ36`mupKStpD5+t11*?tm@st66Dho=UdDaTsszM0BY;SM1 zbYx2c8Z8A^%C@#(aNv#m@PH(L!^k#`}4M;U&I8m<%qO%whE1tV$uGD0Ca;5`)#p4Vl@urM% z3;o%-7sU7W2K66>!4sI|7e7r^*J-D?R+zKiI_~gV>drmh4v#BK*Z%8I=pk7tuChCj zSypiSZ}-RocxZc7O)S~o27v4xo9KViGwd`$@8SwgP^DS1R$X*Zpfq!5`0q;b&6r9&0k4FA3)L&oxbkYR^vNsfy-U{$=U)AJU?Os@DDeW z^EQ0PJaOQU<8jYG+U;K%LS`UCh)N`N3xlNp2|Uf81G&dxz-9HNWG-!H0B*Rp6i_}7 zWvK?I-b@FQ0O>%mXq~MY2DLNrwVi);g2Yf5qJom9w3%kOG5?qXQ2&p@9DW#lGxsMJ zm`{40o4?52QDuAQ`8X`BU} zD^$$wbykYxwN}U3=QTkf5OOdfe~h2&jwn9=QbC6XJfEW9?HvAX6`Gb{mFGE;yTz~r z@3TG)&+Ldp6*wtB{Q#@{c+VxsB1~5LtNi@`Xz#nin%dfRCmoe0igW@hqJk7rKw40i zqEcNfKxqL10V$z(0*Dl)DTttSQBXnYJrH_CX$sOwLK6a^2MCaIX8ixP{^QzvpPPMi zE*4iId6GHDm}7k9{oeN*-JHV-iX}}y_SPmh<-~5w0s^^fucGOWA_3%h|7xuFlz>>P zy^;oMCoyhMSFUl;6p%-dNg%jbxz;u5cToC6ZHRG4MK9H~cK65lmFgxS_e?4aowhpb zV*g+6&Yz(fOGD__;-6czQFfpL*&!S67#{fr0mXGc?oaKVybv%GaKa-6>ir~ec)9m`+4Wy#aKujQ0?tG>22F_`RHw zIXl}_B_quw>dp$Oe%9-FMHVRkiF+LYkq;FY>FQ%~9w^@CYO{JSNlEWq=v zN%Q(OVENW)LwAxMIhcb&hQE7n-Xg-W@IFGBOFFzMu>#`c4Kad=Xw&-hvb9HBPhGw^{ioIyfv5v0d`8eaVSoP(pd&B+BkzjN=M$LDvB z(ZMUb{v=ZGc+7Xx(6;a&f-tBQcrbUCZCaK;d(p@Ga==EbGftIG8mMaedvLPw4!}vn zH0(y6_Gk=S+RkTHLzJKyU%#FMZg7VS0ATyGFm5Pm%J53a+2+KqRH}-8w)!PJHOx`~ zL~=g`u^ydd!mUf?97-wF>+_p5WYmz5ANGgx-FvB7CAD2Okd;~8{&H$JVVmGnkvN1} zekavd0wI~{j1#|oUbVVAS~{EQz4c9Y-0V*j&z)Y*k@6R`yQO8w0t7FI;^ZR(Vf!yV zNVYljJ5zWG;OMpZ7%}Q%8fDfQ0MCs-1h&I9sa=@XZB<<=7W5l&U#bjX&?+D}W`Xg~ zt~p4q{?9{+I13^-2c1%-Kh_4_J~QJe3>mU^*|OcN5X?USOjpzC1+`$CSnZGtxR)-) zLI!Flb}5MsZMZ_FqoRQQK0zwNnis5|G!1zj`dg6LZ>#}~L5pc0E{y@=4b!N-`*3y( zw=Js2$P_weG`VzYfR%FZoW zp@DQIx1bTX;jGrr(&wPL(m$p-M?xORbU1&NIeStObGr8{Cz>QKbV&)dg9M;{AaE*Xbl4R z`^Lb}fByRM!OP&gF{Xa;e|?+&!YCMYn#+a^z_0JJf$xf%k1G6?-uz4k{<-0QPyatN z{LdQxXVV$|Vz&yx6O zN&GKk<0qMnU|%7vfZe&YffU=O-5;FZy_Y=OkIdx7NP&FNg2JU9#lDHDizP1{+ui=7 z$og08S1)MC>EgzrMbQRz60U8kGYs?1tKqw;)g_toPpwQ#gbJ+0 zR0ltJtOFKouimO;5oTj^C!fC$3cV;2vY;>(#czF`A70;e&Gw7G+czhZ&7T>-UtznJ zB=cE*z|v=3a%w~R<3S5oYH#W8Jz@WN;u4lDL7q-Sxz|nVR8x%TAP#r2q6z?#pAtQ~ zZ?VOI*>RxFZa=>n%sZ5{vdhoieGK3*3b_2U8u8~<`1s!H0Xz*jm_H=}&%cyr9ppU7 z(9FV56}JrhUS&J!JH+ALr(veOeR1gaIhm%B<4j*b7=cV$w;ii=o=Rz0K5A<2xf?O3 z4a@Z1u4x4uo*ygU0%4RWvcWIcF*!nK^zNWwN8Ib@hCIN7AEKplLhd&^R%!qSm$tfp zvgmanzDDW6A3GVEwIoZLJ~4)09JV}Xne&jR%wLNj+3)o7|A9@pRn`aolD}x>^3q9b z!Q@K1bAd-2CygTr;8^=F^GF{bp(2Hibs+BAe5OC5 zb_cVcVgaaf0|f?I$F`xkwbJ(KxaiPrOrsmf%lr$oa;E%+Srx}C_NgjQcrA(A7J@9^ zVJm-a5;{To5Dr$hYtz=9c2JiQzB*OH{acz?RzjG>v6R(mEhgD5Vbyi{zvSCq6M952>DM3=EB z10=qaq8U9(6`kBwZE!F~=lPJn$ zPHP_mapy5*sK%AY6y}y%+WcTM1}#Q0BrUH})BPrs4$U-DT|SmAYUOhff$NOnbW)!^ z(*Z=t{BqmlweW|cNp)qF@vApMo#wS}(N~Xi!(W2Gks*@iVfZS0; zhT$*UlX>G{yfb$=9Sj?xCgiw<+z$TmJ*KDcUc3Xa_DxqVDirGP6bpscjT_j$;Y%|t z5)}g4U;GJ@vAOeuVu{%uwH2<&94-*5H1GM_Q>Txh^a+Zzs*IN7*o zb{jGJ#CH{fqA{j*X z*vJE&H-IPSNswP44`R3$gasJ*CbvUZjf{Z$0}fres&;uQU26hD&D_ay8x>JU64hkr za6Dc$AqddRCQnEwk#&bg{|mB~YY7U5qWFI?DMp?V*&M+13`s1Tcs)Igy4xBJw+;&@ z6%}R+t~AYKZAa}-(yaV;oj}16f$7UMg;tog-m^AnY#8GYuN&n^Vst$Uv~%{UC<<=T zs?`P*fCBvtF~4!&!qSbKB@;?KX@`JU4<7xp(}FJNN->4QGbtZD26}3u9MY^*33dBY zteH~!K^H=HpAEEa_8D@P=(7r2dPdE)hHUl-Pp8p@X@TD9s=ns`Vt<2@5xf(1G#bR@ z=&(CpVU6Nbb?HYsPvWITT*L~^vj7l3LQMJPy6DfM$Fq@X$wkus>AbubAa{MD`TUsE7p z2V#!`Ow!rE%n17*bo4CBw3PdoMWJOA4`O(B9K`{@7%p)m77#z-Ad!Gws}#q*_5CPn!#fcgycgcvsb>ey1A+s|Zkub7=xB zhv5xmN^xY{RzgKmP>glJRMZ+Sk~;>}F`SWUBE8C&MMs18_(@tmaKn2FN()5J-2IX1 z-7Aj`DOnC^IIjG*&G9D4fpyel`TTN&ygBtF!~M|CWLQ`&jmp+WH%nxrvTu*2A1W6k zuMB7)msY}}Ts}5RsIQZbbU~4UZRd66_&{1YUcOJ=TY2)-&=#l50 z$=35IyAI9~ zN;9F`a)Cc(0H1wv*xi+@_}zWXj_YA1%)*Dd&*h%0huY;#=zTIbG&i+2<`${)zGH)+ zw(Zbs*kh&JVUu)~jk5ZuugJniP?LzS^WPWsk8;dLoRXl3aUy*0|_9Z1civ9Pfn%0wRiY3O2#S`44rZTCSPL8vPvl+cC8 zQc?_6?+?z6l!h^jg^^KHL*pygwF_dT^lvh4kgRK0KsyV@bfx%+#2<>bNS?t*@?C&IW%11w=*@X&!4moS9~$RaSqr6BBX=Zim-^2%!8>>Q{4|lBMb$9!hBG}N z=75iSP}cHj!Px$3GNur$Bxt&g927C-&_W@8T$-wzFW?x@AYEG1SjDKf%Z)@9enp%@ zZoFS=-I3k1ja@}W76vFdjk{6hke-cIY<&i>oa_+mgcj!_e5v;K>fU#p>AvF~?}&_K z9x5mb^BFm4D0MkdT?#EZj|(Zu@E_T@XbQXNTDGee(*wVF!uq!QiA%%$=``OdT;#S} z)qRUEV7ESnJMRuMuIu`eflHu}7SBi4R~|hrQ`i2=`MBTYmU1+dvJ1xxZ-TN$UL~w+ zeuNbjT)@xBOpP*>a%yh^R?IZ8?eSC{sHz1ID3Y}do`kk$dK+*AFYk7hHZzt8kDNj* zXl&QYMT4Qbl1%l;@hMSwnC|V9x|5|wut&; zL_gN=ja{e|fFdkO6NsD}GzMQA^a}0LzWveu!m48zQh?`*SFl@D4_#((a5~T9p2k>wyxv*uqC7^nA(Bo-wxfugpPdw zpewiUR!cBL=|Yb}g1htZY}2H?olp4&dQcwjWmQpQ+yE%@^+1dI$I!D9LOL?galiq! z7g|eC0s~X_KkSS;?g-YeV8K%`o%_OTDVNz+QhXY+ppyh;6vd9TD~CvBhf=-R-Ipc@#&nB&=Oue1eb_k)3ZXHqMYFIwQ znpigfdnP#PvbJE>dIOg9Lt}a6wa$Q93U?z|QrG<{?1E7TT9auV9>mvjAs0EdYcPux ze9WrrXnzj2fs|ayW{R9VoA^iq5I8%CMSVHK@%-;^RdS*OdD7LR&dRTOBv^(`t7FLQf8?W zZYdTFdK9^SF!uqQq`nX%cM79?qdm^_#zQO-8v|zb&)l*tJ+n0G`s59?8(b*+nEf_R zWwN41A+~X@fC-}dEfq$Ak=Kqiyw%TCi3$G5)<#@g`jTStLiT2p5n66wz3pB;e!&j) zghP+`Tfolq49?1Za3{&uuCYzgWoObQl~=&pt7weL))(EdBlKfm3(bb7O{%XAK&hU_ zD)Y$Aw)aKFnGdT=ZUo)862ojf=WLD9Bw?-CT}Yr3R15}hNQpd6j646b@1cTE0)O)KQ8`Uc(GagaB7SOHg^J9g|G4P$G0{WCkU0H>qDhD1GrnzX8AlUFty1D>#MWB4S!e_Uc)~a!3!bNPUs5 zH&2gH2yM6^>beF|#$;|Ed!%7>cXiI+om}mjS}CQ+(GE8D{!}v!vNr-tG zH&~=@n`I(gwC#EQWhk*rqfEQ71wOIPthu=L1w-S_tEO_s_YcB3o1|T{%WwO=QMTArx815t4 zw%cd84TG#2c}*RbI^?XS5L3_Omt-oUnKV&mLdV#F^I3aj*JD7tSa8`q#{331awIfp z;n~(=u%hIgW3ulh@4U@8WKySa=Y}2$) z@c-1j;qzuTtjw`Xf^9jCDy02hE^L=rsbiga7>$ZuZ5TZo+!AuXCTk#!X%v~4bEaaK zLNo>!!UsXxnqdz0%HEu6!&y~Qf4TCwik!7zoY^M>b^J5B#{64^4XczxWR2PiN$$-~ zfqR8-@^N^nd+dR6dVaoa;J3k_D27~YURp{~VC&uAjyhM;%2}L=j6E@k*v!BlkUL3h z-g$Ij<8B;>HNiLMAeaI3bd?(smf_>_2Rf@WFDqc!5FkJ7b=ZY+F$Kk9Tw3h_YmK5uM#d`YH(>U=n9~|Fy4-12}GX>~V)&#QGOpKRyn& zXRaDMhZ9rK9$pWIA83ytf$?Rk!qsDX*^J*8-bs}ePC}@pG{L6RbZ5#PMjW6E<)1di zgnHFv30-l}P@fU+TMtz>C>!pQgi-@ZsMj^dWH0~K#+^4c5lu??163oh;vUvC&FKf_ zUl=4%UYuY7*5P)9Ji(mb%k;gzdX&v}sjkD_$savDzqP@GHs(Ut+`gnFd-{VpFveqj zNA3n(KQYYM@y3HK0^Hp%?j|x;kZmL(Ng%#vd@_qnNvJVEZ^9Qkj6pqpj$@+u;aIa} zJ4WHK&dXHIvM=c0(;{T=mLTfj54Yxwd)aB!oluE}pne1X@sV@u@g+Ga1%5ESD-Y5~ zIJ52!j|2#}fWX1gX`72Pojotf5&^LD0o~@>W?RAFqw@t<;+aPfb?X%M`x~)sn$Whu zbYI_irdwiupXT@e7_sF%77G!&+b;n9t=)S%ye~|tk>U(Ku_Va|7ZLW02HL0zN8e6v zzV*+)Wkzpbd9)f_uxhNDs(*cOVl`uO|puI)X?g^w&n;RpCT=AtHdNqy31?=mR zg+oX3_6s4|F2le@b)3ou0(nl6l_e5wCDh~CO4uG~fvvSXD?z5M!;OL<7FkeQ(ogzGfXm#gS?|M(0xmrVy5tP0km}KdfW)6%VbQF z&FW1;n9VfgWslON3eqL6S4??ezUNz7j6WR(Ryl1NG6*A3Yb?%d*(d=xdg$r>5k*WL zFfIa5ye-C`{tlk=eS2(N95W-d>YHH9@rRvwgVuSiMa2G!g1kx^AU^kQlGdpT#O6v# zneEP?B1j`OEsYceEe3Vc?mhW@p!I(8lwt`NvsnY{+pi30?{i$AL~@3Xq69wFwt7ie zSM|w$iwAQxrKSO#y!UD6kVP$I&&fo`^*V~R;FgAF`8k9$*!=~Qs{TPz^Mxd)MidIA z9v75XWi_ji+zDMpVXbdCT_oS~)LvQ(US$WL(6pOG8G7T|YJf`sHW*fCWxw|HO-+@E z$8UQo>j6t%$f!#Opfe|lN^PGK$cgtY>&`8-vUj*=OYR?MWdUA1$IE`VKqO271~Jv2$VEH9+*`D{srT}LSw3-0;hwV539ahZ+1 z*J@Mq(f(5L4((rU?9wtwI&->Gkb%0bK#Gtkf#BSY-gmvh6bx38aZw)GTEgR$*V09`e zJb*p#*4~|Kz!Tq^#H8g(c#Z~ZxSbIM<~gFLXmBFCZdcbd zT@q!I#K5xj^LO<~3A2YRMD+X@@^dQA&-A$>ACqcZT(t%Tkeb^gVc(=)bBLaJegHoD{XUHM_sDw2YmMy_~9m@;UI2%P8Q*?niYl8Jyj`@9`p&RQM2n=*U6S32n; z9ITOGG^zSca=R<*q#484^QK5~9=5o|uzVIE@(pt3MnpiBqF>G9zL9vTVB{jCA;96x zC@xZUZzN>^$~qouUu19J(`mJu1YMVwz`%~^yh+SAhIub@IuEC-yj+{Qk=Al;fV1n< z(EOy@uz^;c_LRU<^US+3JYo96Qoi6o3G2 zB*~*+0{yyzdxTbjr^I7#tSBQ-1==s++-pYtz%Dfc?&PjS#bZN_^yfQAGOz zyyJs5u2E-|F3n0-UM9WG zbG2V0u_urg(u&9LNxXciWBkjCHIU_fk!3Wnx_RRq154y zv;whXbR;z>$6Nj3Ii;}qQj5#eGi1=ZKx0S(MJhZnrK+HVT1uaNEtQ44&o{XbSxNiR zREhm|+96Gz+p({T$roy<>C`Ff+`*H63xAPPTL>7v_cH|O1>1@7`4_-7D z`BXV79u9U$p@TL)Jk`ZbrqG$DoR>tc1Y;2o)kHp%>pudukn-zGVq)$%W9^nu!`)7l zLBu9NLT1hZ>yZ9_eCx@>)Zk=xIO)e$%In=wiQpk$GMb;w&gB9pRZD}2SiZKDVHO(E zVx~2NlODA>H=6AjS<*gkJk5r6{mdAC?SRMj!mC<$HLyE|oEl`t4y!aeyF7)PeebFs zHnSZGfAnbSWe`k!-{Uab;W62|<6F`8xB=4v&~@DnT>lbEPR7by|D0XXNN>Y(c|khK zEN=2nQGT;FeOZ4L!6T5BbQPV+y24 zC+`6L1ck=Y8JTfTpnOvSL*>n>P6>@oG_#*cy<;49pnYX?UFnU=F$0lYxkQ8}*w4sZ zZ1!pw`%)I-RQ!xyha9PlFfvo|^=e*z66MObapI#=W3N6xj^=5W9G#THqk7k?1w+(^ za9LkigX0XnALT&xDJPy#5)vDYG{FPt?XKACq$O}yyPUrrn2(w)L;ry^kwiGg)?6&f zU?$U_s=db2^gze4orz~E=_sNqa3;R^Js!WIJ#n0Hm?jA&1Y`hf!=hFT} zHX3s+XVh+3o{0H&PiGt-Y%U|U|KQkaQQ~TnHl!+*Ggk<%5zyD5>|(mrOeQ=}4=6H0 z&V3$)GLCAc9Fke9_nBR6(K%LP@4$4kQ!2TA=bcK2`}eY7Uox(KHFtk|rkwOfRlYUaj=^D_azkLLE5IT~}YPusn(khiW>gD5O?XoPGzk=Qgkl;HNTcRDjG8YK|@q%t*eErg={Acb?gw$F0{tub>j=4Uj=XsJ9(rUY?d&En$%$dRK(U_LC}ONwZlh9d6Uj zF6(Db{k)TLpMCbF$83i^aQCd zqwUgsc24$^HYD%mF?%4wd>(z}d^Tw7E zT&7~$Ju2I`$*$>9FGp+D5`u)=ZMNsTjz~=h$^im4+pmV1%ZmykvA<=AY7^YEDEW_J z?bB)R1Co4@P$-6Lji}fcZIR5)zrJ`S#Pym;OOQw1I^@gl4S;80l*9sk&IiR|UZ{KG zBEYi39K_vg%ddkkO?V`Vbm2jIWrv&H-J0%iU>F+k;{ff(wHf4kXU0GgZ`tq_!rAc^ zNKr&MxkDl?nScFlfn~-uL2zp*OotN=|@`&U_2lsz5a2kKtu`K-lEGs_&*;;bUM%uzP!Lh(6}gm6I*e!-1AmBmO|i;XtA5C+_Y99In(1=0n|cH(AXUbO;HE1 zpjVi4!cML@175dG8&}KduYG?y5!xTld{=19Dc&e+&|H2j^nnwLZ+_hGrB8AzFJ^qZ zY9-(%FdnsHSy_A7lP_wp`qf>i%<|0)o1zOm{w+}wzGLm|5_j6~p2^doS*#EpGLd@s z=8&5W5y&p&{;5l-;7v^3e0GvefEhJKd$qCRN{#Lk>o=xqAHHriT;6LRN>D%4m!>Bb z_yzq*Jc`|35b&{<3=Z4%RWFvS>`&u5odx&W*vUO~KS5mXRL45nZ`^BvgAaPp`qSfe zIrZJ& zr7{1Q=hwSc%U=Zh0tv98X_dQ;hZeo`Gewa$iugtqw)*=&x`kndO;U_*TzbkMK8+%( zR>xSFCr>u`Q_-Ay^R)Dr2G_0`M3G8HpkiBwZ>=sYKj`1Ms^x3y;GFs$I+%vs^hZwPboES24!dJf>_%$ST3CZe}DvGjCY&KCtJ z^D7GKZcpaO;@1Ng3!mATMeq3pPsDF;P>Y_A+}WGqo|iMfQyoQ=lwkHrlawLg z>sABnUok;1T!;X9BlR_BnD3PB;tVxIEbihwAciE za3qd;^YaQGxSNtz{@&J!$ym&!?B+GSkvInNuGo9-0U6}pYpenqm475!j&>!-1L@f5@Io}pn{ za#Tl${0}d5^6`xCvnv)=Em8(ANW*ZfA5}BG5^@um<&Du{r-E%@rQ5TgkAYw#`)ocv{znNByKE6a+Bva z*Z13Jy`P?84jj#%`Nrw8{_+v3krX%`70v8+Z=Lo&^NYA@bG+@8S ze&2gC@wLt$>{w5FII_f*G5KGD*>#Ky&sl_a?9d-;I3CH@4) zC;)7zRbOXi7-s&MXn67j8pU-8;UI|FG=8(Zg}~z ze}2VYMU?4)r_3t12|N0G_?2Skvp|r!7l>qSX O##MvgK3=hT@P7bF(M-+& literal 0 HcmV?d00001 diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/Waterfall/images/example3.png b/superset-frontend/plugins/plugin-chart-echarts/src/Waterfall/images/example3.png new file mode 100644 index 0000000000000000000000000000000000000000..6e3248b03eef531e294d59bb4463265f0233e642 GIT binary patch literal 57935 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 literal 0 HcmV?d00001 diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/Waterfall/images/thumbnail.png b/superset-frontend/plugins/plugin-chart-echarts/src/Waterfall/images/thumbnail.png index 91ef20f515f921cf210256da932fdf1cea1daa19..95a79df5907b81a3d03870c864b2150e2887273e 100644 GIT binary patch literal 54196 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 H^vwSOxQHPN literal 77020 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 diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/Waterfall/index.ts b/superset-frontend/plugins/plugin-chart-echarts/src/Waterfall/index.ts index 5242434f94c1f..c0d7a11067420 100644 --- a/superset-frontend/plugins/plugin-chart-echarts/src/Waterfall/index.ts +++ b/superset-frontend/plugins/plugin-chart-echarts/src/Waterfall/index.ts @@ -22,6 +22,9 @@ import buildQuery from './buildQuery'; import controlPanel from './controlPanel'; import transformProps from './transformProps'; import thumbnail from './images/thumbnail.png'; +import example1 from './images/example1.png'; +import example2 from './images/example2.png'; +import example3 from './images/example3.png'; import { EchartsWaterfallChartProps, EchartsWaterfallFormData } from './types'; export default class EchartsWaterfallChartPlugin extends ChartPlugin< @@ -44,14 +47,22 @@ export default class EchartsWaterfallChartPlugin extends ChartPlugin< controlPanel, loadChart: () => import('./EchartsWaterfall'), metadata: new ChartMetadata({ - behaviors: [Behavior.INTERACTIVE_CHART, Behavior.DRILL_TO_DETAIL], + behaviors: [Behavior.INTERACTIVE_CHART], credits: ['https://echarts.apache.org'], category: t('Evolution'), - description: '', - exampleGallery: [], + description: t( + `A waterfall chart is a form of data visualization that helps in understanding + the cumulative effect of sequentially introduced positive or negative values. + These intermediate values can either be time based or category based.`, + ), + exampleGallery: [ + { url: example1 }, + { url: example2 }, + { url: example3 }, + ], name: t('Waterfall Chart'), + tags: [t('Categorical'), t('Comparison'), t('ECharts')], thumbnail, - tags: [], }), transformProps, }); diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/Waterfall/transformProps.ts b/superset-frontend/plugins/plugin-chart-echarts/src/Waterfall/transformProps.ts index 8ea8f688264bf..7b5faed1b20a5 100644 --- a/superset-frontend/plugins/plugin-chart-echarts/src/Waterfall/transformProps.ts +++ b/superset-frontend/plugins/plugin-chart-echarts/src/Waterfall/transformProps.ts @@ -17,51 +17,68 @@ * under the License. */ import { - CategoricalColorNamespace, + CurrencyFormatter, DataRecord, - getColumnLabel, + ensureIsArray, + GenericDataType, getMetricLabel, getNumberFormatter, + getTimeFormatter, + isAdhocColumn, NumberFormatter, + rgbToHex, SupersetTheme, } from '@superset-ui/core'; import { EChartsOption, BarSeriesOption } from 'echarts'; -import { CallbackDataParams } from 'echarts/types/src/util/types'; import { - EchartsWaterfallFormData, EchartsWaterfallChartProps, ISeriesData, WaterfallChartTransformedProps, + ICallbackDataParams, } from './types'; import { getDefaultTooltip } from '../utils/tooltip'; import { defaultGrid, defaultYAxis } from '../defaults'; import { ASSIST_MARK, LEGEND, TOKEN, TOTAL_MARK } from './constants'; -import { extractGroupbyLabel, getColtypesMapping } from '../utils/series'; +import { getColtypesMapping } from '../utils/series'; import { Refs } from '../types'; +import { NULL_STRING } from '../constants'; function formatTooltip({ theme, params, - numberFormatter, - richTooltip, + breakdownName, + defaultFormatter, + xAxisFormatter, }: { theme: SupersetTheme; - params: any; - numberFormatter: NumberFormatter; - richTooltip: boolean; + params: ICallbackDataParams[]; + breakdownName?: string; + defaultFormatter: NumberFormatter | CurrencyFormatter; + xAxisFormatter: (value: number | string, index: number) => string; }) { - const htmlMaker = (params: any) => - ` -
${params.name}
+ const series = params.find( + param => param.seriesName !== ASSIST_MARK && param.data.value !== TOKEN, + ); + + // We may have no matching series depending on the legend state + if (!series) { + return ''; + } + + const isTotal = series?.seriesName === LEGEND.TOTAL; + if (!series) { + return NULL_STRING; + } + + const createRow = (name: string, value: string) => `
- ${params.marker} - ${params.seriesName}: + ${name}: - ${numberFormatter(params.data)} + ${value}
`; - if (richTooltip) { - const [, increaseParams, decreaseParams, totalParams] = params; - if (increaseParams.data !== TOKEN || increaseParams.data === null) { - return htmlMaker(increaseParams); - } - if (decreaseParams.data !== TOKEN) { - return htmlMaker(decreaseParams); - } - if (totalParams.data !== TOKEN) { - return htmlMaker(totalParams); - } - } else if (params.seriesName !== ASSIST_MARK) { - return htmlMaker(params); + let result = ''; + if (!isTotal || breakdownName) { + result = xAxisFormatter(series.name, series.dataIndex); } - return ''; + if (!isTotal) { + result += createRow( + series.seriesName!, + defaultFormatter(series.data.originalValue), + ); + } + result += createRow(TOTAL_MARK, defaultFormatter(series.data.totalSum)); + return result; } function transformer({ data, - breakdown, - series, + xAxis, metric, + breakdown, }: { data: DataRecord[]; - breakdown: string; - series: string; + xAxis: string; metric: string; + breakdown?: string; }) { // Group by series (temporary map) const groupedData = data.reduce((acc, cur) => { - const categoryLabel = cur[series] as string; + const categoryLabel = cur[xAxis] as string; const categoryData = acc.get(categoryLabel) || []; categoryData.push(cur); acc.set(categoryLabel, categoryData); @@ -114,7 +128,7 @@ function transformer({ const transformedData: DataRecord[] = []; - if (breakdown?.length) { + if (breakdown) { groupedData.forEach((value, key) => { const tempValue = value; // Calc total per period @@ -124,7 +138,7 @@ function transformer({ ); // Push total per period to the end of period values array tempValue.push({ - [series]: key, + [xAxis]: key, [breakdown]: TOTAL_MARK, [metric]: sum, }); @@ -138,13 +152,13 @@ function transformer({ 0, ); transformedData.push({ - [series]: key, + [xAxis]: key, [metric]: sum, }); total += sum; }); transformedData.push({ - [series]: TOTAL_MARK, + [xAxis]: TOTAL_MARK, [metric]: total, }); } @@ -159,50 +173,53 @@ export default function transformProps( width, height, formData, + legendState, queriesData, hooks, - filterState, theme, inContextMenu, } = chartProps; const refs: Refs = {}; const { data = [] } = queriesData[0]; const coltypeMapping = getColtypesMapping(queriesData[0]); - const { setDataMask = () => {}, onContextMenu } = hooks; + const { setDataMask = () => {}, onContextMenu, onLegendStateChanged } = hooks; const { - colorScheme, + currencyFormat, + groupby, + increaseColor, + decreaseColor, + totalColor, metric = '', - columns, - series, + xAxis, xTicksLayout, + xAxisTimeFormat, showLegend, yAxisLabel, xAxisLabel, yAxisFormat, - richTooltip, showValue, - sliceId, - } = formData as EchartsWaterfallFormData; - const colorFn = CategoricalColorNamespace.getScale(colorScheme as string); - const numberFormatter = getNumberFormatter(yAxisFormat); - const formatter = (params: CallbackDataParams) => { - const { value, seriesName } = params; - let formattedValue = numberFormatter(value as number); - if (seriesName === LEGEND.DECREASE) { - formattedValue = `-${formattedValue}`; - } - return formattedValue; + } = formData; + const defaultFormatter = currencyFormat?.symbol + ? new CurrencyFormatter({ d3Format: yAxisFormat, currency: currencyFormat }) + : getNumberFormatter(yAxisFormat); + + const seriesformatter = (params: ICallbackDataParams) => { + const { data } = params; + const { originalValue } = data; + return defaultFormatter(originalValue as number); }; - const breakdown = columns?.length ? columns : ''; - const groupby = breakdown ? [series, breakdown] : [series]; + const groupbyArray = ensureIsArray(groupby); + const breakdownColumn = groupbyArray.length ? groupbyArray[0] : undefined; + const breakdownName = isAdhocColumn(breakdownColumn) + ? breakdownColumn.label! + : breakdownColumn; + const xAxisName = isAdhocColumn(xAxis) ? xAxis.label! : xAxis; const metricLabel = getMetricLabel(metric); - const columnLabels = groupby.map(getColumnLabel); - const columnsLabelMap = new Map(); const transformedData = transformer({ data, - breakdown, - series, + breakdown: breakdownName, + xAxis: xAxisName, metric: metricLabel, }); @@ -211,48 +228,128 @@ export default function transformProps( const decreaseData: ISeriesData[] = []; const totalData: ISeriesData[] = []; + let previousTotal = 0; + transformedData.forEach((datum, index, self) => { const totalSum = self.slice(0, index + 1).reduce((prev, cur, i) => { - if (breakdown?.length) { - if (cur[breakdown] !== TOTAL_MARK || i === 0) { + if (breakdownName) { + if (cur[breakdownName] !== TOTAL_MARK || i === 0) { return prev + ((cur[metricLabel] as number) ?? 0); } - } else if (cur[series] !== TOTAL_MARK) { + } else if (cur[xAxisName] !== TOTAL_MARK) { return prev + ((cur[metricLabel] as number) ?? 0); } return prev; }, 0); - const joinedName = extractGroupbyLabel({ - datum, - groupby: columnLabels, - coltypeMapping, - }); - columnsLabelMap.set( - joinedName, - columnLabels.map(col => datum[col] as string), - ); - const value = datum[metricLabel] as number; - const isNegative = value < 0; - if (datum[breakdown] === TOTAL_MARK || datum[series] === TOTAL_MARK) { - increaseData.push(TOKEN); - decreaseData.push(TOKEN); - assistData.push(TOKEN); - totalData.push(totalSum); - } else if (isNegative) { - increaseData.push(TOKEN); - decreaseData.push(Math.abs(value)); - assistData.push(totalSum); - totalData.push(TOKEN); + const isTotal = + (breakdownName && datum[breakdownName] === TOTAL_MARK) || + datum[xAxisName] === TOTAL_MARK; + + const originalValue = datum[metricLabel] as number; + let value = originalValue; + const oppositeSigns = Math.sign(previousTotal) !== Math.sign(totalSum); + if (oppositeSigns) { + value = Math.sign(value) * (Math.abs(value) - Math.abs(previousTotal)); + } + + if (isTotal) { + increaseData.push({ value: TOKEN }); + decreaseData.push({ value: TOKEN }); + totalData.push({ + value: totalSum, + originalValue: totalSum, + totalSum, + }); + } else if (value < 0) { + increaseData.push({ value: TOKEN }); + decreaseData.push({ + value: totalSum < 0 ? value : -value, + originalValue, + totalSum, + }); + totalData.push({ value: TOKEN }); } else { - increaseData.push(value); - decreaseData.push(TOKEN); - assistData.push(totalSum - value); - totalData.push(TOKEN); + increaseData.push({ + value: totalSum > 0 ? value : -value, + originalValue, + totalSum, + }); + decreaseData.push({ value: TOKEN }); + totalData.push({ value: TOKEN }); } + + const color = oppositeSigns + ? value > 0 + ? rgbToHex(increaseColor.r, increaseColor.g, increaseColor.b) + : rgbToHex(decreaseColor.r, decreaseColor.g, decreaseColor.b) + : 'transparent'; + + let opacity = 1; + if (legendState?.[LEGEND.INCREASE] === false && value > 0) { + opacity = 0; + } else if (legendState?.[LEGEND.DECREASE] === false && value < 0) { + opacity = 0; + } + + if (isTotal) { + assistData.push({ value: TOKEN }); + } else if (index === 0) { + assistData.push({ + value: 0, + }); + } else if (oppositeSigns || Math.abs(totalSum) > Math.abs(previousTotal)) { + assistData.push({ + value: previousTotal, + itemStyle: { color, opacity }, + }); + } else { + assistData.push({ + value: totalSum, + itemStyle: { color, opacity }, + }); + } + + previousTotal = totalSum; + }); + + const xAxisColumns: string[] = []; + const xAxisData = transformedData.map(row => { + let column = xAxisName; + let value = row[xAxisName]; + if (breakdownName && row[breakdownName] !== TOTAL_MARK) { + column = breakdownName; + value = row[breakdownName]; + } + if (!value) { + value = NULL_STRING; + } + if (typeof value !== 'string' && typeof value !== 'number') { + value = String(value); + } + xAxisColumns.push(column); + return value; }); - let axisLabel; + const xAxisFormatter = (value: number | string, index: number) => { + if (value === TOTAL_MARK) { + return TOTAL_MARK; + } + if (coltypeMapping[xAxisColumns[index]] === GenericDataType.TEMPORAL) { + if (typeof value === 'string') { + return getTimeFormatter(xAxisTimeFormat)(Number.parseInt(value, 10)); + } + return getTimeFormatter(xAxisTimeFormat)(value); + } + return String(value); + }; + + let axisLabel: { + rotate?: number; + hideOverlap?: boolean; + show?: boolean; + formatter?: typeof xAxisFormatter; + }; if (xTicksLayout === '45°') { axisLabel = { rotate: -45 }; } else if (xTicksLayout === '90°') { @@ -264,75 +361,59 @@ export default function transformProps( } else { axisLabel = { show: true }; } + axisLabel.formatter = xAxisFormatter; + axisLabel.hideOverlap = false; - let xAxisData: string[] = []; - if (breakdown?.length) { - xAxisData = transformedData.map(row => { - if (row[breakdown] === TOTAL_MARK) { - return row[series] as string; - } - return row[breakdown] as string; - }); - } else { - xAxisData = transformedData.map(row => row[series] as string); - } + const seriesProps: Pick = { + type: 'bar', + stack: 'stack', + emphasis: { + disabled: true, + }, + }; const barSeries: BarSeriesOption[] = [ { + ...seriesProps, name: ASSIST_MARK, - type: 'bar', - stack: 'stack', - itemStyle: { - borderColor: 'transparent', - color: 'transparent', - }, - emphasis: { - itemStyle: { - borderColor: 'transparent', - color: 'transparent', - }, - }, data: assistData, }, { + ...seriesProps, name: LEGEND.INCREASE, - type: 'bar', - stack: 'stack', label: { show: showValue, position: 'top', - formatter, + formatter: seriesformatter, }, itemStyle: { - color: colorFn(LEGEND.INCREASE, sliceId), + color: rgbToHex(increaseColor.r, increaseColor.g, increaseColor.b), }, data: increaseData, }, { + ...seriesProps, name: LEGEND.DECREASE, - type: 'bar', - stack: 'stack', label: { show: showValue, position: 'bottom', - formatter, + formatter: seriesformatter, }, itemStyle: { - color: colorFn(LEGEND.DECREASE, sliceId), + color: rgbToHex(decreaseColor.r, decreaseColor.g, decreaseColor.b), }, data: decreaseData, }, { + ...seriesProps, name: LEGEND.TOTAL, - type: 'bar', - stack: 'stack', label: { show: showValue, position: 'top', - formatter, + formatter: seriesformatter, }, itemStyle: { - color: colorFn(LEGEND.TOTAL, sliceId), + color: rgbToHex(totalColor.r, totalColor.g, totalColor.b), }, data: totalData, }, @@ -348,11 +429,12 @@ export default function transformProps( }, legend: { show: showLegend, + selected: legendState, data: [LEGEND.INCREASE, LEGEND.DECREASE, LEGEND.TOTAL], }, xAxis: { - type: 'category', data: xAxisData, + type: 'category', name: xAxisLabel, nameTextStyle: { padding: [theme.gridUnit * 4, 0, 0, 0], @@ -368,19 +450,20 @@ export default function transformProps( }, nameLocation: 'middle', name: yAxisLabel, - axisLabel: { formatter: numberFormatter }, + axisLabel: { formatter: defaultFormatter }, }, tooltip: { ...getDefaultTooltip(refs), appendToBody: true, - trigger: richTooltip ? 'axis' : 'item', + trigger: 'axis', show: !inContextMenu, formatter: (params: any) => formatTooltip({ theme, params, - numberFormatter, - richTooltip, + breakdownName, + defaultFormatter, + xAxisFormatter, }), }, series: barSeries, @@ -393,9 +476,7 @@ export default function transformProps( height, echartOptions, setDataMask, - labelMap: Object.fromEntries(columnsLabelMap), - groupby, - selectedValues: filterState.selectedValues || [], onContextMenu, + onLegendStateChanged, }; } diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/Waterfall/types.ts b/superset-frontend/plugins/plugin-chart-echarts/src/Waterfall/types.ts index 9821cf3146392..4386501199c8b 100644 --- a/superset-frontend/plugins/plugin-chart-echarts/src/Waterfall/types.ts +++ b/superset-frontend/plugins/plugin-chart-echarts/src/Waterfall/types.ts @@ -19,16 +19,14 @@ import { ChartDataResponseResult, ChartProps, + QueryFormColumn, QueryFormData, QueryFormMetric, + RgbaColor, } from '@superset-ui/core'; import { BarDataItemOption } from 'echarts/types/src/chart/bar/BarSeries'; -import { OptionDataValue } from 'echarts/types/src/util/types'; -import { - BaseTransformedProps, - CrossFilterTransformedProps, - LegendFormData, -} from '../types'; +import { CallbackDataParams } from 'echarts/types/src/util/types'; +import { BaseTransformedProps, LegendFormData } from '../types'; export type WaterfallFormXTicksLayout = | '45°' @@ -37,20 +35,28 @@ export type WaterfallFormXTicksLayout = | 'flat' | 'staggered'; -export type ISeriesData = - | BarDataItemOption - | OptionDataValue - | OptionDataValue[]; +export type ISeriesData = { + originalValue?: number; + totalSum?: number; +} & BarDataItemOption; + +export type ICallbackDataParams = CallbackDataParams & { + axisValueLabel: string; + data: ISeriesData; +}; export type EchartsWaterfallFormData = QueryFormData & LegendFormData & { + increaseColor: RgbaColor; + decreaseColor: RgbaColor; + totalColor: RgbaColor; metric: QueryFormMetric; - yAxisLabel: string; + xAxis: QueryFormColumn; xAxisLabel: string; - yAxisFormat: string; + xAxisTimeFormat?: string; xTicksLayout?: WaterfallFormXTicksLayout; - series: string; - columns?: string; + yAxisLabel: string; + yAxisFormat: string; }; export const DEFAULT_FORM_DATA: Partial = { @@ -63,4 +69,4 @@ export interface EchartsWaterfallChartProps extends ChartProps { } export type WaterfallChartTransformedProps = - BaseTransformedProps & CrossFilterTransformedProps; + BaseTransformedProps; diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/utils/getYAxisFormatter.ts b/superset-frontend/plugins/plugin-chart-echarts/src/utils/formatters.ts similarity index 74% rename from superset-frontend/plugins/plugin-chart-echarts/src/utils/getYAxisFormatter.ts rename to superset-frontend/plugins/plugin-chart-echarts/src/utils/formatters.ts index 00843c16126f0..5416fa1577635 100644 --- a/superset-frontend/plugins/plugin-chart-echarts/src/utils/getYAxisFormatter.ts +++ b/superset-frontend/plugins/plugin-chart-echarts/src/utils/formatters.ts @@ -21,8 +21,12 @@ import { CurrencyFormatter, ensureIsArray, getNumberFormatter, + getTimeFormatter, isSavedMetric, QueryFormMetric, + smartDateDetailedFormatter, + smartDateFormatter, + TimeFormatter, ValueFormatter, } from '@superset-ui/core'; @@ -51,3 +55,27 @@ export const getYAxisFormatter = ( } return defaultFormatter ?? getNumberFormatter(); }; + +export function getTooltipTimeFormatter( + format?: string, +): TimeFormatter | StringConstructor { + if (format === smartDateFormatter.id) { + return smartDateDetailedFormatter; + } + if (format) { + return getTimeFormatter(format); + } + return String; +} + +export function getXAxisFormatter( + format?: string, +): TimeFormatter | StringConstructor | undefined { + if (format === smartDateFormatter.id || !format) { + return undefined; + } + if (format) { + return getTimeFormatter(format); + } + return String; +} diff --git a/superset-frontend/plugins/plugin-chart-echarts/test/Waterfall/buildQuery.test.ts b/superset-frontend/plugins/plugin-chart-echarts/test/Waterfall/buildQuery.test.ts index 9c5d28376ba28..0eb72be3ef998 100644 --- a/superset-frontend/plugins/plugin-chart-echarts/test/Waterfall/buildQuery.test.ts +++ b/superset-frontend/plugins/plugin-chart-echarts/test/Waterfall/buildQuery.test.ts @@ -24,15 +24,18 @@ describe('Waterfall buildQuery', () => { datasource: '5__table', granularity_sqla: 'ds', metric: 'foo', - series: 'bar', - columns: 'baz', - viz_type: 'my_chart', + x_axis: 'bar', + groupby: ['baz'], + viz_type: 'waterfall', }; it('should build query fields from form data', () => { const queryContext = buildQuery(formData as unknown as SqlaFormData); const [query] = queryContext.queries; expect(query.metrics).toEqual(['foo']); - expect(query.columns).toEqual(['bar', 'baz']); + expect(query.columns?.[0]).toEqual( + expect.objectContaining({ sqlExpression: 'bar' }), + ); + expect(query.columns?.[1]).toEqual('baz'); }); }); diff --git a/superset-frontend/plugins/plugin-chart-echarts/test/Waterfall/transformProps.test.ts b/superset-frontend/plugins/plugin-chart-echarts/test/Waterfall/transformProps.test.ts index c221b9303358a..a4abec6d49621 100644 --- a/superset-frontend/plugins/plugin-chart-echarts/test/Waterfall/transformProps.test.ts +++ b/superset-frontend/plugins/plugin-chart-echarts/test/Waterfall/transformProps.test.ts @@ -17,27 +17,41 @@ * under the License. */ import { ChartProps, supersetTheme } from '@superset-ui/core'; -import { EchartsWaterfallChartProps } from '../../src/Waterfall/types'; +import { + EchartsWaterfallChartProps, + WaterfallChartTransformedProps, +} from '../../src/Waterfall/types'; import transformProps from '../../src/Waterfall/transformProps'; +const extractSeries = (props: WaterfallChartTransformedProps) => { + const { echartOptions } = props; + const { series } = echartOptions as unknown as { + series: [{ data: [{ value: number }] }]; + }; + return series.map(item => item.data).map(item => item.map(i => i.value)); +}; + describe('Waterfall tranformProps', () => { const data = [ - { foo: 'Sylvester', bar: '2019', sum: 10 }, - { foo: 'Arnold', bar: '2019', sum: 3 }, - { foo: 'Sylvester', bar: '2020', sum: -10 }, - { foo: 'Arnold', bar: '2020', sum: 5 }, + { year: '2019', name: 'Sylvester', sum: 10 }, + { year: '2019', name: 'Arnold', sum: 3 }, + { year: '2020', name: 'Sylvester', sum: -10 }, + { year: '2020', name: 'Arnold', sum: 5 }, ]; + const formData = { + colorScheme: 'bnbColors', + datasource: '3__table', + x_axis: 'year', + metric: 'sum', + increaseColor: { r: 0, b: 0, g: 0 }, + decreaseColor: { r: 0, b: 0, g: 0 }, + totalColor: { r: 0, b: 0, g: 0 }, + }; + it('should tranform chart props for viz when breakdown not exist', () => { - const formData1 = { - colorScheme: 'bnbColors', - datasource: '3__table', - granularity_sqla: 'ds', - metric: 'sum', - series: 'bar', - }; const chartProps = new ChartProps({ - formData: formData1, + formData: { ...formData, series: 'bar' }, width: 800, height: 600, queriesData: [ @@ -47,43 +61,20 @@ describe('Waterfall tranformProps', () => { ], theme: supersetTheme, }); - expect( - transformProps(chartProps as unknown as EchartsWaterfallChartProps), - ).toEqual( - expect.objectContaining({ - width: 800, - height: 600, - echartOptions: expect.objectContaining({ - series: [ - expect.objectContaining({ - data: [0, 8, '-'], - }), - expect.objectContaining({ - data: [13, '-', '-'], - }), - expect.objectContaining({ - data: ['-', 5, '-'], - }), - expect.objectContaining({ - data: ['-', '-', 8], - }), - ], - }), - }), + const transformedProps = transformProps( + chartProps as unknown as EchartsWaterfallChartProps, ); + expect(extractSeries(transformedProps)).toEqual([ + [0, 8, '-'], + [13, '-', '-'], + ['-', 5, '-'], + ['-', '-', 8], + ]); }); it('should tranform chart props for viz when breakdown exist', () => { - const formData1 = { - colorScheme: 'bnbColors', - datasource: '3__table', - granularity_sqla: 'ds', - metric: 'sum', - series: 'bar', - columns: 'foo', - }; const chartProps = new ChartProps({ - formData: formData1, + formData: { ...formData, groupby: 'name' }, width: 800, height: 600, queriesData: [ @@ -93,29 +84,14 @@ describe('Waterfall tranformProps', () => { ], theme: supersetTheme, }); - expect( - transformProps(chartProps as unknown as EchartsWaterfallChartProps), - ).toEqual( - expect.objectContaining({ - width: 800, - height: 600, - echartOptions: expect.objectContaining({ - series: [ - expect.objectContaining({ - data: [0, 10, '-', 3, 3, '-'], - }), - expect.objectContaining({ - data: [10, 3, '-', '-', 5, '-'], - }), - expect.objectContaining({ - data: ['-', '-', '-', 10, '-', '-'], - }), - expect.objectContaining({ - data: ['-', '-', 13, '-', '-', 8], - }), - ], - }), - }), + const transformedProps = transformProps( + chartProps as unknown as EchartsWaterfallChartProps, ); + expect(extractSeries(transformedProps)).toEqual([ + [0, 10, '-', 3, 3, '-'], + [10, 3, '-', '-', 5, '-'], + ['-', '-', '-', 10, '-', '-'], + ['-', '-', 13, '-', '-', 8], + ]); }); }); diff --git a/superset-frontend/src/components/Collapse/Collapse.test.tsx b/superset-frontend/src/components/Collapse/Collapse.test.tsx index 99cc62302779e..75e004604a973 100644 --- a/superset-frontend/src/components/Collapse/Collapse.test.tsx +++ b/superset-frontend/src/components/Collapse/Collapse.test.tsx @@ -19,8 +19,7 @@ import React from 'react'; import { render, screen } from 'spec/helpers/testing-library'; import userEvent from '@testing-library/user-event'; -import { supersetTheme } from '@superset-ui/core'; -import { hexToRgb } from 'src/utils/colorUtils'; +import { supersetTheme, hexToRgb } from '@superset-ui/core'; import Collapse, { CollapseProps } from '.'; function renderCollapse(props?: CollapseProps) { diff --git a/superset-frontend/src/components/MetadataBar/MetadataBar.test.tsx b/superset-frontend/src/components/MetadataBar/MetadataBar.test.tsx index 549b917ec1386..7a7f7430f23dc 100644 --- a/superset-frontend/src/components/MetadataBar/MetadataBar.test.tsx +++ b/superset-frontend/src/components/MetadataBar/MetadataBar.test.tsx @@ -20,8 +20,7 @@ import React from 'react'; import { render, screen, within } from 'spec/helpers/testing-library'; import userEvent from '@testing-library/user-event'; import * as resizeDetector from 'react-resize-detector'; -import { supersetTheme } from '@superset-ui/core'; -import { hexToRgb } from 'src/utils/colorUtils'; +import { supersetTheme, hexToRgb } from '@superset-ui/core'; import MetadataBar, { MIN_NUMBER_ITEMS, MAX_NUMBER_ITEMS, diff --git a/superset-frontend/src/explore/components/controls/VizTypeControl/VizTypeGallery.tsx b/superset-frontend/src/explore/components/controls/VizTypeControl/VizTypeGallery.tsx index c194d2fae1bc5..2563dba01cb7a 100644 --- a/superset-frontend/src/explore/components/controls/VizTypeControl/VizTypeGallery.tsx +++ b/superset-frontend/src/explore/components/controls/VizTypeControl/VizTypeGallery.tsx @@ -854,6 +854,7 @@ export default function VizTypeGallery(props: VizTypeGalleryProps) { {(selectedVizMetadata?.exampleGallery || []).map(example => (