@levi-gemcommerce/analytics 0.0.1-dev.7 → 0.0.1-dev.8

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 (50) hide show
  1. package/dist/esm/components/GSelectableMetricChartCard/GSelectableMetricChartCard.d.ts +5 -3
  2. package/dist/esm/components/GSelectableMetricChartCard/MetricChartTab.d.ts +2 -2
  3. package/dist/esm/components/MetricDonutChartCard/MetricDonutChartCard.d.ts +16 -0
  4. package/dist/esm/components/MetricDonutChartCard/index.d.ts +2 -0
  5. package/dist/esm/components/MetricDonutChartCard/utils/donut-chart.d.ts +20 -0
  6. package/dist/esm/components/MetricDonutChartCard/utils/index.d.ts +1 -0
  7. package/dist/esm/components/SingleMetricChartCard/SingleMetricChartCard.d.ts +3 -1
  8. package/dist/esm/components/common/chart/MetricChart.d.ts +5 -1
  9. package/dist/esm/components/common/chart/MetricDonutChartSkeleton.d.ts +1 -0
  10. package/dist/esm/components/common/chart/index.d.ts +1 -0
  11. package/dist/esm/components/index.d.ts +1 -0
  12. package/dist/esm/constants/breakdown-targets.d.ts +5 -0
  13. package/dist/esm/constants/index.d.ts +1 -0
  14. package/dist/esm/core/gemxql/helpers/extractQueryData.d.ts +1 -1
  15. package/dist/esm/hooks/index.d.ts +2 -0
  16. package/dist/esm/hooks/useFormatLineChartData.d.ts +11 -0
  17. package/dist/esm/hooks/useWindowSize.d.ts +18 -0
  18. package/dist/esm/index.d.ts +2 -0
  19. package/dist/esm/index.js +668 -52
  20. package/dist/esm/index.mjs +668 -52
  21. package/dist/esm/providers/MetricChartProvider.d.ts +5 -1
  22. package/dist/esm/types/chart.d.ts +15 -1
  23. package/dist/esm/types/metric.d.ts +4 -1
  24. package/dist/esm/types.js +3 -0
  25. package/dist/esm/types.mjs +3 -0
  26. package/dist/style.css +1 -1
  27. package/dist/umd/esm/components/GSelectableMetricChartCard/GSelectableMetricChartCard.d.ts +5 -3
  28. package/dist/umd/esm/components/GSelectableMetricChartCard/MetricChartTab.d.ts +2 -2
  29. package/dist/umd/esm/components/MetricDonutChartCard/MetricDonutChartCard.d.ts +16 -0
  30. package/dist/umd/esm/components/MetricDonutChartCard/index.d.ts +2 -0
  31. package/dist/umd/esm/components/MetricDonutChartCard/utils/donut-chart.d.ts +20 -0
  32. package/dist/umd/esm/components/MetricDonutChartCard/utils/index.d.ts +1 -0
  33. package/dist/umd/esm/components/SingleMetricChartCard/SingleMetricChartCard.d.ts +3 -1
  34. package/dist/umd/esm/components/common/chart/MetricChart.d.ts +5 -1
  35. package/dist/umd/esm/components/common/chart/MetricDonutChartSkeleton.d.ts +1 -0
  36. package/dist/umd/esm/components/common/chart/index.d.ts +1 -0
  37. package/dist/umd/esm/components/index.d.ts +1 -0
  38. package/dist/umd/esm/constants/breakdown-targets.d.ts +5 -0
  39. package/dist/umd/esm/constants/index.d.ts +1 -0
  40. package/dist/umd/esm/core/gemxql/helpers/extractQueryData.d.ts +1 -1
  41. package/dist/umd/esm/hooks/index.d.ts +2 -0
  42. package/dist/umd/esm/hooks/useFormatLineChartData.d.ts +11 -0
  43. package/dist/umd/esm/hooks/useWindowSize.d.ts +18 -0
  44. package/dist/umd/esm/index.d.ts +2 -0
  45. package/dist/umd/esm/providers/MetricChartProvider.d.ts +5 -1
  46. package/dist/umd/esm/types/chart.d.ts +15 -1
  47. package/dist/umd/esm/types/metric.d.ts +4 -1
  48. package/dist/umd/index.js +1 -1
  49. package/dist/umd/types.js +1 -1
  50. package/package.json +1 -1
@@ -1,14 +1,16 @@
1
- import type { AllChartsDataMap, IMetricCardItem } from '@/types';
1
+ import type { ColumnTypesMap } from '@/core/gemxql';
2
+ import type { AllChartsDataMap, EMetricKey, IMetricCardItem } from '@/types';
2
3
  import type { ReactElement } from 'react';
3
4
  export interface IProps {
4
5
  metricInfo: IMetricCardItem[];
5
6
  dataChart: AllChartsDataMap;
6
- defaultActiveTab?: string;
7
+ defaultActiveTab?: EMetricKey;
7
8
  isLoading?: boolean;
8
9
  isEmptyMetricData?: boolean;
9
10
  hideComparison?: boolean;
10
11
  currentPeriodLabel?: string;
11
12
  previousPeriodLabel?: string;
13
+ columnTypes?: ColumnTypesMap;
12
14
  onclickMetric?: (key: string) => void;
13
15
  }
