@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.
Files changed (197) hide show
  1. package/dist/esm/components/index.d.ts +0 -3
  2. package/dist/esm/constants/breakdown-targets.d.ts +1 -1
  3. package/dist/esm/constants/index.d.ts +0 -1
  4. package/dist/esm/core/gemxql/builder/clauses/mode-query.d.ts +1 -1
  5. package/dist/esm/core/gemxql/builder/clauses/time-query.d.ts +1 -2
  6. package/dist/esm/core/gemxql/builder/helpers/date-query-helpers.d.ts +1 -1
  7. package/dist/esm/core/gemxql/helpers/extractQueryData.d.ts +1 -1
  8. package/dist/esm/core/gemxql/helpers/getTimeDimension.d.ts +1 -1
  9. package/dist/esm/core/gemxql/hooks/useAnalyticData.d.ts +1 -4
  10. package/dist/esm/core/gemxql/index.d.ts +6 -3
  11. package/dist/esm/core/gemxql/types/analytic-mode.d.ts +5 -0
  12. package/dist/esm/core/gemxql/types/date-filter.d.ts +10 -0
  13. package/dist/esm/core/gemxql/types/index.d.ts +3 -0
  14. package/dist/esm/{utils → core/gemxql/utils}/analytics.d.ts +1 -0
  15. package/dist/esm/{utils → core/gemxql/utils}/dayjs.d.ts +0 -2
  16. package/dist/esm/gemxql.js +205 -347
  17. package/dist/esm/gemxql.mjs +205 -347
  18. package/dist/esm/hooks/index.d.ts +1 -3
  19. package/dist/esm/index.d.ts +2 -4
  20. package/dist/esm/index.js +467 -2133
  21. package/dist/esm/index.mjs +467 -2133
  22. package/dist/esm/providers/index.d.ts +0 -2
  23. package/dist/esm/shared/charts/components/GPolarisViz/components/ChartErrorBoundary/ChartErrorBoundary.d.ts +1 -1
  24. package/dist/esm/shared/charts/components/GPolarisViz/components/TooltipWrapper/utilities/getDonutChartTooltipPosition.d.ts +1 -1
  25. package/dist/esm/shared/charts/components/GPolarisViz/components/TooltipWrapper/utilities/getLineChartTooltipPosition.d.ts +1 -1
  26. package/dist/esm/shared/components/index.d.ts +0 -11
  27. package/dist/esm/types/index.d.ts +0 -3
  28. package/dist/esm/types.js +1 -31
  29. package/dist/esm/types.mjs +1 -31
  30. package/dist/esm/utils/index.d.ts +0 -3
  31. package/dist/style.css +1 -1
  32. package/dist/umd/esm/components/index.d.ts +0 -3
  33. package/dist/umd/esm/constants/breakdown-targets.d.ts +1 -1
  34. package/dist/umd/esm/constants/index.d.ts +0 -1
  35. package/dist/umd/esm/core/gemxql/builder/clauses/mode-query.d.ts +1 -1
  36. package/dist/umd/esm/core/gemxql/builder/clauses/time-query.d.ts +1 -2
  37. package/dist/umd/esm/core/gemxql/builder/helpers/date-query-helpers.d.ts +1 -1
  38. package/dist/umd/esm/core/gemxql/helpers/extractQueryData.d.ts +1 -1
  39. package/dist/umd/esm/core/gemxql/helpers/getTimeDimension.d.ts +1 -1
  40. package/dist/umd/esm/core/gemxql/hooks/useAnalyticData.d.ts +1 -4
  41. package/dist/umd/esm/core/gemxql/index.d.ts +6 -3
  42. package/dist/umd/esm/core/gemxql/types/analytic-mode.d.ts +5 -0
  43. package/dist/umd/esm/core/gemxql/types/date-filter.d.ts +10 -0
  44. package/dist/umd/esm/core/gemxql/types/index.d.ts +3 -0
  45. package/dist/umd/esm/{utils → core/gemxql/utils}/analytics.d.ts +1 -0
  46. package/dist/umd/esm/{utils → core/gemxql/utils}/dayjs.d.ts +0 -2
  47. package/dist/umd/esm/hooks/index.d.ts +1 -3
  48. package/dist/umd/esm/index.d.ts +2 -4
  49. package/dist/umd/esm/providers/index.d.ts +0 -2
  50. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/ChartErrorBoundary/ChartErrorBoundary.d.ts +1 -1
  51. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TooltipWrapper/utilities/getDonutChartTooltipPosition.d.ts +1 -1
  52. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TooltipWrapper/utilities/getLineChartTooltipPosition.d.ts +1 -1
  53. package/dist/umd/esm/shared/components/index.d.ts +0 -11
  54. package/dist/umd/esm/types/index.d.ts +0 -3
  55. package/dist/umd/esm/utils/index.d.ts +0 -3
  56. package/dist/umd/gemxql.js +1 -1
  57. package/dist/umd/index.js +1 -1
  58. package/dist/umd/types.js +1 -1
  59. package/package.json +2 -5
  60. package/dist/esm/components/AnalyticMode/AnalyticModeSelector.d.ts +0 -13
  61. package/dist/esm/components/AnalyticMode/index.d.ts +0 -2
  62. package/dist/esm/components/CurrencySelector/CurrencySelector.d.ts +0 -10
  63. package/dist/esm/components/CurrencySelector/index.d.ts +0 -2
  64. package/dist/esm/components/GTimePicker/GTimePicker.d.ts +0 -17
  65. package/dist/esm/components/GTimePicker/components/BaseTimePicker.d.ts +0 -10
  66. package/dist/esm/components/GTimePicker/components/CompareTimePicker.d.ts +0 -5
  67. package/dist/esm/components/GTimePicker/components/DateTimeFilterAddition.d.ts +0 -2
  68. package/dist/esm/components/GTimePicker/components/DateTimeFilterInputs.d.ts +0 -9
  69. package/dist/esm/components/GTimePicker/components/DateTimeFilters.d.ts +0 -15
  70. package/dist/esm/components/GTimePicker/components/MainTimePicker.d.ts +0 -3
  71. package/dist/esm/components/GTimePicker/components/index.d.ts +0 -2
  72. package/dist/esm/components/GTimePicker/constants/compareDateTimePicker.d.ts +0 -12
  73. package/dist/esm/components/GTimePicker/constants/datePicker.d.ts +0 -14
  74. package/dist/esm/components/GTimePicker/constants/index.d.ts +0 -2
  75. package/dist/esm/components/GTimePicker/constants/mainDataTimePicker.d.ts +0 -14
  76. package/dist/esm/components/GTimePicker/contexts/DateTimePickerProvider.d.ts +0 -15
  77. package/dist/esm/components/GTimePicker/contexts/index.d.ts +0 -1
  78. package/dist/esm/components/GTimePicker/helpers/date-range-info.d.ts +0 -16
  79. package/dist/esm/components/GTimePicker/helpers/index.d.ts +0 -4
  80. package/dist/esm/components/GTimePicker/helpers/parse-date.d.ts +0 -24
  81. package/dist/esm/components/GTimePicker/helpers/time-picker.d.ts +0 -76
  82. package/dist/esm/components/GTimePicker/helpers/version.d.ts +0 -2
  83. package/dist/esm/components/GTimePicker/hooks/index.d.ts +0 -3
  84. package/dist/esm/components/GTimePicker/hooks/useCompareDateTimePicker.d.ts +0 -25
  85. package/dist/esm/components/GTimePicker/hooks/useDateTimeFilter.d.ts +0 -18
  86. package/dist/esm/components/GTimePicker/hooks/useDateTimePicker.d.ts +0 -30
  87. package/dist/esm/components/GTimePicker/hooks/useVersionDateTimeFilters.d.ts +0 -9
  88. package/dist/esm/components/GTimePicker/index.d.ts +0 -7
  89. package/dist/esm/components/GTimePicker/types/index.d.ts +0 -38
  90. package/dist/esm/constants/currency.d.ts +0 -2
  91. package/dist/esm/hooks/publish/index.d.ts +0 -2
  92. package/dist/esm/hooks/publish/useStickyDetectById.d.ts +0 -8
  93. package/dist/esm/hooks/publish/useStickyFilterBoxProps.d.ts +0 -6
  94. package/dist/esm/hooks/useFetchCurrencyRates.d.ts +0 -1
  95. package/dist/esm/hooks/useToggle.d.ts +0 -12
  96. package/dist/esm/providers/ConvertMoneyProvider.d.ts +0 -13
  97. package/dist/esm/shared/components/GActivatorPopover/GActivatorPopover.d.ts +0 -23
  98. package/dist/esm/shared/components/GActivatorPopover/index.d.ts +0 -1
  99. package/dist/esm/shared/components/GButton/GButton.d.ts +0 -19
  100. package/dist/esm/shared/components/GButton/index.d.ts +0 -1
  101. package/dist/esm/shared/components/GCheckbox/GCheckbox.d.ts +0 -39
  102. package/dist/esm/shared/components/GCheckbox/index.d.ts +0 -1
  103. package/dist/esm/shared/components/GChoice/ChoiceHelpText.d.ts +0 -4
  104. package/dist/esm/shared/components/GChoice/GChoice.d.ts +0 -44
  105. package/dist/esm/shared/components/GChoice/index.d.ts +0 -2
  106. package/dist/esm/shared/components/GClickable/GClickable.d.ts +0 -10
  107. package/dist/esm/shared/components/GClickable/index.d.ts +0 -1
  108. package/dist/esm/shared/components/GDiv/GDiv.d.ts +0 -7
  109. package/dist/esm/shared/components/GDiv/index.d.ts +0 -1
  110. package/dist/esm/shared/components/GI18NText/GI18NText.d.ts +0 -2
  111. package/dist/esm/shared/components/GI18NText/index.d.ts +0 -2
  112. package/dist/esm/shared/components/GI18NText/types.d.ts +0 -6
  113. package/dist/esm/shared/components/GOptionList/GOptionList.d.ts +0 -11
  114. package/dist/esm/shared/components/GOptionList/index.d.ts +0 -1
  115. package/dist/esm/shared/components/GSelector/GSelector.d.ts +0 -27
  116. package/dist/esm/shared/components/GSelector/index.d.ts +0 -1
  117. package/dist/esm/shared/components/GTextLink/GTextLink.d.ts +0 -9
  118. package/dist/esm/shared/components/GTextLink/index.d.ts +0 -1
  119. package/dist/esm/shared/components/GViewBySelector/GViewBySelector.d.ts +0 -17
  120. package/dist/esm/shared/components/GViewBySelector/index.d.ts +0 -1
  121. package/dist/esm/stores/currencyRatesStore.d.ts +0 -7
  122. package/dist/esm/stores/index.d.ts +0 -2
  123. package/dist/esm/types/analytic-mode.d.ts +0 -5
  124. package/dist/esm/types/currency.d.ts +0 -329
  125. package/dist/esm/utils/currency.d.ts +0 -5
  126. package/dist/esm/utils/sort.d.ts +0 -13
  127. package/dist/umd/esm/components/AnalyticMode/AnalyticModeSelector.d.ts +0 -13
  128. package/dist/umd/esm/components/AnalyticMode/index.d.ts +0 -2
  129. package/dist/umd/esm/components/CurrencySelector/CurrencySelector.d.ts +0 -10
  130. package/dist/umd/esm/components/CurrencySelector/index.d.ts +0 -2
  131. package/dist/umd/esm/components/GTimePicker/GTimePicker.d.ts +0 -17
  132. package/dist/umd/esm/components/GTimePicker/components/BaseTimePicker.d.ts +0 -10
  133. package/dist/umd/esm/components/GTimePicker/components/CompareTimePicker.d.ts +0 -5
  134. package/dist/umd/esm/components/GTimePicker/components/DateTimeFilterAddition.d.ts +0 -2
  135. package/dist/umd/esm/components/GTimePicker/components/DateTimeFilterInputs.d.ts +0 -9
  136. package/dist/umd/esm/components/GTimePicker/components/DateTimeFilters.d.ts +0 -15
  137. package/dist/umd/esm/components/GTimePicker/components/MainTimePicker.d.ts +0 -3
  138. package/dist/umd/esm/components/GTimePicker/components/index.d.ts +0 -2
  139. package/dist/umd/esm/components/GTimePicker/constants/compareDateTimePicker.d.ts +0 -12
  140. package/dist/umd/esm/components/GTimePicker/constants/datePicker.d.ts +0 -14
  141. package/dist/umd/esm/components/GTimePicker/constants/index.d.ts +0 -2
  142. package/dist/umd/esm/components/GTimePicker/constants/mainDataTimePicker.d.ts +0 -14
  143. package/dist/umd/esm/components/GTimePicker/contexts/DateTimePickerProvider.d.ts +0 -15
  144. package/dist/umd/esm/components/GTimePicker/contexts/index.d.ts +0 -1
  145. package/dist/umd/esm/components/GTimePicker/helpers/date-range-info.d.ts +0 -16
  146. package/dist/umd/esm/components/GTimePicker/helpers/index.d.ts +0 -4
  147. package/dist/umd/esm/components/GTimePicker/helpers/parse-date.d.ts +0 -24
  148. package/dist/umd/esm/components/GTimePicker/helpers/time-picker.d.ts +0 -76
  149. package/dist/umd/esm/components/GTimePicker/helpers/version.d.ts +0 -2
  150. package/dist/umd/esm/components/GTimePicker/hooks/index.d.ts +0 -3
  151. package/dist/umd/esm/components/GTimePicker/hooks/useCompareDateTimePicker.d.ts +0 -25
  152. package/dist/umd/esm/components/GTimePicker/hooks/useDateTimeFilter.d.ts +0 -18
  153. package/dist/umd/esm/components/GTimePicker/hooks/useDateTimePicker.d.ts +0 -30
  154. package/dist/umd/esm/components/GTimePicker/hooks/useVersionDateTimeFilters.d.ts +0 -9
  155. package/dist/umd/esm/components/GTimePicker/index.d.ts +0 -7
  156. package/dist/umd/esm/components/GTimePicker/types/index.d.ts +0 -38
  157. package/dist/umd/esm/constants/currency.d.ts +0 -2
  158. package/dist/umd/esm/hooks/publish/index.d.ts +0 -2
  159. package/dist/umd/esm/hooks/publish/useStickyDetectById.d.ts +0 -8
  160. package/dist/umd/esm/hooks/publish/useStickyFilterBoxProps.d.ts +0 -6
  161. package/dist/umd/esm/hooks/useFetchCurrencyRates.d.ts +0 -1
  162. package/dist/umd/esm/hooks/useToggle.d.ts +0 -12
  163. package/dist/umd/esm/providers/ConvertMoneyProvider.d.ts +0 -13
  164. package/dist/umd/esm/shared/components/GActivatorPopover/GActivatorPopover.d.ts +0 -23
  165. package/dist/umd/esm/shared/components/GActivatorPopover/index.d.ts +0 -1
  166. package/dist/umd/esm/shared/components/GButton/GButton.d.ts +0 -19
  167. package/dist/umd/esm/shared/components/GButton/index.d.ts +0 -1
  168. package/dist/umd/esm/shared/components/GCheckbox/GCheckbox.d.ts +0 -39
  169. package/dist/umd/esm/shared/components/GCheckbox/index.d.ts +0 -1
  170. package/dist/umd/esm/shared/components/GChoice/ChoiceHelpText.d.ts +0 -4
  171. package/dist/umd/esm/shared/components/GChoice/GChoice.d.ts +0 -44
  172. package/dist/umd/esm/shared/components/GChoice/index.d.ts +0 -2
  173. package/dist/umd/esm/shared/components/GClickable/GClickable.d.ts +0 -10
  174. package/dist/umd/esm/shared/components/GClickable/index.d.ts +0 -1
  175. package/dist/umd/esm/shared/components/GDiv/GDiv.d.ts +0 -7
  176. package/dist/umd/esm/shared/components/GDiv/index.d.ts +0 -1
  177. package/dist/umd/esm/shared/components/GI18NText/GI18NText.d.ts +0 -2
  178. package/dist/umd/esm/shared/components/GI18NText/index.d.ts +0 -2
  179. package/dist/umd/esm/shared/components/GI18NText/types.d.ts +0 -6
  180. package/dist/umd/esm/shared/components/GOptionList/GOptionList.d.ts +0 -11
  181. package/dist/umd/esm/shared/components/GOptionList/index.d.ts +0 -1
  182. package/dist/umd/esm/shared/components/GSelector/GSelector.d.ts +0 -27
  183. package/dist/umd/esm/shared/components/GSelector/index.d.ts +0 -1
  184. package/dist/umd/esm/shared/components/GTextLink/GTextLink.d.ts +0 -9
  185. package/dist/umd/esm/shared/components/GTextLink/index.d.ts +0 -1
  186. package/dist/umd/esm/shared/components/GViewBySelector/GViewBySelector.d.ts +0 -17
  187. package/dist/umd/esm/shared/components/GViewBySelector/index.d.ts +0 -1
  188. package/dist/umd/esm/stores/currencyRatesStore.d.ts +0 -7
  189. package/dist/umd/esm/stores/index.d.ts +0 -2
  190. package/dist/umd/esm/types/analytic-mode.d.ts +0 -5
  191. package/dist/umd/esm/types/currency.d.ts +0 -329
  192. package/dist/umd/esm/utils/currency.d.ts +0 -5
  193. package/dist/umd/esm/utils/sort.d.ts +0 -13
  194. /package/dist/esm/{types → core/gemxql/types}/breakdown-items.d.ts +0 -0
  195. /package/dist/esm/hooks/{publish/useWindowSize.d.ts → useWindowSize.d.ts} +0 -0
  196. /package/dist/umd/esm/{types → core/gemxql/types}/breakdown-items.d.ts +0 -0
  197. /package/dist/umd/esm/hooks/{publish/useWindowSize.d.ts → useWindowSize.d.ts} +0 -0
