@gooddata/sdk-ui-charts 11.41.0-alpha.2 → 11.41.0-alpha.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (18) hide show
  1. package/NOTICE +1294 -1498
  2. package/esm/charts/headline/internal/headlines/baseHeadline/BaseHeadline.d.ts +1 -2
  3. package/esm/charts/headline/internal/headlines/baseHeadline/CompareSection.d.ts +3 -3
  4. package/esm/charts/headline/internal/headlines/baseHeadline/CompareSectionItem.d.ts +2 -2
  5. package/esm/charts/headline/internal/headlines/baseHeadline/CompareSectionItem.js +7 -0
  6. package/esm/charts/headline/internal/headlines/baseHeadline/PrimarySection.d.ts +2 -2
  7. package/esm/charts/headline/internal/headlines/baseHeadline/PrimarySectionCompactContent.d.ts +2 -2
  8. package/esm/charts/headline/internal/headlines/baseHeadline/PrimarySectionContent.d.ts +2 -2
  9. package/esm/charts/headline/internal/headlines/baseHeadline/PrimarySectionContent.js +7 -0
  10. package/esm/charts/headline/internal/headlines/baseHeadline/baseHeadlineDataItems/BaseHeadlineDataItem.d.ts +2 -2
  11. package/esm/charts/headline/internal/headlines/baseHeadline/baseHeadlineDataItems/comparisonItems/ComparisonDataItem.d.ts +2 -2
  12. package/esm/charts/headline/internal/headlines/baseHeadline/baseHeadlineDataItems/comparisonItems/ComparisonDataWithSubItem.d.ts +2 -2
  13. package/esm/charts/headline/internal/interfaces/BaseHeadlines.d.ts +25 -10
  14. package/esm/charts/headline/internal/utils/BaseHeadlineTransformationUtils.d.ts +3 -1
  15. package/esm/charts/headline/internal/utils/BaseHeadlineTransformationUtils.js +1 -5
  16. package/esm/charts/headline/internal/utils/ComparisonTransformationUtils.js +2 -2
  17. package/esm/tsdoc-metadata.json +1 -1
  18. package/package.json +14 -14
@@ -1,11 +1,10 @@
1
1
  import { type IChartConfig } from "../../../../../interfaces/chartConfig.js";
2
2
  import { type IBaseHeadlineData } from "../../interfaces/BaseHeadlines.js";
3
3
  import { type HeadlineFiredDrillEvent } from "../../interfaces/DrillEvents.js";