14
- export declare const GSelectableMetricChartCard: ({ metricInfo, dataChart, defaultActiveTab, isLoading, isEmptyMetricData, hideComparison, currentPeriodLabel, previousPeriodLabel, }: IProps) => ReactElement;
16
+ export declare const GSelectableMetricChartCard: ({ metricInfo, dataChart, defaultActiveTab, isLoading, isEmptyMetricData, hideComparison, currentPeriodLabel, previousPeriodLabel, columnTypes, }: IProps) => ReactElement;
@@ -1,11 +1,11 @@
1
1
  import type { ReactElement } from 'react';
2
- import type { IMetricCardItem } from '../../types';
2
+ import type { EMetricKey, IMetricCardItem } from '../../types';
3
3
  export interface IProps {
4
4
  item: IMetricCardItem;
5
5
  isActive: boolean;
6
6
  isLoading?: boolean;
7
7
  hideComparison?: boolean;
8
- onSelect: (key: string) => void;
8
+ onSelect: (key: EMetricKey) => void;
9
9
  onClickTitle?: (key: string) => void;
10
10
  }
11
11
  export declare const MetricChartTab: ({ item, isActive, isLoading, hideComparison, onSelect, onClickTitle, }: IProps) => ReactElement;
@@ -0,0 +1,16 @@
1
+ import type { IDonutMetricRow, IDonutTarget } from '@/types';
2
+ import type { EMetricKey } from '@/types';
3
+ import type { ReactElement } from 'react';
4
+ export interface IProps {
5
+ label: string;
6
+ metricKey: EMetricKey;
7
+ targets: IDonutTarget[];
8
+ totalsRow?: IDonutMetricRow;
9
+ comparisonTotalsRow?: IDonutMetricRow;
10
+ sort?: boolean;
11
+ isLoading?: boolean;
12
+ isEmptyMetricData?: boolean;
13
+ minHeight?: number;
14
+ onClick: () => void;
15
+ }
16
+ export declare const MetricDonutChartCard: ({ label, metricKey, targets, totalsRow, comparisonTotalsRow, sort, isLoading, isEmptyMetricData, minHeight, onClick, }: IProps) => ReactElement;
@@ -0,0 +1,2 @@
1
+ export { MetricDonutChartCard } from './MetricDonutChartCard';
2
+ export type { IProps as IMetricDonutChartCardProps } from './MetricDonutChartCard';
@@ -0,0 +1,20 @@
1
+ import type { EMetricKey, IDonutMetricRow, IDonutTarget, IMetricDonutChartData } from '@/types';
2
+ import type { IBreakdownItem } from '@/core/gemxql';
3
+ interface IComputeDonutDataParams {
4
+ name: string;
5
+ currentValue: number;
6
+ prevValue: number;
7
+ hasPreviousData: boolean;
8
+ }
9
+ interface IBuildBreakdownDonutDataParams<T extends string> {
10
+ targets: IDonutTarget<T>[];
11
+ metricKey: EMetricKey;
12
+ totalsRow?: IDonutMetricRow;
13
+ comparisonTotalsRow?: IDonutMetricRow;
14
+ sort?: boolean;
15
+ }
16
+ export declare const calculatePercentageChange: (current: number, previous: number) => string | undefined;
17
+ export declare const computeDonutData: ({ name, currentValue, prevValue, hasPreviousData, }: IComputeDonutDataParams) => IMetricDonutChartData;
18
+ export declare const getTotalCountByType: (stats: IBreakdownItem[] | undefined, type: string) => number;
19
+ export declare const buildBreakdownDonutData: <T extends string>({ targets, metricKey, totalsRow, comparisonTotalsRow, sort, }: IBuildBreakdownDonutDataParams<T>) => IMetricDonutChartData[];
20
+ export {};
@@ -0,0 +1 @@
1
+ export * from './donut-chart';
@@ -1,12 +1,14 @@
1
1
  import type { DataSeries } from '@shopify/polaris-viz-core';
2
2
  import type { ReactElement } from 'react';
3
3
  import type { IMetricCardItem } from '../../types';
4
+ import type { ColumnTypesMap } from '@/core/gemxql';
4
5
  export interface IProps {
5
6
  metricInfo: IMetricCardItem;
6
7
  isLoading?: boolean;
7
8
  hideComparison?: boolean;
8
9
  isEmptyMetricData?: boolean;
9
10
  lineChartData: DataSeries[];
11
+ columnTypes?: ColumnTypesMap;
10
12
  onClickTitle?: (key: string) => void;
11
13
  }
12
- export declare const SingleMetricChartCard: ({ metricInfo, lineChartData, isLoading, hideComparison, isEmptyMetricData, onClickTitle, }: IProps) => ReactElement;
14
+ export declare const SingleMetricChartCard: ({ metricInfo, lineChartData, isLoading, hideComparison, columnTypes, isEmptyMetricData, onClickTitle, }: IProps) => ReactElement;
@@ -1,8 +1,12 @@
1
1
  import type { DataSeries } from '@shopify/polaris-viz';
