Skip to content
Closed
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
Jump to file
Failed to load files.
Loading
Diff view
Diff view
91 changes: 10 additions & 81 deletions package-lock.json

Large diffs are not rendered by default.

2 changes: 0 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,6 @@
"@testing-library/jest-dom": "^5.16.5",
"@testing-library/react": "^15.0.7",
"@types/jest-image-snapshot": "^6.1.0",
"@types/lodash": "^4.17.16",
"@types/node": "^18.19.4",
"@types/react": "^18.0.26",
"@types/react-dom": "^18.0.10",
Expand Down Expand Up @@ -104,7 +103,6 @@
"jest-image-snapshot": "^6.1.0",
"jsdom": "^20.0.3",
"lint-staged": "^15.5.0",
"lodash": "^4.17.21",
"npm-run-all": "^4.1.5",
"prettier": "^3.2.5",
"puppeteer-core": "^24.10.2",
Expand Down
2 changes: 1 addition & 1 deletion pages/01-cartesian-chart/axes-and-thresholds.page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@
// SPDX-License-Identifier: Apache-2.0

import { addDays, subYears } from "date-fns";
import { range } from "lodash";

import ColumnLayout from "@cloudscape-design/components/column-layout";

import { CartesianChart } from "../../lib/components";
import range from "../../lib/components/internal/utils/range";
import { dateFormatter } from "../common/formatters";
import { useChartSettings } from "../common/page-settings";
import { Page, PageSection } from "../common/templates";
Expand Down
3 changes: 1 addition & 2 deletions pages/01-cartesian-chart/chart-size.page.tsx
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0

import { range } from "lodash";

import { CartesianChart, CartesianChartProps } from "../../lib/components";
import range from "../../lib/components/internal/utils/range";
import { PageSettingsForm, useChartSettings } from "../common/page-settings";
import { FitSizeDemo, Page, PageSection } from "../common/templates";
import pseudoRandom from "../utils/pseudo-random";
Expand Down
3 changes: 1 addition & 2 deletions pages/01-cartesian-chart/line-dash-styles.page.tsx
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0

import { range } from "lodash";

import { CartesianChart, CartesianChartProps } from "../../lib/components";
import range from "../../lib/components/internal/utils/range";
import { dateFormatter } from "../common/formatters";
import { useChartSettings } from "../common/page-settings";
import { Page } from "../common/templates";
Expand Down
6 changes: 4 additions & 2 deletions pages/02-pie-chart/controlled-visibility.page.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0

import { sum } from "lodash";

import { PieChart, PieChartProps } from "../../lib/components";
import { PageSettings, PageSettingsForm, SeriesFilter, useChartSettings } from "../common/page-settings";
import { Page, PageSection } from "../common/templates";
Expand All @@ -11,6 +9,10 @@ interface ThisPageSettings extends PageSettings {
visibleItems: string;
}

function sum(array: number[]): number {
return array.reduce((acc, val) => acc + val, 0);
}