@@ -1,11 +1,62 @@
1
- import dayjs from 'dayjs';
2
- import quarterOfYear from 'dayjs/plugin/quarterOfYear.js';
3
- import timezone from 'dayjs/plugin/timezone.js';
4
- import utc from 'dayjs/plugin/utc.js';
5
1
  import { useQuery } from '@tanstack/react-query';
6
- import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
7
- import { create } from 'zustand';
8
- import { createContext, useContext, useState, useRef, useCallback, useEffect } from 'react';
2
+ import dayjs from 'dayjs';
3
+ import quarterOfYear from 'dayjs/plugin/quarterOfYear';
4
+ import timezone from 'dayjs/plugin/timezone';
5
+ import utc from 'dayjs/plugin/utc';
6
+ import { useState, useRef, useCallback, useEffect } from 'react';
7
+
8
+ const ColumnSelectFragmentDoc = `
9
+ fragment ColumnSelect on Column {
10
+ dataType
11
+ displayName
12
+ name
13
+ }
14
+ `;
15
+ const TableDataSelectFragmentDoc = `
16
+ fragment TableDataSelect on TableData {
17
+ columns {
18
+ ...ColumnSelect
19
+ }
20
+ rows
21
+ }
22
+ `;
23
+ const GemXqlResultSelectFragmentDoc = `
24
+ fragment GemXQLResultSelect on GemxQLResult {
25
+ tableData {
26
+ ...TableDataSelect
27
+ }
28
+ }
29
+ `;
30
+
31
+ const GemxQlDocument = `
32
+ query GemxQL($input: String!) {
33
+ gemxQLQuery(query: $input) {
34
+ ...GemXQLResultSelect
35
+ }
36
+ }
37
+ ${GemXqlResultSelectFragmentDoc}
38
+ ${TableDataSelectFragmentDoc}
39
+ ${ColumnSelectFragmentDoc}`;
40
+
41
+ const useCustomGemXQlQuery = (variables, fetcher, options) => {
42
+ return useQuery({
43
+ queryKey: ['GemXQlCustom', variables],
44
+ queryFn: fetcher(GemxQlDocument, variables),
45
+ ...options,
46
+ });
47
+ };
48
+ useCustomGemXQlQuery.getKey = (variables) => ['GemXQlCustom', variables];
49
+
50
+ const useGemxQlNamedQuery = ({ name, variables, fetcher }, options) => {
51
+ const document = GemxQlDocument.replace(/query\s+GemxQL\b/, `query ${name}`);
52
+ return useQuery({
53
+ queryKey: [name, variables],
54
+ queryFn: fetcher(document, variables),
55
+ retry: 0,
56
+ ...options,
57
+ });
58
+ };
59
+ useGemxQlNamedQuery.getKey = (name, variables) => [name, variables];
9
60
 
