@gem-sdk/analytics 1.0.0-dev.21 → 1.0.0-dev.9
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/components/index.d.ts +0 -3
- package/dist/esm/constants/breakdown-targets.d.ts +1 -1
- package/dist/esm/constants/index.d.ts +0 -1
- package/dist/esm/core/gemxql/builder/clauses/mode-query.d.ts +1 -1
- package/dist/esm/core/gemxql/builder/clauses/time-query.d.ts +1 -2
- package/dist/esm/core/gemxql/builder/helpers/date-query-helpers.d.ts +1 -1
- package/dist/esm/core/gemxql/helpers/extractQueryData.d.ts +1 -1
- package/dist/esm/core/gemxql/helpers/getTimeDimension.d.ts +1 -1
- package/dist/esm/core/gemxql/hooks/useAnalyticData.d.ts +1 -4
- package/dist/esm/core/gemxql/index.d.ts +6 -3
- package/dist/esm/core/gemxql/types/analytic-mode.d.ts +5 -0
- package/dist/esm/core/gemxql/types/date-filter.d.ts +10 -0
- package/dist/esm/core/gemxql/types/index.d.ts +3 -0
- package/dist/esm/{utils → core/gemxql/utils}/analytics.d.ts +1 -0
- package/dist/esm/{utils → core/gemxql/utils}/dayjs.d.ts +0 -2
- package/dist/esm/gemxql.js +205 -347
- package/dist/esm/gemxql.mjs +205 -347
- package/dist/esm/hooks/index.d.ts +1 -3
- package/dist/esm/index.d.ts +2 -4
- package/dist/esm/index.js +467 -2133
- package/dist/esm/index.mjs +467 -2133
- package/dist/esm/providers/index.d.ts +0 -2
- package/dist/esm/shared/charts/components/GPolarisViz/components/ChartErrorBoundary/ChartErrorBoundary.d.ts +1 -1
- package/dist/esm/shared/charts/components/GPolarisViz/components/TooltipWrapper/utilities/getDonutChartTooltipPosition.d.ts +1 -1
- package/dist/esm/shared/charts/components/GPolarisViz/components/TooltipWrapper/utilities/getLineChartTooltipPosition.d.ts +1 -1
- package/dist/esm/shared/components/index.d.ts +0 -11
- package/dist/esm/types/index.d.ts +0 -3
- package/dist/esm/types.js +1 -31
- package/dist/esm/types.mjs +1 -31
- package/dist/esm/utils/index.d.ts +0 -3
- package/dist/style.css +1 -1
- package/dist/umd/esm/components/index.d.ts +0 -3
- package/dist/umd/esm/constants/breakdown-targets.d.ts +1 -1
- package/dist/umd/esm/constants/index.d.ts +0 -1
- package/dist/umd/esm/core/gemxql/builder/clauses/mode-query.d.ts +1 -1
- package/dist/umd/esm/core/gemxql/builder/clauses/time-query.d.ts +1 -2
- package/dist/umd/esm/core/gemxql/builder/helpers/date-query-helpers.d.ts +1 -1
- package/dist/umd/esm/core/gemxql/helpers/extractQueryData.d.ts +1 -1
- package/dist/umd/esm/core/gemxql/helpers/getTimeDimension.d.ts +1 -1
- package/dist/umd/esm/core/gemxql/hooks/useAnalyticData.d.ts +1 -4
- package/dist/umd/esm/core/gemxql/index.d.ts +6 -3
- package/dist/umd/esm/core/gemxql/types/analytic-mode.d.ts +5 -0
- package/dist/umd/esm/core/gemxql/types/date-filter.d.ts +10 -0
- package/dist/umd/esm/core/gemxql/types/index.d.ts +3 -0
- package/dist/umd/esm/{utils → core/gemxql/utils}/analytics.d.ts +1 -0
- package/dist/umd/esm/{utils → core/gemxql/utils}/dayjs.d.ts +0 -2
- package/dist/umd/esm/hooks/index.d.ts +1 -3
- package/dist/umd/esm/index.d.ts +2 -4
- package/dist/umd/esm/providers/index.d.ts +0 -2
- package/dist/umd/esm/shared/charts/components/GPolarisViz/components/ChartErrorBoundary/ChartErrorBoundary.d.ts +1 -1
- package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TooltipWrapper/utilities/getDonutChartTooltipPosition.d.ts +1 -1
- package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TooltipWrapper/utilities/getLineChartTooltipPosition.d.ts +1 -1
- package/dist/umd/esm/shared/components/index.d.ts +0 -11
- package/dist/umd/esm/types/index.d.ts +0 -3
- package/dist/umd/esm/utils/index.d.ts +0 -3
- package/dist/umd/gemxql.js +1 -1
- package/dist/umd/index.js +1 -1
- package/dist/umd/types.js +1 -1
- package/package.json +2 -5
- package/dist/esm/components/AnalyticMode/AnalyticModeSelector.d.ts +0 -13
- package/dist/esm/components/AnalyticMode/index.d.ts +0 -2
- package/dist/esm/components/CurrencySelector/CurrencySelector.d.ts +0 -10
- package/dist/esm/components/CurrencySelector/index.d.ts +0 -2
- package/dist/esm/components/GTimePicker/GTimePicker.d.ts +0 -17
- package/dist/esm/components/GTimePicker/components/BaseTimePicker.d.ts +0 -10
- package/dist/esm/components/GTimePicker/components/CompareTimePicker.d.ts +0 -5
- package/dist/esm/components/GTimePicker/components/DateTimeFilterAddition.d.ts +0 -2
- package/dist/esm/components/GTimePicker/components/DateTimeFilterInputs.d.ts +0 -9
- package/dist/esm/components/GTimePicker/components/DateTimeFilters.d.ts +0 -15
- package/dist/esm/components/GTimePicker/components/MainTimePicker.d.ts +0 -3
- package/dist/esm/components/GTimePicker/components/index.d.ts +0 -2
- package/dist/esm/components/GTimePicker/constants/compareDateTimePicker.d.ts +0 -12
- package/dist/esm/components/GTimePicker/constants/datePicker.d.ts +0 -14
- package/dist/esm/components/GTimePicker/constants/index.d.ts +0 -2
- package/dist/esm/components/GTimePicker/constants/mainDataTimePicker.d.ts +0 -14
- package/dist/esm/components/GTimePicker/contexts/DateTimePickerProvider.d.ts +0 -15
- package/dist/esm/components/GTimePicker/contexts/index.d.ts +0 -1
- package/dist/esm/components/GTimePicker/helpers/date-range-info.d.ts +0 -16
- package/dist/esm/components/GTimePicker/helpers/index.d.ts +0 -4
- package/dist/esm/components/GTimePicker/helpers/parse-date.d.ts +0 -24
- package/dist/esm/components/GTimePicker/helpers/time-picker.d.ts +0 -76
- package/dist/esm/components/GTimePicker/helpers/version.d.ts +0 -2
- package/dist/esm/components/GTimePicker/hooks/index.d.ts +0 -3
- package/dist/esm/components/GTimePicker/hooks/useCompareDateTimePicker.d.ts +0 -25
- package/dist/esm/components/GTimePicker/hooks/useDateTimeFilter.d.ts +0 -18
- package/dist/esm/components/GTimePicker/hooks/useDateTimePicker.d.ts +0 -30
- package/dist/esm/components/GTimePicker/hooks/useVersionDateTimeFilters.d.ts +0 -9
- package/dist/esm/components/GTimePicker/index.d.ts +0 -7
- package/dist/esm/components/GTimePicker/types/index.d.ts +0 -38
- package/dist/esm/constants/currency.d.ts +0 -2
- package/dist/esm/hooks/publish/index.d.ts +0 -2
- package/dist/esm/hooks/publish/useStickyDetectById.d.ts +0 -8
- package/dist/esm/hooks/publish/useStickyFilterBoxProps.d.ts +0 -6
- package/dist/esm/hooks/useFetchCurrencyRates.d.ts +0 -1
- package/dist/esm/hooks/useToggle.d.ts +0 -12
- package/dist/esm/providers/ConvertMoneyProvider.d.ts +0 -13
- package/dist/esm/shared/components/GActivatorPopover/GActivatorPopover.d.ts +0 -23
- package/dist/esm/shared/components/GActivatorPopover/index.d.ts +0 -1
- package/dist/esm/shared/components/GButton/GButton.d.ts +0 -19
- package/dist/esm/shared/components/GButton/index.d.ts +0 -1
- package/dist/esm/shared/components/GCheckbox/GCheckbox.d.ts +0 -39
- package/dist/esm/shared/components/GCheckbox/index.d.ts +0 -1
- package/dist/esm/shared/components/GChoice/ChoiceHelpText.d.ts +0 -4
- package/dist/esm/shared/components/GChoice/GChoice.d.ts +0 -44
- package/dist/esm/shared/components/GChoice/index.d.ts +0 -2
- package/dist/esm/shared/components/GClickable/GClickable.d.ts +0 -10
- package/dist/esm/shared/components/GClickable/index.d.ts +0 -1
- package/dist/esm/shared/components/GDiv/GDiv.d.ts +0 -7
- package/dist/esm/shared/components/GDiv/index.d.ts +0 -1
- package/dist/esm/shared/components/GI18NText/GI18NText.d.ts +0 -2
- package/dist/esm/shared/components/GI18NText/index.d.ts +0 -2
- package/dist/esm/shared/components/GI18NText/types.d.ts +0 -6
- package/dist/esm/shared/components/GOptionList/GOptionList.d.ts +0 -11
- package/dist/esm/shared/components/GOptionList/index.d.ts +0 -1
- package/dist/esm/shared/components/GSelector/GSelector.d.ts +0 -27
- package/dist/esm/shared/components/GSelector/index.d.ts +0 -1
- package/dist/esm/shared/components/GTextLink/GTextLink.d.ts +0 -9
- package/dist/esm/shared/components/GTextLink/index.d.ts +0 -1
- package/dist/esm/shared/components/GViewBySelector/GViewBySelector.d.ts +0 -17
- package/dist/esm/shared/components/GViewBySelector/index.d.ts +0 -1
- package/dist/esm/stores/currencyRatesStore.d.ts +0 -7
- package/dist/esm/stores/index.d.ts +0 -2
- package/dist/esm/types/analytic-mode.d.ts +0 -5
- package/dist/esm/types/currency.d.ts +0 -329
- package/dist/esm/utils/currency.d.ts +0 -5
- package/dist/esm/utils/sort.d.ts +0 -13
- package/dist/umd/esm/components/AnalyticMode/AnalyticModeSelector.d.ts +0 -13
- package/dist/umd/esm/components/AnalyticMode/index.d.ts +0 -2
- package/dist/umd/esm/components/CurrencySelector/CurrencySelector.d.ts +0 -10
- package/dist/umd/esm/components/CurrencySelector/index.d.ts +0 -2
- package/dist/umd/esm/components/GTimePicker/GTimePicker.d.ts +0 -17
- package/dist/umd/esm/components/GTimePicker/components/BaseTimePicker.d.ts +0 -10
- package/dist/umd/esm/components/GTimePicker/components/CompareTimePicker.d.ts +0 -5
- package/dist/umd/esm/components/GTimePicker/components/DateTimeFilterAddition.d.ts +0 -2
- package/dist/umd/esm/components/GTimePicker/components/DateTimeFilterInputs.d.ts +0 -9
- package/dist/umd/esm/components/GTimePicker/components/DateTimeFilters.d.ts +0 -15
- package/dist/umd/esm/components/GTimePicker/components/MainTimePicker.d.ts +0 -3
- package/dist/umd/esm/components/GTimePicker/components/index.d.ts +0 -2
- package/dist/umd/esm/components/GTimePicker/constants/compareDateTimePicker.d.ts +0 -12
- package/dist/umd/esm/components/GTimePicker/constants/datePicker.d.ts +0 -14
- package/dist/umd/esm/components/GTimePicker/constants/index.d.ts +0 -2
- package/dist/umd/esm/components/GTimePicker/constants/mainDataTimePicker.d.ts +0 -14
- package/dist/umd/esm/components/GTimePicker/contexts/DateTimePickerProvider.d.ts +0 -15
- package/dist/umd/esm/components/GTimePicker/contexts/index.d.ts +0 -1
- package/dist/umd/esm/components/GTimePicker/helpers/date-range-info.d.ts +0 -16
- package/dist/umd/esm/components/GTimePicker/helpers/index.d.ts +0 -4
- package/dist/umd/esm/components/GTimePicker/helpers/parse-date.d.ts +0 -24
- package/dist/umd/esm/components/GTimePicker/helpers/time-picker.d.ts +0 -76
- package/dist/umd/esm/components/GTimePicker/helpers/version.d.ts +0 -2
- package/dist/umd/esm/components/GTimePicker/hooks/index.d.ts +0 -3
- package/dist/umd/esm/components/GTimePicker/hooks/useCompareDateTimePicker.d.ts +0 -25
- package/dist/umd/esm/components/GTimePicker/hooks/useDateTimeFilter.d.ts +0 -18
- package/dist/umd/esm/components/GTimePicker/hooks/useDateTimePicker.d.ts +0 -30
- package/dist/umd/esm/components/GTimePicker/hooks/useVersionDateTimeFilters.d.ts +0 -9
- package/dist/umd/esm/components/GTimePicker/index.d.ts +0 -7
- package/dist/umd/esm/components/GTimePicker/types/index.d.ts +0 -38
- package/dist/umd/esm/constants/currency.d.ts +0 -2
- package/dist/umd/esm/hooks/publish/index.d.ts +0 -2
- package/dist/umd/esm/hooks/publish/useStickyDetectById.d.ts +0 -8
- package/dist/umd/esm/hooks/publish/useStickyFilterBoxProps.d.ts +0 -6
- package/dist/umd/esm/hooks/useFetchCurrencyRates.d.ts +0 -1
- package/dist/umd/esm/hooks/useToggle.d.ts +0 -12
- package/dist/umd/esm/providers/ConvertMoneyProvider.d.ts +0 -13
- package/dist/umd/esm/shared/components/GActivatorPopover/GActivatorPopover.d.ts +0 -23
- package/dist/umd/esm/shared/components/GActivatorPopover/index.d.ts +0 -1
- package/dist/umd/esm/shared/components/GButton/GButton.d.ts +0 -19
- package/dist/umd/esm/shared/components/GButton/index.d.ts +0 -1
- package/dist/umd/esm/shared/components/GCheckbox/GCheckbox.d.ts +0 -39
- package/dist/umd/esm/shared/components/GCheckbox/index.d.ts +0 -1
- package/dist/umd/esm/shared/components/GChoice/ChoiceHelpText.d.ts +0 -4
- package/dist/umd/esm/shared/components/GChoice/GChoice.d.ts +0 -44
- package/dist/umd/esm/shared/components/GChoice/index.d.ts +0 -2
- package/dist/umd/esm/shared/components/GClickable/GClickable.d.ts +0 -10
- package/dist/umd/esm/shared/components/GClickable/index.d.ts +0 -1
- package/dist/umd/esm/shared/components/GDiv/GDiv.d.ts +0 -7
- package/dist/umd/esm/shared/components/GDiv/index.d.ts +0 -1
- package/dist/umd/esm/shared/components/GI18NText/GI18NText.d.ts +0 -2
- package/dist/umd/esm/shared/components/GI18NText/index.d.ts +0 -2
- package/dist/umd/esm/shared/components/GI18NText/types.d.ts +0 -6
- package/dist/umd/esm/shared/components/GOptionList/GOptionList.d.ts +0 -11
- package/dist/umd/esm/shared/components/GOptionList/index.d.ts +0 -1
- package/dist/umd/esm/shared/components/GSelector/GSelector.d.ts +0 -27
- package/dist/umd/esm/shared/components/GSelector/index.d.ts +0 -1
- package/dist/umd/esm/shared/components/GTextLink/GTextLink.d.ts +0 -9
- package/dist/umd/esm/shared/components/GTextLink/index.d.ts +0 -1
- package/dist/umd/esm/shared/components/GViewBySelector/GViewBySelector.d.ts +0 -17
- package/dist/umd/esm/shared/components/GViewBySelector/index.d.ts +0 -1
- package/dist/umd/esm/stores/currencyRatesStore.d.ts +0 -7
- package/dist/umd/esm/stores/index.d.ts +0 -2
- package/dist/umd/esm/types/analytic-mode.d.ts +0 -5
- package/dist/umd/esm/types/currency.d.ts +0 -329
- package/dist/umd/esm/utils/currency.d.ts +0 -5
- package/dist/umd/esm/utils/sort.d.ts +0 -13
- /package/dist/esm/{types → core/gemxql/types}/breakdown-items.d.ts +0 -0
- /package/dist/esm/hooks/{publish/useWindowSize.d.ts → useWindowSize.d.ts} +0 -0
- /package/dist/umd/esm/{types → core/gemxql/types}/breakdown-items.d.ts +0 -0
- /package/dist/umd/esm/hooks/{publish/useWindowSize.d.ts → useWindowSize.d.ts} +0 -0
|
@@ -20,6 +20,6 @@ export declare class ChartErrorBoundary extends Component<ErrorBoundaryProps, Er
|
|
|
20
20
|
constructor(props: any);
|
|
21
21
|
onError: (error: Error, errorInfo: ErrorInfo) => void;
|
|
22
22
|
componentDidCatch(error: Error, errorInfo: ErrorInfo): void;
|
|
23
|
-
render(): string | number | boolean |
|
|
23
|
+
render(): string | number | boolean | import("react/jsx-runtime").JSX.Element | Iterable<ReactNode> | null | undefined;
|
|
24
24
|
}
|
|
25
25
|
export {};
|
|
@@ -4,5 +4,5 @@ interface Props extends Pick<TooltipPositionParams, 'event' | 'eventType' | 'ind
|
|
|
4
4
|
containerBounds: BoundingRect;
|
|
5
5
|
parentElement: SVGSVGElement | null;
|
|
6
6
|
}
|
|
7
|
-
export declare function getDonutChartTooltipPosition({ containerBounds, event, eventType, index, parentElement }: Props): import("
|
|
7
|
+
export declare function getDonutChartTooltipPosition({ containerBounds, event, eventType, index, parentElement }: Props): import("../types").TooltipPosition;
|
|
8
8
|
export {};
|
|
@@ -7,5 +7,5 @@ interface Props extends Omit<TooltipPositionParams, 'xScale'> {
|
|
|
7
7
|
scrollY: number;
|
|
8
8
|
xScale: ScaleLinear<number, number>;
|
|
9
9
|
}
|
|
10
|
-
export declare function getLineChartTooltipPosition({ containerBounds, chartBounds, data, event, eventType, index, isTouchDevice, longestSeriesIndex, scrollY, xScale, }: Props): import("
|
|
10
|
+
export declare function getLineChartTooltipPosition({ containerBounds, chartBounds, data, event, eventType, index, isTouchDevice, longestSeriesIndex, scrollY, xScale, }: Props): import("../types").TooltipPosition;
|
|
11
11
|
export {};
|
|
@@ -1,16 +1,5 @@
|
|
|
1
|
-
export * from './GActivatorPopover';
|
|
2
1
|
export * from './GBlockCenter';
|
|
3
|
-
export * from './GButton';
|
|
4
|
-
export * from './GCheckbox';
|
|
5
|
-
export * from './GClickable';
|
|
6
|
-
export * from './GDiv';
|
|
7
|
-
export * from './GI18NText';
|
|
8
|
-
export * from './GOptionList';
|
|
9
|
-
export * from './GSelector';
|
|
10
|
-
export * from './GTextLink';
|
|
11
2
|
export * from './GSkeletonDisplayText';
|
|
12
3
|
export * from './GThumbnail';
|
|
13
4
|
export * from './GTooltip';
|
|
14
5
|
export * from './GTooltipCard';
|
|
15
|
-
export * from './GViewBySelector';
|
|
16
|
-
export * from './GChoice';
|
package/dist/esm/types.js
CHANGED
|
@@ -21,34 +21,4 @@ var EMetricKey;
|
|
|
21
21
|
EMetricKey["TRAFFIC_SOURCE_ITEMS"] = "traffic_source_items";
|
|
22
22
|
})(EMetricKey || (EMetricKey = {}));
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
(function (EAnalyticMode) {
|
|
26
|
-
EAnalyticMode["ALL_SESSION"] = "ALL_SESSION";
|
|
27
|
-
EAnalyticMode["FIRST_SESSION"] = "FIRST_SESSION";
|
|
28
|
-
EAnalyticMode["PAGE_ONLY"] = "PAGE_ONLY";
|
|
29
|
-
})(EAnalyticMode || (EAnalyticMode = {}));
|
|
30
|
-
|
|
31
|
-
var EVisitorType;
|
|
32
|
-
(function (EVisitorType) {
|
|
33
|
-
EVisitorType["NEW"] = "new";
|
|
34
|
-
EVisitorType["RETURNING"] = "returning";
|
|
35
|
-
})(EVisitorType || (EVisitorType = {}));
|
|
36
|
-
var EDeviceType;
|
|
37
|
-
(function (EDeviceType) {
|
|
38
|
-
EDeviceType["DESKTOP"] = "desktop";
|
|
39
|
-
EDeviceType["MOBILE"] = "mobile";
|
|
40
|
-
EDeviceType["TABLET"] = "tablet";
|
|
41
|
-
})(EDeviceType || (EDeviceType = {}));
|
|
42
|
-
var ETrafficSourceType;
|
|
43
|
-
(function (ETrafficSourceType) {
|
|
44
|
-
ETrafficSourceType["DIRECT"] = "direct";
|
|
45
|
-
ETrafficSourceType["EMAIL"] = "email";
|
|
46
|
-
ETrafficSourceType["REFERRAL"] = "referral";
|
|
47
|
-
ETrafficSourceType["ORGANIC_SOCIAL"] = "organic-social";
|
|
48
|
-
ETrafficSourceType["ORGANIC_SEARCH"] = "organic-search";
|
|
49
|
-
ETrafficSourceType["PAID_SOCIAL"] = "paid-social";
|
|
50
|
-
ETrafficSourceType["PAID_SEARCH"] = "paid-search";
|
|
51
|
-
ETrafficSourceType["SMS"] = "sms";
|
|
52
|
-
})(ETrafficSourceType || (ETrafficSourceType = {}));
|
|
53
|
-
|
|
54
|
-
export { EAnalyticMode, EDeviceType, EMetricKey, ETrafficSourceType, EVisitorType };
|
|
24
|
+
export { EMetricKey };
|
package/dist/esm/types.mjs
CHANGED
|
@@ -21,34 +21,4 @@ var EMetricKey;
|
|
|
21
21
|
EMetricKey["TRAFFIC_SOURCE_ITEMS"] = "traffic_source_items";
|
|
22
22
|
})(EMetricKey || (EMetricKey = {}));
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
(function (EAnalyticMode) {
|
|
26
|
-
EAnalyticMode["ALL_SESSION"] = "ALL_SESSION";
|
|
27
|
-
EAnalyticMode["FIRST_SESSION"] = "FIRST_SESSION";
|
|
28
|
-
EAnalyticMode["PAGE_ONLY"] = "PAGE_ONLY";
|
|
29
|
-
})(EAnalyticMode || (EAnalyticMode = {}));
|
|
30
|
-
|
|
31
|
-
var EVisitorType;
|
|
32
|
-
(function (EVisitorType) {
|
|
33
|
-
EVisitorType["NEW"] = "new";
|
|
34
|
-
EVisitorType["RETURNING"] = "returning";
|
|
35
|
-
})(EVisitorType || (EVisitorType = {}));
|
|
36
|
-
var EDeviceType;
|
|
37
|
-
(function (EDeviceType) {
|
|
38
|
-
EDeviceType["DESKTOP"] = "desktop";
|
|
39
|
-
EDeviceType["MOBILE"] = "mobile";
|
|
40
|
-
EDeviceType["TABLET"] = "tablet";
|
|
41
|
-
})(EDeviceType || (EDeviceType = {}));
|
|
42
|
-
var ETrafficSourceType;
|
|
43
|
-
(function (ETrafficSourceType) {
|
|
44
|
-
ETrafficSourceType["DIRECT"] = "direct";
|
|
45
|
-
ETrafficSourceType["EMAIL"] = "email";
|
|
46
|
-
ETrafficSourceType["REFERRAL"] = "referral";
|
|
47
|
-
ETrafficSourceType["ORGANIC_SOCIAL"] = "organic-social";
|
|
48
|
-
ETrafficSourceType["ORGANIC_SEARCH"] = "organic-search";
|
|
49
|
-
ETrafficSourceType["PAID_SOCIAL"] = "paid-social";
|
|
50
|
-
ETrafficSourceType["PAID_SEARCH"] = "paid-search";
|
|
51
|
-
ETrafficSourceType["SMS"] = "sms";
|
|
52
|
-
})(ETrafficSourceType || (ETrafficSourceType = {}));
|
|
53
|
-
|
|
54
|
-
export { EAnalyticMode, EDeviceType, EMetricKey, ETrafficSourceType, EVisitorType };
|
|
24
|
+
export { EMetricKey };
|
package/dist/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.visible{visibility:visible}.static{position:static}.
|
|
1
|
+
.visible{visibility:visible}.static{position:static}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.\!grid{display:grid!important}.grid{display:grid}.hidden{display:none}.h-7{height:1.75rem}.h-\[20px\]{height:20px}.h-\[2px\]{height:2px}.h-\[80px\]{height:80px}.h-\[8px\]{height:8px}.max-h-\[250px\]{max-height:250px}.w-\[12px\]{width:12px}.w-\[20px\]{width:20px}.w-\[210px\]{width:210px}.w-\[320px\]{width:320px}.w-\[328px\]{width:328px}.w-\[50px\]{width:50px}.w-\[80px\]{width:80px}.w-\[8px\]{width:8px}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.min-w-0{min-width:0}.min-w-\[175px\]{min-width:175px}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.resize{resize:both}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.gap-1{gap:.25rem}.gap-\[2px\]{gap:2px}.overflow-hidden,.truncate{overflow:hidden}.truncate{text-overflow:ellipsis;white-space:nowrap}.rounded-\[10px\]{border-radius:10px}.rounded-md{border-radius:.375rem}.border{border-width:1px}.border-dashed{border-style:dashed}.border-\[\#A1CAE7\]{--tw-border-opacity:1;border-color:rgb(161 202 231/var(--tw-border-opacity))}.bg-\[\#4FA9EA\]{--tw-bg-opacity:1;background-color:rgb(79 169 234/var(--tw-bg-opacity))}.bg-\[\#f7f7f7\]{--tw-bg-opacity:1;background-color:rgb(247 247 247/var(--tw-bg-opacity))}.px-3{padding-left:.75rem;padding-right:.75rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-2\.5{padding-bottom:.625rem;padding-top:.625rem}.pr-\[5px\]{padding-right:5px}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.capitalize{text-transform:capitalize}.underline{text-decoration-line:underline}.opacity-0{opacity:0}.opacity-100{opacity:1}.outline{outline-style:solid}.drop-shadow{--tw-drop-shadow:drop-shadow(0 1px 2px rgba(0,0,0,.1)) drop-shadow(0 1px 1px rgba(0,0,0,.06))}.drop-shadow,.grayscale{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.grayscale{--tw-grayscale:grayscale(100%)}.invert{--tw-invert:invert(100%)}.filter,.invert{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.hover\:cursor-pointer:hover{cursor:pointer}.hover\:text-\[--p-color-text-link-hover\]:hover{color:var(--p-color-text-link-hover)}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { IDonutTarget } from '@/types';
|
|
2
|
-
import { EDeviceType, ETrafficSourceType, EVisitorType } from '@/
|
|
2
|
+
import { EDeviceType, ETrafficSourceType, EVisitorType } from '@/core/gemxql';
|
|
3
3
|
export declare const TARGET_VISITOR: IDonutTarget<EVisitorType>[];
|
|
4
4
|
export declare const TARGET_DEVICES: IDonutTarget<EDeviceType>[];
|
|
5
5
|
export declare const TARGET_CHANNEL: IDonutTarget<ETrafficSourceType>[];
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type { GemXQlFilters, GemXQlOverrideFilters } from '../../types';
|
|
2
|
-
import type { AnalyticDateFilter } from '@/components';
|
|
1
|
+
import type { AnalyticDateFilter, GemXQlFilters, GemXQlOverrideFilters } from '../../types';
|
|
3
2
|
export interface IBuildTimeQueryParams {
|
|
4
3
|
dateRange?: AnalyticDateFilter;
|
|
5
4
|
compareDateRange?: AnalyticDateFilter;
|
|
@@ -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("
|
|
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;
|
|
@@ -20,8 +20,5 @@ interface IUseAnalyticDataReturn {
|
|
|
20
20
|
formatData: (params: IFormatDataParams) => AnalyticValueType;
|
|
21
21
|
computeMetric: (params: IComputeMetricParams) => IComputeMetricResult;
|
|
22
22
|
}
|
|
23
|
-
|
|
24
|
-
getTextPrice?: IGetTextPrice;
|
|
25
|
-
}
|
|
26
|
-
export declare const useAnalyticData: ({ getTextPrice: getTextPriceParam, }?: IUseAnalyticDataParams) => IUseAnalyticDataReturn;
|
|
23
|
+
export declare const useAnalyticData: (getTextPrice?: IGetTextPrice) => IUseAnalyticDataReturn;
|
|
27
24
|
export {};
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
export * from './api';
|
|
1
2
|
export * from './builder';
|
|
2
3
|
export * from './constants';
|
|
3
|
-
export * from './helpers';
|
|
4
|
-
export * from './types';
|
|
5
|
-
export * from './api';
|
|
6
4
|
export * from './graphql';
|
|
5
|
+
export * from './helpers';
|
|
7
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';
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
export * from './analytic-data';
|
|
2
|
+
export * from './analytic-mode';
|
|
2
3
|
export * from './analytic-source';
|
|
4
|
+
export * from './breakdown-items';
|
|
5
|
+
export * from './date-filter';
|
|
3
6
|
export * from './extra-condition';
|
|
4
7
|
export * from './field-filters';
|
|
5
8
|
export * from './field-operators';
|
|
@@ -6,6 +6,7 @@ export declare enum AnalyticInterval {
|
|
|
6
6
|
WEEK = "WEEK",
|
|
7
7
|
YEAR = "YEAR"
|
|
8
8
|
}
|
|
9
|
+
export declare function numberWithCommas(x: string): string;
|
|
9
10
|
export declare const getTimeDurationLabel: (valueInSeconds: number) => string;
|
|
10
11
|
export declare const getFormattedByInterval: (value: string | number | null, interval?: AnalyticInterval, options?: {
|
|
11
12
|
isExpandDetail?: boolean;
|
|
@@ -4,7 +4,5 @@ export declare function getInitialTimezone(): string;
|
|
|
4
4
|
export declare function setTz(value: string): void;
|
|
5
5
|
export declare const dayjsTz: (date?: ConfigType) => Dayjs;
|
|
6
6
|
export declare const convertDateToTz: (date?: ConfigType) => Dayjs;
|
|
7
|
-
export declare const dayjsTzToLocalTZ: (date?: ConfigType) => Dayjs;
|
|
8
|
-
export declare const dayjsTzToDate: (date?: ConfigType) => Date;
|
|
9
7
|
export { dayjs };
|
|
10
8
|
export type { Dayjs };
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
export { useEnhancedEffect } from './useEnhancedEffect';
|
|
2
|
-
export { useFetchCurrencyRates } from './useFetchCurrencyRates';
|
|
3
2
|
export { useFormatLineChartData } from './useFormatLineChartData';
|
|
4
3
|
export { usePopoverResizeObserver } from './usePopoverResizeObserver';
|
|
5
|
-
export {
|
|
6
|
-
export { useWindowSize } from './publish/useWindowSize';
|
|
4
|
+
export { useWindowSize } from './useWindowSize';
|
package/dist/umd/esm/index.d.ts
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
export * from './components';
|
|
2
2
|
export * from './constants';
|
|
3
|
-
export * from './
|
|
4
|
-
export
|
|
5
|
-
export * from './stores';
|
|
6
|
-
export * from './utils/dayjs';
|
|
3
|
+
export * from './types';
|
|
4
|
+
export { EAnalyticColumnKey, EDeviceType, ETrafficSourceType, EVisitorType } from './core/gemxql';
|
|
@@ -20,6 +20,6 @@ export declare class ChartErrorBoundary extends Component<ErrorBoundaryProps, Er
|
|
|
20
20
|
constructor(props: any);
|
|
21
21
|
onError: (error: Error, errorInfo: ErrorInfo) => void;
|
|
22
22
|
componentDidCatch(error: Error, errorInfo: ErrorInfo): void;
|
|
23
|
-
render(): string | number | boolean |
|
|
23
|
+
render(): string | number | boolean | import("react/jsx-runtime").JSX.Element | Iterable<ReactNode> | null | undefined;
|
|
24
24
|
}
|
|
25
25
|
export {};
|
|
@@ -4,5 +4,5 @@ interface Props extends Pick<TooltipPositionParams, 'event' | 'eventType' | 'ind
|
|
|
4
4
|
containerBounds: BoundingRect;
|
|
5
5
|
parentElement: SVGSVGElement | null;
|
|
6
6
|
}
|
|
7
|
-
export declare function getDonutChartTooltipPosition({ containerBounds, event, eventType, index, parentElement }: Props): import("
|
|
7
|
+
export declare function getDonutChartTooltipPosition({ containerBounds, event, eventType, index, parentElement }: Props): import("../types").TooltipPosition;
|
|
8
8
|
export {};
|
|
@@ -7,5 +7,5 @@ interface Props extends Omit<TooltipPositionParams, 'xScale'> {
|
|
|
7
7
|
scrollY: number;
|
|
8
8
|
xScale: ScaleLinear<number, number>;
|
|
9
9
|
}
|
|
10
|
-
export declare function getLineChartTooltipPosition({ containerBounds, chartBounds, data, event, eventType, index, isTouchDevice, longestSeriesIndex, scrollY, xScale, }: Props): import("
|
|
10
|
+
export declare function getLineChartTooltipPosition({ containerBounds, chartBounds, data, event, eventType, index, isTouchDevice, longestSeriesIndex, scrollY, xScale, }: Props): import("../types").TooltipPosition;
|
|
11
11
|
export {};
|
|
@@ -1,16 +1,5 @@
|
|
|
1
|
-
export * from './GActivatorPopover';
|
|
2
1
|
export * from './GBlockCenter';
|
|
3
|
-
export * from './GButton';
|
|
4
|
-
export * from './GCheckbox';
|
|
5
|
-
export * from './GClickable';
|
|
6
|
-
export * from './GDiv';
|
|
7
|
-
export * from './GI18NText';
|
|
8
|
-
export * from './GOptionList';
|
|
9
|
-
export * from './GSelector';
|
|
10
|
-
export * from './GTextLink';
|
|
11
2
|
export * from './GSkeletonDisplayText';
|
|
12
3
|
export * from './GThumbnail';
|
|
13
4
|
export * from './GTooltip';
|
|
14
5
|
export * from './GTooltipCard';
|
|
15
|
-
export * from './GViewBySelector';
|
|
16
|
-
export * from './GChoice';
|
package/dist/umd/gemxql.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("dayjs"),require("dayjs/plugin/quarterOfYear.js"),require("dayjs/plugin/timezone.js"),require("dayjs/plugin/utc.js"),require("@tanstack/react-query"),require("react/jsx-runtime"),require("zustand"),require("react")):"function"==typeof define&&define.amd?define(["exports","dayjs","dayjs/plugin/quarterOfYear.js","dayjs/plugin/timezone.js","dayjs/plugin/utc.js","@tanstack/react-query","react/jsx-runtime","zustand","react"],r):r((e="undefined"!=typeof globalThis?globalThis:e||self).GemAnalytics={},e.dayjs,e.quarterOfYear,e.timezone,e.utc,e.reactQuery,e.jsxRuntime,e.zustand,e.React)}(this,function(e,r,t,a,i,n,s,o,l){"use strict";const E="None",u="___totals",c="comparison___",m="___previous_period",d=`${m}${u}`,p="is",R="is_one_of";var T,A,O,f,I,S,_,N,y,D,C,F,g;e.EAnalyticDataType=void 0,(T=e.EAnalyticDataType||(e.EAnalyticDataType={})).DATE="DATE",T.ARRAY="ARRAY",T.OBJECT="OBJECT",T.STRING="STRING",T.INTEGER="INTEGER",T.CURRENCY="CURRENCY",T.PERCENT="PERCENT",T.DURATION="DURATION",T.MONTH="MONTH_TIMESTAMP",T.QUARTER="QUARTER_TIMESTAMP",T.DAY="DAY_TIMESTAMP",T.WEEK="WEEK_TIMESTAMP",T.YEAR="YEAR_TIMESTAMP",T.HOUR="HOUR_TIMESTAMP",e.EAnalyticColumnKey=void 0,(A=e.EAnalyticColumnKey||(e.EAnalyticColumnKey={})).CAMPAIGNS="experiments",A.VISITOR_ITEMS="visitor_items",A.DEVICE_ITEMS="device_items",A.TRAFFIC_SOURCE_ITEMS="traffic_source_items",e.EAnalyticSource=void 0,(O=e.EAnalyticSource||(e.EAnalyticSource={})).SESSIONS="sessions",O.SALES="sales",e.EComparisonOperator=void 0,(f=e.EComparisonOperator||(e.EComparisonOperator={})).EQ="=",f.IN="IN",f.LIKE="LIKE",e.EGroupOperator=void 0,(I=e.EGroupOperator||(e.EGroupOperator={})).OR="OR",I.AND="AND",e.EFilterField=void 0,(S=e.EFilterField||(e.EFilterField={})).DEVICE="device",S.DEVICES="devices",S.VISITOR="visitor_type",S.VISITORS="visitor_types",S.TRAFFIC_SOURCE="traffic_source",S.TRAFFIC_SOURCES="traffic_sources",S.VERSION="version",S.VERSIONS="versions",S.SINGLE_PAGE="page_path",S.LIST_PAGE="page_paths",S.GROUP_CAMPAIGN_ITEM="group_campaign_item",S.GROUP_CAMPAIGN_ITEMS="group_campaign_items",S.SINGLE_CAMPAIGN="experiment_id",S.GROUP_CAMPAIGN="experiment_group_id",S.CAMPAIGN_VERSION_ID="version_id",S.GROUP_CAMPAIGN_VERSION_ID="group_version_id",e.EOperatorField=void 0,(_=e.EOperatorField||(e.EOperatorField={})).DEVICE_OPERATOR="deviceOperator",_.VISITOR_OPERATOR="visitorOperator",_.TRAFFIC_SOURCE_OPERATOR="trafficSourceOperator",_.VERSION_OPERATOR="versionOperator",_.PAGE_OPERATOR="pageOperator",_.CAMPAIGN_ITEM_OPERATOR="campaignItemOperator",e.EGroupWithClause=void 0,(N=e.EGroupWithClause||(e.EGroupWithClause={})).NONE="",N.TOTALS="TOTALS",N.ALL="WITH GROUP_TOTALS, TOTALS",e.EOrderDirectionType=void 0,(y=e.EOrderDirectionType||(e.EOrderDirectionType={})).ASC="ASC",y.DESC="DESC",e.EPageMetric=void 0,(D=e.EPageMetric||(e.EPageMetric={})).PAGE_ITEMS="page_items",D.PAGE_PATHS="page_paths",e.EPageDimension=void 0,(e.EPageDimension||(e.EPageDimension={})).PAGE_PATH="page_path",e.EPageField=void 0,(C=e.EPageField||(e.EPageField={})).SHOPIFY_PAGE_ID="shopify_page_id",C.LOCATION_PATH="location_path",C.PAGE_TYPE="page_type",C.PAGE_TITLE="page_title",C.PAGE_PATH="page_path",C.TEMPLATE_SUFFIX="template_suffix",e.ERowReaderMode=void 0,(F=e.ERowReaderMode||(e.ERowReaderMode={})).DEFAULT="DEFAULT",F.COMPARISON="COMPARISON",F.TOTALS="TOTALS",F.COMPARISON_TOTALS="COMPARISON_TOTALS",e.ETimeDimension=void 0,(g=e.ETimeDimension||(e.ETimeDimension={})).HOUR="hour",g.DAY="day",g.WEEK="week",g.MONTH="month",g.QUARTER="quarter",g.YEAR="year";const h={[e.ERowReaderMode.DEFAULT]:{prefix:"",suffix:""},[e.ERowReaderMode.COMPARISON]:{prefix:c,suffix:m},[e.ERowReaderMode.TOTALS]:{prefix:"",suffix:u},[e.ERowReaderMode.COMPARISON_TOTALS]:{prefix:c,suffix:d}},M="YYYY-MM-DDTHH:mm:ss",P=["MODE","FROM","SHOW","GROUP BY","TIMESERIES","SINCE","DURING","TIMEZONE","WHERE","ORDER BY","LIMIT","OFFSET"],x=P.join("|"),G=1e3,v=e.EGroupOperator.OR,j=(e,r=v)=>e.length?1===e.length?e[0]??"":`(${e.join(` ${r} `)})`:"",Y=r=>{switch(r.operator){case e.EComparisonOperator.EQ:return(({fields:e,value:r,groupOperator:t})=>e.length?j(e.map(e=>`${e} = ${r}`),t):"")(r);case e.EComparisonOperator.IN:return(({fields:e,values:r,groupOperator:t})=>e.length&&r.length?j(e.map(e=>`${e} IN (${r.join(", ")})`),t):"")(r);case e.EComparisonOperator.LIKE:return(({fields:e,value:r,groupOperator:t})=>{const a=r.trim();return a&&e.length?j(e.map(e=>`${e} LIKE '%${a}%'`),t):""})(r)}},$=e=>e?.length?e.map(Y).filter(Boolean):[],L=[{operator:e.EOperatorField.DEVICE_OPERATOR,singleField:e.EFilterField.DEVICE,multiField:e.EFilterField.DEVICES,fieldName:e.EFilterField.DEVICE},{operator:e.EOperatorField.VISITOR_OPERATOR,singleField:e.EFilterField.VISITOR,multiField:e.EFilterField.VISITORS,fieldName:e.EFilterField.VISITOR},{operator:e.EOperatorField.TRAFFIC_SOURCE_OPERATOR,singleField:e.EFilterField.TRAFFIC_SOURCE,multiField:e.EFilterField.TRAFFIC_SOURCES,fieldName:e.EFilterField.TRAFFIC_SOURCE},{operator:e.EOperatorField.VERSION_OPERATOR,singleField:e.EFilterField.VERSION,multiField:e.EFilterField.VERSIONS,fieldName:e.EFilterField.VERSION},{operator:e.EOperatorField.PAGE_OPERATOR,singleField:e.EFilterField.SINGLE_PAGE,multiField:e.EFilterField.LIST_PAGE,fieldName:e.EFilterField.SINGLE_PAGE},{operator:e.EOperatorField.CAMPAIGN_ITEM_OPERATOR,singleField:e.EFilterField.GROUP_CAMPAIGN_ITEM,multiField:e.EFilterField.GROUP_CAMPAIGN_ITEMS,condition:e.EFilterField.GROUP_CAMPAIGN,fieldName:e.EFilterField.SINGLE_CAMPAIGN},{operatorVal:p,singleField:e.EFilterField.SINGLE_CAMPAIGN,multiField:e.EFilterField.GROUP_CAMPAIGN}],b=(e,r)=>{const t=[],a=Object.keys(e).length>0,i=!!r&&Object.keys(r).length>0;if(!a&&!i)return t;const n=(e=>e?Object.fromEntries(Object.entries(e).filter(([,e])=>void 0!==e).map(([e,r])=>[e,Array.isArray(r)?`${e} IN (${r.join(", ")})`:`${e} = ${r}`])):{})(r);return L.forEach(({operator:r,operatorVal:a,singleField:i,multiField:s,condition:o,fieldName:l})=>{if(n[i])return void t.push(n[i]);const E=r?e[r]:a;let u=e[i];const c=e[s],m=o&&e[o];if(o&&!m)return;const d=l??(u?i:s);a&&!u&&(u=e[s]);const T=(e=>{const{operatorValue:r,singleValue:t,multiValue:a,fieldName:i}=e;return r===p&&t?`${i} = ${t}`:r===R&&Array.isArray(a)&&a.length>0?`${i} IN (${a.join(", ")})`:""})({operatorValue:E,singleValue:Array.isArray(u)?void 0:u,multiValue:Array.isArray(c)?c:void 0,fieldName:d});T&&t.push(T)}),t},U=e=>{const r=[];return e?(Object.entries(e).forEach(([e,t])=>{t&&r.push(`${e} = ${t}`)}),r):r},Q=(e,r)=>{if(!e||0===r.length)return[];const t=r.find(r=>e[r]);return t?[t]:[]},V=({filters:e,overrideFilters:r,versionIds:t,extraConditions:a})=>{const i=[...b(e,r),...U(t),...$(a)];return i.length>0?`WHERE ${i.join(" AND ")}`:""},H=e=>{const r=e.match(new RegExp(`\\bWHERE\\s+([\\s\\S]+?)(?=\\s+(?:${x})\\b|$)`,"i"));if(!r)return{filters:{}};const t=(r[1]??"").trim().split(/\s+AND\s+/i),a={},i={};return t.forEach(e=>{const r=e.trim(),t=r.match(/^(\S+)\s+IN\s+\((.+)\)$/i);if(t){const e=t[1]??"",r=(t[2]??"").split(",").map(e=>e.trim()),i=L.find(r=>r.fieldName===e||r.multiField===e);return void(i?.operator&&(a[i.multiField]=r,a[i.operator]=R))}const n=r.match(/^(\S+)\s+=\s+(.+)$/);if(n){const e=n[1]??"",r=n[2]??"",t=L.find(r=>r.fieldName===e||r.singleField===e);t?(a[t.singleField]=r,t.operator&&(a[t.operator]=p)):e&&(i[e]=r)}}),{filters:a,versionIds:Object.keys(i).length>0?i:void 0}},W=e=>`FROM ${e.join(", ")}`,K=e=>{const r=e.match(new RegExp(`\\bFROM\\s+([\\s\\S]+?)(?=\\s+(?:${x})\\b)`,"i"));return r?(r[1]??"").split(",").map(e=>e.trim()).filter(Boolean):[]},w=(r,t=e.EGroupWithClause.ALL)=>0===r.length?"":`GROUP BY ${r.join(", ")} ${t}`,B=r=>{const t=r.match(new RegExp(`\\bGROUP BY\\s+([\\s\\S]+?)(?=\\s+(?:${x})\\b)`,"i"));if(!t)return{dimensions:[]};const a=(t[1]??"").trim(),i=a.toUpperCase().indexOf(" WITH ");return-1===i?{dimensions:a.split(",").map(e=>e.trim()).filter(Boolean),groupWithClause:e.EGroupWithClause.NONE}:{dimensions:a.slice(0,i).split(",").map(e=>e.trim()).filter(Boolean),groupWithClause:a.slice(i+1).trim()}},q=e=>e?`LIMIT ${e}`:"",X=e=>{const r=e.match(/\bLIMIT\s+(\d+)/i);return r?parseInt(r[1]??"0",10):void 0},k=e=>`MODE ${e}`,z=e=>{const r=e.match(/\bMODE\s+(\S+)/i);return r?.[1]},J=e=>!e||e<0?"":`OFFSET ${e}`,Z=e=>{const r=e.match(/\bOFFSET\s+(\d+)/i);return r?parseInt(r[1]??"0",10):void 0},ee=(e,r)=>{if(!e)return"";const t=Object.values(e).filter(e=>r?.includes(e.field)).map(e=>`${e.field} ${e.direction}`).join(", ");return t?`ORDER BY ${t}`:""},re=e=>{const r=e.match(new RegExp(`\\bORDER BY\\s+([\\s\\S]+?)(?=\\s+(?:${x})\\b|$)`,"i"));if(!r)return;const t={};return(r[1]??"").split(",").forEach(e=>{const r=e.trim().split(/\s+/);if(2===r.length){const e=r[0]??"",a=r[1]??"";e&&(t[e]={field:e,direction:a})}}),Object.keys(t).length>0?t:void 0},te=e=>`SHOW ${e.join(", ")}`,ae=e=>{const r=e.match(new RegExp(`\\bSHOW\\s+([\\s\\S]+?)(?=\\s+(?:${x})\\b)`,"i"));return r?(r[1]??"").split(",").map(e=>e.trim()).filter(Boolean):[]},ie=/\.0+$/,ne=(e,r=2)=>(e=>`${e}`.replace(ie,""))(e.toFixed(r)),se=(e,r,t=2)=>{const a=((e,r,t=2)=>{if("number"!=typeof e||!r)return;return 0===e?0:parseFloat(ne(e/r*100,t))})(e,r,t);if("number"==typeof a)return(e=>e>0&&e<.005)(a)?"~0%":`${a}%`};r.extend(i),r.extend(a),r.extend(t);let oe="UTC";function le(){return oe}const Ee=e=>e?r(e).tz(oe):r().tz(oe);var ue;!function(e){e.DAY="DAY",e.HOUR="HOUR",e.MONTH="MONTH",e.QUARTER="QUARTER",e.WEEK="WEEK",e.YEAR="YEAR"}(ue||(ue={}));const ce=60,me=3600,de=(e,r,t)=>{if(!e)return"";const a=t?.isExpandDetail?{formatHouse:"MMM D, h:mm A",formatDay:"MMM D, YYYY",formatMonth:"MMM YYYY",formatYear:"MMM YYYY"}:{formatHouse:"h A",formatDay:"MMM D",formatMonth:"MMM YYYY",formatYear:"YYYY"};switch(r){case ue.HOUR:return Ee(e).format(a.formatHouse);case ue.DAY:case ue.WEEK:return Ee(e).format(a.formatDay);case ue.MONTH:return Ee(e).format(a.formatMonth);case ue.QUARTER:{const r=Ee(e);return`Q${r.quarter()} ${r.format("YYYY")}`}case ue.YEAR:return Ee(e).format(a.formatYear)}return Ee(e).format(a.formatMonth)},pe=e=>"string"==typeof e?Ee(e):e,Re=(e,r=!1)=>r&&(e=>0===e.hour()&&0===e.minute())(e)?e.endOf("day").format(M):e.format(M),Te=e=>{const r=pe(e.startDate),t=pe(e.endDate);return r.isSame(t)?{dateGTE:Re(r),dateLTE:(a=t,Re(a?Ee(a).endOf("day"):Ee().endOf("day")))}:{dateGTE:Re(r),dateLTE:Re(t,!0)};var a},Ae=e=>{const{dateRange:r,compareDateRange:t,overrideFilters:a,timeDimension:i}=e,n=i?a?.[i]:void 0;if(i&&n)return`DURING (${n}, ${i})`;if(!r)return"";const{dateGTE:s,dateLTE:o}=Te(r),{dateGTE:l,dateLTE:E}=t?Te(t):{};return`SINCE ${s} UNTIL ${o} ${t?`COMPARE TO ${l} UNTIL ${E}`:""}`},Oe=e=>{const r=e.match(/\bDURING\s+\(([^,]+),\s*([^)]+)\)/i);if(r){const e=r[1]??"",t=r[2]??"";return{timeDimension:t.trim(),overrideFilters:{[t.trim()]:e.trim()}}}const t=e.match(/\bSINCE\s+(\S+)\s+UNTIL\s+(\S+)/i);if(!t)return{};const a={startDate:Ee(t[1]??""),endDate:Ee(t[2]??"")},i=e.match(/\bCOMPARE TO\s+(\S+)\s+UNTIL\s+(\S+)/i);return{dateRange:a,compareDateRange:i?{startDate:Ee(i[1]??""),endDate:Ee(i[2]??"")}:void 0}},fe=e=>e?`TIMESERIES ${e}`:"",Ie=e=>{const r=e.match(/\bTIMESERIES\s+(\S+)/i);return r?.[1]},Se=e=>{const r=e??le();return r?`TIMEZONE ${r}`:""},_e=e=>{const r=e.match(/\bTIMEZONE\s+(\S+)/i);return r?.[1]};function Ne(e){if("string"!=typeof e)return!1;const r=e.trim();return/^MODE\b[\s\S]*\bFROM\b[\s\S]*\bSHOW\b[\s\S]*$/.test(r)}const ye=e=>e?.gemxQLQuery?.tableData?.columns??[],De=e=>{if(!e)return"None";const r=Ee(e),t=Ee(),a=Ee().subtract(1,"day"),i=r.format("YYYY-MM-DD")===t.format("YYYY-MM-DD"),n=r.format("YYYY-MM-DD")===a.format("YYYY-MM-DD");if(i)return`Today at ${r.format("HH:mm")}`;if(n)return`Yesterday at ${r.format("HH:mm")}`;const s=t.diff(r,"day");return s>=0&&s<7?`${r.format("dddd")} at ${r.format("HH:mm")}`:`${r.format("MMM D")} at ${r.format("hh:mm a")}`},Ce=({value:r,formatter:t,getTextPrice:a,name:i})=>{if(null!==r&&("object"==typeof r||Array.isArray(r)))return r;switch(t){case e.EAnalyticDataType.INTEGER:return(r??0).toString().toString().replace(/\B(?=(\d{3})+(?!\d))/g,",");case e.EAnalyticDataType.CURRENCY:return a?a(r,!1):`${r??0}`;case e.EAnalyticDataType.DATE:return De(r);case e.EAnalyticDataType.PERCENT:return"number"!=typeof r?se(0,1,2)??"":se(r/100,1,2)??"";case e.EAnalyticDataType.DURATION:return(e=>{let r=e;Number.isFinite(e)&&null!=e||(r=0);const t=ne(r);if(r>=me)return`${Math.floor(r/me)}h ${Math.floor(r%me/ce)}m ${Math.floor(r%ce)}s`;if(r>=ce)return`${Math.floor(r/ce)}m ${Math.floor(r%ce)}s`;return`${t}s`})(Number(r));case e.EAnalyticDataType.STRING:{const t=i===e.EAnalyticColumnKey.CAMPAIGNS?"":E;return r??t}case e.EAnalyticDataType.DAY:return de(r,ue.DAY,{isExpandDetail:!0});case e.EAnalyticDataType.HOUR:return de(r,ue.HOUR,{isExpandDetail:!0});case e.EAnalyticDataType.MONTH:return de(r,ue.MONTH,{isExpandDetail:!0});case e.EAnalyticDataType.YEAR:return de(r,ue.YEAR);case e.EAnalyticDataType.WEEK:return de(r,ue.WEEK,{isExpandDetail:!0});case e.EAnalyticDataType.QUARTER:return de(r,ue.QUARTER,{isExpandDetail:!0});case e.EAnalyticDataType.OBJECT:case e.EAnalyticDataType.ARRAY:return r;default:return`${r}`}},Fe=e=>{const r=e?.sessions;return"number"==typeof r&&r>0},ge=e=>{if(e)return"string"==typeof e?JSON.parse(e):e},he=e=>{try{const r=ge(e);return r&&"object"==typeof r?r:null}catch{return null}},Me=e=>{try{const r=ge(e);if(!Array.isArray(r))return;return r}catch{return}},Pe=(e,r)=>{const t=e?.[r];return"number"==typeof t?t:0},xe="\n fragment ColumnSelect on Column {\n dataType\n displayName\n name\n}\n ",Ge="\n fragment TableDataSelect on TableData {\n columns {\n ...ColumnSelect\n }\n rows\n}\n ",ve="\n fragment GemXQLResultSelect on GemxQLResult {\n tableData {\n ...TableDataSelect\n }\n}\n ",je=`\n query GemxQL($input: String!) {\n gemxQLQuery(query: $input) {\n ...GemXQLResultSelect\n }\n}\n ${ve}\n${Ge}\n${xe}`,Ye=(e,r,t)=>n.useQuery({queryKey:["GemXQlCustom",e],queryFn:r(je,e),...t});Ye.getKey=e=>["GemXQlCustom",e];const $e=({name:e,variables:r,fetcher:t},a)=>{const i=je.replace(/query\s+GemxQL\b/,`query ${e}`);return n.useQuery({queryKey:[e,r],queryFn:t(i,r),retry:0,...a})};var Le,be,Ue,Qe,Ve;$e.getKey=(e,r)=>[e,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",e.VISITOR_ITEMS="visitor_items",e.DEVICE_ITEMS="device_items",e.TRAFFIC_SOURCE_ITEMS="traffic_source_items"}(Le||(Le={})),Le.SESSION,Le.VISITORS,Le.BOUNCE_RATE,s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"formula-variable",children:"Bounce rate"}),s.jsx("span",{children:" = "}),s.jsx("span",{className:"formula-input",children:"sessions with a pageview"}),s.jsx("span",{className:"formula-operator",children:" / "}),s.jsx("span",{className:"formula-input",children:"total sessions"})]}),Le.CTR,s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"formula-variable",children:"Click-through rate"}),s.jsx("span",{children:" = "}),s.jsx("span",{className:"formula-input",children:"total clicks"}),s.jsx("span",{className:"formula-operator",children:" / "}),s.jsx("span",{className:"formula-input",children:"total pageviews"})]}),Le.AVG_TIME_ON_PAGE,s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"formula-variable",children:"Average time on page"}),s.jsx("span",{children:" = "}),s.jsx("span",{className:"formula-input",children:"total time on page"}),s.jsx("span",{className:"formula-operator",children:" / "}),s.jsx("span",{className:"formula-input",children:"(total pageviews - total exits)"})]}),Le.PAGE_VIEWS,Le.RPV,s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"formula-variable",children:"Revenue per visitor"}),s.jsx("span",{children:" = "}),s.jsx("span",{className:"formula-input",children:"total revenue"}),s.jsx("span",{className:"formula-operator",children:" / "}),s.jsx("span",{className:"formula-input",children:"total visitors"})]}),Le.ADDED_TO_CART,Le.REACHED_CHECKOUT,Le.COMPLETE_CHECKOUT,Le.ORDERS,Le.CONVERSION_RATE,s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"formula-variable",children:"Conversion rate"}),s.jsx("span",{children:" = "}),s.jsx("span",{className:"formula-input",children:"sessions that completed checkout"}),s.jsx("span",{className:"formula-operator",children:" / "}),s.jsx("span",{className:"formula-input",children:"total sessions"})]}),Le.AOV,s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"formula-variable",children:"Average order value"}),s.jsx("span",{children:" = "}),s.jsx("span",{className:"formula-input",children:"total revenue"}),s.jsx("span",{className:"formula-operator",children:" / "}),s.jsx("span",{className:"formula-input",children:"total orders"})]}),Le.REVENUE,s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"formula-variable",children:"Revenue"}),s.jsx("span",{children:" = "}),s.jsx("span",{className:"formula-input",children:"gross sales"}),s.jsx("span",{className:"formula-operator",children:" - "}),s.jsx("span",{className:"formula-input",children:"discounts"})]}),Le.ADD_TO_CART_RATE,s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"formula-variable",children:"Added to cart rate"}),s.jsx("span",{children:" = "}),s.jsx("span",{className:"formula-input",children:"sessions with cart additions"}),s.jsx("span",{className:"formula-operator",children:" / "}),s.jsx("span",{className:"formula-input",children:"total sessions"})]}),Le.CART_ADDITION,Le.VISITOR_ITEMS,Le.DEVICE_ITEMS,Le.TRAFFIC_SOURCE_ITEMS,function(e){e.ALL_SESSION="ALL_SESSION",e.FIRST_SESSION="FIRST_SESSION",e.PAGE_ONLY="PAGE_ONLY"}(be||(be={})),function(e){e.NEW="new",e.RETURNING="returning"}(Ue||(Ue={})),function(e){e.DESKTOP="desktop",e.MOBILE="mobile",e.TABLET="tablet"}(Qe||(Qe={})),function(e){e.DIRECT="direct",e.EMAIL="email",e.REFERRAL="referral",e.ORGANIC_SOCIAL="organic-social",e.ORGANIC_SEARCH="organic-search",e.PAID_SOCIAL="paid-social",e.PAID_SEARCH="paid-search",e.SMS="sms"}(Ve||(Ve={})),Ue.NEW,Ue.RETURNING,Qe.DESKTOP,Qe.TABLET,Qe.MOBILE,Ve.DIRECT,Ve.EMAIL,Ve.REFERRAL,Ve.ORGANIC_SOCIAL,Ve.ORGANIC_SEARCH,Ve.PAID_SOCIAL,Ve.PAID_SEARCH,Ve.SMS,o.create(e=>({currencyRates:null,setCurrencyRates:r=>e({currencyRates:r})}));const He=l.createContext({getTextPrice:e=>"string"==typeof e?e:`${e??0}`});var We;e.GPaginationDirection=void 0,(We=e.GPaginationDirection||(e.GPaginationDirection={})).NEXT="NEXT",We.PREV="PREV";e.CLAUSE_KEYWORDS=P,e.CLAUSE_KEYWORD_BOUNDARY=x,e.COMPARE_PREFIX=c,e.COMPARE_SUFFIX=m,e.COMPARE_TOTALS_SUFFIX=d,e.ColumnSelectFragmentDoc=xe,e.DATE_QUERY_FORMAT=M,e.DEFAULT_QUERY_LIMIT=G,e.GemXqlResultSelectFragmentDoc=ve,e.GemxQlDocument=je,e.NONE_VALUE=E,e.OPERATOR_IS=p,e.OPERATOR_IS_ONE_OF=R,e.PLACEHOLDER_VALUE="-",e.ROW_READER_MODE_CONFIG=h,e.TOTALS_SUFFIX=u,e.TableDataSelectFragmentDoc=Ge,e.buildConditionQuery=V,e.buildExtraCondition=Y,e.buildExtraConditions=$,e.buildFromQuery=W,e.buildGemXQlQuery=e=>{const{mode:r,metrics:t,dimensions:a,dateRange:i,compareDateRange:n,filters:s,overrideFilters:o,versionIds:l,extraConditions:E,orderBy:u,sources:c,timeDimension:m,groupWithClause:d,timezone:p,limit:R=G,offset:T,extraOrderByFields:A}=e,O=[...a,...Q(u,t),...A??[]],f=[k(r),W(c),te(t),w(a,d),fe(m),Ae({dateRange:i,compareDateRange:n,timeDimension:m,overrideFilters:o}),Se(p),V({filters:s,overrideFilters:o,versionIds:l,extraConditions:E}),ee(u,O),q(R),J(T)].filter(Boolean).join(" ");return Ne(f)?f:""},e.buildGroupQuery=w,e.buildLimitQuery=q,e.buildModeQuery=k,e.buildOffsetQuery=J,e.buildOrderByQuery=ee,e.buildShowQuery=te,e.buildTimeQuery=Ae,e.buildTimeSeriesQuery=fe,e.buildTimezoneQuery=Se,e.buildVersionIdCondition=U,e.createNumericRowReader=(r,t=e.ERowReaderMode.DEFAULT)=>e=>{const{prefix:a,suffix:i}=h[t],n=r[`${a}${e}${i}`];if("number"==typeof n)return n;if("string"==typeof n){const e=parseFloat(n);return isNaN(e)?0:e}return 0},e.extractColumnTypes=e=>{const r=ye(e),t={};for(const e of r)e?.name&&(t[e.name]=e.dataType);return t},e.extractQueryColumns=ye,e.extractQueryRows=e=>e?.gemxQLQuery?.tableData?.rows??[],e.filterConfigs=L,e.formatAnalyticData=Ce,e.formatAnalyticDate=De,e.generateFilterConditions=b,e.getComparisonKey=e=>`${c}${e}${m}`,e.getComparisonTotalsKey=e=>`${c}${e}${m}${u}`,e.getFirstMetricInOrderBy=Q,e.getTimeDimensionByDate=(r,t)=>{const a=t.diff(r,"day");return a<=3?e.ETimeDimension.HOUR:a<=93?e.ETimeDimension.DAY:e.ETimeDimension.MONTH},e.getTotalsKey=e=>`${e}${u}`,e.hasMetricData=Fe,e.isValidQueryInput=Ne,e.parseBreakdownItems=e=>Me(e)?.map(e=>({...e,total:Number(e.total)})),e.parseConditionQuery=H,e.parseFromQuery=K,e.parseGemXQlQuery=e=>{const{dateRange:r,compareDateRange:t,timeDimension:a,overrideFilters:i}=Oe(e),n=a??Ie(e),{dimensions:s,groupWithClause:o}=B(e),{filters:l,versionIds:E}=H(e);return{mode:z(e),sources:K(e),metrics:ae(e),dimensions:s,groupWithClause:o,timeDimension:n,dateRange:r,compareDateRange:t,overrideFilters:i,filters:l,versionIds:E,timezone:_e(e),orderBy:re(e),limit:X(e),offset:Z(e)}},e.parseGroupQuery=B,e.parseJsonArray=Me,e.parseJsonObject=he,e.parseLimitQuery=X,e.parseModeQuery=z,e.parseOffsetQuery=Z,e.parseOrderByQuery=re,e.parsePageItems=e=>he(e),e.parseShowQuery=ae,e.parseTimeQuery=Oe,e.parseTimeSeriesQuery=Ie,e.parseTimezoneQuery=_e,e.readNumeric=Pe,e.useAnalyticData=({getTextPrice:e}={})=>{const{getTextPrice:r}=l.useContext(He),t=e??r,a=({value:e,formatter:r,name:a})=>Ce({value:e,formatter:r,getTextPrice:t,name:a});return{formatData:a,computeMetric:({metric:e,previousMetric:r,metricKey:t,formatter:i})=>{if(!Fe(e))return{value:0,change:"-"};const n=Pe(e,t),s=Pe(r,t),o=a({value:n,formatter:i,name:t});if(0===n&&0!==s)return{value:o,change:-100};if(0===s)return{value:o,change:"-"};return{value:o,change:(n-s)/s*100}}}},e.useCustomGemXQlQuery=Ye,e.useGemXQlPagination=({resetKey:r,itemsPerPage:t})=>{const[a,i]=l.useState(1),n=l.useRef(),s=a>1&&void 0!==n.current&&n.current!==r?1:a,o=(s-1)*t,E=l.useCallback(r=>t=>{i(a=>{const i=t===e.GPaginationDirection.NEXT?a+1:a-1;return Math.min(Math.max(i,1),r)})},[]);l.useEffect(()=>{n.current!==r&&(n.current=r,i(1))},[r]);const u=l.useCallback(({totalRecords:e,isLoading:r})=>{const a=Math.max(1,Math.ceil(e/t));return{currentPage:s,totalPages:a,loading:r,handlePageChange:E(a)}},[s,t,E]);return{currentPage:s,offset:o,buildPagination:u}},e.useGemxQlNamedQuery=$e});
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@tanstack/react-query"),require("dayjs"),require("dayjs/plugin/quarterOfYear"),require("dayjs/plugin/timezone"),require("dayjs/plugin/utc"),require("react")):"function"==typeof define&&define.amd?define(["exports","@tanstack/react-query","dayjs","dayjs/plugin/quarterOfYear","dayjs/plugin/timezone","dayjs/plugin/utc","react"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).GemAnalytics={},e.reactQuery,e.dayjs,e.quarterOfYear,e.timezone,e.utc,e.React)}(this,function(e,t,r,i,a,n,o){"use strict";const s="\n fragment ColumnSelect on Column {\n dataType\n displayName\n name\n}\n ",l="\n fragment TableDataSelect on TableData {\n columns {\n ...ColumnSelect\n }\n rows\n}\n ",E="\n fragment GemXQLResultSelect on GemxQLResult {\n tableData {\n ...TableDataSelect\n }\n}\n ",u=`\n query GemxQL($input: String!) {\n gemxQLQuery(query: $input) {\n ...GemXQLResultSelect\n }\n}\n ${E}\n${l}\n${s}`,c=(e,r,i)=>t.useQuery({queryKey:["GemXQlCustom",e],queryFn:r(u,e),...i});c.getKey=e=>["GemXQlCustom",e];const m=({name:e,variables:r,fetcher:i},a)=>{const n=u.replace(/query\s+GemxQL\b/,`query ${e}`);return t.useQuery({queryKey:[e,r],queryFn:i(n,r),retry:0,...a})};m.getKey=(e,t)=>[e,t];const d="None",p="___totals",A="comparison___",T="___previous_period",R=`${T}${p}`,O="is",f="is_one_of";var y,I,S,D,F,M,_,g,N,C,P,v,h,G,Y,$,L;e.EAnalyticDataType=void 0,(y=e.EAnalyticDataType||(e.EAnalyticDataType={})).DATE="DATE",y.ARRAY="ARRAY",y.OBJECT="OBJECT",y.STRING="STRING",y.INTEGER="INTEGER",y.CURRENCY="CURRENCY",y.PERCENT="PERCENT",y.DURATION="DURATION",y.MONTH="MONTH_TIMESTAMP",y.QUARTER="QUARTER_TIMESTAMP",y.DAY="DAY_TIMESTAMP",y.WEEK="WEEK_TIMESTAMP",y.YEAR="YEAR_TIMESTAMP",y.HOUR="HOUR_TIMESTAMP",e.EAnalyticColumnKey=void 0,(I=e.EAnalyticColumnKey||(e.EAnalyticColumnKey={})).CAMPAIGNS="experiments",I.VISITOR_ITEMS="visitor_items",I.DEVICE_ITEMS="device_items",I.TRAFFIC_SOURCE_ITEMS="traffic_source_items",e.EAnalyticMode=void 0,(S=e.EAnalyticMode||(e.EAnalyticMode={})).ALL_SESSION="ALL_SESSION",S.FIRST_SESSION="FIRST_SESSION",S.PAGE_ONLY="PAGE_ONLY",e.EAnalyticSource=void 0,(D=e.EAnalyticSource||(e.EAnalyticSource={})).SESSIONS="sessions",D.SALES="sales",e.EVisitorType=void 0,(F=e.EVisitorType||(e.EVisitorType={})).NEW="new",F.RETURNING="returning",e.EDeviceType=void 0,(M=e.EDeviceType||(e.EDeviceType={})).DESKTOP="desktop",M.MOBILE="mobile",M.TABLET="tablet",e.ETrafficSourceType=void 0,(_=e.ETrafficSourceType||(e.ETrafficSourceType={})).DIRECT="direct",_.EMAIL="email",_.REFERRAL="referral",_.ORGANIC_SOCIAL="organic-social",_.ORGANIC_SEARCH="organic-search",_.PAID_SOCIAL="paid-social",_.PAID_SEARCH="paid-search",_.SMS="sms",e.EComparisonOperator=void 0,(g=e.EComparisonOperator||(e.EComparisonOperator={})).EQ="=",g.IN="IN",g.LIKE="LIKE",e.EGroupOperator=void 0,(N=e.EGroupOperator||(e.EGroupOperator={})).OR="OR",N.AND="AND",e.EFilterField=void 0,(C=e.EFilterField||(e.EFilterField={})).DEVICE="device",C.DEVICES="devices",C.VISITOR="visitor_type",C.VISITORS="visitor_types",C.TRAFFIC_SOURCE="traffic_source",C.TRAFFIC_SOURCES="traffic_sources",C.VERSION="version",C.VERSIONS="versions",C.SINGLE_PAGE="page_path",C.LIST_PAGE="page_paths",C.GROUP_CAMPAIGN_ITEM="group_campaign_item",C.GROUP_CAMPAIGN_ITEMS="group_campaign_items",C.SINGLE_CAMPAIGN="experiment_id",C.GROUP_CAMPAIGN="experiment_group_id",C.CAMPAIGN_VERSION_ID="version_id",C.GROUP_CAMPAIGN_VERSION_ID="group_version_id",e.EOperatorField=void 0,(P=e.EOperatorField||(e.EOperatorField={})).DEVICE_OPERATOR="deviceOperator",P.VISITOR_OPERATOR="visitorOperator",P.TRAFFIC_SOURCE_OPERATOR="trafficSourceOperator",P.VERSION_OPERATOR="versionOperator",P.PAGE_OPERATOR="pageOperator",P.CAMPAIGN_ITEM_OPERATOR="campaignItemOperator",e.EGroupWithClause=void 0,(v=e.EGroupWithClause||(e.EGroupWithClause={})).NONE="",v.TOTALS="TOTALS",v.ALL="WITH GROUP_TOTALS, TOTALS",e.EOrderDirectionType=void 0,(h=e.EOrderDirectionType||(e.EOrderDirectionType={})).ASC="ASC",h.DESC="DESC",e.EPageMetric=void 0,(G=e.EPageMetric||(e.EPageMetric={})).PAGE_ITEMS="page_items",G.PAGE_PATHS="page_paths",e.EPageDimension=void 0,(e.EPageDimension||(e.EPageDimension={})).PAGE_PATH="page_path",e.EPageField=void 0,(Y=e.EPageField||(e.EPageField={})).SHOPIFY_PAGE_ID="shopify_page_id",Y.LOCATION_PATH="location_path",Y.PAGE_TYPE="page_type",Y.PAGE_TITLE="page_title",Y.PAGE_PATH="page_path",Y.TEMPLATE_SUFFIX="template_suffix",e.ERowReaderMode=void 0,($=e.ERowReaderMode||(e.ERowReaderMode={})).DEFAULT="DEFAULT",$.COMPARISON="COMPARISON",$.TOTALS="TOTALS",$.COMPARISON_TOTALS="COMPARISON_TOTALS",e.ETimeDimension=void 0,(L=e.ETimeDimension||(e.ETimeDimension={})).HOUR="hour",L.DAY="day",L.WEEK="week",L.MONTH="month",L.QUARTER="quarter",L.YEAR="year";const b={[e.ERowReaderMode.DEFAULT]:{prefix:"",suffix:""},[e.ERowReaderMode.COMPARISON]:{prefix:A,suffix:T},[e.ERowReaderMode.TOTALS]:{prefix:"",suffix:p},[e.ERowReaderMode.COMPARISON_TOTALS]:{prefix:A,suffix:R}},U="YYYY-MM-DDTHH:mm:ss",Q=["MODE","FROM","SHOW","GROUP BY","TIMESERIES","SINCE","DURING","TIMEZONE","WHERE","ORDER BY","LIMIT","OFFSET"],x=Q.join("|"),H=1e3,V=e.EGroupOperator.OR,j=(e,t=V)=>e.length?1===e.length?e[0]??"":`(${e.join(` ${t} `)})`:"",W=t=>{switch(t.operator){case e.EComparisonOperator.EQ:return(({fields:e,value:t,groupOperator:r})=>e.length?j(e.map(e=>`${e} = ${t}`),r):"")(t);case e.EComparisonOperator.IN:return(({fields:e,values:t,groupOperator:r})=>e.length&&t.length?j(e.map(e=>`${e} IN (${t.join(", ")})`),r):"")(t);case e.EComparisonOperator.LIKE:return(({fields:e,value:t,groupOperator:r})=>{const i=t.trim();return i&&e.length?j(e.map(e=>`${e} LIKE '%${i}%'`),r):""})(t)}},B=e=>e?.length?e.map(W).filter(Boolean):[],K=[{operator:e.EOperatorField.DEVICE_OPERATOR,singleField:e.EFilterField.DEVICE,multiField:e.EFilterField.DEVICES,fieldName:e.EFilterField.DEVICE},{operator:e.EOperatorField.VISITOR_OPERATOR,singleField:e.EFilterField.VISITOR,multiField:e.EFilterField.VISITORS,fieldName:e.EFilterField.VISITOR},{operator:e.EOperatorField.TRAFFIC_SOURCE_OPERATOR,singleField:e.EFilterField.TRAFFIC_SOURCE,multiField:e.EFilterField.TRAFFIC_SOURCES,fieldName:e.EFilterField.TRAFFIC_SOURCE},{operator:e.EOperatorField.VERSION_OPERATOR,singleField:e.EFilterField.VERSION,multiField:e.EFilterField.VERSIONS,fieldName:e.EFilterField.VERSION},{operator:e.EOperatorField.PAGE_OPERATOR,singleField:e.EFilterField.SINGLE_PAGE,multiField:e.EFilterField.LIST_PAGE,fieldName:e.EFilterField.SINGLE_PAGE},{operator:e.EOperatorField.CAMPAIGN_ITEM_OPERATOR,singleField:e.EFilterField.GROUP_CAMPAIGN_ITEM,multiField:e.EFilterField.GROUP_CAMPAIGN_ITEMS,condition:e.EFilterField.GROUP_CAMPAIGN,fieldName:e.EFilterField.SINGLE_CAMPAIGN},{operatorVal:O,singleField:e.EFilterField.SINGLE_CAMPAIGN,multiField:e.EFilterField.GROUP_CAMPAIGN}],w=(e,t)=>{const r=[],i=Object.keys(e).length>0,a=!!t&&Object.keys(t).length>0;if(!i&&!a)return r;const n=(e=>e?Object.fromEntries(Object.entries(e).filter(([,e])=>void 0!==e).map(([e,t])=>[e,Array.isArray(t)?`${e} IN (${t.join(", ")})`:`${e} = ${t}`])):{})(t);return K.forEach(({operator:t,operatorVal:i,singleField:a,multiField:o,condition:s,fieldName:l})=>{if(n[a])return void r.push(n[a]);const E=t?e[t]:i;let u=e[a];const c=e[o],m=s&&e[s];if(s&&!m)return;const d=l??(u?a:o);i&&!u&&(u=e[o]);const p=(e=>{const{operatorValue:t,singleValue:r,multiValue:i,fieldName:a}=e;return t===O&&r?`${a} = ${r}`:t===f&&Array.isArray(i)&&i.length>0?`${a} IN (${i.join(", ")})`:""})({operatorValue:E,singleValue:Array.isArray(u)?void 0:u,multiValue:Array.isArray(c)?c:void 0,fieldName:d});p&&r.push(p)}),r},q=e=>{const t=[];return e?(Object.entries(e).forEach(([e,r])=>{r&&t.push(`${e} = ${r}`)}),t):t},X=(e,t)=>{if(!e||0===t.length)return[];const r=t.find(t=>e[t]);return r?[r]:[]},z=({filters:e,overrideFilters:t,versionIds:r,extraConditions:i})=>{const a=[...w(e,t),...q(r),...B(i)];return a.length>0?`WHERE ${a.join(" AND ")}`:""},k=e=>{const t=e.match(new RegExp(`\\bWHERE\\s+([\\s\\S]+?)(?=\\s+(?:${x})\\b|$)`,"i"));if(!t)return{filters:{}};const r=(t[1]??"").trim().split(/\s+AND\s+/i),i={},a={};return r.forEach(e=>{const t=e.trim(),r=t.match(/^(\S+)\s+IN\s+\((.+)\)$/i);if(r){const e=r[1]??"",t=(r[2]??"").split(",").map(e=>e.trim()),a=K.find(t=>t.fieldName===e||t.multiField===e);return void(a?.operator&&(i[a.multiField]=t,i[a.operator]=f))}const n=t.match(/^(\S+)\s+=\s+(.+)$/);if(n){const e=n[1]??"",t=n[2]??"",r=K.find(t=>t.fieldName===e||t.singleField===e);r?(i[r.singleField]=t,r.operator&&(i[r.operator]=O)):e&&(a[e]=t)}}),{filters:i,versionIds:Object.keys(a).length>0?a:void 0}},J=e=>`FROM ${e.join(", ")}`,Z=e=>{const t=e.match(new RegExp(`\\bFROM\\s+([\\s\\S]+?)(?=\\s+(?:${x})\\b)`,"i"));return t?(t[1]??"").split(",").map(e=>e.trim()).filter(Boolean):[]},ee=(t,r=e.EGroupWithClause.ALL)=>0===t.length?"":`GROUP BY ${t.join(", ")} ${r}`,te=t=>{const r=t.match(new RegExp(`\\bGROUP BY\\s+([\\s\\S]+?)(?=\\s+(?:${x})\\b)`,"i"));if(!r)return{dimensions:[]};const i=(r[1]??"").trim(),a=i.toUpperCase().indexOf(" WITH ");return-1===a?{dimensions:i.split(",").map(e=>e.trim()).filter(Boolean),groupWithClause:e.EGroupWithClause.NONE}:{dimensions:i.slice(0,a).split(",").map(e=>e.trim()).filter(Boolean),groupWithClause:i.slice(a+1).trim()}},re=e=>e?`LIMIT ${e}`:"",ie=e=>{const t=e.match(/\bLIMIT\s+(\d+)/i);return t?parseInt(t[1]??"0",10):void 0},ae=e=>`MODE ${e}`,ne=e=>{const t=e.match(/\bMODE\s+(\S+)/i);return t?.[1]},oe=e=>!e||e<0?"":`OFFSET ${e}`,se=e=>{const t=e.match(/\bOFFSET\s+(\d+)/i);return t?parseInt(t[1]??"0",10):void 0},le=(e,t)=>{if(!e)return"";const r=Object.values(e).filter(e=>t?.includes(e.field)).map(e=>`${e.field} ${e.direction}`).join(", ");return r?`ORDER BY ${r}`:""},Ee=e=>{const t=e.match(new RegExp(`\\bORDER BY\\s+([\\s\\S]+?)(?=\\s+(?:${x})\\b|$)`,"i"));if(!t)return;const r={};return(t[1]??"").split(",").forEach(e=>{const t=e.trim().split(/\s+/);if(2===t.length){const e=t[0]??"",i=t[1]??"";e&&(r[e]={field:e,direction:i})}}),Object.keys(r).length>0?r:void 0},ue=e=>`SHOW ${e.join(", ")}`,ce=e=>{const t=e.match(new RegExp(`\\bSHOW\\s+([\\s\\S]+?)(?=\\s+(?:${x})\\b)`,"i"));return t?(t[1]??"").split(",").map(e=>e.trim()).filter(Boolean):[]};r.extend(n),r.extend(a),r.extend(i);let me="UTC";const de="YYYY-MM-DD HH:mm:ss";function pe(){return me}const Ae=e=>e?r(e).tz(me):r().tz(me),Te=e=>"string"==typeof e?Ae(e):e,Re=(e,t=!1)=>t&&(e=>0===e.hour()&&0===e.minute())(e)?e.endOf("day").format(U):e.format(U),Oe=e=>{const t=Te(e.startDate),r=Te(e.endDate);return t.isSame(r)?{dateGTE:Re(t),dateLTE:(i=r,Re(i?Ae(i).endOf("day"):Ae().endOf("day")))}:{dateGTE:Re(t),dateLTE:Re(r,!0)};var i},fe=e=>{const{dateRange:t,compareDateRange:r,overrideFilters:i,timeDimension:a}=e,n=a?i?.[a]:void 0;if(a&&n)return`DURING (${n}, ${a})`;if(!t)return"";const{dateGTE:o,dateLTE:s}=Oe(t),{dateGTE:l,dateLTE:E}=r?Oe(r):{};return`SINCE ${o} UNTIL ${s} ${r?`COMPARE TO ${l} UNTIL ${E}`:""}`},ye=e=>{const t=e.match(/\bDURING\s+\(([^,]+),\s*([^)]+)\)/i);if(t){const e=t[1]??"",r=t[2]??"";return{timeDimension:r.trim(),overrideFilters:{[r.trim()]:e.trim()}}}const r=e.match(/\bSINCE\s+(\S+)\s+UNTIL\s+(\S+)/i);if(!r)return{};const i={startDate:Ae(r[1]??""),endDate:Ae(r[2]??"")},a=e.match(/\bCOMPARE TO\s+(\S+)\s+UNTIL\s+(\S+)/i);return{dateRange:i,compareDateRange:a?{startDate:Ae(a[1]??""),endDate:Ae(a[2]??"")}:void 0}},Ie=e=>e?`TIMESERIES ${e}`:"",Se=e=>{const t=e.match(/\bTIMESERIES\s+(\S+)/i);return t?.[1]},De=e=>{const t=e??pe();return t?`TIMEZONE ${t}`:""},Fe=e=>{const t=e.match(/\bTIMEZONE\s+(\S+)/i);return t?.[1]};function Me(e){if("string"!=typeof e)return!1;const t=e.trim();return/^MODE\b[\s\S]*\bFROM\b[\s\S]*\bSHOW\b[\s\S]*$/.test(t)}const _e=e=>e?.gemxQLQuery?.tableData?.columns??[],ge=/\.0+$/,Ne=(e,t=2)=>(e=>`${e}`.replace(ge,""))(e.toFixed(t)),Ce=(e,t,r=2)=>{const i=((e,t,r=2)=>{if("number"!=typeof e||!t)return;return 0===e?0:parseFloat(Ne(e/t*100,r))})(e,t,r);if("number"==typeof i)return(e=>e>0&&e<.005)(i)?"~0%":`${i}%`};var Pe;function ve(e){return e.toString().replace(/\B(?=(\d{3})+(?!\d))/g,",")}e.AnalyticInterval=void 0,(Pe=e.AnalyticInterval||(e.AnalyticInterval={})).DAY="DAY",Pe.HOUR="HOUR",Pe.MONTH="MONTH",Pe.QUARTER="QUARTER",Pe.WEEK="WEEK",Pe.YEAR="YEAR";const he=60,Ge=3600,Ye=e=>{let t=e;Number.isFinite(e)&&null!=e||(t=0);const r=Ne(t);if(t>=Ge){return`${Math.floor(t/Ge)}h ${Math.floor(t%Ge/he)}m ${Math.floor(t%he)}s`}if(t>=he){return`${Math.floor(t/he)}m ${Math.floor(t%he)}s`}return`${r}s`},$e=(t,r,i)=>{if(!t)return"";const a=i?.isExpandDetail?{formatHouse:"MMM D, h:mm A",formatDay:"MMM D, YYYY",formatMonth:"MMM YYYY",formatYear:"MMM YYYY"}:{formatHouse:"h A",formatDay:"MMM D",formatMonth:"MMM YYYY",formatYear:"YYYY"};switch(r){case e.AnalyticInterval.HOUR:return Ae(t).format(a.formatHouse);case e.AnalyticInterval.DAY:case e.AnalyticInterval.WEEK:return Ae(t).format(a.formatDay);case e.AnalyticInterval.MONTH:return Ae(t).format(a.formatMonth);case e.AnalyticInterval.QUARTER:{const e=Ae(t);return`Q${e.quarter()} ${e.format("YYYY")}`}case e.AnalyticInterval.YEAR:return Ae(t).format(a.formatYear)}return Ae(t).format(a.formatMonth)},Le=e=>{if(!e)return"None";const t=Ae(e),r=Ae(),i=Ae().subtract(1,"day"),a=t.format("YYYY-MM-DD")===r.format("YYYY-MM-DD"),n=t.format("YYYY-MM-DD")===i.format("YYYY-MM-DD");if(a)return`Today at ${t.format("HH:mm")}`;if(n)return`Yesterday at ${t.format("HH:mm")}`;const o=r.diff(t,"day");return o>=0&&o<7?`${t.format("dddd")} at ${t.format("HH:mm")}`:`${t.format("MMM D")} at ${t.format("hh:mm a")}`},be=({value:t,formatter:r,getTextPrice:i,name:a})=>{if(null!==t&&("object"==typeof t||Array.isArray(t)))return t;switch(r){case e.EAnalyticDataType.INTEGER:return ve((t??0).toString());case e.EAnalyticDataType.CURRENCY:return i?i(t,!1):`${t??0}`;case e.EAnalyticDataType.DATE:return Le(t);case e.EAnalyticDataType.PERCENT:return"number"!=typeof t?Ce(0,1,2)??"":Ce(t/100,1,2)??"";case e.EAnalyticDataType.DURATION:return Ye(Number(t));case e.EAnalyticDataType.STRING:{const r=a===e.EAnalyticColumnKey.CAMPAIGNS?"":d;return t??r}case e.EAnalyticDataType.DAY:return $e(t,e.AnalyticInterval.DAY,{isExpandDetail:!0});case e.EAnalyticDataType.HOUR:return $e(t,e.AnalyticInterval.HOUR,{isExpandDetail:!0});case e.EAnalyticDataType.MONTH:return $e(t,e.AnalyticInterval.MONTH,{isExpandDetail:!0});case e.EAnalyticDataType.YEAR:return $e(t,e.AnalyticInterval.YEAR);case e.EAnalyticDataType.WEEK:return $e(t,e.AnalyticInterval.WEEK,{isExpandDetail:!0});case e.EAnalyticDataType.QUARTER:return $e(t,e.AnalyticInterval.QUARTER,{isExpandDetail:!0});case e.EAnalyticDataType.OBJECT:case e.EAnalyticDataType.ARRAY:return t;default:return`${t}`}},Ue=e=>{const t=e?.sessions;return"number"==typeof t&&t>0},Qe=e=>{if(e)return"string"==typeof e?JSON.parse(e):e},xe=e=>{try{const t=Qe(e);return t&&"object"==typeof t?t:null}catch{return null}},He=e=>{try{const t=Qe(e);if(!Array.isArray(t))return;return t}catch{return}},Ve=(e,t)=>{const r=e?.[t];return"number"==typeof r?r:0};var je;e.GPaginationDirection=void 0,(je=e.GPaginationDirection||(e.GPaginationDirection={})).NEXT="NEXT",je.PREV="PREV";e.CLAUSE_KEYWORDS=Q,e.CLAUSE_KEYWORD_BOUNDARY=x,e.COMPARE_PREFIX=A,e.COMPARE_SUFFIX=T,e.COMPARE_TOTALS_SUFFIX=R,e.ColumnSelectFragmentDoc=s,e.DATE_QUERY_FORMAT=U,e.DEFAULT_QUERY_LIMIT=H,e.GemXqlResultSelectFragmentDoc=E,e.GemxQlDocument=u,e.NONE_VALUE=d,e.OPERATOR_IS=O,e.OPERATOR_IS_ONE_OF=f,e.PLACEHOLDER_VALUE="-",e.ROW_READER_MODE_CONFIG=b,e.TOTALS_SUFFIX=p,e.TableDataSelectFragmentDoc=l,e.buildConditionQuery=z,e.buildExtraCondition=W,e.buildExtraConditions=B,e.buildFromQuery=J,e.buildGemXQlQuery=e=>{const{mode:t,metrics:r,dimensions:i,dateRange:a,compareDateRange:n,filters:o,overrideFilters:s,versionIds:l,extraConditions:E,orderBy:u,sources:c,timeDimension:m,groupWithClause:d,timezone:p,limit:A=H,offset:T,extraOrderByFields:R}=e,O=[...i,...X(u,r),...R??[]],f=[ae(t),J(c),ue(r),ee(i,d),Ie(m),fe({dateRange:a,compareDateRange:n,timeDimension:m,overrideFilters:s}),De(p),z({filters:o,overrideFilters:s,versionIds:l,extraConditions:E}),le(u,O),re(A),oe(T)].filter(Boolean).join(" ");return Me(f)?f:""},e.buildGroupQuery=ee,e.buildLimitQuery=re,e.buildModeQuery=ae,e.buildOffsetQuery=oe,e.buildOrderByQuery=le,e.buildShowQuery=ue,e.buildTimeQuery=fe,e.buildTimeSeriesQuery=Ie,e.buildTimezoneQuery=De,e.buildVersionIdCondition=q,e.convertDateToTz=e=>e?r.tz(r(e).format(de),me):r.tz(r().format(de),me),e.createNumericRowReader=(t,r=e.ERowReaderMode.DEFAULT)=>e=>{const{prefix:i,suffix:a}=b[r],n=t[`${i}${e}${a}`];if("number"==typeof n)return n;if("string"==typeof n){const e=parseFloat(n);return isNaN(e)?0:e}return 0},e.dayjsTz=Ae,e.extractColumnTypes=e=>{const t=_e(e),r={};for(const e of t)e?.name&&(r[e.name]=e.dataType);return r},e.extractQueryColumns=_e,e.extractQueryRows=e=>e?.gemxQLQuery?.tableData?.rows??[],e.filterConfigs=K,e.formatAnalyticData=be,e.formatAnalyticDate=Le,e.generateFilterConditions=w,e.getComparisonKey=e=>`${A}${e}${T}`,e.getComparisonTotalsKey=e=>`${A}${e}${T}${p}`,e.getFirstMetricInOrderBy=X,e.getFormattedByInterval=$e,e.getInitialTimezone=pe,e.getTimeDimensionByDate=(t,r)=>{const i=r.diff(t,"day");return i<=3?e.ETimeDimension.HOUR:i<=93?e.ETimeDimension.DAY:e.ETimeDimension.MONTH},e.getTimeDurationLabel=Ye,e.getTotalsKey=e=>`${e}${p}`,e.hasMetricData=Ue,e.isValidQueryInput=Me,e.numberWithCommas=ve,e.parseBreakdownItems=e=>He(e)?.map(e=>({...e,total:Number(e.total)})),e.parseConditionQuery=k,e.parseFromQuery=Z,e.parseGemXQlQuery=e=>{const{dateRange:t,compareDateRange:r,timeDimension:i,overrideFilters:a}=ye(e),n=i??Se(e),{dimensions:o,groupWithClause:s}=te(e),{filters:l,versionIds:E}=k(e);return{mode:ne(e),sources:Z(e),metrics:ce(e),dimensions:o,groupWithClause:s,timeDimension:n,dateRange:t,compareDateRange:r,overrideFilters:a,filters:l,versionIds:E,timezone:Fe(e),orderBy:Ee(e),limit:ie(e),offset:se(e)}},e.parseGroupQuery=te,e.parseJsonArray=He,e.parseJsonObject=xe,e.parseLimitQuery=ie,e.parseModeQuery=ne,e.parseOffsetQuery=se,e.parseOrderByQuery=Ee,e.parsePageItems=e=>xe(e),e.parseShowQuery=ce,e.parseTimeQuery=ye,e.parseTimeSeriesQuery=Se,e.parseTimezoneQuery=Fe,e.readNumeric=Ve,e.setTz=function(e){me=e,r.tz.setDefault(e)},e.useAnalyticData=e=>{const t=({value:t,formatter:r,name:i})=>be({value:t,formatter:r,getTextPrice:e,name:i});return{formatData:t,computeMetric:({metric:e,previousMetric:r,metricKey:i,formatter:a})=>{if(!Ue(e))return{value:0,change:"-"};const n=Ve(e,i),o=Ve(r,i),s=t({value:n,formatter:a,name:i});if(0===n&&0!==o)return{value:s,change:-100};if(0===o)return{value:s,change:"-"};return{value:s,change:(n-o)/o*100}}}},e.useCustomGemXQlQuery=c,e.useGemXQlPagination=({resetKey:t,itemsPerPage:r})=>{const[i,a]=o.useState(1),n=o.useRef(),s=i>1&&void 0!==n.current&&n.current!==t?1:i,l=(s-1)*r,E=o.useCallback(t=>r=>{a(i=>{const a=r===e.GPaginationDirection.NEXT?i+1:i-1;return Math.min(Math.max(a,1),t)})},[]);o.useEffect(()=>{n.current!==t&&(n.current=t,a(1))},[t]);const u=o.useCallback(({totalRecords:e,isLoading:t})=>{const i=Math.max(1,Math.ceil(e/r));return{currentPage:s,totalPages:i,loading:t,handlePageChange:E(i)}},[s,r,E]);return{currentPage:s,offset:l,buildPagination:u}},e.useGemxQlNamedQuery=m});
|