diff --git a/examples/compiled/time_parse_utc.png b/examples/compiled/time_parse_utc.png index f346b1a5c1..a5f60d2e42 100644 Binary files a/examples/compiled/time_parse_utc.png and b/examples/compiled/time_parse_utc.png differ diff --git a/examples/compiled/time_parse_utc.svg b/examples/compiled/time_parse_utc.svg index 9eaca33b15..b71c09eb59 100644 --- a/examples/compiled/time_parse_utc.svg +++ b/examples/compiled/time_parse_utc.svg @@ -1 +1 @@ -16:00time \ No newline at end of file +00:00time \ No newline at end of file diff --git a/examples/compiled/time_parse_utc.vg.json b/examples/compiled/time_parse_utc.vg.json index 87a0feffe6..3971c5a8f4 100644 --- a/examples/compiled/time_parse_utc.vg.json +++ b/examples/compiled/time_parse_utc.vg.json @@ -71,7 +71,7 @@ "format": { "signal": "timeUnitSpecifier([\"hours\"], {\"year-month\":\"%b %Y \",\"year-month-date\":\"%b %d, %Y \"})" }, - "formatType": "time", + "formatType": "utc", "labelOverlap": true, "zindex": 0 } diff --git a/site/_includes/docs_toc.md b/site/_includes/docs_toc.md index 35cfa70926..e658f7baf1 100644 --- a/site/_includes/docs_toc.md +++ b/site/_includes/docs_toc.md @@ -287,7 +287,6 @@ - [Nominal]({{site.baseurl}}/docs/type.html#nominal) - [GeoJSON]({{site.baseurl}}/docs/type.html#geojson) - [Value]({{site.baseurl}}/docs/value.html) - - [Examples]({{site.baseurl}}/docs/value.html#examples) - [Projection]({{site.baseurl}}/docs/projection.html) - [Documentation Overview]({{site.baseurl}}/docs/projection.html#documentation-overview) - [Projection Properties]({{site.baseurl}}/docs/projection.html#projection-properties) @@ -330,7 +329,6 @@ - [Using Parameters]({{site.baseurl}}/docs/parameter.html#using-parameters) - [Selection Configuration]({{site.baseurl}}/docs/parameter.html#config) - [Value]({{site.baseurl}}/docs/value.html) - - [Examples]({{site.baseurl}}/docs/value.html#examples) - [Expr]({{site.baseurl}}/docs/parameter.html) - [Documentation Overview]({{site.baseurl}}/docs/parameter.html#documentation-overview) - [Defining a Parameter]({{site.baseurl}}/docs/parameter.html#defining-a-parameter) diff --git a/src/compile/format.ts b/src/compile/format.ts index 20f49f5103..bbc645a37b 100644 --- a/src/compile/format.ts +++ b/src/compile/format.ts @@ -160,7 +160,7 @@ export function guideFormatType( return formatType; } if (isFieldOrDatumDefForTimeFormat(fieldOrDatumDef) && scaleType !== 'time' && scaleType !== 'utc') { - return 'time'; + return isFieldDef(fieldOrDatumDef) && normalizeTimeUnit(fieldOrDatumDef?.timeUnit)?.utc ? 'utc' : 'time'; } return undefined; } diff --git a/test/compile/format.test.ts b/test/compile/format.test.ts index 0b93dae8c5..8c935585a2 100644 --- a/test/compile/format.test.ts +++ b/test/compile/format.test.ts @@ -1,5 +1,5 @@ import {vgField} from '../../src/channeldef'; -import {formatSignalRef, numberFormat, timeFormatExpression} from '../../src/compile/format'; +import {formatSignalRef, guideFormatType, numberFormat, timeFormatExpression} from '../../src/compile/format'; import {defaultConfig} from '../../src/config'; import {NOMINAL, ORDINAL, QUANTITATIVE, TEMPORAL} from '../../src/type'; @@ -130,4 +130,17 @@ describe('Format', () => { }); }); }); + + describe('guideFormatType()', () => { + it('should return existing format type', () => { + expect(guideFormatType('number', {field: ' foo', type: 'quantitative'}, 'ordinal')).toBe('number'); + expect(guideFormatType('time', {field: ' foo', type: 'quantitative'}, 'ordinal')).toBe('time'); + }); + + it('should return utc for utc time units', () => { + expect( + guideFormatType('', {field: ' foo', type: 'ordinal', timeUnit: {utc: true, unit: 'year'}}, 'ordinal') + ).toBe('utc'); + }); + }); });