Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(axis): improved axis styles #711

Merged
merged 19 commits into from
Jul 19, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ module.exports = {
'@typescript-eslint/no-unsafe-return': 0,
'@typescript-eslint/explicit-module-boundary-types': 0,
'@typescript-eslint/restrict-template-expressions': 1,
'@typescript-eslint/restrict-plus-operands': 1,
'@typescript-eslint/restrict-plus-operands': 0, // rule is broken
'@typescript-eslint/no-unsafe-call': 1,
'@typescript-eslint/unbound-method': 1,
'unicorn/consistent-function-scoping': 1,
Expand Down
128 changes: 85 additions & 43 deletions api/charts.api.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,25 +113,6 @@ export interface AreaStyle {
// @public (undocumented)
export const Axis: React.FunctionComponent<SpecRequired & SpecOptionals>;

// Warning: (ae-missing-release-tag) "AxisConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface AxisConfig {
// (undocumented)
axisLineStyle: StrokeStyle;
// (undocumented)
axisTitleStyle: TextStyle;
// (undocumented)
gridLineStyle: {
horizontal: GridLineConfig;
vertical: GridLineConfig;
};
// (undocumented)
tickLabelStyle: TextStyle;
// (undocumented)
tickLineStyle: TickStyle;
}

// @public (undocumented)
export type AxisId = string;

Expand All @@ -142,33 +123,49 @@ export interface AxisSpec extends Spec {
// (undocumented)
chartType: typeof ChartTypes.XYAxis;
domain?: YDomainRange;
gridLineStyle?: GridLineConfig;
gridLine?: Partial<GridLineStyle>;
groupId: GroupId;
hide: boolean;
id: AxisId;
integersOnly?: boolean;
labelFormat?: TickFormatter;
position: Position;
showDuplicatedTicks?: boolean;
// @deprecated
showGridLines?: boolean;
showOverlappingLabels: boolean;
showOverlappingTicks: boolean;
// (undocumented)
specType: typeof SpecTypes.Axis;
style?: AxisStyle;
style?: RecursivePartial<Omit<AxisStyle, 'gridLine'>>;
tickFormat: TickFormatter;
tickLabelRotation?: number;
tickPadding: number;
ticks?: number;
tickSize: number;
title?: string;
}

// Warning: (ae-missing-release-tag) "AxisStyle" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface AxisStyle {
tickLabelPadding?: number;
// (undocumented)
axisLine: StrokeStyle & Visible;
// Warning: (ae-forgotten-export) The symbol "Visible" needs to be exported by the entry point index.d.ts
//
// (undocumented)
axisTitle: TextStyle & Visible;
// (undocumented)
gridLine: {
horizontal: GridLineStyle;
vertical: GridLineStyle;
};
// (undocumented)
tickLabel: TextStyle & Visible & {
rotation: number;
offset: TextOffset;
alignment: TextAlignment;
};
// (undocumented)
tickLine: TickStyle;
}

// @public
Expand Down Expand Up @@ -385,8 +382,6 @@ export type CompleteBoundedDomain = DomainBase & LowerBound & UpperBound;
//
// @public (undocumented)
export interface CrosshairStyle {
// Warning: (ae-forgotten-export) The symbol "Visible" needs to be exported by the entry point index.d.ts
//
// (undocumented)
band: FillStyle & Visible;
// (undocumented)
Expand Down Expand Up @@ -661,20 +656,18 @@ export interface GoalSpec extends Spec {
tickValueFormatter: BandFillColorAccessor;
}

// Warning: (ae-missing-release-tag) "GridLineConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface GridLineConfig {
export interface GridLineStyle {
// (undocumented)
dash?: number[];
dash: number[];
// (undocumented)
opacity?: number;
opacity: number;
// (undocumented)
stroke?: Color;
stroke: Color;
// (undocumented)
strokeWidth?: number;
strokeWidth: number;
// (undocumented)
visible?: boolean;
visible: boolean;
}

// Warning: (ae-missing-release-tag) "GroupBrushExtent" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
Expand Down Expand Up @@ -721,6 +714,20 @@ export const HistogramModeAlignments: Readonly<{
End: LineAlignSetting;
}>;

// Warning: (ae-missing-release-tag) "HorizontalAlignment" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const HorizontalAlignment: Readonly<{
Center: "center";
Right: "right";
Left: "left";
Near: "near";
Far: "far";
}>;

// @public
export type HorizontalAlignment = $Values<typeof HorizontalAlignment>;

// Warning: (ae-forgotten-export) The symbol "BinaryAccessorFn" needs to be exported by the entry point index.d.ts
//
// @public
Expand Down Expand Up @@ -862,11 +869,6 @@ export type LowerBoundedDomain = DomainBase & LowerBound;
// @public
export type MarkBuffer = number | ((radius: number) => number);

// Warning: (ae-missing-release-tag) "mergeGridLineConfigs" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function mergeGridLineConfigs(axisSpecConfig: GridLineConfig, themeConfig: GridLineConfig): GridLineConfig;

// Warning: (ae-missing-release-tag) "mergeWithDefaultAnnotationLine" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
Expand Down Expand Up @@ -1349,6 +1351,14 @@ export interface SharedGeometryStateStyle {
unhighlighted: GeometryStateStyle;
}

// @public
export interface SimplePadding {
// (undocumented)
inner: number;
// (undocumented)
outer: number;
}

// Warning: (ae-missing-release-tag) "Spec" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
Expand Down Expand Up @@ -1385,6 +1395,21 @@ export interface StrokeStyle<C = Color> {
strokeWidth: number;
}

// @public
export interface TextAlignment {
// (undocumented)
horizontal: HorizontalAlignment;
// (undocumented)
vertical: VerticalAlignment;
}