const pieChartSeries: PieChartProps.SeriesOptions = {
name: "Value",
type: "pie",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0

import { range } from "lodash";

import Checkbox from "@cloudscape-design/components/checkbox";
import ColumnLayout from "@cloudscape-design/components/column-layout";
import FormField from "@cloudscape-design/components/form-field";
import Select from "@cloudscape-design/components/select";

import { PieChart, PieChartProps } from "../../lib/components";
import range from "../../lib/components/internal/utils/range";
import { PageSettings, PageSettingsForm, useChartSettings } from "../common/page-settings";
import { Page } from "../common/templates";

Expand Down
3 changes: 1 addition & 2 deletions pages/03-core/core-dual-axis-chart.page.tsx
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0

import { omit } from "lodash";

import Link from "@cloudscape-design/components/link";

import CoreChart from "../../lib/components/internal-do-not-use/core-chart";
import { dateFormatter } from "../common/formatters";
import { PageSettingsForm, useChartSettings } from "../common/page-settings";
import { Page } from "../common/templates";
import omit from "../utils/omit";
import pseudoRandom from "../utils/pseudo-random";

function randomInt(min: number, max: number) {
Expand Down
3 changes: 1 addition & 2 deletions pages/03-core/core-legend-horizontal-alignment.page.tsx
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0

import { omit } from "lodash";

import ColumnLayout from "@cloudscape-design/components/column-layout";
import SpaceBetween from "@cloudscape-design/components/space-between";

import { CoreChartProps } from "../../lib/components/core/interfaces";
import CoreChart from "../../lib/components/internal-do-not-use/core-chart";
import { PageSettingsForm, useChartSettings } from "../common/page-settings";
import { Page } from "../common/templates";
import omit from "../utils/omit";
import pseudoRandom from "../utils/pseudo-random";

function randomInt(min: number, max: number) {
Expand Down
2 changes: 1 addition & 1 deletion pages/03-core/core-legend.page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@

import { useRef, useState } from "react";
import Highcharts from "highcharts";
import { omit } from "lodash";

import Link from "@cloudscape-design/components/link";
import SpaceBetween from "@cloudscape-design/components/space-between";
Expand All @@ -17,6 +16,7 @@ import { CoreLegend } from "../../lib/components/internal-do-not-use/core-legend
import { dateFormatter } from "../common/formatters";
import { PageSettingsForm, useChartSettings } from "../common/page-settings";
import { Page } from "../common/templates";
import omit from "../utils/omit";
import pseudoRandom from "../utils/pseudo-random";

function randomInt(min: number, max: number) {
Expand Down
2 changes: 1 addition & 1 deletion pages/03-core/dynamic-chart-type.page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@

import { useState } from "react";
import Highcharts from "highcharts";
import { omit } from "lodash";

import SpaceBetween from "@cloudscape-design/components/space-between";
import Toggle from "@cloudscape-design/components/toggle";
Expand All @@ -12,6 +11,7 @@ import CoreChart, { CoreChartProps } from "../../lib/components/internal-do-not-
import { dateFormatter } from "../common/formatters";
import { useChartSettings } from "../common/page-settings";
import { Page } from "../common/templates";
import omit from "../utils/omit";
import pseudoRandom from "../utils/pseudo-random";

function randomInt(min: number, max: number) {
Expand Down
4 changes: 2 additions & 2 deletions pages/03-core/events-sync-demo.page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@

import { useRef, useState } from "react";
import Highcharts from "highcharts";
import { omit } from "lodash";

import ColumnLayout from "@cloudscape-design/components/column-layout";
import {
Expand All @@ -12,14 +11,15 @@ import {
colorChartsPaletteCategorical3,
} from "@cloudscape-design/design-tokens";

import { LegendItem } from "../../lib/components/internal/components/interfaces";
import { ChartSeriesMarker } from "../../lib/components/internal/components/series-marker";
import CoreChart from "../../lib/components/internal-do-not-use/core-chart";
import { CoreLegend } from "../../lib/components/internal-do-not-use/core-legend";
import { CoreChartProps } from "../../src/core/interfaces";
import { LegendItem } from "../../src/internal/components/interfaces";
import { dateFormatter } from "../common/formatters";
import { useChartSettings } from "../common/page-settings";
import { Page } from "../common/templates";
import omit from "../utils/omit";
import pseudoRandom from "../utils/pseudo-random";

function randomInt(min: number, max: number) {
Expand Down
3 changes: 1 addition & 2 deletions pages/03-core/in-iframe.page.tsx
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0

import { omit } from "lodash";

import ColumnLayout from "@cloudscape-design/components/column-layout";

import CoreChart from "../../lib/components/internal-do-not-use/core-chart";
import { dateFormatter } from "../common/formatters";
import { useChartSettings } from "../common/page-settings";
import { Page } from "../common/templates";
import omit from "../utils/omit";

export default function () {
const { chartProps } = useChartSettings();
Expand Down
2 changes: 1 addition & 1 deletion pages/03-core/no-data-states.page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@
// SPDX-License-Identifier: Apache-2.0

import Highcharts from "highcharts";
import { omit } from "lodash";

import Box from "@cloudscape-design/components/box";

import CoreChart from "../../lib/components/internal-do-not-use/core-chart";
import { PageSettingsForm, useChartSettings } from "../common/page-settings";
import { FramedDemo, Page, PageSection } from "../common/templates";
import omit from "../utils/omit";

export default function () {
const { chartProps } = useChartSettings();
Expand Down
4 changes: 2 additions & 2 deletions pages/03-core/simple-zooming.page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@

import { useCallback, useEffect, useRef, useState } from "react";
import Highcharts from "highcharts";
import { omit } from "lodash";

import { KeyCode } from "@cloudscape-design/component-toolkit/internal";
import BreadcrumbGroup from "@cloudscape-design/components/breadcrumb-group";
Expand All @@ -16,6 +15,7 @@ import CoreChart from "../../lib/components/internal-do-not-use/core-chart";
import { dateFormatter } from "../common/formatters";
import { PageSettings, PageSettingsForm, useChartSettings } from "../common/page-settings";
import { Page } from "../common/templates";
import omit from "../utils/omit";
import pseudoRandom from "../utils/pseudo-random";

interface ThisPageSettings extends PageSettings {
Expand Down Expand Up @@ -134,7 +134,7 @@ function Charts() {
settings: { keepZoomingFrame = true },
chartProps,
} = useChartSettings<ThisPageSettings>({ more: true });
const commonProps = omit(chartProps.cartesian, ["ref"]);
const commonProps = omit(chartProps.cartesian, "ref");
const scatterChartRef = useRef<CoreChartProps.ChartAPI>(null) as React.MutableRefObject<CoreChartProps.ChartAPI>;
const getScatterChart = () => scatterChartRef.current!;
const navigatorChartRef = useRef<CoreChartProps.ChartAPI>(null) as React.MutableRefObject<CoreChartProps.ChartAPI>;
Expand Down
3 changes: 1 addition & 2 deletions pages/03-core/solidgauge.page.tsx
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0

import { omit } from "lodash";

import CoreChart from "../../lib/components/internal-do-not-use/core-chart";
import { PageSettingsForm, useChartSettings } from "../common/page-settings";
import { Page } from "../common/templates";
import omit from "../utils/omit";
import pseudoRandom from "../utils/pseudo-random";

function randomInt(min: number, max: number) {
Expand Down
3 changes: 1 addition & 2 deletions pages/06-visual-tests/cartesian-tooltip.page.tsx
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0

import { omit } from "lodash";

import Button from "@cloudscape-design/components/button";

import CoreChart from "../../lib/components/internal-do-not-use/core-chart";
import { dateFormatter } from "../common/formatters";
import { useChartSettings } from "../common/page-settings";
import { Page } from "../common/templates";
import omit from "../utils/omit";

const baseline = [
{ x: 1600984800000, y: 58020 },
Expand Down
3 changes: 1 addition & 2 deletions pages/06-visual-tests/in-iframe.page.tsx
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0

import { omit } from "lodash";

import CoreChart from "../../lib/components/internal-do-not-use/core-chart";
import { useChartSettings } from "../common/page-settings";
import { Page } from "../common/templates";
import omit from "../utils/omit";

export default function () {
const { chartProps } = useChartSettings();
Expand Down
3 changes: 1 addition & 2 deletions pages/06-visual-tests/pie-tooltip.page.tsx
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0

import { omit } from "lodash";

import Button from "@cloudscape-design/components/button";

import CoreChart from "../../lib/components/internal-do-not-use/core-chart";
import { useChartSettings } from "../common/page-settings";
import { Page } from "../common/templates";
import omit from "../utils/omit";

const series: Highcharts.SeriesOptionsType[] = [
{
Expand Down
20 changes: 10 additions & 10 deletions pages/app/app-context.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@

import { createContext, useEffect } from "react";
import { useSearchParams } from "react-router-dom";
import mapValues from "lodash/mapValues";

import { applyDensity, applyMode, Density, disableMotion, Mode } from "@cloudscape-design/global-styles";

Expand Down Expand Up @@ -39,16 +38,17 @@

export default AppContext;

function parseQuery(urlParams: URLSearchParams) {
const queryParams: Record<string, any> = { ...appContextDefaults.urlParams };
urlParams.forEach((value, key) => (queryParams[key] = value));
function castToBoolean(s: string) {
if (s === "true" || s === "false") {
return s === "true";
}
return s;
}

return mapValues(queryParams, (value) => {
if (value === "true" || value === "false") {
return value === "true";
}
return value;
});
export function parseQuery(urlParams: URLSearchParams) {
const queryParams: Record<string, any> = { ...appContextDefaults };

Check warning on line 49 in pages/app/app-context.tsx

View workflow job for this annotation

GitHub Actions / build / build

Unexpected any. Specify a different type

Check warning on line 49 in pages/app/app-context.tsx

View workflow job for this annotation

GitHub Actions / dry-run / Build chart components

Unexpected any. Specify a different type
urlParams.forEach((value, key) => (queryParams[key] = castToBoolean(value)));
return queryParams as AppUrlParams;
}

function formatQuery(params: AppUrlParams) {
Expand Down
4 changes: 1 addition & 3 deletions pages/common/permutations.tsx
Original file line number Diff line number Diff line change
@@ -1,16 +1,14 @@
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0

import flatten from "lodash/flatten";

import SpaceBetween from "@cloudscape-design/components/space-between";

export type ComponentPermutations<Props> = {
[prop in keyof Props]: ReadonlyArray<Props[prop]>;
};

export function createPermutations<Props>(permutations: Array<ComponentPermutations<Props>>) {
return flatten(permutations.map((set) => doCreatePermutations(set)));
return permutations.map((set) => doCreatePermutations(set)).flat();
}

function doCreatePermutations<Props>(permutations: ComponentPermutations<Props>) {
Expand Down Expand Up @@ -42,7 +40,7 @@
direction?: "vertical" | "horizontal";
}

function formatValue(key: string, value: any) {

Check warning on line 43 in pages/common/permutations.tsx

View workflow job for this annotation

GitHub Actions / build / build

Unexpected any. Specify a different type

Check warning on line 43 in pages/common/permutations.tsx

View workflow job for this annotation

GitHub Actions / dry-run / Build chart components

Unexpected any. Specify a different type
if (typeof value === "function") {
return value.toString();
}
Expand Down
18 changes: 18 additions & 0 deletions pages/utils/omit.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0

/**
* Creates an object composed of the own and inherited enumerable property paths
* of object that are not omitted
*/
export default function omit<T extends Record<string, unknown>, K extends keyof T>(object: T, keyToOmit: K) {
const result = {} as Partial<T>;

for (const key in object) {
if ((key as string as K) !== keyToOmit && Object.prototype.hasOwnProperty.call(object, key)) {
result[key] = object[key];
}
}

return result as Omit<T, K>;
}
Loading
Loading