@levi-gemcommerce/analytics 0.0.1-dev.2 → 0.0.1-dev.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.
- package/dist/esm/core/gemxql/api/index.d.ts +2 -0
- package/dist/esm/core/gemxql/api/useCustomGemXQlQuery.d.ts +16 -0
- package/dist/esm/core/gemxql/api/useGemxQlNamedQuery.d.ts +14 -0
- package/dist/esm/core/gemxql/builder/build-gemxql-query.d.ts +15 -0
- package/dist/esm/core/gemxql/builder/clauses/condition-query.d.ts +12 -0
- package/dist/esm/core/gemxql/builder/clauses/from-query.d.ts +6 -0
- package/dist/esm/core/gemxql/builder/clauses/group-query.d.ts +11 -0
- package/dist/esm/core/gemxql/builder/clauses/index.d.ts +11 -0
- package/dist/esm/core/gemxql/builder/clauses/limit-query.d.ts +6 -0
- package/dist/esm/core/gemxql/builder/clauses/mode-query.d.ts +7 -0
- package/dist/esm/core/gemxql/builder/clauses/offset-query.d.ts +6 -0
- package/dist/esm/core/gemxql/builder/clauses/order-by-query.d.ts +7 -0
- package/dist/esm/core/gemxql/builder/clauses/show-query.d.ts +6 -0
- package/dist/esm/core/gemxql/builder/clauses/time-query.d.ts +16 -0
- package/dist/esm/core/gemxql/builder/clauses/time-series-query.d.ts +6 -0
- package/dist/esm/core/gemxql/builder/clauses/timezone-query.d.ts +6 -0
- package/dist/esm/core/gemxql/builder/configs/date-formats.d.ts +1 -0
- package/dist/esm/core/gemxql/builder/configs/index.d.ts +3 -0
- package/dist/esm/core/gemxql/builder/configs/keywords.d.ts +2 -0
- package/dist/esm/core/gemxql/builder/configs/query-defaults.d.ts +1 -0
- package/dist/esm/core/gemxql/builder/filters/build-extra-conditions.d.ts +3 -0
- package/dist/esm/core/gemxql/builder/filters/build-filter-conditions.d.ts +22 -0
- package/dist/esm/core/gemxql/builder/filters/index.d.ts +2 -0
- package/dist/esm/core/gemxql/builder/helpers/date-query-helpers.d.ts +5 -0
- package/dist/esm/core/gemxql/builder/helpers/index.d.ts +1 -0
- package/dist/esm/core/gemxql/builder/helpers/is-valid-query-input.d.ts +1 -0
- package/dist/esm/core/gemxql/builder/index.d.ts +6 -0
- package/dist/esm/core/gemxql/builder/parse-gemxql-query.d.ts +4 -0
- package/dist/esm/core/gemxql/constants/analytic-data.d.ts +2 -0
- package/dist/esm/core/gemxql/constants/column-keys.d.ts +4 -0
- package/dist/esm/core/gemxql/constants/index.d.ts +4 -0
- package/dist/esm/core/gemxql/constants/operators.d.ts +2 -0
- package/dist/esm/core/gemxql/constants/row-reader-mode.d.ts +5 -0
- package/dist/esm/core/gemxql/graphql/fragments/gemxql.generated.d.ts +23 -0
- package/dist/esm/core/gemxql/graphql/index.d.ts +2 -0
- package/dist/esm/core/gemxql/graphql/queries/gemxql.generated.d.ts +9 -0
- package/dist/esm/core/gemxql/helpers/columnKeys.d.ts +3 -0
- package/dist/esm/core/gemxql/helpers/extractQueryData.d.ts +5 -0
- package/dist/esm/core/gemxql/helpers/formatAnalyticData.d.ts +10 -0
- package/dist/esm/core/gemxql/helpers/formatAnalyticDate.d.ts +1 -0
- package/dist/esm/core/gemxql/helpers/getTimeDimension.d.ts +3 -0
- package/dist/esm/core/gemxql/helpers/hasMetricData.d.ts +1 -0
- package/dist/esm/core/gemxql/helpers/index.d.ts +8 -0
- package/dist/esm/core/gemxql/helpers/parseJsonFields.d.ts +9 -0
- package/dist/esm/core/gemxql/helpers/readNumeric.d.ts +3 -0
- package/dist/esm/core/gemxql/hooks/index.d.ts +2 -0
- package/dist/esm/core/gemxql/hooks/useAnalyticData.d.ts +24 -0
- package/dist/esm/core/gemxql/hooks/useGemXQlPagination.d.ts +25 -0
- package/dist/esm/core/gemxql/index.d.ts +10 -0
- package/dist/esm/core/gemxql/types/analytic-data.d.ts +24 -0
- package/dist/esm/core/gemxql/types/analytic-mode.d.ts +5 -0
- package/dist/esm/core/gemxql/types/analytic-source.d.ts +4 -0
- package/dist/esm/core/gemxql/types/breakdown-items.d.ts +19 -0
- package/dist/esm/core/gemxql/types/date-filter.d.ts +10 -0
- package/dist/esm/core/gemxql/types/extra-condition.d.ts +28 -0
- package/dist/esm/core/gemxql/types/field-filters.d.ts +18 -0
- package/dist/esm/core/gemxql/types/field-operators.d.ts +8 -0
- package/dist/esm/core/gemxql/types/filter-types.d.ts +28 -0
- package/dist/esm/core/gemxql/types/group-with-clause.d.ts +12 -0
- package/dist/esm/core/gemxql/types/index.d.ts +14 -0
- package/dist/esm/core/gemxql/types/order-by.d.ts +10 -0
- package/dist/esm/core/gemxql/types/page-fields.d.ts +22 -0
- package/dist/esm/core/gemxql/types/row-reader-mode.d.ts +6 -0
- package/dist/esm/core/gemxql/types/time-dimension.d.ts +8 -0
- package/dist/esm/core/gemxql/utils/analytics.d.ts +13 -0
- package/dist/esm/core/gemxql/utils/dayjs.d.ts +8 -0
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +13 -4
- package/dist/esm/index.mjs +13 -4
- package/dist/umd/esm/core/gemxql/api/index.d.ts +2 -0
- package/dist/umd/esm/core/gemxql/api/useCustomGemXQlQuery.d.ts +16 -0
- package/dist/umd/esm/core/gemxql/api/useGemxQlNamedQuery.d.ts +14 -0
- package/dist/umd/esm/core/gemxql/builder/build-gemxql-query.d.ts +15 -0
- package/dist/umd/esm/core/gemxql/builder/clauses/condition-query.d.ts +12 -0
- package/dist/umd/esm/core/gemxql/builder/clauses/from-query.d.ts +6 -0
- package/dist/umd/esm/core/gemxql/builder/clauses/group-query.d.ts +11 -0
- package/dist/umd/esm/core/gemxql/builder/clauses/index.d.ts +11 -0
- package/dist/umd/esm/core/gemxql/builder/clauses/limit-query.d.ts +6 -0
- package/dist/umd/esm/core/gemxql/builder/clauses/mode-query.d.ts +7 -0
- package/dist/umd/esm/core/gemxql/builder/clauses/offset-query.d.ts +6 -0
- package/dist/umd/esm/core/gemxql/builder/clauses/order-by-query.d.ts +7 -0
- package/dist/umd/esm/core/gemxql/builder/clauses/show-query.d.ts +6 -0
- package/dist/umd/esm/core/gemxql/builder/clauses/time-query.d.ts +16 -0
- package/dist/umd/esm/core/gemxql/builder/clauses/time-series-query.d.ts +6 -0
- package/dist/umd/esm/core/gemxql/builder/clauses/timezone-query.d.ts +6 -0
- package/dist/umd/esm/core/gemxql/builder/configs/date-formats.d.ts +1 -0
- package/dist/umd/esm/core/gemxql/builder/configs/index.d.ts +3 -0
- package/dist/umd/esm/core/gemxql/builder/configs/keywords.d.ts +2 -0
- package/dist/umd/esm/core/gemxql/builder/configs/query-defaults.d.ts +1 -0
- package/dist/umd/esm/core/gemxql/builder/filters/build-extra-conditions.d.ts +3 -0
- package/dist/umd/esm/core/gemxql/builder/filters/build-filter-conditions.d.ts +22 -0
- package/dist/umd/esm/core/gemxql/builder/filters/index.d.ts +2 -0
- package/dist/umd/esm/core/gemxql/builder/helpers/date-query-helpers.d.ts +5 -0
- package/dist/umd/esm/core/gemxql/builder/helpers/index.d.ts +1 -0
- package/dist/umd/esm/core/gemxql/builder/helpers/is-valid-query-input.d.ts +1 -0
- package/dist/umd/esm/core/gemxql/builder/index.d.ts +6 -0
- package/dist/umd/esm/core/gemxql/builder/parse-gemxql-query.d.ts +4 -0
- package/dist/umd/esm/core/gemxql/constants/analytic-data.d.ts +2 -0
- package/dist/umd/esm/core/gemxql/constants/column-keys.d.ts +4 -0
- package/dist/umd/esm/core/gemxql/constants/index.d.ts +4 -0
- package/dist/umd/esm/core/gemxql/constants/operators.d.ts +2 -0
- package/dist/umd/esm/core/gemxql/constants/row-reader-mode.d.ts +5 -0
- package/dist/umd/esm/core/gemxql/graphql/fragments/gemxql.generated.d.ts +23 -0
- package/dist/umd/esm/core/gemxql/graphql/index.d.ts +2 -0
- package/dist/umd/esm/core/gemxql/graphql/queries/gemxql.generated.d.ts +9 -0
- package/dist/umd/esm/core/gemxql/helpers/columnKeys.d.ts +3 -0
- package/dist/umd/esm/core/gemxql/helpers/extractQueryData.d.ts +5 -0
- package/dist/umd/esm/core/gemxql/helpers/formatAnalyticData.d.ts +10 -0
- package/dist/umd/esm/core/gemxql/helpers/formatAnalyticDate.d.ts +1 -0
- package/dist/umd/esm/core/gemxql/helpers/getTimeDimension.d.ts +3 -0
- package/dist/umd/esm/core/gemxql/helpers/hasMetricData.d.ts +1 -0
- package/dist/umd/esm/core/gemxql/helpers/index.d.ts +8 -0
- package/dist/umd/esm/core/gemxql/helpers/parseJsonFields.d.ts +9 -0
- package/dist/umd/esm/core/gemxql/helpers/readNumeric.d.ts +3 -0
- package/dist/umd/esm/core/gemxql/hooks/index.d.ts +2 -0
- package/dist/umd/esm/core/gemxql/hooks/useAnalyticData.d.ts +24 -0
- package/dist/umd/esm/core/gemxql/hooks/useGemXQlPagination.d.ts +25 -0
- package/dist/umd/esm/core/gemxql/index.d.ts +10 -0
- package/dist/umd/esm/core/gemxql/types/analytic-data.d.ts +24 -0
- package/dist/umd/esm/core/gemxql/types/analytic-mode.d.ts +5 -0
- package/dist/umd/esm/core/gemxql/types/analytic-source.d.ts +4 -0
- package/dist/umd/esm/core/gemxql/types/breakdown-items.d.ts +19 -0
- package/dist/umd/esm/core/gemxql/types/date-filter.d.ts +10 -0
- package/dist/umd/esm/core/gemxql/types/extra-condition.d.ts +28 -0
- package/dist/umd/esm/core/gemxql/types/field-filters.d.ts +18 -0
- package/dist/umd/esm/core/gemxql/types/field-operators.d.ts +8 -0
- package/dist/umd/esm/core/gemxql/types/filter-types.d.ts +28 -0
- package/dist/umd/esm/core/gemxql/types/group-with-clause.d.ts +12 -0
- package/dist/umd/esm/core/gemxql/types/index.d.ts +14 -0
- package/dist/umd/esm/core/gemxql/types/order-by.d.ts +10 -0
- package/dist/umd/esm/core/gemxql/types/page-fields.d.ts +22 -0
- package/dist/umd/esm/core/gemxql/types/row-reader-mode.d.ts +6 -0
- package/dist/umd/esm/core/gemxql/types/time-dimension.d.ts +8 -0
- package/dist/umd/esm/core/gemxql/utils/analytics.d.ts +13 -0
- package/dist/umd/esm/core/gemxql/utils/dayjs.d.ts +8 -0
- package/dist/umd/esm/index.d.ts +1 -0
- package/dist/umd/index.js +1 -1
- package/package.json +21 -6
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export declare enum GPaginationDirection {
|
|
2
|
+
NEXT = "NEXT",
|
|
3
|
+
PREV = "PREV"
|
|
4
|
+
}
|
|
5
|
+
export interface GPaginationProps {
|
|
6
|
+
currentPage: number;
|
|
7
|
+
totalPages: number;
|
|
8
|
+
loading?: boolean;
|
|
9
|
+
handlePageChange: (direction: GPaginationDirection) => void;
|
|
10
|
+
}
|
|
11
|
+
interface IUseGemXQlPaginationProps {
|
|
12
|
+
resetKey: unknown;
|
|
13
|
+
itemsPerPage: number;
|
|
14
|
+
}
|
|
15
|
+
interface IBuildPaginationPropsParams {
|
|
16
|
+
totalRecords: number;
|
|
17
|
+
isLoading?: boolean;
|
|
18
|
+
}
|
|
19
|
+
interface IUseGemXQlPaginationReturn {
|
|
20
|
+
currentPage: number;
|
|
21
|
+
offset: number;
|
|
22
|
+
buildPagination: (params: IBuildPaginationPropsParams) => GPaginationProps;
|
|
23
|
+
}
|
|
24
|
+
export declare const useGemXQlPagination: ({ resetKey, itemsPerPage, }: IUseGemXQlPaginationProps) => IUseGemXQlPaginationReturn;
|
|
25
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from './api';
|
|
2
|
+
export * from './builder';
|
|
3
|
+
export * from './constants';
|
|
4
|
+
export * from './graphql';
|
|
5
|
+
export * from './helpers';
|
|
6
|
+
export * from './hooks';
|
|
7
|
+
export * from './types';
|
|
8
|
+
export { AnalyticInterval, getFormattedByInterval, getTimeDurationLabel, numberWithCommas } from './utils/analytics';
|
|
9
|
+
export { convertDateToTz, dayjsTz, getInitialTimezone, setTz } from './utils/dayjs';
|
|
10
|
+
export type { Dayjs } from './utils/dayjs';
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export declare enum EAnalyticDataType {
|
|
2
|
+
DATE = "DATE",
|
|
3
|
+
ARRAY = "ARRAY",
|
|
4
|
+
OBJECT = "OBJECT",
|
|
5
|
+
STRING = "STRING",
|
|
6
|
+
INTEGER = "INTEGER",
|
|
7
|
+
CURRENCY = "CURRENCY",
|
|
8
|
+
PERCENT = "PERCENT",
|
|
9
|
+
DURATION = "DURATION",
|
|
10
|
+
MONTH = "MONTH_TIMESTAMP",
|
|
11
|
+
QUARTER = "QUARTER_TIMESTAMP",
|
|
12
|
+
DAY = "DAY_TIMESTAMP",
|
|
13
|
+
WEEK = "WEEK_TIMESTAMP",
|
|
14
|
+
YEAR = "YEAR_TIMESTAMP",
|
|
15
|
+
HOUR = "HOUR_TIMESTAMP"
|
|
16
|
+
}
|
|
17
|
+
export declare enum EAnalyticColumnKey {
|
|
18
|
+
CAMPAIGNS = "experiments",
|
|
19
|
+
VISITOR_ITEMS = "visitor_items",
|
|
20
|
+
DEVICE_ITEMS = "device_items",
|
|
21
|
+
TRAFFIC_SOURCE_ITEMS = "traffic_source_items"
|
|
22
|
+
}
|
|
23
|
+
export type AnalyticPrimitiveValueType = string | number | null;
|
|
24
|
+
export type AnalyticValueType = AnalyticPrimitiveValueType;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare enum EVisitorType {
|
|
2
|
+
NEW = "new",
|
|
3
|
+
RETURNING = "returning"
|
|
4
|
+
}
|
|
5
|
+
export declare enum EDeviceType {
|
|
6
|
+
DESKTOP = "desktop",
|
|
7
|
+
MOBILE = "mobile",
|
|
8
|
+
TABLET = "tablet"
|
|
9
|
+
}
|
|
10
|
+
export declare enum ETrafficSourceType {
|
|
11
|
+
DIRECT = "direct",
|
|
12
|
+
EMAIL = "email",
|
|
13
|
+
REFERRAL = "referral",
|
|
14
|
+
ORGANIC_SOCIAL = "organic-social",
|
|
15
|
+
ORGANIC_SEARCH = "organic-search",
|
|
16
|
+
PAID_SOCIAL = "paid-social",
|
|
17
|
+
PAID_SEARCH = "paid-search",
|
|
18
|
+
SMS = "sms"
|
|
19
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export declare enum EComparisonOperator {
|
|
2
|
+
EQ = "=",
|
|
3
|
+
IN = "IN",
|
|
4
|
+
LIKE = "LIKE"
|
|
5
|
+
}
|
|
6
|
+
export declare enum EGroupOperator {
|
|
7
|
+
OR = "OR",
|
|
8
|
+
AND = "AND"
|
|
9
|
+
}
|
|
10
|
+
export type IExtraConditionEq = {
|
|
11
|
+
operator: EComparisonOperator.EQ;
|
|
12
|
+
fields: string[];
|
|
13
|
+
value: string | number;
|
|
14
|
+
groupOperator?: EGroupOperator;
|
|
15
|
+
};
|
|
16
|
+
export type IExtraConditionIn = {
|
|
17
|
+
operator: EComparisonOperator.IN;
|
|
18
|
+
fields: string[];
|
|
19
|
+
values: Array<string | number>;
|
|
20
|
+
groupOperator?: EGroupOperator;
|
|
21
|
+
};
|
|
22
|
+
export type IExtraConditionLike = {
|
|
23
|
+
operator: EComparisonOperator.LIKE;
|
|
24
|
+
fields: string[];
|
|
25
|
+
value: string;
|
|
26
|
+
groupOperator?: EGroupOperator;
|
|
27
|
+
};
|
|
28
|
+
export type IExtraCondition = IExtraConditionEq | IExtraConditionIn | IExtraConditionLike;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare enum EFilterField {
|
|
2
|
+
DEVICE = "device",
|
|
3
|
+
DEVICES = "devices",
|
|
4
|
+
VISITOR = "visitor_type",
|
|
5
|
+
VISITORS = "visitor_types",
|
|
6
|
+
TRAFFIC_SOURCE = "traffic_source",
|
|
7
|
+
TRAFFIC_SOURCES = "traffic_sources",
|
|
8
|
+
VERSION = "version",
|
|
9
|
+
VERSIONS = "versions",
|
|
10
|
+
SINGLE_PAGE = "page_path",
|
|
11
|
+
LIST_PAGE = "page_paths",
|
|
12
|
+
GROUP_CAMPAIGN_ITEM = "group_campaign_item",
|
|
13
|
+
GROUP_CAMPAIGN_ITEMS = "group_campaign_items",
|
|
14
|
+
SINGLE_CAMPAIGN = "experiment_id",
|
|
15
|
+
GROUP_CAMPAIGN = "experiment_group_id",
|
|
16
|
+
CAMPAIGN_VERSION_ID = "version_id",
|
|
17
|
+
GROUP_CAMPAIGN_VERSION_ID = "group_version_id"
|
|
18
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare enum EOperatorField {
|
|
2
|
+
DEVICE_OPERATOR = "deviceOperator",
|
|
3
|
+
VISITOR_OPERATOR = "visitorOperator",
|
|
4
|
+
TRAFFIC_SOURCE_OPERATOR = "trafficSourceOperator",
|
|
5
|
+
VERSION_OPERATOR = "versionOperator",
|
|
6
|
+
PAGE_OPERATOR = "pageOperator",
|
|
7
|
+
CAMPAIGN_ITEM_OPERATOR = "campaignItemOperator"
|
|
8
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { EFilterField } from './field-filters';
|
|
2
|
+
import type { EOperatorField } from './field-operators';
|
|
3
|
+
export type GemXQlFilters = {
|
|
4
|
+
[EFilterField.DEVICE]?: string;
|
|
5
|
+
[EFilterField.VISITOR]?: string;
|
|
6
|
+
[EFilterField.TRAFFIC_SOURCE]?: string;
|
|
7
|
+
[EFilterField.VERSION]?: string;
|
|
8
|
+
[EFilterField.SINGLE_PAGE]?: string;
|
|
9
|
+
[EFilterField.GROUP_CAMPAIGN_ITEM]?: string;
|
|
10
|
+
[EFilterField.SINGLE_CAMPAIGN]?: string;
|
|
11
|
+
[EFilterField.CAMPAIGN_VERSION_ID]?: string;
|
|
12
|
+
[EFilterField.GROUP_CAMPAIGN_VERSION_ID]?: string;
|
|
13
|
+
[EFilterField.DEVICES]?: string[];
|
|
14
|
+
[EFilterField.VISITORS]?: string[];
|
|
15
|
+
[EFilterField.TRAFFIC_SOURCES]?: string[];
|
|
16
|
+
[EFilterField.VERSIONS]?: string[];
|
|
17
|
+
[EFilterField.LIST_PAGE]?: string[];
|
|
18
|
+
[EFilterField.GROUP_CAMPAIGN_ITEMS]?: string[];
|
|
19
|
+
[EFilterField.GROUP_CAMPAIGN]?: string[];
|
|
20
|
+
[EOperatorField.DEVICE_OPERATOR]?: string;
|
|
21
|
+
[EOperatorField.VISITOR_OPERATOR]?: string;
|
|
22
|
+
[EOperatorField.TRAFFIC_SOURCE_OPERATOR]?: string;
|
|
23
|
+
[EOperatorField.VERSION_OPERATOR]?: string;
|
|
24
|
+
[EOperatorField.PAGE_OPERATOR]?: string;
|
|
25
|
+
[EOperatorField.CAMPAIGN_ITEM_OPERATOR]?: string;
|
|
26
|
+
};
|
|
27
|
+
export type GemXQlOverrideFilters = GemXQlFilters;
|
|
28
|
+
export type GemXQlVersionIds = Record<string, string | undefined>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Controls which totals columns are appended to the query result.
|
|
3
|
+
*
|
|
4
|
+
* - NONE → no totals, GROUP BY only.
|
|
5
|
+
* - TOTALS → adds `<metric>___totals` (grand total only). Use with single-dimension GROUP BY.
|
|
6
|
+
* - ALL → adds subtotals per dimension group + grand total. Use with multi-dimension GROUP BY.
|
|
7
|
+
*/
|
|
8
|
+
export declare enum EGroupWithClause {
|
|
9
|
+
NONE = "",
|
|
10
|
+
TOTALS = "TOTALS",
|
|
11
|
+
ALL = "WITH GROUP_TOTALS, TOTALS"
|
|
12
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export * from './analytic-data';
|
|
2
|
+
export * from './analytic-mode';
|
|
3
|
+
export * from './analytic-source';
|
|
4
|
+
export * from './breakdown-items';
|
|
5
|
+
export * from './date-filter';
|
|
6
|
+
export * from './extra-condition';
|
|
7
|
+
export * from './field-filters';
|
|
8
|
+
export * from './field-operators';
|
|
9
|
+
export * from './filter-types';
|
|
10
|
+
export * from './group-with-clause';
|
|
11
|
+
export * from './order-by';
|
|
12
|
+
export * from './page-fields';
|
|
13
|
+
export * from './row-reader-mode';
|
|
14
|
+
export * from './time-dimension';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare enum EOrderDirectionType {
|
|
2
|
+
ASC = "ASC",
|
|
3
|
+
DESC = "DESC"
|
|
4
|
+
}
|
|
5
|
+
export type OrderDirectionType = EOrderDirectionType.ASC | EOrderDirectionType.DESC;
|
|
6
|
+
export type OrderByType = {
|
|
7
|
+
field: string;
|
|
8
|
+
direction: OrderDirectionType;
|
|
9
|
+
};
|
|
10
|
+
export type OrderByFields = Record<string, OrderByType>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export declare enum EPageMetric {
|
|
2
|
+
PAGE_ITEMS = "page_items",
|
|
3
|
+
PAGE_PATHS = "page_paths"
|
|
4
|
+
}
|
|
5
|
+
export declare enum EPageDimension {
|
|
6
|
+
PAGE_PATH = "page_path"
|
|
7
|
+
}
|
|
8
|
+
export declare enum EPageField {
|
|
9
|
+
SHOPIFY_PAGE_ID = "shopify_page_id",
|
|
10
|
+
LOCATION_PATH = "location_path",
|
|
11
|
+
PAGE_TYPE = "page_type",
|
|
12
|
+
PAGE_TITLE = "page_title",
|
|
13
|
+
PAGE_PATH = "page_path",
|
|
14
|
+
TEMPLATE_SUFFIX = "template_suffix"
|
|
15
|
+
}
|
|
16
|
+
export interface IPageItemsPayload {
|
|
17
|
+
[EPageField.SHOPIFY_PAGE_ID]: string;
|
|
18
|
+
[EPageField.LOCATION_PATH]: string;
|
|
19
|
+
[EPageField.PAGE_TYPE]: string;
|
|
20
|
+
[EPageField.PAGE_TITLE]: string;
|
|
21
|
+
[EPageField.TEMPLATE_SUFFIX]: string;
|
|
22
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare enum AnalyticInterval {
|
|
2
|
+
DAY = "DAY",
|
|
3
|
+
HOUR = "HOUR",
|
|
4
|
+
MONTH = "MONTH",
|
|
5
|
+
QUARTER = "QUARTER",
|
|
6
|
+
WEEK = "WEEK",
|
|
7
|
+
YEAR = "YEAR"
|
|
8
|
+
}
|
|
9
|
+
export declare function numberWithCommas(x: string): string;
|
|
10
|
+
export declare const getTimeDurationLabel: (valueInSeconds: number) => string;
|
|
11
|
+
export declare const getFormattedByInterval: (value: string | number | null, interval?: AnalyticInterval, options?: {
|
|
12
|
+
isExpandDetail?: boolean;
|
|
13
|
+
}) => string;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ConfigType, Dayjs } from 'dayjs';
|
|
2
|
+
import dayjs from 'dayjs';
|
|
3
|
+
export declare function getInitialTimezone(): string;
|
|
4
|
+
export declare function setTz(value: string): void;
|
|
5
|
+
export declare const dayjsTz: (date?: ConfigType) => Dayjs;
|
|
6
|
+
export declare const convertDateToTz: (date?: ConfigType) => Dayjs;
|
|
7
|
+
export { dayjs };
|
|
8
|
+
export type { Dayjs };
|
package/dist/umd/esm/index.d.ts
CHANGED
package/dist/umd/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,i){"object"==typeof exports&&"undefined"!=typeof module?i(exports,require("react/jsx-runtime"),require("@shopify/polaris"),require("react"),require("@shopify/polaris-viz"),require("@shopify/polaris-icons")):"function"==typeof define&&define.amd?define(["exports","react/jsx-runtime","@shopify/polaris","react","@shopify/polaris-viz","@shopify/polaris-icons"],i):i((e="undefined"!=typeof globalThis?globalThis:e||self).GemAnalytics={},e.jsxRuntime,e.Polaris,e.React,e.polarisViz,e.PolarisIcons)}(this,function(e,i,t,n,s,a){"use strict";var r;!function(e){e.SESSION="sessions",e.ORDERS="orders",e.PAGE_VIEWS="pageviews",e.VISITORS="visitors",e.BOUNCE_RATE="bounce_rate",e.CTR="ctr",e.CONVERSION_RATE="conversion_rate",e.AVG_TIME_ON_PAGE="average_time_on_page",e.ADDED_TO_CART="added_to_cart",e.ADD_TO_CART_RATE="added_to_cart_rate",e.REACHED_CHECKOUT="sessions_that_reached_checkout",e.COMPLETE_CHECKOUT="sessions_that_completed_checkout",e.CART_ADDITION="sessions_with_cart_additions",e.AOV="aov",e.REVENUE="revenue",e.RPV="revenue_per_visitor"}(r||(r={}));const o={[r.SESSION]:{title:"Sessions",content:"A period during which a visitor interacts with your online store"},[r.VISITORS]:{title:"Visitors",content:"Number of unique individuals who visit your online store"},[r.BOUNCE_RATE]:{title:"Bounce rate",content:"Percentage of visitors who leave your store after viewing only one page, without interacting further",formula:i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"formula-variable",children:"Bounce rate"}),i.jsx("span",{children:" = "}),i.jsx("span",{className:"formula-input",children:"sessions with a pageview"}),i.jsx("span",{className:"formula-operator",children:" / "}),i.jsx("span",{className:"formula-input",children:"total sessions"})]})},[r.CTR]:{title:"Click-through rate",content:"Percentage of clicks to open new page, compared to the number of times the page was viewed",formula:i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"formula-variable",children:"Click-through rate"}),i.jsx("span",{children:" = "}),i.jsx("span",{className:"formula-input",children:"total clicks"}),i.jsx("span",{className:"formula-operator",children:" / "}),i.jsx("span",{className:"formula-input",children:"total pageviews"})]})},[r.AVG_TIME_ON_PAGE]:{title:"Average time on page",content:"Average duration that visitors spend on a page before clicking to open new page",formula:i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"formula-variable",children:"Average time on page"}),i.jsx("span",{children:" = "}),i.jsx("span",{className:"formula-input",children:"total time on page"}),i.jsx("span",{className:"formula-operator",children:" / "}),i.jsx("span",{className:"formula-input",children:"(total pageviews - total exits)"})]})},[r.PAGE_VIEWS]:{title:"Pageviews",content:"Number of times a page on your online store has been viewed by visitors"},[r.RPV]:{title:"Revenue per visitor",content:"Average revenue generated from each visitor",formula:i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"formula-variable",children:"Revenue per visitor"}),i.jsx("span",{children:" = "}),i.jsx("span",{className:"formula-input",children:"total revenue"}),i.jsx("span",{className:"formula-operator",children:" / "}),i.jsx("span",{className:"formula-input",children:"total visitors"})]})},[r.ADDED_TO_CART]:{title:"Added to cart",content:"Total number of the event when a customer adds a product to their cart on your online store"},[r.REACHED_CHECKOUT]:{title:"Sessions that reached checkout",content:"Sessions in your online store in which the checkout page was reached"},[r.COMPLETE_CHECKOUT]:{title:"Sessions that completed checkout",content:"Sessions in your online store in which a purchase was completed"},[r.ORDERS]:{title:"Orders",content:"Number of orders that went through this pages"},[r.CONVERSION_RATE]:{title:"Conversion rate",content:"Percentage of online store sessions that completed an order",formula:i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"formula-variable",children:"Conversion rate"}),i.jsx("span",{children:" = "}),i.jsx("span",{className:"formula-input",children:"sessions that completed checkout"}),i.jsx("span",{className:"formula-operator",children:" / "}),i.jsx("span",{className:"formula-input",children:"total sessions"})]})},[r.AOV]:{title:"Average order value",content:"Average value of orders placed in your online store",formula:i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"formula-variable",children:"Average order value"}),i.jsx("span",{children:" = "}),i.jsx("span",{className:"formula-input",children:"total revenue"}),i.jsx("span",{className:"formula-operator",children:" / "}),i.jsx("span",{className:"formula-input",children:"total orders"})]})},[r.REVENUE]:{title:"Revenue",content:"Total income generated from sales after discounts",formula:i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"formula-variable",children:"Revenue"}),i.jsx("span",{children:" = "}),i.jsx("span",{className:"formula-input",children:"gross sales"}),i.jsx("span",{className:"formula-operator",children:" - "}),i.jsx("span",{className:"formula-input",children:"discounts"})]})},[r.ADD_TO_CART_RATE]:{title:"Add to cart rate",content:"Percentage of sessions in which the customer added item to the cart",formula:i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"formula-variable",children:"Added to cart rate"}),i.jsx("span",{children:" = "}),i.jsx("span",{className:"formula-input",children:"sessions with cart additions"}),i.jsx("span",{className:"formula-operator",children:" / "}),i.jsx("span",{className:"formula-input",children:"total sessions"})]})},[r.CART_ADDITION]:{title:"Sessions with cart additions",content:"Sessions in your online store in which a visitor added item to the cart"}},l={current:"rgba(64, 176, 230, 1)",comparison:"rgba(161, 202, 231, 1)",all:["#2C7DFF","#F34A70"]},c="#007F5F",d="#4A4A4A";const g=e=>{const n=e.height??"50px";return i.jsxs("div",{className:"Polaris-GSkeletonDisplayText",children:[i.jsx("style",{children:`.Polaris-GSkeletonDisplayText .Polaris-SkeletonDisplayText__DisplayText { height: ${n} !important; }`}),i.jsx(t.SkeletonDisplayText,{maxWidth:"100%",size:"extraLarge"})]})},M=({height:e,align:s,inlineAlign:a,display:r,...o})=>{const l=n.useMemo(()=>{if("sticky"!==o.position)return{};const e={position:"sticky"};return o.insetInlineStart&&(e.insetInlineStart=4*Number(o.insetInlineStart)),o.insetInlineEnd&&(e.insetInlineEnd=4*Number(o.insetInlineEnd)),o.insetBlockStart&&(e.insetBlockStart=4*Number(o.insetBlockStart)),o.insetBlockEnd&&(e.insetBlockEnd=4*Number(o.insetBlockEnd)),e},[o.position,o.insetInlineStart,o.insetInlineEnd,o.insetBlockStart,o.insetBlockEnd]);return i.jsx("div",{className:"Polaris-GBlockCenter",style:{...l,"--gp-block-center-height":e,"--gp-block-center-display":r,"--gp-block-center-align":s,"--gp-block-center-inline-align":a,"--gp-block-center-overflow-x":o.overflowX,"--gp-block-center-overflow-y":o.overflowY},children:i.jsx(t.Box,{...o})})},N=/\.0+$/,u=(e,i=2)=>(e=>`${e}`.replace(N,""))(e.toFixed(i)),j=(e,i=2)=>(e=>e>0&&e<.005)(e)?"~0%":`${u(e,i)}%`;function h(e){return"string"==typeof e?e:"object"==typeof e&&null!==e&&Object.keys(e).filter(i=>e[i]).join(" ")}function I(...e){return e.map(h).filter(Boolean).join(" ")}const x=({source:e,alt:t,size:n,grayscale:s,defaultSource:a="data:image/svg+xml;base64,PHN2ZwogIHdpZHRoPSI5MCIKICBoZWlnaHQ9IjcyIgogIHZpZXdCb3g9IjAgMCA5MCA3MiIKICBmaWxsPSJub25lIgogIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKPgogIDxwYXRoCiAgICBkPSJNNDguNzUgMzQuNUM0OS45OTI2IDM0LjUgNTEgMzMuNDkyNiA1MSAzMi4yNUM1MSAzMS4wMDc0IDQ5Ljk5MjYgMzAgNDguNzUgMzBDNDcuNTA3NCAzMCA0Ni41IDMxLjAwNzQgNDYuNSAzMi4yNUM0Ni41IDMzLjQ5MjYgNDcuNTA3NCAzNC41IDQ4Ljc1IDM0LjVaIgogICAgZmlsbD0iIzYxNjE2MSIKICAvPgogIDxwYXRoCiAgICBmaWxsUnVsZT0iZXZlbm9kZCIKICAgIGNsaXBSdWxlPSJldmVub2RkIgogICAgZD0iTTQzLjUyNjggMjYuMjVINDYuNDczMkM0Ny42OTI0IDI2LjI1IDQ4LjY3NTggMjYuMjUgNDkuNDcyMiAyNi4zMTVDNTAuMjkyMiAyNi4zODIgNTEuMDEyNCAyNi41MjM2IDUxLjY3ODcgMjYuODYzMUM1Mi43MzcxIDI3LjQwMjQgNTMuNTk3NiAyOC4yNjI5IDU0LjEzNjkgMjkuMzIxM0M1NC40NzY0IDI5Ljk4NzYgNTQuNjE4IDMwLjcwNzggNTQuNjg1IDMxLjUyNzhDNTQuNzUgMzIuMzI0MiA1NC43NSAzMy4zMDc2IDU0Ljc1IDM0LjUyNjhWMzcuNDczMkM1NC43NSAzOC42OTI0IDU0Ljc1IDM5LjY3NTggNTQuNjg1IDQwLjQ3MjJDNTQuNjE4IDQxLjI5MjIgNTQuNDc2NCA0Mi4wMTI0IDU0LjEzNjkgNDIuNjc4N0M1My41OTc2IDQzLjczNzEgNTIuNzM3MSA0NC41OTc2IDUxLjY3ODcgNDUuMTM2OUM1MS4wMTI0IDQ1LjQ3NjQgNTAuMjkyMiA0NS42MTggNDkuNDcyMiA0NS42ODVDNDguNjc1OCA0NS43NSA0Ny42OTI0IDQ1Ljc1IDQ2LjQ3MzIgNDUuNzVINDMuNTI2OEM0Mi4zMDc2IDQ1Ljc1IDQxLjMyNDIgNDUuNzUgNDAuNTI3OCA0NS42ODVDMzkuNzA3OCA0NS42MTggMzguOTg3NiA0NS40NzY0IDM4LjMyMTMgNDUuMTM2OUMzNy4yNjI5IDQ0LjU5NzYgMzYuNDAyNCA0My43MzcxIDM1Ljg2MzEgNDIuNjc4N0MzNS41MjM2IDQyLjAxMjQgMzUuMzgyIDQxLjI5MjIgMzUuMzE1IDQwLjQ3MjJDMzUuMjUgMzkuNjc1OCAzNS4yNSAzOC42OTI0IDM1LjI1IDM3LjQ3MzJWMzQuNTI2OEMzNS4yNSAzMy4zMDc2IDM1LjI1IDMyLjMyNDIgMzUuMzE1IDMxLjUyNzhDMzUuMzgyIDMwLjcwNzggMzUuNTIzNiAyOS45ODc2IDM1Ljg2MzEgMjkuMzIxM0MzNi40MDI0IDI4LjI2MjkgMzcuMjYyOSAyNy40MDI0IDM4LjMyMTMgMjYuODYzMUMzOC45ODc2IDI2LjUyMzYgMzkuNzA3OCAyNi4zODIgNDAuNTI3OCAyNi4zMTVDNDEuMzI0MiAyNi4yNSA0Mi4zMDc2IDI2LjI1IDQzLjUyNjggMjYuMjVaTTQwLjcxMSAyOC41NTc2QzQwLjAzMDIgMjguNjEzMiAzOS42MzkxIDI4LjcxNjkgMzkuMzQyOCAyOC44Njc5QzM4LjcwNzcgMjkuMTkxNCAzOC4xOTE0IDI5LjcwNzcgMzcuODY3OSAzMC4zNDI4QzM3LjcxNjkgMzAuNjM5MSAzNy42MTMyIDMxLjAzMDIgMzcuNTU3NiAzMS43MTFDMzcuNTAwOSAzMi40MDUgMzcuNSAzMy4yOTYzIDM3LjUgMzQuNTc1VjM2LjcxNzdMMzguNTg0MiAzNS40MTY3QzM5LjU3MjQgMzQuMjMwOSA0MS4zNjU1IDM0LjE0OTYgNDIuNDU2OSAzNS4yNDFMNDYuNSAzOS4yODQxTDQ4LjI2OTQgMzcuNTE0NkM0OS4zNzU3IDM2LjQwODMgNTEuMTk4IDM2LjUwOTMgNTIuMTc1NCAzNy43MzA5TDUyLjQ5OTUgMzguMTM2MUM1Mi41IDM3LjkxMzEgNTIuNSAzNy42NzY1IDUyLjUgMzcuNDI1VjM0LjU3NUM1Mi41IDMzLjI5NjMgNTIuNDk5MSAzMi40MDUgNTIuNDQyNCAzMS43MTFDNTIuMzg2OCAzMS4wMzAyIDUyLjI4MzEgMzAuNjM5MSA1Mi4xMzIxIDMwLjM0MjhDNTEuODA4NiAyOS43MDc3IDUxLjI5MjMgMjkuMTkxNCA1MC42NTcyIDI4Ljg2NzlDNTAuMzYwOSAyOC43MTY5IDQ5Ljk2OTggMjguNjEzMiA0OS4yODkgMjguNTU3NkM0OC41OTUgMjguNTAwOSA0Ny43MDM3IDI4LjUgNDYuNDI1IDI4LjVINDMuNTc1QzQyLjI5NjMgMjguNSA0MS40MDUgMjguNTAwOSA0MC43MTEgMjguNTU3NlpNMzcuNTU3NiA0MC4yODlDMzcuNTU0MyA0MC4yNDkyIDM3LjU1MTMgNDAuMjA4OCAzNy41NDg0IDQwLjE2NzhDMzcuNTcxMSA0MC4xNDQ4IDM3LjU5MzEgNDAuMTIwNiAzNy42MTQyIDQwLjA5NTNMNDAuMzEyNyAzNi44NTcxQzQwLjQ1MzkgMzYuNjg3NyA0MC43MSAzNi42NzYxIDQwLjg2NTkgMzYuODMyTDQ1LjcwNDUgNDEuNjcwNkM0Ni4xNDM4IDQyLjEwOTkgNDYuODU2MSA0Mi4xMDk5IDQ3LjI5NTUgNDEuNjcwNkw0OS44NjA0IDM5LjEwNTZDNTAuMDE4NSAzOC45NDc2IDUwLjI3ODggMzguOTYyIDUwLjQxODQgMzkuMTM2NUw1Mi4yMzc3IDQxLjQxMDdDNTIuMjA1NiA0MS41MDEgNTIuMTcwNCA0MS41ODIyIDUyLjEzMjEgNDEuNjU3MkM1MS44MDg2IDQyLjI5MjMgNTEuMjkyMyA0Mi44MDg2IDUwLjY1NzIgNDMuMTMyMUM1MC4zNjA5IDQzLjI4MzEgNDkuOTY5OCA0My4zODY4IDQ5LjI4OSA0My40NDI0QzQ4LjU5NSA0My40OTkxIDQ3LjcwMzcgNDMuNSA0Ni40MjUgNDMuNUg0My41NzVDNDIuMjk2MyA0My41IDQxLjQwNSA0My40OTkxIDQwLjcxMSA0My40NDI0QzQwLjAzMDIgNDMuMzg2OCAzOS42MzkxIDQzLjI4MzEgMzkuMzQyOCA0My4xMzIxQzM4LjcwNzcgNDIuODA4NiAzOC4xOTE0IDQyLjI5MjMgMzcuODY3OSA0MS42NTcyQzM3LjcxNjkgNDEuMzYwOSAzNy42MTMyIDQwLjk2OTggMzcuNTU3NiA0MC4yODlaIgogICAgZmlsbD0iIzYxNjE2MSIKICAvPgo8L3N2Zz4K",width:r="80",height:o="80",classRemoved:l=!1})=>{var c;const d=s&&"Polaris-GThumbnail--filter",g=I("Polaris-Thumbnail",n&&`${"Polaris-Thumbnail--size"}${(c=n).charAt(0).toUpperCase()}${c.slice(1)}`),M=i.jsx("img",{onError:e=>{e.currentTarget.src=a},alt:t??"Thumbnail",src:`${e??a}`,width:r,height:o,style:{"--gp-grayscale-percentage":s||"100%"},className:I("Polaris-GThumbnail",d)});return l?M:i.jsx("span",{className:g,children:M})},p={default:"w-[210px]",wide:"w-[320px]",large:"w-[328px]"},A={start:"flex justify-start",center:"flex justify-center",end:"flex justify-end"},m=n.forwardRef((e,s)=>{const{tooltip:a,wrapper:r="div",activatorProps:o,isHideBorder:l,alignment:c,delay:d=500,textDecoration:g="none",popoverRef:M,preferredAlignment:N="left",showArrow:u=!1}=e,{width:j="default"}=a??{},[h,x]=n.useState(!1),m=r,D=p[j],z=n.useRef(null),S=()=>{z.current&&(clearTimeout(z.current),z.current=null),x(!1)};return n.useImperativeHandle(s,()=>({onClose:S})),i.jsx(m,{className:I("GTooltipCard cursor-pointer",c&&A[c],{"GTooltipCard--text-underline":"underline"===g}),onMouseEnter:()=>{z.current=setTimeout(()=>{x(!0)},d)},onMouseLeave:S,children:i.jsx(t.Popover,{ref:M,activator:l?i.jsx(t.InlineStack,{children:e.children}):i.jsx(t.Box,{borderBlockEndWidth:"025",borderStyle:"dashed",borderColor:"border-tertiary",as:r,...o,children:e.children}),activatorWrapper:r,onClose:()=>{},active:h,preferredPosition:"below",preferredAlignment:N,children:a&&i.jsx("div",{className:I(D,{"GTooltipCard-arrow":u}),children:i.jsx(t.Box,{padding:"400",children:i.jsxs(t.BlockStack,{gap:"200",children:[i.jsxs(t.BlockStack,{gap:"100",children:[i.jsx(t.Text,{as:"span",variant:"headingSm",fontWeight:"semibold",children:a.title}),i.jsxs(t.BlockStack,{gap:"400",children:[i.jsx(t.Text,{as:"span",variant:"bodyMd",tone:"subdued",fontWeight:"medium",children:i.jsx("span",{dangerouslySetInnerHTML:{__html:a.content}})}),a.contentList&&i.jsx(t.List,{type:"bullet",children:a.contentList.map(e=>i.jsx(t.List.Item,{children:i.jsx(t.Text,{as:"span",variant:"bodyMd",tone:"subdued",fontWeight:"medium",children:e})},e))})]})]}),a.formula&&i.jsx("div",{className:"rounded-md font-mono",style:{fontSize:"12px"},children:a.formula})]})})})})})});m.displayName="GTooltipCard";const D=()=>i.jsx(g,{height:"188px"}),z=({children:e,minHeight:t=228})=>i.jsx(s.PolarisVizProvider,{themes:{Light:{chartContainer:{minHeight:t},grid:{horizontalOverflow:!0,verticalOverflow:!0,horizontalMargin:0},seriesColors:{comparison:l.comparison,single:l.current,all:[...l.all]}}},children:e}),S=e=>String(e),y=({lineChartData:e,isLoading:t,isEmptyMetricData:n})=>t?i.jsx(D,{}):n?i.jsx(T,{title:"No data yet",description:"Data needs time to gather"}):i.jsx(z,{children:i.jsx(s.LineChart,{data:e,yAxisOptions:{labelFormatter:e=>S(Number(e)||0)},theme:"Light",tooltipOptions:{keyFormatter:e=>e,renderTooltipContent:e=>i.jsx(E,{data:e,formatValue:S})},showLegend:!0})});const T=({boxProps:e,minHeight:n,description:s,title:a})=>i.jsx(t.Box,{minWidth:"100%",...e,children:i.jsx(M,{minHeight:n,children:i.jsx(t.Box,{padding:"400",children:i.jsxs(t.BlockStack,{gap:"400",align:"center",inlineAlign:"center",children:[i.jsx("div",{className:"h-[80px] w-[80px]",children:i.jsx(x,{source:"data:image/png;base64,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",width:"80px",height:"80px",alt:a,classRemoved:!0})}),i.jsxs(t.BlockStack,{gap:"200",align:"center",inlineAlign:"center",children:[i.jsx(t.Text,{as:"h4",variant:"headingSm",fontWeight:"semibold",children:a}),i.jsx(t.Text,{as:"h4",variant:"bodyMd",tone:"subdued",children:s})]})]})})})}),k=()=>i.jsxs("svg",{width:"8",height:"8",viewBox:"0 0 8 8",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[i.jsx("g",{clipPath:"url(#clip0_18114_1160)",children:i.jsx("path",{d:"M1 1L6.5 6.5M6.5 6.5V1.5M6.5 6.5H1.5",stroke:"#8A8A8A",strokeWidth:"1.5"})}),i.jsx("defs",{children:i.jsx("clipPath",{id:"clip0_18114_1160",children:i.jsx("rect",{width:"8",height:"8",fill:"white"})})})]}),O=()=>i.jsxs("svg",{width:"8",height:"8",viewBox:"0 0 8 8",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[i.jsx("g",{clipPath:"url(#clip0_18114_1146)",children:i.jsx("path",{d:"M1 7L6.5 1.5M6.5 1.5H1.5M6.5 1.5V6.5",stroke:"#29845A",strokeWidth:"1.5"})}),i.jsx("defs",{children:i.jsx("clipPath",{id:"clip0_18114_1146",children:i.jsx("rect",{width:"8",height:"8",fill:"white",transform:"matrix(0 -1 1 0 0 8)"})})})]}),v=({change:e})=>"number"!=typeof e?i.jsx("div",{style:{height:"2px",width:"11px",backgroundColor:"#8A8A8A"}}):i.jsxs("div",{style:{display:"flex",maxHeight:"20px",width:"fit-content",alignItems:"center",gap:"4px",borderRadius:"8px",fontSize:"12px",color:e>0?c:d},children:[e<0&&i.jsx(t.InlineStack,{align:"center",children:i.jsx(k,{})}),e>0&&i.jsx(t.InlineStack,{align:"center",children:i.jsx(O,{})}),i.jsx(t.Text,{as:"span",variant:"bodyXs",fontWeight:"semibold",children:j(Math.abs(e||0))})]}),E=({data:e,formatValue:n})=>{const{activeIndex:s}=e,a=e?.dataSeries[0]?.data[s],r=e?.dataSeries[1]?.data[s],o=()=>{const e=a.trend?.value;if(!e)return"-";const i=Number(e.replace(/[%~]/g,""));return"negative"===a.trend?.trend?-1*i:i};return i.jsx("div",{className:"w-fit min-w-[175px]",children:i.jsx(t.Card,{padding:"200",children:i.jsxs(t.BlockStack,{gap:"100",children:[i.jsx(t.Text,{as:"p",variant:"bodySm",fontWeight:"semibold",children:e.formatters?.titleFormatter?.(e.title||"")||e.title}),i.jsxs(t.BlockStack,{gap:"100",children:[i.jsxs(t.InlineStack,{gap:"400",align:"space-between",blockAlign:"center",children:[i.jsxs(t.InlineStack,{gap:"100",blockAlign:"center",children:[i.jsx("div",{className:"h-[2px] w-[12px] rounded-[10px] bg-[#4FA9EA]"}),i.jsx(t.Text,{as:"p",variant:"bodySm",fontWeight:"medium",tone:"subdued",children:a.tooltipKey})]}),i.jsxs(t.InlineStack,{blockAlign:"center",gap:"100",children:[i.jsx(t.Text,{as:"span",variant:"bodySm",fontWeight:"semibold",children:n(a.value)}),i.jsx(v,{change:o()})]})]}),i.jsxs(t.InlineStack,{gap:"400",align:"space-between",blockAlign:"center",children:[i.jsxs(t.InlineStack,{gap:"100",blockAlign:"center",children:[i.jsx("div",{className:"w-[12px] border border-dashed border-[#A1CAE7]"}),i.jsx(t.Text,{as:"p",variant:"bodySm",tone:"subdued",fontWeight:"medium",children:r.tooltipKey})]}),i.jsxs(t.InlineStack,{blockAlign:"center",gap:"100",children:[i.jsx(t.Text,{as:"span",variant:"bodySm",fontWeight:"semibold",children:n(r.value)}),i.jsx("div",{className:"opacity-0",children:i.jsx(v,{change:o()})})]})]})]})]})})})},C=({isShowOneLine:e})=>e?i.jsx(t.Box,{width:"40%",children:i.jsx(t.SkeletonBodyText,{lines:1})}):i.jsxs(t.BlockStack,{gap:"200",children:[i.jsx(t.Box,{width:"60%",children:i.jsx(t.SkeletonBodyText,{lines:1})}),i.jsx(t.Box,{width:"40%",children:i.jsx(t.SkeletonBodyText,{lines:1})})]}),f=({totalValue:e,hideComparison:n})=>i.jsx(t.BlockStack,{gap:"200",children:i.jsxs(t.InlineStack,{blockAlign:"center",gap:"200",wrap:!1,children:[i.jsx(t.InlineStack,{blockAlign:"center",gap:"200",children:i.jsx(t.Text,{as:"span",variant:"headingSm",children:e.value})}),!n&&i.jsx(v,{change:e.change})]})}),L=({item:e,isHovered:n,isLoading:s,hideComparison:r,titleVariant:l="headingMd",titleFontWeight:c,onClickTitle:d})=>{const{key:g,title:M,totalValue:N}=e,u=o[g];return s?i.jsx(C,{}):i.jsxs(t.BlockStack,{gap:"200",children:[i.jsx("div",{className:"hover:cursor-pointer hover:text-[--p-color-text-link-hover]",onClick:e=>{e?.stopPropagation(),d?.(g)},children:i.jsxs(t.InlineStack,{wrap:!1,children:[i.jsx(t.Box,{maxWidth:"100%",overflowX:"hidden",children:i.jsx(m,{tooltip:u,children:i.jsx(t.Text,{as:"span",variant:l,fontWeight:c,truncate:!0,children:M})})}),n&&i.jsx("div",{className:"flex h-[20px] w-[20px] items-center",children:i.jsx(t.Icon,{source:a.ChevronRightIcon,tone:"inherit"})})]})}),i.jsx(f,{totalValue:N,hideComparison:r})]})},b=({item:e,isActive:s,isLoading:a,hideComparison:r,onSelect:o,onClickTitle:l})=>{const[c,d]=n.useState(!1),g=s||c;return i.jsx("div",{className:"w-full cursor-pointer overflow-hidden",onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1),onClick:()=>o(e.key),children:i.jsx(t.Box,{paddingBlock:"150",paddingInline:"300",borderRadius:"200",background:g?"bg-surface-active":void 0,children:i.jsx(L,{item:e,isHovered:c,isLoading:a,hideComparison:r,titleVariant:"headingSm",titleFontWeight:"semibold",onClickTitle:l})})})};e.GSelectableMetricChartCard=({metricInfo:e,dataChart:s,defaultActiveTab:a,isLoading:r,isEmptyMetricData:o,hideComparison:l,currentPeriodLabel:c="Current",previousPeriodLabel:d="Previous"})=>{const[g,M]=n.useState(a),N=n.useMemo(()=>{const e=g?s[g]:void 0;if(!e)return[];const i={name:c,data:e.current};return l?[i]:[i,{name:d,data:e.previous,isComparison:!0}]},[g,s,l,c,d]);return i.jsxs(t.Card,{children:[i.jsx("div",{style:{display:"grid",gridTemplateColumns:`repeat(${e.length}, 1fr)`,gap:"16px",marginBottom:"16px"},children:e.map(e=>i.jsx(b,{item:e,isActive:g===e.key,isLoading:r,hideComparison:l,onSelect:M},e.key))}),i.jsx(y,{lineChartData:N,isLoading:r,isEmptyMetricData:o})]})},e.SingleMetricChartCard=({metricInfo:e,lineChartData:s,isLoading:a,hideComparison:r,isEmptyMetricData:o,onClickTitle:l})=>{const[c,d]=n.useState(!1);return i.jsx("div",{onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1),children:i.jsx(t.Card,{children:i.jsxs(t.BlockStack,{gap:"200",children:[i.jsx(L,{item:e,isHovered:c,isLoading:a,hideComparison:r,onClickTitle:l}),i.jsx(y,{lineChartData:s,isLoading:a,isEmptyMetricData:o})]})})})}});
|
|
1
|
+
!function(e,i){"object"==typeof exports&&"undefined"!=typeof module?i(exports,require("react/jsx-runtime"),require("@shopify/polaris"),require("react"),require("@shopify/polaris-viz")):"function"==typeof define&&define.amd?define(["exports","react/jsx-runtime","@shopify/polaris","react","@shopify/polaris-viz"],i):i((e="undefined"!=typeof globalThis?globalThis:e||self).GemAnalytics={},e.jsxRuntime,e.Polaris,e.React,e.polarisViz)}(this,function(e,i,t,n,s){"use strict";var a;e.EMetricKey=void 0,(a=e.EMetricKey||(e.EMetricKey={})).SESSION="sessions",a.ORDERS="orders",a.PAGE_VIEWS="pageviews",a.VISITORS="visitors",a.BOUNCE_RATE="bounce_rate",a.CTR="ctr",a.CONVERSION_RATE="conversion_rate",a.AVG_TIME_ON_PAGE="average_time_on_page",a.ADDED_TO_CART="added_to_cart",a.ADD_TO_CART_RATE="added_to_cart_rate",a.REACHED_CHECKOUT="sessions_that_reached_checkout",a.COMPLETE_CHECKOUT="sessions_that_completed_checkout",a.CART_ADDITION="sessions_with_cart_additions",a.AOV="aov",a.REVENUE="revenue",a.RPV="revenue_per_visitor";const r={[e.EMetricKey.SESSION]:{title:"Sessions",content:"A period during which a visitor interacts with your online store"},[e.EMetricKey.VISITORS]:{title:"Visitors",content:"Number of unique individuals who visit your online store"},[e.EMetricKey.BOUNCE_RATE]:{title:"Bounce rate",content:"Percentage of visitors who leave your store after viewing only one page, without interacting further",formula:i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"formula-variable",children:"Bounce rate"}),i.jsx("span",{children:" = "}),i.jsx("span",{className:"formula-input",children:"sessions with a pageview"}),i.jsx("span",{className:"formula-operator",children:" / "}),i.jsx("span",{className:"formula-input",children:"total sessions"})]})},[e.EMetricKey.CTR]:{title:"Click-through rate",content:"Percentage of clicks to open new page, compared to the number of times the page was viewed",formula:i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"formula-variable",children:"Click-through rate"}),i.jsx("span",{children:" = "}),i.jsx("span",{className:"formula-input",children:"total clicks"}),i.jsx("span",{className:"formula-operator",children:" / "}),i.jsx("span",{className:"formula-input",children:"total pageviews"})]})},[e.EMetricKey.AVG_TIME_ON_PAGE]:{title:"Average time on page",content:"Average duration that visitors spend on a page before clicking to open new page",formula:i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"formula-variable",children:"Average time on page"}),i.jsx("span",{children:" = "}),i.jsx("span",{className:"formula-input",children:"total time on page"}),i.jsx("span",{className:"formula-operator",children:" / "}),i.jsx("span",{className:"formula-input",children:"(total pageviews - total exits)"})]})},[e.EMetricKey.PAGE_VIEWS]:{title:"Pageviews",content:"Number of times a page on your online store has been viewed by visitors"},[e.EMetricKey.RPV]:{title:"Revenue per visitor",content:"Average revenue generated from each visitor",formula:i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"formula-variable",children:"Revenue per visitor"}),i.jsx("span",{children:" = "}),i.jsx("span",{className:"formula-input",children:"total revenue"}),i.jsx("span",{className:"formula-operator",children:" / "}),i.jsx("span",{className:"formula-input",children:"total visitors"})]})},[e.EMetricKey.ADDED_TO_CART]:{title:"Added to cart",content:"Total number of the event when a customer adds a product to their cart on your online store"},[e.EMetricKey.REACHED_CHECKOUT]:{title:"Sessions that reached checkout",content:"Sessions in your online store in which the checkout page was reached"},[e.EMetricKey.COMPLETE_CHECKOUT]:{title:"Sessions that completed checkout",content:"Sessions in your online store in which a purchase was completed"},[e.EMetricKey.ORDERS]:{title:"Orders",content:"Number of orders that went through this pages"},[e.EMetricKey.CONVERSION_RATE]:{title:"Conversion rate",content:"Percentage of online store sessions that completed an order",formula:i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"formula-variable",children:"Conversion rate"}),i.jsx("span",{children:" = "}),i.jsx("span",{className:"formula-input",children:"sessions that completed checkout"}),i.jsx("span",{className:"formula-operator",children:" / "}),i.jsx("span",{className:"formula-input",children:"total sessions"})]})},[e.EMetricKey.AOV]:{title:"Average order value",content:"Average value of orders placed in your online store",formula:i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"formula-variable",children:"Average order value"}),i.jsx("span",{children:" = "}),i.jsx("span",{className:"formula-input",children:"total revenue"}),i.jsx("span",{className:"formula-operator",children:" / "}),i.jsx("span",{className:"formula-input",children:"total orders"})]})},[e.EMetricKey.REVENUE]:{title:"Revenue",content:"Total income generated from sales after discounts",formula:i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"formula-variable",children:"Revenue"}),i.jsx("span",{children:" = "}),i.jsx("span",{className:"formula-input",children:"gross sales"}),i.jsx("span",{className:"formula-operator",children:" - "}),i.jsx("span",{className:"formula-input",children:"discounts"})]})},[e.EMetricKey.ADD_TO_CART_RATE]:{title:"Add to cart rate",content:"Percentage of sessions in which the customer added item to the cart",formula:i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"formula-variable",children:"Added to cart rate"}),i.jsx("span",{children:" = "}),i.jsx("span",{className:"formula-input",children:"sessions with cart additions"}),i.jsx("span",{className:"formula-operator",children:" / "}),i.jsx("span",{className:"formula-input",children:"total sessions"})]})},[e.EMetricKey.CART_ADDITION]:{title:"Sessions with cart additions",content:"Sessions in your online store in which a visitor added item to the cart"}},o={current:"rgba(64, 176, 230, 1)",comparison:"rgba(161, 202, 231, 1)",all:["#2C7DFF","#F34A70"]},l="#007F5F",c="#4A4A4A";const d=e=>{const n=e.height??"50px";return i.jsxs("div",{className:"Polaris-GSkeletonDisplayText",children:[i.jsx("style",{children:`.Polaris-GSkeletonDisplayText .Polaris-SkeletonDisplayText__DisplayText { height: ${n} !important; }`}),i.jsx(t.SkeletonDisplayText,{maxWidth:"100%",size:"extraLarge"})]})},M=({height:e,align:s,inlineAlign:a,display:r,...o})=>{const l=n.useMemo(()=>{if("sticky"!==o.position)return{};const e={position:"sticky"};return o.insetInlineStart&&(e.insetInlineStart=4*Number(o.insetInlineStart)),o.insetInlineEnd&&(e.insetInlineEnd=4*Number(o.insetInlineEnd)),o.insetBlockStart&&(e.insetBlockStart=4*Number(o.insetBlockStart)),o.insetBlockEnd&&(e.insetBlockEnd=4*Number(o.insetBlockEnd)),e},[o.position,o.insetInlineStart,o.insetInlineEnd,o.insetBlockStart,o.insetBlockEnd]);return i.jsx("div",{className:"Polaris-GBlockCenter",style:{...l,"--gp-block-center-height":e,"--gp-block-center-display":r,"--gp-block-center-align":s,"--gp-block-center-inline-align":a,"--gp-block-center-overflow-x":o.overflowX,"--gp-block-center-overflow-y":o.overflowY},children:i.jsx(t.Box,{...o})})},g=/\.0+$/,N=(e,i=2)=>(e=>`${e}`.replace(g,""))(e.toFixed(i)),u=(e,i=2)=>(e=>e>0&&e<.005)(e)?"~0%":`${N(e,i)}%`;function j(e){return"string"==typeof e?e:"object"==typeof e&&null!==e&&Object.keys(e).filter(i=>e[i]).join(" ")}function h(...e){return e.map(j).filter(Boolean).join(" ")}const I=({source:e,alt:t,size:n,grayscale:s,defaultSource:a="data:image/svg+xml;base64,PHN2ZwogIHdpZHRoPSI5MCIKICBoZWlnaHQ9IjcyIgogIHZpZXdCb3g9IjAgMCA5MCA3MiIKICBmaWxsPSJub25lIgogIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKPgogIDxwYXRoCiAgICBkPSJNNDguNzUgMzQuNUM0OS45OTI2IDM0LjUgNTEgMzMuNDkyNiA1MSAzMi4yNUM1MSAzMS4wMDc0IDQ5Ljk5MjYgMzAgNDguNzUgMzBDNDcuNTA3NCAzMCA0Ni41IDMxLjAwNzQgNDYuNSAzMi4yNUM0Ni41IDMzLjQ5MjYgNDcuNTA3NCAzNC41IDQ4Ljc1IDM0LjVaIgogICAgZmlsbD0iIzYxNjE2MSIKICAvPgogIDxwYXRoCiAgICBmaWxsUnVsZT0iZXZlbm9kZCIKICAgIGNsaXBSdWxlPSJldmVub2RkIgogICAgZD0iTTQzLjUyNjggMjYuMjVINDYuNDczMkM0Ny42OTI0IDI2LjI1IDQ4LjY3NTggMjYuMjUgNDkuNDcyMiAyNi4zMTVDNTAuMjkyMiAyNi4zODIgNTEuMDEyNCAyNi41MjM2IDUxLjY3ODcgMjYuODYzMUM1Mi43MzcxIDI3LjQwMjQgNTMuNTk3NiAyOC4yNjI5IDU0LjEzNjkgMjkuMzIxM0M1NC40NzY0IDI5Ljk4NzYgNTQuNjE4IDMwLjcwNzggNTQuNjg1IDMxLjUyNzhDNTQuNzUgMzIuMzI0MiA1NC43NSAzMy4zMDc2IDU0Ljc1IDM0LjUyNjhWMzcuNDczMkM1NC43NSAzOC42OTI0IDU0Ljc1IDM5LjY3NTggNTQuNjg1IDQwLjQ3MjJDNTQuNjE4IDQxLjI5MjIgNTQuNDc2NCA0Mi4wMTI0IDU0LjEzNjkgNDIuNjc4N0M1My41OTc2IDQzLjczNzEgNTIuNzM3MSA0NC41OTc2IDUxLjY3ODcgNDUuMTM2OUM1MS4wMTI0IDQ1LjQ3NjQgNTAuMjkyMiA0NS42MTggNDkuNDcyMiA0NS42ODVDNDguNjc1OCA0NS43NSA0Ny42OTI0IDQ1Ljc1IDQ2LjQ3MzIgNDUuNzVINDMuNTI2OEM0Mi4zMDc2IDQ1Ljc1IDQxLjMyNDIgNDUuNzUgNDAuNTI3OCA0NS42ODVDMzkuNzA3OCA0NS42MTggMzguOTg3NiA0NS40NzY0IDM4LjMyMTMgNDUuMTM2OUMzNy4yNjI5IDQ0LjU5NzYgMzYuNDAyNCA0My43MzcxIDM1Ljg2MzEgNDIuNjc4N0MzNS41MjM2IDQyLjAxMjQgMzUuMzgyIDQxLjI5MjIgMzUuMzE1IDQwLjQ3MjJDMzUuMjUgMzkuNjc1OCAzNS4yNSAzOC42OTI0IDM1LjI1IDM3LjQ3MzJWMzQuNTI2OEMzNS4yNSAzMy4zMDc2IDM1LjI1IDMyLjMyNDIgMzUuMzE1IDMxLjUyNzhDMzUuMzgyIDMwLjcwNzggMzUuNTIzNiAyOS45ODc2IDM1Ljg2MzEgMjkuMzIxM0MzNi40MDI0IDI4LjI2MjkgMzcuMjYyOSAyNy40MDI0IDM4LjMyMTMgMjYuODYzMUMzOC45ODc2IDI2LjUyMzYgMzkuNzA3OCAyNi4zODIgNDAuNTI3OCAyNi4zMTVDNDEuMzI0MiAyNi4yNSA0Mi4zMDc2IDI2LjI1IDQzLjUyNjggMjYuMjVaTTQwLjcxMSAyOC41NTc2QzQwLjAzMDIgMjguNjEzMiAzOS42MzkxIDI4LjcxNjkgMzkuMzQyOCAyOC44Njc5QzM4LjcwNzcgMjkuMTkxNCAzOC4xOTE0IDI5LjcwNzcgMzcuODY3OSAzMC4zNDI4QzM3LjcxNjkgMzAuNjM5MSAzNy42MTMyIDMxLjAzMDIgMzcuNTU3NiAzMS43MTFDMzcuNTAwOSAzMi40MDUgMzcuNSAzMy4yOTYzIDM3LjUgMzQuNTc1VjM2LjcxNzdMMzguNTg0MiAzNS40MTY3QzM5LjU3MjQgMzQuMjMwOSA0MS4zNjU1IDM0LjE0OTYgNDIuNDU2OSAzNS4yNDFMNDYuNSAzOS4yODQxTDQ4LjI2OTQgMzcuNTE0NkM0OS4zNzU3IDM2LjQwODMgNTEuMTk4IDM2LjUwOTMgNTIuMTc1NCAzNy43MzA5TDUyLjQ5OTUgMzguMTM2MUM1Mi41IDM3LjkxMzEgNTIuNSAzNy42NzY1IDUyLjUgMzcuNDI1VjM0LjU3NUM1Mi41IDMzLjI5NjMgNTIuNDk5MSAzMi40MDUgNTIuNDQyNCAzMS43MTFDNTIuMzg2OCAzMS4wMzAyIDUyLjI4MzEgMzAuNjM5MSA1Mi4xMzIxIDMwLjM0MjhDNTEuODA4NiAyOS43MDc3IDUxLjI5MjMgMjkuMTkxNCA1MC42NTcyIDI4Ljg2NzlDNTAuMzYwOSAyOC43MTY5IDQ5Ljk2OTggMjguNjEzMiA0OS4yODkgMjguNTU3NkM0OC41OTUgMjguNTAwOSA0Ny43MDM3IDI4LjUgNDYuNDI1IDI4LjVINDMuNTc1QzQyLjI5NjMgMjguNSA0MS40MDUgMjguNTAwOSA0MC43MTEgMjguNTU3NlpNMzcuNTU3NiA0MC4yODlDMzcuNTU0MyA0MC4yNDkyIDM3LjU1MTMgNDAuMjA4OCAzNy41NDg0IDQwLjE2NzhDMzcuNTcxMSA0MC4xNDQ4IDM3LjU5MzEgNDAuMTIwNiAzNy42MTQyIDQwLjA5NTNMNDAuMzEyNyAzNi44NTcxQzQwLjQ1MzkgMzYuNjg3NyA0MC43MSAzNi42NzYxIDQwLjg2NTkgMzYuODMyTDQ1LjcwNDUgNDEuNjcwNkM0Ni4xNDM4IDQyLjEwOTkgNDYuODU2MSA0Mi4xMDk5IDQ3LjI5NTUgNDEuNjcwNkw0OS44NjA0IDM5LjEwNTZDNTAuMDE4NSAzOC45NDc2IDUwLjI3ODggMzguOTYyIDUwLjQxODQgMzkuMTM2NUw1Mi4yMzc3IDQxLjQxMDdDNTIuMjA1NiA0MS41MDEgNTIuMTcwNCA0MS41ODIyIDUyLjEzMjEgNDEuNjU3MkM1MS44MDg2IDQyLjI5MjMgNTEuMjkyMyA0Mi44MDg2IDUwLjY1NzIgNDMuMTMyMUM1MC4zNjA5IDQzLjI4MzEgNDkuOTY5OCA0My4zODY4IDQ5LjI4OSA0My40NDI0QzQ4LjU5NSA0My40OTkxIDQ3LjcwMzcgNDMuNSA0Ni40MjUgNDMuNUg0My41NzVDNDIuMjk2MyA0My41IDQxLjQwNSA0My40OTkxIDQwLjcxMSA0My40NDI0QzQwLjAzMDIgNDMuMzg2OCAzOS42MzkxIDQzLjI4MzEgMzkuMzQyOCA0My4xMzIxQzM4LjcwNzcgNDIuODA4NiAzOC4xOTE0IDQyLjI5MjMgMzcuODY3OSA0MS42NTcyQzM3LjcxNjkgNDEuMzYwOSAzNy42MTMyIDQwLjk2OTggMzcuNTU3NiA0MC4yODlaIgogICAgZmlsbD0iIzYxNjE2MSIKICAvPgo8L3N2Zz4K",width:r="80",height:o="80",classRemoved:l=!1})=>{var c;const d=s&&"Polaris-GThumbnail--filter",M=h("Polaris-Thumbnail",n&&`${"Polaris-Thumbnail--size"}${(c=n).charAt(0).toUpperCase()}${c.slice(1)}`),g=i.jsx("img",{onError:e=>{e.currentTarget.src=a},alt:t??"Thumbnail",src:`${e??a}`,width:r,height:o,style:{"--gp-grayscale-percentage":s||"100%"},className:h("Polaris-GThumbnail",d)});return l?g:i.jsx("span",{className:M,children:g})},x={default:"w-[210px]",wide:"w-[320px]",large:"w-[328px]"},p={start:"flex justify-start",center:"flex justify-center",end:"flex justify-end"},A=n.forwardRef((e,s)=>{const{tooltip:a,wrapper:r="div",activatorProps:o,isHideBorder:l,alignment:c,delay:d=500,textDecoration:M="none",popoverRef:g,preferredAlignment:N="left",showArrow:u=!1}=e,{width:j="default"}=a??{},[I,A]=n.useState(!1),m=r,D=x[j],z=n.useRef(null),y=()=>{z.current&&(clearTimeout(z.current),z.current=null),A(!1)};return n.useImperativeHandle(s,()=>({onClose:y})),i.jsx(m,{className:h("GTooltipCard cursor-pointer",c&&p[c],{"GTooltipCard--text-underline":"underline"===M}),onMouseEnter:()=>{z.current=setTimeout(()=>{A(!0)},d)},onMouseLeave:y,children:i.jsx(t.Popover,{ref:g,activator:l?i.jsx(t.InlineStack,{children:e.children}):i.jsx(t.Box,{borderBlockEndWidth:"025",borderStyle:"dashed",borderColor:"border-tertiary",as:r,...o,children:e.children}),activatorWrapper:r,onClose:()=>{},active:I,preferredPosition:"below",preferredAlignment:N,children:a&&i.jsx("div",{className:h(D,{"GTooltipCard-arrow":u}),children:i.jsx(t.Box,{padding:"400",children:i.jsxs(t.BlockStack,{gap:"200",children:[i.jsxs(t.BlockStack,{gap:"100",children:[i.jsx(t.Text,{as:"span",variant:"headingSm",fontWeight:"semibold",children:a.title}),i.jsxs(t.BlockStack,{gap:"400",children:[i.jsx(t.Text,{as:"span",variant:"bodyMd",tone:"subdued",fontWeight:"medium",children:i.jsx("span",{dangerouslySetInnerHTML:{__html:a.content}})}),a.contentList&&i.jsx(t.List,{type:"bullet",children:a.contentList.map(e=>i.jsx(t.List.Item,{children:i.jsx(t.Text,{as:"span",variant:"bodyMd",tone:"subdued",fontWeight:"medium",children:e})},e))})]})]}),a.formula&&i.jsx("div",{className:"rounded-md font-mono",style:{fontSize:"12px"},children:a.formula})]})})})})})});A.displayName="GTooltipCard";const m=()=>i.jsx(d,{height:"188px"}),D=({children:e,minHeight:t=228})=>i.jsx(s.PolarisVizProvider,{themes:{Light:{chartContainer:{minHeight:t},grid:{horizontalOverflow:!0,verticalOverflow:!0,horizontalMargin:0},seriesColors:{comparison:o.comparison,single:o.current,all:[...o.all]}}},children:e}),z=e=>String(e),y=({lineChartData:e,isLoading:t,isEmptyMetricData:n})=>t?i.jsx(m,{}):n?i.jsx(S,{title:"No data yet",description:"Data needs time to gather"}):i.jsx(D,{children:i.jsx(s.LineChart,{data:e,yAxisOptions:{labelFormatter:e=>z(Number(e)||0)},theme:"Light",tooltipOptions:{keyFormatter:e=>e,renderTooltipContent:e=>i.jsx(O,{data:e,formatValue:z})},showLegend:!0})});const S=({boxProps:e,minHeight:n,description:s,title:a})=>i.jsx(t.Box,{minWidth:"100%",...e,children:i.jsx(M,{minHeight:n,children:i.jsx(t.Box,{padding:"400",children:i.jsxs(t.BlockStack,{gap:"400",align:"center",inlineAlign:"center",children:[i.jsx("div",{className:"h-[80px] w-[80px]",children:i.jsx(I,{source:"data:image/png;base64,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",width:"80px",height:"80px",alt:a,classRemoved:!0})}),i.jsxs(t.BlockStack,{gap:"200",align:"center",inlineAlign:"center",children:[i.jsx(t.Text,{as:"h4",variant:"headingSm",fontWeight:"semibold",children:a}),i.jsx(t.Text,{as:"h4",variant:"bodyMd",tone:"subdued",children:s})]})]})})})}),T=()=>i.jsxs("svg",{width:"8",height:"8",viewBox:"0 0 8 8",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[i.jsx("g",{clipPath:"url(#clip0_18114_1160)",children:i.jsx("path",{d:"M1 1L6.5 6.5M6.5 6.5V1.5M6.5 6.5H1.5",stroke:"#8A8A8A",strokeWidth:"1.5"})}),i.jsx("defs",{children:i.jsx("clipPath",{id:"clip0_18114_1160",children:i.jsx("rect",{width:"8",height:"8",fill:"white"})})})]}),k=()=>i.jsxs("svg",{width:"8",height:"8",viewBox:"0 0 8 8",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[i.jsx("g",{clipPath:"url(#clip0_18114_1146)",children:i.jsx("path",{d:"M1 7L6.5 1.5M6.5 1.5H1.5M6.5 1.5V6.5",stroke:"#29845A",strokeWidth:"1.5"})}),i.jsx("defs",{children:i.jsx("clipPath",{id:"clip0_18114_1146",children:i.jsx("rect",{width:"8",height:"8",fill:"white",transform:"matrix(0 -1 1 0 0 8)"})})})]}),E=({change:e})=>"number"!=typeof e?i.jsx("div",{style:{height:"2px",width:"11px",backgroundColor:"#8A8A8A"}}):i.jsxs("div",{style:{display:"flex",maxHeight:"20px",width:"fit-content",alignItems:"center",gap:"4px",borderRadius:"8px",fontSize:"12px",color:e>0?l:c},children:[e<0&&i.jsx(t.InlineStack,{align:"center",children:i.jsx(T,{})}),e>0&&i.jsx(t.InlineStack,{align:"center",children:i.jsx(k,{})}),i.jsx(t.Text,{as:"span",variant:"bodyXs",fontWeight:"semibold",children:u(Math.abs(e||0))})]}),O=({data:e,formatValue:n})=>{const{activeIndex:s}=e,a=e?.dataSeries[0]?.data[s],r=e?.dataSeries[1]?.data[s],o=()=>{const e=a.trend?.value;if(!e)return"-";const i=Number(e.replace(/[%~]/g,""));return"negative"===a.trend?.trend?-1*i:i};return i.jsx("div",{className:"w-fit min-w-[175px]",children:i.jsx(t.Card,{padding:"200",children:i.jsxs(t.BlockStack,{gap:"100",children:[i.jsx(t.Text,{as:"p",variant:"bodySm",fontWeight:"semibold",children:e.formatters?.titleFormatter?.(e.title||"")||e.title}),i.jsxs(t.BlockStack,{gap:"100",children:[i.jsxs(t.InlineStack,{gap:"400",align:"space-between",blockAlign:"center",children:[i.jsxs(t.InlineStack,{gap:"100",blockAlign:"center",children:[i.jsx("div",{className:"h-[2px] w-[12px] rounded-[10px] bg-[#4FA9EA]"}),i.jsx(t.Text,{as:"p",variant:"bodySm",fontWeight:"medium",tone:"subdued",children:a.tooltipKey})]}),i.jsxs(t.InlineStack,{blockAlign:"center",gap:"100",children:[i.jsx(t.Text,{as:"span",variant:"bodySm",fontWeight:"semibold",children:n(a.value)}),i.jsx(E,{change:o()})]})]}),i.jsxs(t.InlineStack,{gap:"400",align:"space-between",blockAlign:"center",children:[i.jsxs(t.InlineStack,{gap:"100",blockAlign:"center",children:[i.jsx("div",{className:"w-[12px] border border-dashed border-[#A1CAE7]"}),i.jsx(t.Text,{as:"p",variant:"bodySm",tone:"subdued",fontWeight:"medium",children:r.tooltipKey})]}),i.jsxs(t.InlineStack,{blockAlign:"center",gap:"100",children:[i.jsx(t.Text,{as:"span",variant:"bodySm",fontWeight:"semibold",children:n(r.value)}),i.jsx("div",{className:"opacity-0",children:i.jsx(E,{change:o()})})]})]})]})]})})})};var v=function(e){return n.createElement("svg",Object.assign({viewBox:"0 0 20 20"},e),n.createElement("path",{fillRule:"evenodd",d:"M7.72 14.53a.75.75 0 0 1 0-1.06l3.47-3.47-3.47-3.47a.75.75 0 0 1 1.06-1.06l4 4a.75.75 0 0 1 0 1.06l-4 4a.75.75 0 0 1-1.06 0Z"}))};v.displayName="ChevronRightIcon";const C=({isShowOneLine:e})=>e?i.jsx(t.Box,{width:"40%",children:i.jsx(t.SkeletonBodyText,{lines:1})}):i.jsxs(t.BlockStack,{gap:"200",children:[i.jsx(t.Box,{width:"60%",children:i.jsx(t.SkeletonBodyText,{lines:1})}),i.jsx(t.Box,{width:"40%",children:i.jsx(t.SkeletonBodyText,{lines:1})})]}),f=({totalValue:e,hideComparison:n})=>i.jsx(t.BlockStack,{gap:"200",children:i.jsxs(t.InlineStack,{blockAlign:"center",gap:"200",wrap:!1,children:[i.jsx(t.InlineStack,{blockAlign:"center",gap:"200",children:i.jsx(t.Text,{as:"span",variant:"headingSm",children:e.value})}),!n&&i.jsx(E,{change:e.change})]})}),L=({item:e,isHovered:n,isLoading:s,hideComparison:a,titleVariant:o="headingMd",titleFontWeight:l,onClickTitle:c})=>{const{key:d,title:M,totalValue:g}=e,N=r[d];return s?i.jsx(C,{}):i.jsxs(t.BlockStack,{gap:"200",children:[i.jsx("div",{className:"hover:cursor-pointer hover:text-[--p-color-text-link-hover]",onClick:e=>{e?.stopPropagation(),c?.(d)},children:i.jsxs(t.InlineStack,{wrap:!1,children:[i.jsx(t.Box,{maxWidth:"100%",overflowX:"hidden",children:i.jsx(A,{tooltip:N,children:i.jsx(t.Text,{as:"span",variant:o,fontWeight:l,truncate:!0,children:M})})}),n&&i.jsx("div",{className:"flex h-[20px] w-[20px] items-center",children:i.jsx(t.Icon,{source:v,tone:"inherit"})})]})}),i.jsx(f,{totalValue:g,hideComparison:a})]})},b=({item:e,isActive:s,isLoading:a,hideComparison:r,onSelect:o,onClickTitle:l})=>{const[c,d]=n.useState(!1),M=s||c;return i.jsx("div",{className:"w-full cursor-pointer overflow-hidden",onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1),onClick:()=>o(e.key),children:i.jsx(t.Box,{paddingBlock:"150",paddingInline:"300",borderRadius:"200",background:M?"bg-surface-active":void 0,children:i.jsx(L,{item:e,isHovered:c,isLoading:a,hideComparison:r,titleVariant:"headingSm",titleFontWeight:"semibold",onClickTitle:l})})})};e.GSelectableMetricChartCard=({metricInfo:e,dataChart:s,defaultActiveTab:a,isLoading:r,isEmptyMetricData:o,hideComparison:l,currentPeriodLabel:c="Current",previousPeriodLabel:d="Previous"})=>{const[M,g]=n.useState(a),N=n.useMemo(()=>{const e=M?s[M]:void 0;if(!e)return[];const i={name:c,data:e.current};return l?[i]:[i,{name:d,data:e.previous,isComparison:!0}]},[M,s,l,c,d]);return i.jsxs(t.Card,{children:[i.jsx("div",{style:{display:"grid",gridTemplateColumns:`repeat(${e.length}, 1fr)`,gap:"16px",marginBottom:"16px"},children:e.map(e=>i.jsx(b,{item:e,isActive:M===e.key,isLoading:r,hideComparison:l,onSelect:g},e.key))}),i.jsx(y,{lineChartData:N,isLoading:r,isEmptyMetricData:o})]})},e.SingleMetricChartCard=({metricInfo:e,lineChartData:s,isLoading:a,hideComparison:r,isEmptyMetricData:o,onClickTitle:l})=>{const[c,d]=n.useState(!1);return i.jsx("div",{onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1),children:i.jsx(t.Card,{children:i.jsxs(t.BlockStack,{gap:"200",children:[i.jsx(L,{item:e,isHovered:c,isLoading:a,hideComparison:r,onClickTitle:l}),i.jsx(y,{lineChartData:s,isLoading:a,isEmptyMetricData:o})]})})})}});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@levi-gemcommerce/analytics",
|
|
3
|
-
"version": "0.0.1-dev.
|
|
3
|
+
"version": "0.0.1-dev.4",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"author": "gemx-dev",
|
|
6
6
|
"sideEffects": [
|
|
@@ -68,25 +68,40 @@
|
|
|
68
68
|
"@shopify/polaris-icons": "9.3.1",
|
|
69
69
|
"@shopify/polaris-viz": "16.16.0",
|
|
70
70
|
"@shopify/polaris-viz-core": "16.16.0",
|
|
71
|
+
"@tanstack/react-query": "^5.0.0",
|
|
71
72
|
"@types/node": "^22.15.3",
|
|
72
73
|
"@types/react": "18.3.1",
|
|
73
74
|
"@types/react-dom": "18.3.1",
|
|
74
75
|
"concurrently": "^10.0.3",
|
|
76
|
+
"dayjs": "^1.11.10",
|
|
75
77
|
"eslint": "9.36.0",
|
|
76
78
|
"react": "18.3.1",
|
|
77
79
|
"rollup": "3.29.5",
|
|
78
80
|
"rollup-plugin-postcss": "^4.0.2",
|
|
79
81
|
"sass": "^1.100.0",
|
|
80
82
|
"tailwindcss": "3.4.1",
|
|
81
|
-
"typescript": "5.9.2"
|
|
83
|
+
"typescript": "5.9.2",
|
|
84
|
+
"zustand": "^4.4.7"
|
|
82
85
|
},
|
|
83
86
|
"peerDependencies": {
|
|
84
87
|
"@shopify/polaris": ">=12",
|
|
85
|
-
"@shopify/polaris-
|
|
86
|
-
"@
|
|
87
|
-
"
|
|
88
|
+
"@shopify/polaris-viz": ">=16",
|
|
89
|
+
"@tanstack/react-query": ">=4",
|
|
90
|
+
"dayjs": ">=1.11",
|
|
88
91
|
"react": ">=17",
|
|
89
|
-
"react-dom": ">=17"
|
|
92
|
+
"react-dom": ">=17",
|
|
93
|
+
"zustand": ">=4"
|
|
94
|
+
},
|
|
95
|
+
"peerDependenciesMeta": {
|
|
96
|
+
"@tanstack/react-query": {
|
|
97
|
+
"optional": true
|
|
98
|
+
},
|
|
99
|
+
"dayjs": {
|
|
100
|
+
"optional": true
|
|
101
|
+
},
|
|
102
|
+
"zustand": {
|
|
103
|
+
"optional": true
|
|
104
|
+
}
|
|
90
105
|
},
|
|
91
106
|
"publishConfig": {
|
|
92
107
|
"access": "public",
|