// @public
export interface TextOffset {
reference: 'global' | 'local';
x: number | string;
y: number | string;
}

// Warning: (ae-missing-release-tag) "TextStyle" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
Expand All @@ -1398,7 +1423,7 @@ export interface TextStyle {
// (undocumented)
fontStyle?: string;
// (undocumented)
padding: number;
padding: number | SimplePadding;
}

// Warning: (ae-missing-release-tag) "Theme" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
Expand All @@ -1409,7 +1434,7 @@ export interface Theme {
arcSeriesStyle: ArcSeriesStyle;
areaSeriesStyle: AreaSeriesStyle;
// (undocumented)
axes: AxisConfig;
axes: AxisStyle;
background: BackgroundStyle;
barSeriesStyle: BarSeriesStyle;
bubbleSeriesStyle: BubbleSeriesStyle;
Expand Down Expand Up @@ -1438,7 +1463,10 @@ export type TickFormatterOptions = {
};

// @public (undocumented)
export type TickStyle = StrokeStyle & Visible;
export type TickStyle = StrokeStyle & Visible & {
padding: number;
size: number;
};

// Warning: (ae-missing-release-tag) "timeFormatter" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
Expand Down Expand Up @@ -1506,6 +1534,20 @@ export type UnboundedDomainWithInterval = DomainBase;
// @public (undocumented)
export type UpperBoundedDomain = DomainBase & UpperBound;

// Warning: (ae-missing-release-tag) "VerticalAlignment" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const VerticalAlignment: Readonly<{
Middle: "middle";
Top: "top";
Bottom: "bottom";
Near: "near";
Far: "far";
}>;

// @public
export type VerticalAlignment = $Values<typeof VerticalAlignment>;

// Warning: (ae-missing-release-tag) "XYBrushArea" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
Expand Down
9 changes: 6 additions & 3 deletions integration/helpers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -72,15 +72,18 @@ function encodeString(string: string) {
*/
const storiesToSkip: Record<string, string[]> = {
// Interactions: ['Some story name'],
Legend: [
'Actions',
],
};

/**
* Delays for stories to skip in all vrt based on group.
*/
const storiesToDelay: Record<string, Record<string, number>> = {
Legend: {
Actions: 200, // needed for icon to load
},
// GroupName: {
// 'some story name': 200,
// },
};

export function getStorybookInfo(): StoryGroupInfo[] {
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Diff not rendered.
15 changes: 10 additions & 5 deletions src/chart_types/xy_chart/annotations/utils.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
* under the License.
*/

import { RecursivePartial } from '@elastic/eui';
import React from 'react';

import { ChartTypes } from '../..';
Expand All @@ -29,7 +30,7 @@ import { Position, Rotation } from '../../../utils/commons';
import { Dimensions } from '../../../utils/dimensions';
import { GroupId, AnnotationId } from '../../../utils/ids';
import { Point } from '../../../utils/point';
import { DEFAULT_ANNOTATION_LINE_STYLE } from '../../../utils/themes/theme';
import { DEFAULT_ANNOTATION_LINE_STYLE, AxisStyle } from '../../../utils/themes/theme';
import { computeAnnotationDimensionsSelector } from '../state/selectors/compute_annotations';
import {
AnnotationDomainTypes,
Expand Down Expand Up @@ -73,6 +74,12 @@ describe('annotation utils', () => {
};

const groupId = 'foo-group';
const style: RecursivePartial<AxisStyle> = {
tickLine: {
size: 10,
padding: 10,
},
};

const axesSpecs: AxisSpec[] = [];
const verticalAxisSpec: AxisSpec = {
Expand All @@ -84,8 +91,7 @@ describe('annotation utils', () => {
showOverlappingTicks: false,
showOverlappingLabels: false,
position: Position.Left,
tickSize: 10,
tickPadding: 10,
style,
tickFormat: (value: any) => value.toString(),
showGridLines: true,
};
Expand All @@ -98,8 +104,7 @@ describe('annotation utils', () => {
showOverlappingTicks: false,
showOverlappingLabels: false,
position: Position.Bottom,
tickSize: 10,
tickPadding: 10,
style,
tickFormat: (value: any) => value.toString(),
showGridLines: true,
};
Expand Down
12 changes: 9 additions & 3 deletions src/chart_types/xy_chart/legend/legend.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,8 @@ import { ChartTypes } from '../..';
import { LegendItem } from '../../../commons/legend';
import { ScaleType } from '../../../scales/constants';
import { SpecTypes } from '../../../specs/constants';
import { Position } from '../../../utils/commons';
import { Position, RecursivePartial } from '../../../utils/commons';
import { AxisStyle } from '../../../utils/themes/theme';
import { SeriesCollectionValue, getSeriesName } from '../utils/series';
import { AxisSpec, BasicSeriesSpec, SeriesTypes } from '../utils/specs';
import { computeLegend } from './legend';
Expand Down Expand Up @@ -94,6 +95,12 @@ const spec2: BasicSeriesSpec = {
hideInLegend: false,
};

const style: RecursivePartial<AxisStyle> = {
tickLine: {
size: 10,
padding: 10,
},
};
const axesSpecs: AxisSpec[] = [];
const axisSpec: AxisSpec = {
chartType: ChartTypes.XYAxis,
Expand All @@ -104,8 +111,7 @@ const axisSpec: AxisSpec = {
showOverlappingTicks: false,
showOverlappingLabels: false,
position: Position.Left,
tickSize: 10,
tickPadding: 10,
style,
tickFormat: (value: any) => `${value}`,
};
axesSpecs.push(axisSpec);
Expand Down
Loading