2
2
  import type { ReactElement } from 'react';
3
+ import type { ColumnTypesMap } from '@/core/gemxql';
4
+ import type { EMetricKey } from '@/types';
3
5
  export interface IProps {
4
6
  lineChartData: DataSeries[];
5
7
  isLoading?: boolean;
6
8
  isEmptyMetricData?: boolean;
9
+ columnTypes?: ColumnTypesMap;
10
+ metricKey?: EMetricKey;
7
11
  }
8
- export declare const MetricChart: ({ lineChartData, isLoading, isEmptyMetricData }: IProps) => ReactElement;
12
+ export declare const MetricChart: ({ lineChartData, isLoading, isEmptyMetricData, columnTypes, metricKey, }: IProps) => ReactElement;
@@ -0,0 +1 @@
1
+ export declare const MetricDonutChartSkeleton: () => import("react/jsx-runtime").JSX.Element;
@@ -2,6 +2,7 @@ export { GChartSkeleton } from './GChartSkeleton';
2
2
  export { MetricChart } from './MetricChart';
3
3
  export { MetricChartEmpty } from './MetricChartEmpty';
4
4
  export { MetricChartTooltip } from './MetricChartTooltip';
5
+ export { MetricDonutChartSkeleton } from './MetricDonutChartSkeleton';
5
6
  export { MetricInfoBlock } from './MetricInfoBlock';
6
7
  export { MetricInfoSkeleton } from './MetricInfoSkeleton';
7
8
  export { MetricValueSummary } from './MetricValueSummary';
@@ -1,2 +1,3 @@
1
1
  export * from './GSelectableMetricChartCard';
2
+ export * from './MetricDonutChartCard';
2
3
  export * from './SingleMetricChartCard';
@@ -0,0 +1,5 @@
1
+ import type { IDonutTarget } from '@/types';
2
+ import { EDeviceType, ETrafficSourceType, EVisitorType } from '@/core/gemxql';
3
+ export declare const TARGET_VISITOR: IDonutTarget<EVisitorType>[];
4
+ export declare const TARGET_DEVICES: IDonutTarget<EDeviceType>[];
5
+ export declare const TARGET_CHANNEL: IDonutTarget<ETrafficSourceType>[];
@@ -1,3 +1,4 @@
1
1
  export * from './analytic-metric-tooltip';
2
+ export * from './breakdown-targets';
2
3
  export * from './chart';
3
4
  export * from './thumbnail';
@@ -1,5 +1,5 @@
1
1
  import type { GemxQlQueryResponse, TableDataType } from '../graphql';
2
2
  export type ColumnTypesMap = Record<string, TableDataType>;
3
3
  export declare const extractQueryRows: (response?: GemxQlQueryResponse) => Record<string, unknown>[];
4
- export declare const extractQueryColumns: (response?: GemxQlQueryResponse) => import("../graphql").Maybe<Pick<import("../graphql").IColumn, "displayName" | "dataType" | "name">>[];
4
+ export declare const extractQueryColumns: (response?: GemxQlQueryResponse) => import("../graphql").Maybe<Pick<import("../graphql").IColumn, "dataType" | "displayName" | "name">>[];
5
5
  export declare const extractColumnTypes: (response?: GemxQlQueryResponse) => ColumnTypesMap;
@@ -0,0 +1,2 @@
1
+ export { useFormatLineChartData } from './useFormatLineChartData';
2
+ export { useWindowSize } from './useWindowSize';
@@ -0,0 +1,11 @@
1
+ import type { EMetricKey } from '@/types/metric';
2
+ import type { ColumnTypesMap } from '@/core/gemxql';
3
+ interface IProps {
4
+ metricKey?: EMetricKey;
5
+ columnTypes: ColumnTypesMap;
6
+ }
7
+ export declare const useFormatLineChartData: ({ metricKey, columnTypes }: IProps) => {
8
+ formatValue: (value: number) => string;
9
+ yAxisOptions: Partial<import("@shopify/polaris-viz-core").YAxisOptions>;
10
+ };
11
+ export {};
@@ -0,0 +1,18 @@
1
+ export interface IWindowSize {
2
+ width: number;
3
+ height: number;
4
+ }
5
+ export interface IUseWindowSizeResult {
6
+ windowSize: IWindowSize;
7
+ windowWidth: {
8
+ xs: boolean;
9
+ md: boolean;
10
+ lg: boolean;
11
+ xsDown: boolean;
12
+ '1200Down': boolean;
13
+ '1040Down': boolean;
14
+ };
15
+ isMobileTabletView: boolean;
16
+ isMobileView: boolean;
17
+ }
18
+ export declare const useWindowSize: () => IUseWindowSizeResult;
@@ -1,2 +1,4 @@
1
1
  export * from './components';
2
+ export * from './constants';
2
3
  export * from './types';
4
+ export { EAnalyticColumnKey, EDeviceType, ETrafficSourceType, EVisitorType } from './core/gemxql';