10
61
  const NONE_VALUE = 'None';
11
62
  const PLACEHOLDER_VALUE = '-';
@@ -43,12 +94,42 @@ var EAnalyticColumnKey;
43
94
  EAnalyticColumnKey["TRAFFIC_SOURCE_ITEMS"] = "traffic_source_items";
44
95
  })(EAnalyticColumnKey || (EAnalyticColumnKey = {}));
45
96
 
97
+ var EAnalyticMode;
98
+ (function (EAnalyticMode) {
99
+ EAnalyticMode["ALL_SESSION"] = "ALL_SESSION";
100
+ EAnalyticMode["FIRST_SESSION"] = "FIRST_SESSION";
101
+ EAnalyticMode["PAGE_ONLY"] = "PAGE_ONLY";
102
+ })(EAnalyticMode || (EAnalyticMode = {}));
103
+
46
104
  var EAnalyticSource;
47
105
  (function (EAnalyticSource) {
48
106
  EAnalyticSource["SESSIONS"] = "sessions";
49
107
  EAnalyticSource["SALES"] = "sales";
50
108
  })(EAnalyticSource || (EAnalyticSource = {}));
51
109
 
110
+ var EVisitorType;
111
+ (function (EVisitorType) {
112
+ EVisitorType["NEW"] = "new";
113
+ EVisitorType["RETURNING"] = "returning";
114
+ })(EVisitorType || (EVisitorType = {}));
115
+ var EDeviceType;
116
+ (function (EDeviceType) {
117
+ EDeviceType["DESKTOP"] = "desktop";
118
+ EDeviceType["MOBILE"] = "mobile";
119
+ EDeviceType["TABLET"] = "tablet";
120
+ })(EDeviceType || (EDeviceType = {}));
121
+ var ETrafficSourceType;
122
+ (function (ETrafficSourceType) {
123
+ ETrafficSourceType["DIRECT"] = "direct";
124
+ ETrafficSourceType["EMAIL"] = "email";
125
+ ETrafficSourceType["REFERRAL"] = "referral";
126
+ ETrafficSourceType["ORGANIC_SOCIAL"] = "organic-social";
127
+ ETrafficSourceType["ORGANIC_SEARCH"] = "organic-search";
128
+ ETrafficSourceType["PAID_SOCIAL"] = "paid-social";
129
+ ETrafficSourceType["PAID_SEARCH"] = "paid-search";
130
+ ETrafficSourceType["SMS"] = "sms";
131
+ })(ETrafficSourceType || (ETrafficSourceType = {}));
132
+
52
133
  var EComparisonOperator;
