From b4c7e1435339cd57cef620459ad6481aa4ec526e Mon Sep 17 00:00:00 2001 From: Kanit Wongsuphasawat Date: Wed, 31 Jul 2024 16:54:28 -0700 Subject: [PATCH] fix(#9401): conditional opacity should respect default value (#9402) ## PR Description Conditional opacity should respect default value Before: image `config.point.opacity = 0.5` is ignored After: image --------- Co-authored-by: GitHub Actions Bot --- .../compiled/point_conditional_opacity.png | Bin 0 -> 26919 bytes .../compiled/point_conditional_opacity.svg | 1 + .../point_conditional_opacity.vg.json | 113 ++++++++++++++++++ .../specs/point_conditional_opacity.vl.json | 13 ++ src/compile/mark/encode/nonposition.ts | 12 +- 5 files changed, 136 insertions(+), 3 deletions(-) create mode 100644 examples/compiled/point_conditional_opacity.png create mode 100644 examples/compiled/point_conditional_opacity.svg create mode 100644 examples/compiled/point_conditional_opacity.vg.json create mode 100644 examples/specs/point_conditional_opacity.vl.json diff --git a/examples/compiled/point_conditional_opacity.png b/examples/compiled/point_conditional_opacity.png new file mode 100644 index 0000000000000000000000000000000000000000..bf0665e286eae4ccb6307fa215b51b00ce59d68f GIT binary patch literal 26919 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 \ No newline at end of file diff --git a/examples/compiled/point_conditional_opacity.vg.json b/examples/compiled/point_conditional_opacity.vg.json new file mode 100644 index 0000000000..cc4f0ab685 --- /dev/null +++ b/examples/compiled/point_conditional_opacity.vg.json @@ -0,0 +1,113 @@ +{ + "$schema": "https://vega.github.io/schema/vega/v5.json", + "background": "white", + "padding": 5, + "width": 200, + "height": 200, + "style": "cell", + "data": [ + { + "name": "source_0", + "url": "data/cars.json", + "format": {"type": "json"}, + "transform": [ + { + "type": "filter", + "expr": "isValid(datum[\"Horsepower\"]) && isFinite(+datum[\"Horsepower\"]) && isValid(datum[\"Miles_per_Gallon\"]) && isFinite(+datum[\"Miles_per_Gallon\"])" + } + ] + } + ], + "marks": [ + { + "name": "marks", + "type": "symbol", + "style": ["point"], + "from": {"data": "source_0"}, + "encode": { + "update": { + "fill": {"value": "transparent"}, + "stroke": {"value": "#4c78a8"}, + "opacity": [ + {"test": "datum.Horsepower > 100", "value": 0.25}, + {"value": 0.5} + ], + "ariaRoleDescription": {"value": "point"}, + "description": { + "signal": "\"Horsepower: \" + (format(datum[\"Horsepower\"], \"\")) + \"; Miles_per_Gallon: \" + (format(datum[\"Miles_per_Gallon\"], \"\"))" + }, + "x": {"scale": "x", "field": "Horsepower"}, + "y": {"scale": "y", "field": "Miles_per_Gallon"} + } + } + } + ], + "scales": [ + { + "name": "x", + "type": "linear", + "domain": {"data": "source_0", "field": "Horsepower"}, + "range": [0, {"signal": "width"}], + "nice": true, + "zero": true + }, + { + "name": "y", + "type": "linear", + "domain": {"data": "source_0", "field": "Miles_per_Gallon"}, + "range": [{"signal": "height"}, 0], + "nice": true, + "zero": true + } + ], + "axes": [ + { + "scale": "x", + "orient": "bottom", + "gridScale": "y", + "grid": true, + "tickCount": {"signal": "ceil(width/40)"}, + "domain": false, + "labels": false, + "aria": false, + "maxExtent": 0, + "minExtent": 0, + "ticks": false, + "zindex": 0 + }, + { + "scale": "y", + "orient": "left", + "gridScale": "x", + "grid": true, + "tickCount": {"signal": "ceil(height/40)"}, + "domain": false, + "labels": false, + "aria": false, + "maxExtent": 0, + "minExtent": 0, + "ticks": false, + "zindex": 0 + }, + { + "scale": "x", + "orient": "bottom", + "grid": false, + "title": "Horsepower", + "labelFlush": true, + "labelOverlap": true, + "tickCount": {"signal": "ceil(width/40)"}, + "zindex": 0 + }, + { + "scale": "y", + "orient": "left", + "grid": false, + "title": "Miles_per_Gallon", + "labelOverlap": true, + "tickCount": {"signal": "ceil(height/40)"}, + "zindex": 0 + } + ], + "config": {"style": {"point": {"opacity": 0.5}}} +} diff --git a/examples/specs/point_conditional_opacity.vl.json b/examples/specs/point_conditional_opacity.vl.json new file mode 100644 index 0000000000..7b44efebba --- /dev/null +++ b/examples/specs/point_conditional_opacity.vl.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://vega.github.io/schema/vega-lite/v5.json", + "data": {"url": "data/cars.json"}, + "mark": "point", + "encoding": { + "x": {"field": "Horsepower", "type": "quantitative"}, + "y": {"field": "Miles_per_Gallon", "type": "quantitative"}, + "opacity": { + "condition": [{"test": "datum.Horsepower > 100", "value": 0.25}] + } + }, + "config": {"point": {"opacity": 0.5}} +} diff --git a/src/compile/mark/encode/nonposition.ts b/src/compile/mark/encode/nonposition.ts index 3f2380d4d1..8ffe7b1ffa 100644 --- a/src/compile/mark/encode/nonposition.ts +++ b/src/compile/mark/encode/nonposition.ts @@ -1,6 +1,6 @@ import type {SignalRef} from 'vega'; import {NonPositionScaleChannel} from '../../../channel'; -import {Value} from '../../../channeldef'; +import {Value, isConditionalDef} from '../../../channeldef'; import {VgEncodeChannel, VgEncodeEntry, VgValueRef} from '../../../vega.schema'; import {getMarkPropOrConfig, signalOrValueRef} from '../../common'; import {UnitModel} from '../../unit'; @@ -24,16 +24,22 @@ export function nonPosition( const {vgChannel} = opt; let {defaultRef, defaultValue} = opt; + const channelDef = encoding[channel]; + if (defaultRef === undefined) { // prettier-ignore - defaultValue ??= getMarkPropOrConfig(channel, markDef, config, {vgChannel, ignoreVgConfig: true}); + defaultValue ??= getMarkPropOrConfig(channel, markDef, config, { + vgChannel, + // If there is no conditonal def, we ignore vgConfig so the output spec is concise. + // However, if there is a conditional def, we must include vgConfig so the default is respected. + ignoreVgConfig: !isConditionalDef(channelDef) + }); if (defaultValue !== undefined) { defaultRef = signalOrValueRef(defaultValue); } } - const channelDef = encoding[channel]; const commonProps = { markDef, config,