From acef6f155459116cdcf6f3d3763b033717899206 Mon Sep 17 00:00:00 2001 From: ZacharyBys Date: Wed, 5 Oct 2022 16:39:36 -0700 Subject: [PATCH] change order of unionWith domain chore: update examples [CI] fix test chore: update examples [CI] add sort to example --- examples/compiled/arc_color_mappings.png | Bin 0 -> 10592 bytes examples/compiled/arc_color_mappings.svg | 1 + examples/compiled/arc_color_mappings.vg.json | 80 +++++++++++++++++++ examples/specs/arc_color_mappings.vl.json | 3 +- src/compile/scale/domain.ts | 2 +- test/compile/scale/domain.test.ts | 2 +- 6 files changed, 85 insertions(+), 3 deletions(-) create mode 100644 examples/compiled/arc_color_mappings.png create mode 100644 examples/compiled/arc_color_mappings.svg create mode 100644 examples/compiled/arc_color_mappings.vg.json diff --git a/examples/compiled/arc_color_mappings.png b/examples/compiled/arc_color_mappings.png new file mode 100644 index 0000000000000000000000000000000000000000..7c19e0c1a0bfcb0f4789d4bb177b78f7d05afc7a GIT binary patch literal 10592 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 literal 0 HcmV?d00001 diff --git a/examples/compiled/arc_color_mappings.svg b/examples/compiled/arc_color_mappings.svg new file mode 100644 index 0000000000..f1295caf8e --- /dev/null +++ b/examples/compiled/arc_color_mappings.svg @@ -0,0 +1 @@ +123456category \ No newline at end of file diff --git a/examples/compiled/arc_color_mappings.vg.json b/examples/compiled/arc_color_mappings.vg.json new file mode 100644 index 0000000000..fdda6a49aa --- /dev/null +++ b/examples/compiled/arc_color_mappings.vg.json @@ -0,0 +1,80 @@ +{ + "$schema": "https://vega.github.io/schema/vega/v5.json", + "description": "A simple pie chart with embedded data.", + "background": "white", + "padding": 5, + "width": 200, + "height": 200, + "data": [ + { + "name": "source_0", + "values": [ + {"category": 1, "value": 4}, + {"category": 2, "value": 6}, + {"category": 3, "value": 10}, + {"category": 4, "value": 3}, + {"category": 5, "value": 7}, + {"category": 6, "value": 8} + ] + }, + { + "name": "data_0", + "source": "source_0", + "transform": [ + { + "type": "stack", + "groupby": [], + "field": "value", + "sort": {"field": ["category"], "order": ["ascending"]}, + "as": ["value_start", "value_end"], + "offset": "zero" + }, + { + "type": "filter", + "expr": "isValid(datum[\"value\"]) && isFinite(+datum[\"value\"])" + } + ] + } + ], + "marks": [ + { + "name": "marks", + "type": "arc", + "style": ["arc"], + "from": {"data": "data_0"}, + "encode": { + "update": { + "fill": {"scale": "color", "field": "category"}, + "description": { + "signal": "\"value: \" + (format(datum[\"value\"], \"\")) + \"; category: \" + (isValid(datum[\"category\"]) ? datum[\"category\"] : \"\"+datum[\"category\"])" + }, + "x": {"signal": "width", "mult": 0.5}, + "y": {"signal": "height", "mult": 0.5}, + "outerRadius": {"signal": "min(width,height)/2"}, + "innerRadius": {"value": 0}, + "startAngle": {"scale": "theta", "field": "value_end"}, + "endAngle": {"scale": "theta", "field": "value_start"} + } + } + } + ], + "scales": [ + { + "name": "theta", + "type": "linear", + "domain": {"data": "data_0", "fields": ["value_start", "value_end"]}, + "range": [0, 6.283185307179586], + "zero": true + }, + { + "name": "color", + "type": "ordinal", + "domain": { + "fields": [[5, 6], {"data": "data_0", "field": "category"}], + "sort": true + }, + "range": ["purple", "green", "blue", "yellow", "magenta", "brown"] + } + ], + "legends": [{"fill": "color", "symbolType": "circle", "title": "category"}] +} diff --git a/examples/specs/arc_color_mappings.vl.json b/examples/specs/arc_color_mappings.vl.json index 633b211b72..6573589373 100644 --- a/examples/specs/arc_color_mappings.vl.json +++ b/examples/specs/arc_color_mappings.vl.json @@ -53,7 +53,8 @@ 6 ] } - } + }, + "sort": null } } } diff --git a/src/compile/scale/domain.ts b/src/compile/scale/domain.ts index bf4260df9b..b97603d2d1 100644 --- a/src/compile/scale/domain.ts +++ b/src/compile/scale/domain.ts @@ -251,7 +251,7 @@ function parseSingleChannelDomain( const unionWith = convertDomainIfItIsDateTime(domain.unionWith, type, timeUnit); - return makeExplicit([...defaultDomain.value, ...unionWith]); + return makeExplicit([...unionWith, ...defaultDomain.value]); } else if (isSignalRef(domain)) { return makeExplicit([domain]); } else if (domain && domain !== 'unaggregated' && !isParameterDomain(domain)) { diff --git a/test/compile/scale/domain.test.ts b/test/compile/scale/domain.test.ts index 498f9797d1..1827d1dd7a 100644 --- a/test/compile/scale/domain.test.ts +++ b/test/compile/scale/domain.test.ts @@ -50,7 +50,7 @@ describe('compile/scale', () => { }); const xDomain = testParseDomainForChannel(model, 'x'); - expect(xDomain).toEqual([{data: 'main', field: 'a'}, [0, 100]]); + expect(xDomain).toEqual([[0, 100], {data: 'main', field: 'a'}]); }); it('correctly parse signal domain', () => {