53
134
  (function (EComparisonOperator) {
54
135
  EComparisonOperator["EQ"] = "=";
@@ -480,123 +561,27 @@ const parse$4 = (query) => {
480
561
  .filter(Boolean);
481
562
  };
482
563
 
483
- const TRIM_DECIMAL_ZEROS_REGEX = /\.0+$/;
484
- const DEFAULT_DECIMALS = 2;
485
- const trimDecimalZeros = (number) => {
486
- return `${number}`.replace(TRIM_DECIMAL_ZEROS_REGEX, '');
487
- };
488
- const cleanDecimal = (number, decimals = DEFAULT_DECIMALS) => {
489
- return trimDecimalZeros(number.toFixed(decimals));
490
- };
491
- const numberWithCommas = (x) => {
492
- return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
493
- };
494
-
495
- /**
496
- * Utility function to calculate percentage and format it.
497
- * @param part - The part value.
498
- * @param total - The total value.
499
- * @param decimals - The number of decimal places to format the percentage to.
500
- * @returns The formatted percentage as a string.
501
- */
502
- const PERCENTAGE_THRESHOLD = 0.005;
503
- const PERCENTAGE_THRESHOLD_STRING = '~0%';
504
- const calcPercentage = (part, total, decimals = DEFAULT_DECIMALS) => {
505
- if (typeof part !== 'number' || !total)
506
- return undefined;
507
- if (part === 0)
508
- return 0;
509
- const percentage = (part / total) * 100;
510
- return parseFloat(cleanDecimal(percentage, decimals));
511
- };
512
- const isLessThanThreshold = (percentage) => percentage > 0 && percentage < PERCENTAGE_THRESHOLD;
513
- const calcPercentageString = (part, total, decimals = 2) => {
514
- const percentage = calcPercentage(part, total, decimals);
515
- if (typeof percentage !== 'number')
516
- return undefined;
517
- if (isLessThanThreshold(percentage)) {
518
- return PERCENTAGE_THRESHOLD_STRING;
519
- }
520
- return `${percentage}%`;
521
- };
522
-
523
564
  dayjs.extend(utc);
524
565
  dayjs.extend(timezone);
525
566
  dayjs.extend(quarterOfYear);
526
567
  let tz = 'UTC';
568
+ const DEFAULT_DATE_FORMAT = 'YYYY-MM-DD HH:mm:ss';
527
569
  function getInitialTimezone() {
528
570
  return tz;
529
571
  }
572
+ function setTz(value) {
573
+ tz = value;
574
+ dayjs.tz.setDefault(value);
575
+ }
530
576
  const dayjsTz = (date) => {
531
577
  if (!date)
532
578
  return dayjs().tz(tz);
533
579
  return dayjs(date).tz(tz);
534
580
  };
535
-
536
- var AnalyticInterval;
537
- (function (AnalyticInterval) {
538
- AnalyticInterval["DAY"] = "DAY";
539
- AnalyticInterval["HOUR"] = "HOUR";
540
- AnalyticInterval["MONTH"] = "MONTH";
541
- AnalyticInterval["QUARTER"] = "QUARTER";
542
- AnalyticInterval["WEEK"] = "WEEK";
543
- AnalyticInterval["YEAR"] = "YEAR";
544
- })(AnalyticInterval || (AnalyticInterval = {}));
545
- const SECONDS_IN_MINUTE = 60;
546
- const SECONDS_IN_HOUR = SECONDS_IN_MINUTE * SECONDS_IN_MINUTE;
547
- const getTimeDurationLabel = (valueInSeconds) => {
548
- let data = valueInSeconds;
549
- if (!Number.isFinite(valueInSeconds) || valueInSeconds == null) {
550
- data = 0;
551
- }
552
- const fixedValue = cleanDecimal(data);
553
- if (data >= SECONDS_IN_HOUR) {
554
- const hours = Math.floor(data / SECONDS_IN_HOUR);
555
- const minutes = Math.floor((data % SECONDS_IN_HOUR) / SECONDS_IN_MINUTE);
556
- const seconds = Math.floor(data % SECONDS_IN_MINUTE);
557
- return `${hours}h ${minutes}m ${seconds}s`;
558
- }
559
- else if (data >= SECONDS_IN_MINUTE) {
560
- const minutes = Math.floor(data / SECONDS_IN_MINUTE);
561
- const seconds = Math.floor(data % SECONDS_IN_MINUTE);
562
- return `${minutes}m ${seconds}s`;
563
- }
564
- else {
565
- return `${fixedValue}s`;
566
- }
567
- };
568
- const getFormattedByInterval = (value, interval, options) => {
569
- if (!value)
570
- return '';
571
- const optionFormat = options?.isExpandDetail
572
- ? {
573
- formatHouse: 'MMM D, h:mm A',
574
- formatDay: 'MMM D, YYYY',
575
- formatMonth: 'MMM YYYY',
576
- formatYear: 'MMM YYYY',
577
- }
578
- : {
579
- formatHouse: 'h A',
580
- formatDay: 'MMM D',
581
- formatMonth: 'MMM YYYY',
582
- formatYear: 'YYYY',
583
- };
584
- switch (interval) {
585
- case AnalyticInterval.HOUR:
586
- return dayjsTz(value).format(optionFormat.formatHouse);
587
- case AnalyticInterval.DAY:
588
- case AnalyticInterval.WEEK:
589
- return dayjsTz(value).format(optionFormat.formatDay);
590
- case AnalyticInterval.MONTH:
591
- return dayjsTz(value).format(optionFormat.formatMonth);
592
- case AnalyticInterval.QUARTER: {
593
- const d = dayjsTz(value);
594
- return `Q${d.quarter()} ${d.format('YYYY')}`;
595
- }
596
- case AnalyticInterval.YEAR:
597
- return dayjsTz(value).format(optionFormat.formatYear);
598
- }
599
- return dayjsTz(value).format(optionFormat.formatMonth);
581
+ const convertDateToTz = (date) => {
582
+ if (!date)
583
+ return dayjs.tz(dayjs().format(DEFAULT_DATE_FORMAT), tz);
584
+ return dayjs.tz(dayjs(date).format(DEFAULT_DATE_FORMAT), tz);
600
585
  };
601
586
 
602
587
  const toDate = (value) => (typeof value === 'string' ? dayjsTz(value) : value);
@@ -756,6 +741,112 @@ const extractColumnTypes = (response) => {
756
741
  return columnTypes;
757
742
  };
758
743
 
744
+ const TRIM_DECIMAL_ZEROS_REGEX = /\.0+$/;
745
+ const DEFAULT_DECIMALS = 2;
746
+ const trimDecimalZeros = (number) => {
747
+ return `${number}`.replace(TRIM_DECIMAL_ZEROS_REGEX, '');
748
+ };
749
+ const cleanDecimal = (number, decimals = DEFAULT_DECIMALS) => {
750
+ return trimDecimalZeros(number.toFixed(decimals));
751
+ };
752
+
753
+ /**
754
+ * Utility function to calculate percentage and format it.
755
+ * @param part - The part value.
756
+ * @param total - The total value.
757
+ * @param decimals - The number of decimal places to format the percentage to.
758
+ * @returns The formatted percentage as a string.
759
+ */
760
+ const PERCENTAGE_THRESHOLD = 0.005;
761
+ const PERCENTAGE_THRESHOLD_STRING = '~0%';
762
+ const calcPercentage = (part, total, decimals = DEFAULT_DECIMALS) => {
763
+ if (typeof part !== 'number' || !total)
764
+ return undefined;
765
+ if (part === 0)
766
+ return 0;
767
+ const percentage = (part / total) * 100;
768
+ return parseFloat(cleanDecimal(percentage, decimals));
769
+ };
770
+ const isLessThanThreshold = (percentage) => percentage > 0 && percentage < PERCENTAGE_THRESHOLD;
771
+ const calcPercentageString = (part, total, decimals = 2) => {
772
+ const percentage = calcPercentage(part, total, decimals);
773
+ if (typeof percentage !== 'number')
774
+ return undefined;
775
+ if (isLessThanThreshold(percentage)) {
776
+ return PERCENTAGE_THRESHOLD_STRING;
777
+ }
778
+ return `${percentage}%`;
779
+ };
780
+
781
+ var AnalyticInterval;
782
+ (function (AnalyticInterval) {
783
+ AnalyticInterval["DAY"] = "DAY";
784
+ AnalyticInterval["HOUR"] = "HOUR";
785
+ AnalyticInterval["MONTH"] = "MONTH";
786
+ AnalyticInterval["QUARTER"] = "QUARTER";
787
+ AnalyticInterval["WEEK"] = "WEEK";
788
+ AnalyticInterval["YEAR"] = "YEAR";
789
+ })(AnalyticInterval || (AnalyticInterval = {}));
790
+ function numberWithCommas(x) {
791
+ return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
792
+ }
793
+ const SECONDS_IN_MINUTE = 60;
794
+ const SECONDS_IN_HOUR = SECONDS_IN_MINUTE * SECONDS_IN_MINUTE;
795
+ const getTimeDurationLabel = (valueInSeconds) => {
796
+ let data = valueInSeconds;
797
+ if (!Number.isFinite(valueInSeconds) || valueInSeconds == null) {
798
+ data = 0;
799
+ }
800
+ const fixedValue = cleanDecimal(data);
801
+ if (data >= SECONDS_IN_HOUR) {
802
+ const hours = Math.floor(data / SECONDS_IN_HOUR);
803
+ const minutes = Math.floor((data % SECONDS_IN_HOUR) / SECONDS_IN_MINUTE);
804
+ const seconds = Math.floor(data % SECONDS_IN_MINUTE);
805
+ return `${hours}h ${minutes}m ${seconds}s`;
806
+ }
807
+ else if (data >= SECONDS_IN_MINUTE) {
808
+ const minutes = Math.floor(data / SECONDS_IN_MINUTE);
809
+ const seconds = Math.floor(data % SECONDS_IN_MINUTE);
810
+ return `${minutes}m ${seconds}s`;
811
+ }
812
+ else {
813
+ return `${fixedValue}s`;
814
+ }
815
+ };
816
+ const getFormattedByInterval = (value, interval, options) => {
817
+ if (!value)
818
+ return '';
819
+ const optionFormat = options?.isExpandDetail
820
+ ? {
821
+ formatHouse: 'MMM D, h:mm A',
822
+ formatDay: 'MMM D, YYYY',
823
+ formatMonth: 'MMM YYYY',
824
+ formatYear: 'MMM YYYY',
825
+ }
826
+ : {
827
+ formatHouse: 'h A',
828
+ formatDay: 'MMM D',
829
+ formatMonth: 'MMM YYYY',
830
+ formatYear: 'YYYY',
831
+ };
832
+ switch (interval) {
833
+ case AnalyticInterval.HOUR:
834
+ return dayjsTz(value).format(optionFormat.formatHouse);
835
+ case AnalyticInterval.DAY:
836
+ case AnalyticInterval.WEEK:
837
+ return dayjsTz(value).format(optionFormat.formatDay);
838
+ case AnalyticInterval.MONTH:
839
+ return dayjsTz(value).format(optionFormat.formatMonth);
840
+ case AnalyticInterval.QUARTER: {
841
+ const d = dayjsTz(value);
842
+ return `Q${d.quarter()} ${d.format('YYYY')}`;
843
+ }
844
+ case AnalyticInterval.YEAR:
845
+ return dayjsTz(value).format(optionFormat.formatYear);
846
+ }
847
+ return dayjsTz(value).format(optionFormat.formatMonth);
848
+ };
849
+
759
850
  const formatAnalyticDate = (dateString) => {
760
851
  if (!dateString)
761
852
  return 'None';
@@ -896,240 +987,7 @@ const createNumericRowReader = (row, mode = ERowReaderMode.DEFAULT) => (key) =>
896
987
  return 0;
897
988
  };
898
989
 
899
- const ColumnSelectFragmentDoc = `
900
- fragment ColumnSelect on Column {
901
- dataType
902
- displayName
903
- name
904
- }
905
- `;
906
- const TableDataSelectFragmentDoc = `
907
- fragment TableDataSelect on TableData {
908
- columns {
909
- ...ColumnSelect
910
- }
911
- rows
912
- }
913
- `;
914
- const GemXqlResultSelectFragmentDoc = `
915
- fragment GemXQLResultSelect on GemxQLResult {
916
- tableData {
917
- ...TableDataSelect
918
- }
919
- }
920
- `;
921
-
922
- const GemxQlDocument = `
923
- query GemxQL($input: String!) {
924
- gemxQLQuery(query: $input) {
925
- ...GemXQLResultSelect
926
- }
927
- }
928
- ${GemXqlResultSelectFragmentDoc}
929
- ${TableDataSelectFragmentDoc}
930
- ${ColumnSelectFragmentDoc}`;
931
-
932
- const useCustomGemXQlQuery = (variables, fetcher, options) => {
933
- return useQuery({
934
- queryKey: ['GemXQlCustom', variables],
935
- queryFn: fetcher(GemxQlDocument, variables),
936
- ...options,
937
- });
938
- };
939
- useCustomGemXQlQuery.getKey = (variables) => ['GemXQlCustom', variables];
940
-
941
- const useGemxQlNamedQuery = ({ name, variables, fetcher }, options) => {
942
- const document = GemxQlDocument.replace(/query\s+GemxQL\b/, `query ${name}`);
943
- return useQuery({
944
- queryKey: [name, variables],
945
- queryFn: fetcher(document, variables),
946
- retry: 0,
947
- ...options,
948
- });
949
- };
950
- useGemxQlNamedQuery.getKey = (name, variables) => [name, variables];
951
-
952
- var EMetricKey;
953
- (function (EMetricKey) {
954
- EMetricKey["SESSION"] = "sessions";
955
- EMetricKey["ORDERS"] = "orders";
956
- EMetricKey["PAGE_VIEWS"] = "pageviews";
957
- EMetricKey["VISITORS"] = "visitors";
958
- EMetricKey["BOUNCE_RATE"] = "bounce_rate";
959
- EMetricKey["CTR"] = "ctr";
960
- EMetricKey["CONVERSION_RATE"] = "conversion_rate";
961
- EMetricKey["AVG_TIME_ON_PAGE"] = "average_time_on_page";
962
- EMetricKey["ADDED_TO_CART"] = "added_to_cart";
963
- EMetricKey["ADD_TO_CART_RATE"] = "added_to_cart_rate";
964
- EMetricKey["REACHED_CHECKOUT"] = "sessions_that_reached_checkout";
965
- EMetricKey["COMPLETE_CHECKOUT"] = "sessions_that_completed_checkout";
966
- EMetricKey["CART_ADDITION"] = "sessions_with_cart_additions";
967
- EMetricKey["AOV"] = "aov";
968
- EMetricKey["REVENUE"] = "revenue";
969
- EMetricKey["RPV"] = "revenue_per_visitor";
970
- EMetricKey["VISITOR_ITEMS"] = "visitor_items";
971
- EMetricKey["DEVICE_ITEMS"] = "device_items";
972
- EMetricKey["TRAFFIC_SOURCE_ITEMS"] = "traffic_source_items";
973
- })(EMetricKey || (EMetricKey = {}));
974
-
975
- ({
976
- [EMetricKey.SESSION]: {
977
- title: 'Sessions',
978
- content: 'A period during which a visitor interacts with your online store',
979
- },
980
- [EMetricKey.VISITORS]: {
981
- title: 'Visitors',
982
- content: 'Number of unique individuals who visit your online store',
983
- },
984
- [EMetricKey.BOUNCE_RATE]: {
985
- title: 'Bounce rate',
986
- content: 'Percentage of visitors who leave your store after viewing only one page, without interacting further',
987
- formula: (jsxs(Fragment, { children: [jsx("span", { className: "formula-variable", children: "Bounce rate" }), jsx("span", { children: " = " }), jsx("span", { className: "formula-input", children: "sessions with a pageview" }), jsx("span", { className: "formula-operator", children: " / " }), jsx("span", { className: "formula-input", children: "total sessions" })] })),
988
- },
989
- [EMetricKey.CTR]: {
990
- title: 'Click-through rate',
991
- content: 'Percentage of clicks to open new page, compared to the number of times the page was viewed',
992
- formula: (jsxs(Fragment, { children: [jsx("span", { className: "formula-variable", children: "Click-through rate" }), jsx("span", { children: " = " }), jsx("span", { className: "formula-input", children: "total clicks" }), jsx("span", { className: "formula-operator", children: " / " }), jsx("span", { className: "formula-input", children: "total pageviews" })] })),
993
- },
994
- [EMetricKey.AVG_TIME_ON_PAGE]: {
995
- title: 'Average time on page',
996
- content: 'Average duration that visitors spend on a page before clicking to open new page',
997
- formula: (jsxs(Fragment, { children: [jsx("span", { className: "formula-variable", children: "Average time on page" }), jsx("span", { children: " = " }), jsx("span", { className: "formula-input", children: "total time on page" }), jsx("span", { className: "formula-operator", children: " / " }), jsx("span", { className: "formula-input", children: "(total pageviews - total exits)" })] })),
998
- },
999
- [EMetricKey.PAGE_VIEWS]: {
1000
- title: 'Pageviews',
1001
- content: 'Number of times a page on your online store has been viewed by visitors',
1002
- },
1003
- [EMetricKey.RPV]: {
1004
- title: 'Revenue per visitor',
1005
- content: 'Average revenue generated from each visitor',
1006
- formula: (jsxs(Fragment, { children: [jsx("span", { className: "formula-variable", children: "Revenue per visitor" }), jsx("span", { children: " = " }), jsx("span", { className: "formula-input", children: "total revenue" }), jsx("span", { className: "formula-operator", children: " / " }), jsx("span", { className: "formula-input", children: "total visitors" })] })),
1007
- },
1008
- [EMetricKey.ADDED_TO_CART]: {
1009
- title: 'Added to cart',
1010
- content: 'Total number of the event when a customer adds a product to their cart on your online store',
1011
- },
1012
- [EMetricKey.REACHED_CHECKOUT]: {
1013
- title: 'Sessions that reached checkout',
1014
- content: 'Sessions in your online store in which the checkout page was reached',
1015
- },
1016
- [EMetricKey.COMPLETE_CHECKOUT]: {
1017
- title: 'Sessions that completed checkout',
1018
- content: 'Sessions in your online store in which a purchase was completed',
1019
- },
1020
- [EMetricKey.ORDERS]: {
1021
- title: 'Orders',
1022
- content: 'Number of orders that went through this pages',
1023
- },
1024
- [EMetricKey.CONVERSION_RATE]: {
1025
- title: 'Conversion rate',
1026
- content: 'Percentage of online store sessions that completed an order',
1027
- formula: (jsxs(Fragment, { children: [jsx("span", { className: "formula-variable", children: "Conversion rate" }), jsx("span", { children: " = " }), jsx("span", { className: "formula-input", children: "sessions that completed checkout" }), jsx("span", { className: "formula-operator", children: " / " }), jsx("span", { className: "formula-input", children: "total sessions" })] })),
1028
- },
1029
- [EMetricKey.AOV]: {
1030
- title: 'Average order value',
1031
- content: 'Average value of orders placed in your online store',
1032
- formula: (jsxs(Fragment, { children: [jsx("span", { className: "formula-variable", children: "Average order value" }), jsx("span", { children: " = " }), jsx("span", { className: "formula-input", children: "total revenue" }), jsx("span", { className: "formula-operator", children: " / " }), jsx("span", { className: "formula-input", children: "total orders" })] })),
1033
- },
1034
- [EMetricKey.REVENUE]: {
1035
- title: 'Revenue',
1036
- content: 'Total income generated from sales after discounts',
1037
- formula: (jsxs(Fragment, { children: [jsx("span", { className: "formula-variable", children: "Revenue" }), jsx("span", { children: " = " }), jsx("span", { className: "formula-input", children: "gross sales" }), jsx("span", { className: "formula-operator", children: " - " }), jsx("span", { className: "formula-input", children: "discounts" })] })),
1038
- },
1039
- [EMetricKey.ADD_TO_CART_RATE]: {
1040
- title: 'Add to cart rate',
1041
- content: 'Percentage of sessions in which the customer added item to the cart',
1042
- formula: (jsxs(Fragment, { children: [jsx("span", { className: "formula-variable", children: "Added to cart rate" }), jsx("span", { children: " = " }), jsx("span", { className: "formula-input", children: "sessions with cart additions" }), jsx("span", { className: "formula-operator", children: " / " }), jsx("span", { className: "formula-input", children: "total sessions" })] })),
1043
- },
1044
- [EMetricKey.CART_ADDITION]: {
1045
- title: 'Sessions with cart additions',
1046
- content: 'Sessions in your online store in which a visitor added item to the cart',
1047
- },
1048
- [EMetricKey.VISITOR_ITEMS]: {
1049
- title: 'Sessions by visitor type',
1050
- content: '<p>Numbers of new and returning visitors</p>',
1051
- contentList: [
1052
- 'New visitor: who accesses your store for the first time after GemX installation',
1053
- 'Returning visitor: who comes back to your store after GemX installation',
1054
- ],
1055
- },
1056
- [EMetricKey.DEVICE_ITEMS]: {
1057
- title: 'Sessions by device type',
1058
- content: `Sessions in your online store by the visitor's device type`,
1059
- },
1060
- [EMetricKey.TRAFFIC_SOURCE_ITEMS]: {
1061
- title: 'Sessions by traffic source',
1062
- content: 'Sessions on your page by where visitors come from',
1063
- },
1064
- });
1065
-
1066
- var EAnalyticMode;
1067
- (function (EAnalyticMode) {
1068
- EAnalyticMode["ALL_SESSION"] = "ALL_SESSION";
1069
- EAnalyticMode["FIRST_SESSION"] = "FIRST_SESSION";
1070
- EAnalyticMode["PAGE_ONLY"] = "PAGE_ONLY";
1071
- })(EAnalyticMode || (EAnalyticMode = {}));
1072
-
1073
- var EVisitorType;
1074
- (function (EVisitorType) {
1075
- EVisitorType["NEW"] = "new";
1076
- EVisitorType["RETURNING"] = "returning";
1077
- })(EVisitorType || (EVisitorType = {}));
1078
- var EDeviceType;
1079
- (function (EDeviceType) {
1080
- EDeviceType["DESKTOP"] = "desktop";
1081
- EDeviceType["MOBILE"] = "mobile";
1082
- EDeviceType["TABLET"] = "tablet";
1083
- })(EDeviceType || (EDeviceType = {}));
1084
- var ETrafficSourceType;
1085
- (function (ETrafficSourceType) {
1086
- ETrafficSourceType["DIRECT"] = "direct";
1087
- ETrafficSourceType["EMAIL"] = "email";
1088
- ETrafficSourceType["REFERRAL"] = "referral";
1089
- ETrafficSourceType["ORGANIC_SOCIAL"] = "organic-social";
1090
- ETrafficSourceType["ORGANIC_SEARCH"] = "organic-search";
1091
- ETrafficSourceType["PAID_SOCIAL"] = "paid-social";
1092
- ETrafficSourceType["PAID_SEARCH"] = "paid-search";
1093
- ETrafficSourceType["SMS"] = "sms";
1094
- })(ETrafficSourceType || (ETrafficSourceType = {}));
1095
-
1096
- [
1097
- { value: EVisitorType.NEW, label: 'New' },
1098
- { value: EVisitorType.RETURNING, label: 'Returning' },
1099
- ];
1100
- [
1101
- { value: EDeviceType.DESKTOP, label: 'Desktop' },
1102
- { value: EDeviceType.TABLET, label: 'Tablet' },
1103
- { value: EDeviceType.MOBILE, label: 'Mobile' },
1104
- ];
1105
- [
1106
- { value: ETrafficSourceType.DIRECT, label: 'Direct' },
1107
- { value: ETrafficSourceType.EMAIL, label: 'Email' },
1108
- { value: ETrafficSourceType.REFERRAL, label: 'Referral' },
1109
- { value: ETrafficSourceType.ORGANIC_SOCIAL, label: 'Organic social' },
1110
- { value: ETrafficSourceType.ORGANIC_SEARCH, label: 'Organic search' },
1111
- { value: ETrafficSourceType.PAID_SOCIAL, label: 'Paid social' },
1112
- { value: ETrafficSourceType.PAID_SEARCH, label: 'Paid search' },
1113
- { value: ETrafficSourceType.SMS, label: 'SMS' },
1114
- ];
1115
-
1116
- create((set) => ({
1117
- currencyRates: null,
1118
- setCurrencyRates: (rates) => set({ currencyRates: rates }),
1119
- }));
1120
-
1121
- const ConvertMoneyContext = createContext({
1122
- getTextPrice: (price) => {
1123
- if (typeof price === 'string')
1124
- return price;
1125
- return `${price ?? 0}`;
1126
- },
1127
- });
1128
- const useConvertMoneyContext = () => useContext(ConvertMoneyContext);
1129
-
1130
- const useAnalyticData = ({ getTextPrice: getTextPriceParam, } = {}) => {
1131
- const { getTextPrice: getTextPriceCtx } = useConvertMoneyContext();
1132
- const getTextPrice = getTextPriceParam ?? getTextPriceCtx;
990
+ const useAnalyticData = (getTextPrice) => {
1133
991
  const formatData = ({ value, formatter, name }) => {
1134
992
  return formatAnalyticData({ value, formatter, getTextPrice, name });
1135
993
  };
@@ -1185,4 +1043,4 @@ const useGemXQlPagination = ({ resetKey, itemsPerPage, }) => {
1185
1043
  return { currentPage: effectivePage, offset, buildPagination };
1186
1044
  };
1187
1045
 
1188
- export { CLAUSE_KEYWORDS, CLAUSE_KEYWORD_BOUNDARY, COMPARE_PREFIX, COMPARE_SUFFIX, COMPARE_TOTALS_SUFFIX, ColumnSelectFragmentDoc, DATE_QUERY_FORMAT, DEFAULT_QUERY_LIMIT, EAnalyticColumnKey, EAnalyticDataType, EAnalyticSource, EComparisonOperator, EFilterField, EGroupOperator, EGroupWithClause, EOperatorField, EOrderDirectionType, EPageDimension, EPageField, EPageMetric, ERowReaderMode, ETimeDimension, GPaginationDirection, GemXqlResultSelectFragmentDoc, GemxQlDocument, NONE_VALUE, OPERATOR_IS, OPERATOR_IS_ONE_OF, PLACEHOLDER_VALUE, ROW_READER_MODE_CONFIG, TOTALS_SUFFIX, TableDataSelectFragmentDoc, build$a as buildConditionQuery, buildExtraCondition, buildExtraConditions, build$9 as buildFromQuery, buildGemXQlQuery, build$8 as buildGroupQuery, build$7 as buildLimitQuery, build$6 as buildModeQuery, build$5 as buildOffsetQuery, build$4 as buildOrderByQuery, build$3 as buildShowQuery, build$2 as buildTimeQuery, build$1 as buildTimeSeriesQuery, build as buildTimezoneQuery, buildVersionIdCondition, createNumericRowReader, extractColumnTypes, extractQueryColumns, extractQueryRows, filterConfigs, formatAnalyticData, formatAnalyticDate, generateFilterConditions, getComparisonKey, getComparisonTotalsKey, getFirstMetricInOrderBy, getTimeDimensionByDate, getTotalsKey, hasMetricData, isValidQueryInput, parseBreakdownItems, parse$b as parseConditionQuery, parse$a as parseFromQuery, parse as parseGemXQlQuery, parse$9 as parseGroupQuery, parseJsonArray, parseJsonObject, parse$8 as parseLimitQuery, parse$7 as parseModeQuery, parse$6 as parseOffsetQuery, parse$5 as parseOrderByQuery, parsePageItems, parse$4 as parseShowQuery, parse$3 as parseTimeQuery, parse$2 as parseTimeSeriesQuery, parse$1 as parseTimezoneQuery, readNumeric, useAnalyticData, useCustomGemXQlQuery, useGemXQlPagination, useGemxQlNamedQuery };
1046
+ export { AnalyticInterval, CLAUSE_KEYWORDS, CLAUSE_KEYWORD_BOUNDARY, COMPARE_PREFIX, COMPARE_SUFFIX, COMPARE_TOTALS_SUFFIX, ColumnSelectFragmentDoc, DATE_QUERY_FORMAT, DEFAULT_QUERY_LIMIT, EAnalyticColumnKey, EAnalyticDataType, EAnalyticMode, EAnalyticSource, EComparisonOperator, EDeviceType, EFilterField, EGroupOperator, EGroupWithClause, EOperatorField, EOrderDirectionType, EPageDimension, EPageField, EPageMetric, ERowReaderMode, ETimeDimension, ETrafficSourceType, EVisitorType, GPaginationDirection, GemXqlResultSelectFragmentDoc, GemxQlDocument, NONE_VALUE, OPERATOR_IS, OPERATOR_IS_ONE_OF, PLACEHOLDER_VALUE, ROW_READER_MODE_CONFIG, TOTALS_SUFFIX, TableDataSelectFragmentDoc, build$a as buildConditionQuery, buildExtraCondition, buildExtraConditions, build$9 as buildFromQuery, buildGemXQlQuery, build$8 as buildGroupQuery, build$7 as buildLimitQuery, build$6 as buildModeQuery, build$5 as buildOffsetQuery, build$4 as buildOrderByQuery, build$3 as buildShowQuery, build$2 as buildTimeQuery, build$1 as buildTimeSeriesQuery, build as buildTimezoneQuery, buildVersionIdCondition, convertDateToTz, createNumericRowReader, dayjsTz, extractColumnTypes, extractQueryColumns, extractQueryRows, filterConfigs, formatAnalyticData, formatAnalyticDate, generateFilterConditions, getComparisonKey, getComparisonTotalsKey, getFirstMetricInOrderBy, getFormattedByInterval, getInitialTimezone, getTimeDimensionByDate, getTimeDurationLabel, getTotalsKey, hasMetricData, isValidQueryInput, numberWithCommas, parseBreakdownItems, parse$b as parseConditionQuery, parse$a as parseFromQuery, parse as parseGemXQlQuery, parse$9 as parseGroupQuery, parseJsonArray, parseJsonObject, parse$8 as parseLimitQuery, parse$7 as parseModeQuery, parse$6 as parseOffsetQuery, parse$5 as parseOrderByQuery, parsePageItems, parse$4 as parseShowQuery, parse$3 as parseTimeQuery, parse$2 as parseTimeSeriesQuery, parse$1 as parseTimezoneQuery, readNumeric, setTz, useAnalyticData, useCustomGemXQlQuery, useGemXQlPagination, useGemxQlNamedQuery };
@@ -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 { useToggle } from './useToggle';
6
- export { useWindowSize } from './publish/useWindowSize';
4
+ export { useWindowSize } from './useWindowSize';
@@ -1,6 +1,4 @@
1
1
  export * from './components';
2
2
  export * from './constants';
3
- export * from './hooks/publish';
4
- export * from './providers';
5
- export * from './stores';
6
- export * from './utils/dayjs';
3
+ export * from './types';
4
+ export { EAnalyticColumnKey, EDeviceType, ETrafficSourceType, EVisitorType } from './core/gemxql';