4
- interface IHeadlineProps {
4
+ export interface IHeadlineProps {
5
5
  data: IBaseHeadlineData;
6
6
  config?: IChartConfig;
7
7
  onDrill?: HeadlineFiredDrillEvent;
8
8
  onAfterRender?: () => void;
9
9
  }
10
10
  export declare function BaseHeadline({ data, config, onDrill, onAfterRender }: IHeadlineProps): import("react/jsx-runtime").JSX.Element;
11
- export {};
@@ -1,7 +1,7 @@
1
- import { type BaseHeadlineItemAccepted, type IBaseHeadlineItem } from "../../interfaces/BaseHeadlines.js";
1
+ import { type IBaseHeadlineItem } from "../../interfaces/BaseHeadlines.js";
2
2
  interface ICompareSectionProps {
3
- secondaryItem: IBaseHeadlineItem<BaseHeadlineItemAccepted>;
4
- tertiaryItem?: IBaseHeadlineItem<BaseHeadlineItemAccepted> | null;
3
+ secondaryItem: IBaseHeadlineItem;
4
+ tertiaryItem?: IBaseHeadlineItem | null;
5
5
  }
6
6
  export declare function CompareSection({ secondaryItem, tertiaryItem }: ICompareSectionProps): import("react/jsx-runtime").JSX.Element;
7
7
  export {};
@@ -1,7 +1,7 @@
1
1
  import { type RefObject } from "react";
2
- import { type BaseHeadlineItemAccepted, type IBaseHeadlineItem } from "../../interfaces/BaseHeadlines.js";
2
+ import { type IBaseHeadlineItem } from "../../interfaces/BaseHeadlines.js";
3
3
  interface ICompareSectionItemProps {
4
- dataItem: IBaseHeadlineItem<BaseHeadlineItemAccepted>;
4
+ dataItem: IBaseHeadlineItem;
5
5
  titleRef?: RefObject<HTMLDivElement>;
6
6
  onValueOverflow?: (isOverflowing: boolean) => void;
7
7
  measurementTrigger?: number;
@@ -1,5 +1,12 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  export function CompareSectionItem({ dataItem, titleRef, onValueOverflow, measurementTrigger, }) {
3
+ /**
4
+ * When JSX combines all `dataItem.baseHeadlineDataItemComponent` union types, it creates a final
5
+ * intersection type of these component's props to ensure proper type safety, when used in such general way.
6
+ * However, the JSX is not smart enough to realize that `dataItem.baseHeadlineDataItemComponent` and
7
+ * `dataItem.data` are correlated so it is actually fine here and there shouldn't be any type errors in reality.
8
+ * The casting below prevents creation of the default component's props-intersection type so that no type issue arises.
9
+ */
3
10
  const BaseHeadlineDataItem = dataItem.baseHeadlineDataItemComponent;
4
11
  return (_jsx("div", { className: "gd-flex-item headline-compare-section-item headline-compare-item s-headline-compare-item", children: _jsx(BaseHeadlineDataItem, { dataItem: dataItem.data, evaluationType: dataItem.evaluationType, elementType: dataItem.elementType, titleRef: titleRef, onValueOverflow: onValueOverflow, measurementTrigger: measurementTrigger }) }));
5
12
  }
@@ -1,6 +1,6 @@
1
- import { type BaseHeadlineItemAccepted, type IBaseHeadlineItem } from "../../interfaces/BaseHeadlines.js";
1
+ import { type IBaseHeadlineItem } from "../../interfaces/BaseHeadlines.js";
2
2
  interface IPrimarySectionProps {
3
- primaryItem: IBaseHeadlineItem<BaseHeadlineItemAccepted>;
3
+ primaryItem: IBaseHeadlineItem;
4
4
  isOnlyPrimaryItem: boolean;
5
5
  }
6
6
  export declare function PrimarySection({ primaryItem, isOnlyPrimaryItem }: IPrimarySectionProps): import("react/jsx-runtime").JSX.Element;
@@ -1,6 +1,6 @@
1
- import { type BaseHeadlineItemAccepted, type IBaseHeadlineItem } from "../../interfaces/BaseHeadlines.js";
1
+ import { type IBaseHeadlineItem } from "../../interfaces/BaseHeadlines.js";
2
2
  interface IPrimarySectionCompactContentProps {
3
- primaryItem: IBaseHeadlineItem<BaseHeadlineItemAccepted>;
3
+ primaryItem: IBaseHeadlineItem;
4
4
  isOnlyPrimaryItem: boolean;
5
5
  }
6
6
  export declare function PrimarySectionCompactContent({ primaryItem, isOnlyPrimaryItem }: IPrimarySectionCompactContentProps): import("react/jsx-runtime").JSX.Element | null;
@@ -1,7 +1,7 @@
1
1
  import { type CSSProperties } from "react";
2
- import { type BaseHeadlineItemAccepted, type IBaseHeadlineItem } from "../../interfaces/BaseHeadlines.js";
2
+ import { type IBaseHeadlineItem } from "../../interfaces/BaseHeadlines.js";
3
3
  interface IPrimarySectionProps {
4
- primaryItem: IBaseHeadlineItem<BaseHeadlineItemAccepted>;
4
+ primaryItem: IBaseHeadlineItem;
5
5
  customStyle?: CSSProperties;
6
6
  }
7
7
  export declare function PrimarySectionContent({ primaryItem, customStyle }: IPrimarySectionProps): import("react/jsx-runtime").JSX.Element;
@@ -1,5 +1,12 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  export function PrimarySectionContent({ primaryItem, customStyle }) {
3
+ /**
4
+ * When JSX combines all `dataItem.baseHeadlineDataItemComponent` union types, it creates a final
5
+ * intersection type of these component's props to ensure proper type safety, when used in such general way.
6
+ * However, the JSX is not smart enough to realize that `dataItem.baseHeadlineDataItemComponent` and
7
+ * `dataItem.data` are correlated so it is actually fine here and there shouldn't be any type errors in reality.
8
+ * The casting below prevents creation of the default component's props-intersection type so that no type issue arises.
9
+ */
3
10
  const BaseHeadlineDataItem = primaryItem.baseHeadlineDataItemComponent;
4
11
  return (_jsx("div", { className: "gd-flex-item headline-primary-item s-headline-primary-item", style: customStyle, children: _jsx(BaseHeadlineDataItem, { dataItem: primaryItem.data, evaluationType: primaryItem.evaluationType, elementType: primaryItem.elementType, shouldHideTitle: true, includeHeightCheck: true }) }));
5
12
  }
@@ -1,3 +1,3 @@
1
- import { type IBaseHeadlineDataItemProps } from "../../../interfaces/BaseHeadlines.js";
1
+ import { type DataItemComponent } from "../../../interfaces/BaseHeadlines.js";
2
2
  import { type IHeadlineDataItem } from "../../../interfaces/Headlines.js";
3
- export declare const BaseHeadlineDataItem: import("react").ComponentType<IBaseHeadlineDataItemProps<IHeadlineDataItem> & import("../../../interfaces/BaseHeadlines.js").IWithTitleProps<import("../../../interfaces/BaseHeadlines.js").IBaseHeadlineTitle>>;
3
+ export declare const BaseHeadlineDataItem: DataItemComponent<IHeadlineDataItem>;
@@ -1,2 +1,2 @@
1
- import { type IBaseHeadlineDataItemProps, type IComparisonDataItem } from "../../../../interfaces/BaseHeadlines.js";
2
- export declare const ComparisonDataItem: import("react").ComponentType<IBaseHeadlineDataItemProps<IComparisonDataItem> & import("../../../../interfaces/BaseHeadlines.js").IWithTitleProps<import("../../../../interfaces/BaseHeadlines.js").IBaseHeadlineTitle>>;
1
+ import { type DataItemComponent, type IComparisonDataItem } from "../../../../interfaces/BaseHeadlines.js";
2
+ export declare const ComparisonDataItem: DataItemComponent<IComparisonDataItem>;
@@ -1,2 +1,2 @@
1
- import { type IBaseHeadlineDataItemProps, type IComparisonDataWithSubItem } from "../../../../interfaces/BaseHeadlines.js";
2
- export declare const ComparisonDataWithSubItem: import("react").ComponentType<IBaseHeadlineDataItemProps<IComparisonDataWithSubItem> & import("../../../../interfaces/BaseHeadlines.js").IWithTitleProps<import("../../../../interfaces/BaseHeadlines.js").IBaseHeadlineTitle>>;
1
+ import { type DataItemComponent, type IComparisonDataWithSubItem } from "../../../../interfaces/BaseHeadlines.js";
2
+ export declare const ComparisonDataWithSubItem: DataItemComponent<IComparisonDataWithSubItem>;
@@ -3,7 +3,6 @@ import { type HeadlineElementType } from "@gooddata/sdk-ui";
3
3
  import { type IComparison } from "../../../../interfaces/comparison.js";
4
4
  import { type IHeadlineDataItem } from "./Headlines.js";
5
5
  export declare const COMPARISON_DEFAULT_OBJECT: IComparison;
6
- export type BaseHeadlineDataItemComponentType<T extends IBaseHeadlineTitle & IBaseHeadlineDrillable> = ComponentType<IBaseHeadlineDataItemProps<T> & IWithTitleProps<T> & IWithDrillableItemProps<T>>;
7
6
  export interface IBaseHeadlineTitle {
8
7
  title?: string;
9
8
  }
@@ -28,12 +27,29 @@ export declare enum EvaluationType {
28
27
  EQUALS_VALUE = "equals",
29
28
  POSITIVE_VALUE = "positive"
30
29
  }
31
- export interface IBaseHeadlineItem<T extends IBaseHeadlineTitle & IBaseHeadlineDrillable> {
32
- data: T;
33
- baseHeadlineDataItemComponent: BaseHeadlineDataItemComponentType<T>;
34
- evaluationType?: EvaluationType | undefined | null;
30
+ /**
31
+ * A `DataItemComponent<IHeadlineDataItem>`, etc. is basically equivalent to `typeof BaseHeadlineDataItem` (the component),
32
+ * but makes sure there are no cyclical dependencies (dependency cruiser does not exclude type only imports from the circular check).
33
+ */
34
+ export type DataItemComponent<T extends IBaseHeadlineTitle> = ComponentType<IBaseHeadlineDataItemProps<T> & IWithTitleProps<T>>;
35
+ export type IBaseHeadlineItem = ({
36
+ baseHeadlineDataItemComponent: DataItemComponent<IHeadlineDataItem>;
37
+ data: IHeadlineDataItem;
38
+ } | {
39
+ baseHeadlineDataItemComponent: DataItemComponent<IComparisonDataItem>;
40
+ data: IComparisonDataItem;
41
+ } | {
42
+ baseHeadlineDataItemComponent: DataItemComponent<IComparisonDataWithSubItem>;
43
+ data: IComparisonDataWithSubItem;
44
+ }) & {
45
+ evaluationType?: EvaluationType | null;
35
46
  elementType?: HeadlineElementType;
36
- }
47
+ };
48
+ export type BaseHeadlineDataItemComponentType = ComponentType<IBaseHeadlineDataItemProps<IBaseHeadlineItem["data"]> & {
49
+ shouldHideTitle?: boolean;
50
+ titleRef?: RefObject<HTMLDivElement>;
51
+ elementType?: HeadlineElementType;
52
+ }>;
37
53
  export interface IComparisonDataItem extends IBaseHeadlineValueItem, IBaseHeadlineTitle {
38
54
  }
39
55
  export interface IComparisonDataWithSubItem extends IBaseHeadlineTitle {
@@ -42,11 +58,10 @@ export interface IComparisonDataWithSubItem extends IBaseHeadlineTitle {
42
58
  }
43
59
  export type ComparisonDataItem = IComparisonDataItem | IComparisonDataWithSubItem;
44
60
  export declare function isComparisonDataWithSubItem(dataItem: ComparisonDataItem): dataItem is IComparisonDataWithSubItem;
45
- export type BaseHeadlineItemAccepted = IHeadlineDataItem | ComparisonDataItem;
46
61
  export interface IBaseHeadlineData {
47
- primaryItem: IBaseHeadlineItem<BaseHeadlineItemAccepted>;
48
- secondaryItem?: IBaseHeadlineItem<BaseHeadlineItemAccepted> | null;
49
- tertiaryItem?: IBaseHeadlineItem<BaseHeadlineItemAccepted> | null;
62
+ primaryItem: IBaseHeadlineItem;
63
+ secondaryItem?: IBaseHeadlineItem | null;
64
+ tertiaryItem?: IBaseHeadlineItem | null;
50
65
  }
51
66
  export interface IBaseHeadlineDataItemProps<T> {
52
67
  dataItem: T;
@@ -4,4 +4,6 @@ import { type IBaseHeadlineData, type IBaseHeadlineItem } from "../interfaces/Ba
4
4
  import { type IHeadlineDataItem } from "../interfaces/Headlines.js";
5
5
  import { type IHeadlineExecutionData } from "./HeadlineTransformationUtils.js";
6
6
  export declare function getBaseHeadlineData(dataView: IDataView, drillableItems: ExplicitDrill[] | undefined): IBaseHeadlineData;
7
- export declare function createBaseHeadlineItem(executionData: IHeadlineExecutionData | undefined, isDrillable: boolean, elementType: HeadlineElementType): IBaseHeadlineItem<IHeadlineDataItem> | null;
7
+ export declare function createBaseHeadlineItem(executionData: IHeadlineExecutionData | undefined, isDrillable: boolean, elementType: HeadlineElementType): Extract<IBaseHeadlineItem, {
8
+ data: IHeadlineDataItem;
9
+ }> | null;
@@ -27,11 +27,7 @@ export function getBaseHeadlineData(dataView, drillableItems) {
27
27
  }
28
28
  const secondaryItem = createBaseHeadlineItem(secondaryItemData, secondaryItemHeader && isSomeHeaderPredicateMatched(drillablePredicates, secondaryItemHeader, dv), "secondaryValue");
29
29
  const tertiaryItem = createBaseHeadlineItem(tertiaryItemData, !!tertiaryItemHeader && isSomeHeaderPredicateMatched(drillablePredicates, tertiaryItemHeader, dv), "secondaryValue");
30
- return {
31
- primaryItem: primaryItem,
32
- secondaryItem: secondaryItem,
33
- tertiaryItem: tertiaryItem,
34
- };
30
+ return { primaryItem, secondaryItem, tertiaryItem };
35
31
  }
36
32
  export function createBaseHeadlineItem(executionData, isDrillable, elementType) {
37
33
  const data = createHeadlineDataItem(executionData, isDrillable);
@@ -17,8 +17,8 @@ export function getComparisonBaseHeadlineData(dataView, drillableItems, comparis
17
17
  const secondaryItem = createBaseHeadlineItem(secondaryItemData, isSomeHeaderPredicateMatched(drillablePredicates, secondaryItemHeader, dv), "secondaryValue");
18
18
  const comparisonItem = createComparisonItem(executionData, dv.meta().isDerivedMeasure(secondaryItemHeader), primaryItem?.data?.format, comparison, intl);
19
19
  const baseHeadlineData = {
20
- primaryItem: primaryItem,
21
- secondaryItem: secondaryItem,
20
+ primaryItem,
21
+ secondaryItem,
22
22
  tertiaryItem: comparisonItem,
23
23
  };
24
24
  return positionBaseHeadlineItems(baseHeadlineData, comparison);
@@ -5,7 +5,7 @@
5
5
  "toolPackages": [
6
6
  {
7
7
  "packageName": "@microsoft/api-extractor",
8
- "packageVersion": "7.55.2"
8
+ "packageVersion": "7.58.7"
9
9
  }
10
10
  ]
11
11
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gooddata/sdk-ui-charts",
3
- "version": "11.41.0-alpha.2",
3
+ "version": "11.41.0-alpha.4",
4
4
  "description": "GoodData.UI SDK - Charts",
5
5
  "license": "LicenseRef-LICENSE",
6
6
  "author": "GoodData Corporation",
@@ -68,14 +68,14 @@
68
68
  "react-measure": "^2.5.2",
69
69
  "ts-invariant": "0.10.3",
70
70
  "tslib": "2.8.1",
71
- "uuid": "11.1.0",
72
- "@gooddata/sdk-backend-spi": "11.41.0-alpha.2",
73
- "@gooddata/sdk-model": "11.41.0-alpha.2",
74
- "@gooddata/sdk-ui": "11.41.0-alpha.2",
75
- "@gooddata/sdk-ui-theme-provider": "11.41.0-alpha.2",
76
- "@gooddata/sdk-ui-kit": "11.41.0-alpha.2",
77
- "@gooddata/sdk-ui-vis-commons": "11.41.0-alpha.2",
78
- "@gooddata/util": "11.41.0-alpha.2"
71
+ "uuid": "11.1.1",
72
+ "@gooddata/sdk-backend-spi": "11.41.0-alpha.4",
73
+ "@gooddata/sdk-model": "11.41.0-alpha.4",
74
+ "@gooddata/sdk-ui": "11.41.0-alpha.4",
75
+ "@gooddata/sdk-ui-kit": "11.41.0-alpha.4",
76
+ "@gooddata/sdk-ui-theme-provider": "11.41.0-alpha.4",
77
+ "@gooddata/sdk-ui-vis-commons": "11.41.0-alpha.4",
78
+ "@gooddata/util": "11.41.0-alpha.4"
79
79
  },
80
80
  "devDependencies": {
81
81
  "@microsoft/api-documenter": "^7.17.0",
@@ -120,11 +120,11 @@
120
120
  "typescript": "5.9.3",
121
121
  "vitest": "4.1.8",
122
122
  "vitest-dom": "0.1.1",
123
- "@gooddata/eslint-config": "11.41.0-alpha.2",
124
- "@gooddata/oxlint-config": "11.41.0-alpha.2",
125
- "@gooddata/reference-workspace": "11.41.0-alpha.2",
126
- "@gooddata/stylelint-config": "11.41.0-alpha.2",
127
- "@gooddata/sdk-backend-mockingbird": "11.41.0-alpha.2"
123
+ "@gooddata/eslint-config": "11.41.0-alpha.4",
124
+ "@gooddata/oxlint-config": "11.41.0-alpha.4",
125
+ "@gooddata/sdk-backend-mockingbird": "11.41.0-alpha.4",
126
+ "@gooddata/stylelint-config": "11.41.0-alpha.4",
127
+ "@gooddata/reference-workspace": "11.41.0-alpha.4"
128
128
  },
129
129
  "peerDependencies": {
130
130
  "react": "^18.0.0 || ^19.0.0",