@levi-gemcommerce/analytics 1.0.0-dev.11 → 1.0.0-dev.13

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 (85) hide show
  1. package/dist/esm/components/GTimePicker/GTimePicker.d.ts +17 -0
  2. package/dist/esm/components/GTimePicker/components/BaseTimePicker.d.ts +10 -0
  3. package/dist/esm/components/GTimePicker/components/CompareTimePicker.d.ts +5 -0
  4. package/dist/esm/components/GTimePicker/components/DateTimeFilterAddition.d.ts +2 -0
  5. package/dist/esm/components/GTimePicker/components/DateTimeFilterInputs.d.ts +9 -0
  6. package/dist/esm/components/GTimePicker/components/DateTimeFilters.d.ts +15 -0
  7. package/dist/esm/components/GTimePicker/components/MainTimePicker.d.ts +3 -0
  8. package/dist/esm/components/GTimePicker/components/index.d.ts +2 -0
  9. package/dist/esm/components/GTimePicker/constants/compareDateTimePicker.d.ts +12 -0
  10. package/dist/esm/components/GTimePicker/constants/datePicker.d.ts +14 -0
  11. package/dist/esm/components/GTimePicker/constants/index.d.ts +2 -0
  12. package/dist/esm/components/GTimePicker/constants/mainDataTimePicker.d.ts +14 -0
  13. package/dist/esm/components/GTimePicker/contexts/DateTimePickerProvider.d.ts +15 -0
  14. package/dist/esm/components/GTimePicker/contexts/index.d.ts +1 -0
  15. package/dist/esm/components/GTimePicker/helpers/date-range-info.d.ts +16 -0
  16. package/dist/esm/components/GTimePicker/helpers/index.d.ts +4 -0
  17. package/dist/esm/components/GTimePicker/helpers/parse-date.d.ts +24 -0
  18. package/dist/esm/components/GTimePicker/helpers/time-picker.d.ts +76 -0
  19. package/dist/esm/components/GTimePicker/helpers/version.d.ts +2 -0
  20. package/dist/esm/components/GTimePicker/hooks/index.d.ts +3 -0
  21. package/dist/esm/components/GTimePicker/hooks/useCompareDateTimePicker.d.ts +25 -0
  22. package/dist/esm/components/GTimePicker/hooks/useDateTimeFilter.d.ts +18 -0
  23. package/dist/esm/components/GTimePicker/hooks/useDateTimePicker.d.ts +30 -0
  24. package/dist/esm/components/GTimePicker/hooks/useVersionDateTimeFilters.d.ts +9 -0
  25. package/dist/esm/components/GTimePicker/index.d.ts +7 -0
  26. package/dist/esm/components/GTimePicker/types/index.d.ts +38 -0
  27. package/dist/esm/components/index.d.ts +1 -0
  28. package/dist/esm/core/gemxql/helpers/getTimeDimension.d.ts +1 -1
  29. package/dist/esm/core/gemxql/index.d.ts +0 -2
  30. package/dist/esm/core/gemxql/types/date-filter.d.ts +1 -1
  31. package/dist/esm/gemxql.js +38 -48
  32. package/dist/esm/gemxql.mjs +38 -48
  33. package/dist/esm/index.d.ts +1 -4
  34. package/dist/esm/index.js +1377 -1414
  35. package/dist/esm/index.mjs +1377 -1414
  36. package/dist/esm/shared/charts/components/GPolarisViz/utilities/getFontSize.d.ts +1 -1
  37. package/dist/esm/shared/components/GTimePicker/GTimePicker.d.ts +1 -1
  38. package/dist/esm/shared/components/GTimePicker/helpers/parse-date.d.ts +2 -2
  39. package/dist/esm/shared/components/GTimePicker/hooks/useCompareDateTimePicker.d.ts +1 -2
  40. package/dist/esm/shared/components/GTimePicker/types/index.d.ts +1 -1
  41. package/dist/esm/shared/components/index.d.ts +0 -1
  42. package/dist/esm/utils/dayjs.d.ts +10 -0
  43. package/dist/esm/utils/index.d.ts +1 -0
  44. package/dist/umd/esm/components/GTimePicker/GTimePicker.d.ts +17 -0
  45. package/dist/umd/esm/components/GTimePicker/components/BaseTimePicker.d.ts +10 -0
  46. package/dist/umd/esm/components/GTimePicker/components/CompareTimePicker.d.ts +5 -0
  47. package/dist/umd/esm/components/GTimePicker/components/DateTimeFilterAddition.d.ts +2 -0
  48. package/dist/umd/esm/components/GTimePicker/components/DateTimeFilterInputs.d.ts +9 -0
  49. package/dist/umd/esm/components/GTimePicker/components/DateTimeFilters.d.ts +15 -0
  50. package/dist/umd/esm/components/GTimePicker/components/MainTimePicker.d.ts +3 -0
  51. package/dist/umd/esm/components/GTimePicker/components/index.d.ts +2 -0
  52. package/dist/umd/esm/components/GTimePicker/constants/compareDateTimePicker.d.ts +12 -0
  53. package/dist/umd/esm/components/GTimePicker/constants/datePicker.d.ts +14 -0
  54. package/dist/umd/esm/components/GTimePicker/constants/index.d.ts +2 -0
  55. package/dist/umd/esm/components/GTimePicker/constants/mainDataTimePicker.d.ts +14 -0
  56. package/dist/umd/esm/components/GTimePicker/contexts/DateTimePickerProvider.d.ts +15 -0
  57. package/dist/umd/esm/components/GTimePicker/contexts/index.d.ts +1 -0
  58. package/dist/umd/esm/components/GTimePicker/helpers/date-range-info.d.ts +16 -0
  59. package/dist/umd/esm/components/GTimePicker/helpers/index.d.ts +4 -0
  60. package/dist/umd/esm/components/GTimePicker/helpers/parse-date.d.ts +24 -0
  61. package/dist/umd/esm/components/GTimePicker/helpers/time-picker.d.ts +76 -0
  62. package/dist/umd/esm/components/GTimePicker/helpers/version.d.ts +2 -0
  63. package/dist/umd/esm/components/GTimePicker/hooks/index.d.ts +3 -0
  64. package/dist/umd/esm/components/GTimePicker/hooks/useCompareDateTimePicker.d.ts +25 -0
  65. package/dist/umd/esm/components/GTimePicker/hooks/useDateTimeFilter.d.ts +18 -0
  66. package/dist/umd/esm/components/GTimePicker/hooks/useDateTimePicker.d.ts +30 -0
  67. package/dist/umd/esm/components/GTimePicker/hooks/useVersionDateTimeFilters.d.ts +9 -0
  68. package/dist/umd/esm/components/GTimePicker/index.d.ts +7 -0
  69. package/dist/umd/esm/components/GTimePicker/types/index.d.ts +38 -0
  70. package/dist/umd/esm/components/index.d.ts +1 -0
  71. package/dist/umd/esm/core/gemxql/helpers/getTimeDimension.d.ts +1 -1
  72. package/dist/umd/esm/core/gemxql/index.d.ts +0 -2
  73. package/dist/umd/esm/core/gemxql/types/date-filter.d.ts +1 -1
  74. package/dist/umd/esm/index.d.ts +1 -4
  75. package/dist/umd/esm/shared/charts/components/GPolarisViz/utilities/getFontSize.d.ts +1 -1
  76. package/dist/umd/esm/shared/components/GTimePicker/GTimePicker.d.ts +1 -1
  77. package/dist/umd/esm/shared/components/GTimePicker/helpers/parse-date.d.ts +2 -2
  78. package/dist/umd/esm/shared/components/GTimePicker/hooks/useCompareDateTimePicker.d.ts +1 -2
  79. package/dist/umd/esm/shared/components/GTimePicker/types/index.d.ts +1 -1
  80. package/dist/umd/esm/shared/components/index.d.ts +0 -1
  81. package/dist/umd/esm/utils/dayjs.d.ts +10 -0
  82. package/dist/umd/esm/utils/index.d.ts +1 -0
  83. package/dist/umd/gemxql.js +1 -1
  84. package/dist/umd/index.js +1 -1
  85. package/package.json +1 -1
@@ -0,0 +1,17 @@
1
+ import type { GButtonProps } from '@/shared/components/GButton';
2
+ import type { ButtonProps, PopoverProps } from '@shopify/polaris';
3
+ import type { IDateTimeFilterAddition } from './components';
4
+ import type { DateTimeFilter } from './types';
5
+ export interface GTimePickerProps {
6
+ rangeAddition?: IDateTimeFilterAddition;
7
+ popoverProps?: Partial<PopoverProps>;
8
+ isCompare?: boolean;
9
+ activator?: (props: {
10
+ onClick: () => void;
11
+ value?: string;
12
+ }) => React.ReactElement;
13
+ onApply?: (value: DateTimeFilter) => void;
14
+ activatorProps?: Pick<ButtonProps, 'disabled' | 'loading' | 'size'>;
15
+ actionProps?: GButtonProps;
16
+ }
17
+ export declare const GTimePicker: React.FC<GTimePickerProps>;
@@ -0,0 +1,10 @@
1
+ import type { GTimePickerProps } from '../GTimePicker';
2
+ import type { IDateTimeFilterAddition } from '../components';
3
+ import type { DateTimeFilter } from '../types';
4
+ export interface BaseTimePickerProps extends Omit<GTimePickerProps, 'isCompare'> {
5
+ dateTimeFilters?: DateTimeFilter[];
6
+ rangeAddition?: IDateTimeFilterAddition;
7
+ isCompare?: boolean;
8
+ buttonValue?: string;
9
+ }
10
+ export declare const BaseTimePicker: React.FC<BaseTimePickerProps>;
@@ -0,0 +1,5 @@
1
+ import type { BaseTimePickerProps } from './BaseTimePicker';
2
+ interface CompareTimePickerProps extends Pick<BaseTimePickerProps, 'rangeAddition' | 'popoverProps'> {
3
+ }
4
+ export declare const CompareTimePicker: React.FC<CompareTimePickerProps>;
5
+ export {};
@@ -0,0 +1,2 @@
1
+ import type { DateTimeFiltersProps } from './DateTimeFilters';
2
+ export declare function DateTimeFilterAddition(props: DateTimeFiltersProps): import("react/jsx-runtime").JSX.Element | undefined;
@@ -0,0 +1,9 @@
1
+ import type { IDateRangeState } from '../hooks';
2
+ import type { DateTimeFilter } from '../types';
3
+ interface DateTimeFilterInputsProps {
4
+ onBlur?: () => void;
5
+ dateRange: DateTimeFilter;
6
+ setDateTimePicked: (value: IDateRangeState) => void;
7
+ }
8
+ export declare function DateTimeFilterInputs({ onBlur, dateRange, setDateTimePicked }: DateTimeFilterInputsProps): import("react/jsx-runtime").JSX.Element;
9
+ export {};
@@ -0,0 +1,15 @@
1
+ import type { IDateRangeState } from '../hooks';
2
+ import type { DateTimeFilter } from '../types';
3
+ export interface IDateTimeFilterAddition {
4
+ title: string;
5
+ initialPicked?: DateTimeFilter;
6
+ rangers: DateTimeFilter[];
7
+ }
8
+ export interface DateTimeFiltersProps {
9
+ setDateTimePicked: (value: IDateRangeState) => void;
10
+ dateTimePicked: DateTimeFilter;
11
+ allRanges: DateTimeFilter[];
12
+ rangeAddition?: IDateTimeFilterAddition;
13
+ isCompare?: boolean;
14
+ }
15
+ export declare function DateTimeFilters(props: DateTimeFiltersProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import type { GTimePickerProps } from '../GTimePicker';
2
+ export type MainTimePickerProps = Omit<GTimePickerProps, 'isCompare'>;
3
+ export declare const MainTimePicker: React.FC<MainTimePickerProps>;
@@ -0,0 +1,2 @@
1
+ export * from './DateTimeFilterInputs';
2
+ export * from './DateTimeFilters';
@@ -0,0 +1,12 @@
1
+ import type { DateTimeFilter, IGetCompareDateByAlias } from '../types';
2
+ export declare enum CompareDateTimePickerAlias {
3
+ NO_COMPARISON = "noComparison",
4
+ PREVIOUS_PERIOD = "previousPeriod",
5
+ PREVIOUS_WEEK = "previousWeek",
6
+ PREVIOUS_MONTH = "previousMonth",
7
+ PREVIOUS_QUARTER = "previousQuarter",
8
+ PREVIOUS_YEAR = "previousYear"
9
+ }
10
+ export declare const PREVIOUS_PERIOD_FILTER: DateTimeFilter;
11
+ export declare const DATE_TIME_COMPARISON_FILTERS: DateTimeFilter[];
12
+ export declare const COMPARE_DATE_TIME_FILTERS_MAP: Record<CompareDateTimePickerAlias, IGetCompareDateByAlias>;
@@ -0,0 +1,14 @@
1
+ export declare const DATE_FORMAT: {
2
+ YMD: string;
3
+ MONTH_YEAR: string;
4
+ FULL: string;
5
+ FULL_WITH_TIME: string;
6
+ SHORT: string;
7
+ SHORT_NO_PAD: string;
8
+ SHORT_WITH_TIME: string;
9
+ MONTH_DAY: string;
10
+ DAY_YEAR: string;
11
+ TIME: string;
12
+ MONTH_DAY_WITH_TIME: string;
13
+ YEAR: string;
14
+ };
@@ -0,0 +1,2 @@
1
+ export * from './compareDateTimePicker';
2
+ export * from './mainDataTimePicker';
@@ -0,0 +1,14 @@
1
+ import type { IDateTimeFilterMapping } from '../types';
2
+ export declare enum MainDateTimePickerAlias {
3
+ TODAY = "today",
4
+ YESTERDAY = "yesterday",
5
+ LAST_7_DAYS = "last7days",
6
+ LAST_30_DAYS = "last30days",
7
+ LAST_90_DAYS = "last90days",
8
+ LAST_365_DAYS = "last365days",
9
+ LAST_MONTH = "lastMonth",
10
+ LAST_12_MONTHS = "last12Months",
11
+ LAST_YEAR = "lastYear"
12
+ }
13
+ export declare function getDateTimeFilterMapping(): Record<MainDateTimePickerAlias, IDateTimeFilterMapping>;
14
+ export declare function getDateTimeFilterByAlias(alias: MainDateTimePickerAlias): IDateTimeFilterMapping;
@@ -0,0 +1,15 @@
1
+ import type { DateTimeFilter } from '../types';
2
+ export interface ContextType {
3
+ dateTimePicked: DateTimeFilter;
4
+ compareDateTimePicked: DateTimeFilter;
5
+ setDateTimePicked: (value: DateTimeFilter) => void;
6
+ setCompareDateTimePicked: (value: DateTimeFilter) => void;
7
+ resetDateVersion: () => void;
8
+ }
9
+ export declare const DateTimePickerContext: import("react").Context<ContextType>;
10
+ export declare const DateTimePickerProvider: ({ children, initDate, initDateCompare, }: {
11
+ children: React.ReactNode;
12
+ initDate?: DateTimeFilter;
13
+ initDateCompare?: DateTimeFilter;
14
+ }) => import("react/jsx-runtime").JSX.Element;
15
+ export declare const useDateTimePickerContext: () => ContextType;
@@ -0,0 +1 @@
1
+ export * from './DateTimePickerProvider';
@@ -0,0 +1,16 @@
1
+ import type { DateTimeFilterBase } from '../types';
2
+ interface IDateRangeLabelParams {
3
+ since: number | string;
4
+ until: number | string;
5
+ isShowNow?: boolean;
6
+ }
7
+ export declare function getDateRangeTitle(since: number | string, until: number | string): string;
8
+ /**
9
+ * Resolves a { title, alias } pair from a since/until date range.
10
+ * Matches against known presets (today, last 7 days, …); falls back to
11
+ * a formatted custom range with alias "custom".
12
+ */
13
+ export declare function getDateTimeFilterBase(since: number | string, until: number | string): DateTimeFilterBase;
14
+ export declare function getVersionDateRangeTitle(data: IDateRangeLabelParams): string;
15
+ export declare const getVersionDateDescription: ({ since, until, isShowNow }: IDateRangeLabelParams) => string | undefined;
16
+ export {};
@@ -0,0 +1,4 @@
1
+ export * from './date-range-info';
2
+ export * from './parse-date';
3
+ export * from './version';
4
+ export * from './time-picker';
@@ -0,0 +1,24 @@
1
+ import type { Dayjs } from '@/utils';
2
+ import { dayjs } from '@/utils';
3
+ export declare function parseYearMonthDayDateString(input?: dayjs.ConfigType): number;
4
+ export declare function isDate(date: number | string | Date): boolean;
5
+ export declare function isValidYearMonthDayDateString(date: string): boolean;
6
+ export declare function isValidDate(date: string): boolean;
7
+ export declare function formatDate(timestamp: number | string, type?: 'YMD' | 'MY' | 'FULL' | 'FULL_WITH_TIME'): string;
8
+ export declare function formatTime(timestamp: number | string): string;
9
+ export declare function isSameDayTimestamp(since: number | string, until: number | string): boolean;
10
+ export declare function formatTimeRange(data: {
11
+ since: number | string;
12
+ until: number | string;
13
+ format?: string;
14
+ showNow?: boolean;
15
+ }): string;
16
+ export declare function formatDateTimeRange(data: {
17
+ since: number | string;
18
+ until: number | string;
19
+ isShowNow?: boolean;
20
+ }): string;
21
+ export declare const formatDayjs: (date: Dayjs, isEndDay?: boolean, formatTemplate?: string) => string;
22
+ export declare const getEndOfDayBy: (value?: string | Dayjs, formatTemplate?: string) => string;
23
+ export declare const isMidnight: (date: Dayjs) => boolean;
24
+ export declare const formatMs: (ms: number) => string;
@@ -0,0 +1,76 @@
1
+ import type { IGetCompareDateByAlias } from '../types';
2
+ import type { Dayjs } from 'dayjs';
3
+ export declare const getNoComparison: IGetCompareDateByAlias;
4
+ export declare const getPreviousPeriod: IGetCompareDateByAlias;
5
+ export declare const getPreviousWeek: (value: {
6
+ since: number | string;
7
+ until: number | string;
8
+ }) => {
9
+ since: number;
10
+ until: number;
11
+ };
12
+ export declare const getPreviousQuarter: (value: {
13
+ since: number | string;
14
+ until: number | string;
15
+ }) => {
16
+ since: number;
17
+ until: number;
18
+ };
19
+ export declare const getPreviousMonth: (value: {
20
+ since: number | string;
21
+ until: number | string;
22
+ }) => {
23
+ since: number;
24
+ until: number;
25
+ };
26
+ export declare const getPreviousYear: (value: {
27
+ since: number | string;
28
+ until: number | string;
29
+ }) => {
30
+ since: number;
31
+ until: number;
32
+ };
33
+ export declare const createLastDaysRange: (subtractAmount: number) => (date: Dayjs) => {
34
+ since: number;
35
+ until: number;
36
+ };
37
+ export declare const getToday: (currentDate: Dayjs) => {
38
+ since: number;
39
+ until: number;
40
+ };
41
+ export declare const getYesterday: (date: Dayjs) => {
42
+ since: number;
43
+ until: number;
44
+ };
45
+ export declare const getLast7Days: (date: Dayjs) => {
46
+ since: number;
47
+ until: number;
48
+ };
49
+ export declare const getLast30Days: (date: Dayjs) => {
50
+ since: number;
51
+ until: number;
52
+ };
53
+ export declare const getLast90Days: (date: Dayjs) => {
54
+ since: number;
55
+ until: number;
56
+ };
57
+ export declare const getLast365Days: (date: Dayjs) => {
58
+ since: number;
59
+ until: number;
60
+ };
61
+ export declare function getLastMonth(date: Dayjs): {
62
+ since: number;
63
+ until: number;
64
+ };
65
+ export declare function getLast12Months(date: Dayjs): {
66
+ since: number;
67
+ until: number;
68
+ };
69
+ export declare function getLastYear(date: Dayjs): {
70
+ since: number;
71
+ until: number;
72
+ };
73
+ export declare const getMonthAndYearByDateFilter: (month: number, year: number, date: Date) => {
74
+ month: number;
75
+ year: number;
76
+ };
@@ -0,0 +1,2 @@
1
+ import type { DateTimeFilter, IBaseCampaignVersion } from '../types';
2
+ export declare const convertToDateTimeFilters: (versions: IBaseCampaignVersion[]) => DateTimeFilter[];
@@ -0,0 +1,3 @@
1
+ export * from './useDateTimePicker';
2
+ export * from './useDateTimeFilter';
3
+ export * from './useVersionDateTimeFilters';
@@ -0,0 +1,25 @@
1
+ import type { IDateTimePickerProps } from './useDateTimePicker';
2
+ type ICompareDateTimePickerProps = IDateTimePickerProps;
3
+ export declare const useCompareDateTimePicker: ({ ranges, onApply }: ICompareDateTimePickerProps) => {
4
+ month: number;
5
+ year: number;
6
+ setDate: import("react").Dispatch<import("react").SetStateAction<{
7
+ month: number;
8
+ year: number;
9
+ }>>;
10
+ dateRange: import("..").DateTimeFilter;
11
+ apply: () => void;
12
+ cancel: () => void;
13
+ compareDateTimePicked: import("..").DateTimeFilter;
14
+ onChange: ({ end }: {
15
+ start: Date;
16
+ end: Date;
17
+ }) => void;
18
+ onMonthChange: (month: number, year: number) => void;
19
+ onCalendarChange: ({ start, end, alias }: {
20
+ start: Date;
21
+ end: Date;
22
+ alias?: string;
23
+ }) => void;
24
+ };
25
+ export {};
@@ -0,0 +1,18 @@
1
+ import type { DateTimeFilter } from '../types';
2
+ export declare const useDateTimeFilter: () => {
3
+ DATE_TIME_FILTERS: DateTimeFilter[];
4
+ LAST_7_DAYS_DATE_RANGE: {
5
+ since: string | number;
6
+ until: string | number;
7
+ getDateRange: (date: import("dayjs").Dayjs) => import("../types").IDateTimeFilterValue;
8
+ title: string;
9
+ alias: string;
10
+ };
11
+ LAST_30_DAYS_DATE_RANGE: {
12
+ since: string | number;
13
+ until: string | number;
14
+ getDateRange: (date: import("dayjs").Dayjs) => import("../types").IDateTimeFilterValue;
15
+ title: string;
16
+ alias: string;
17
+ };
18
+ };
@@ -0,0 +1,30 @@
1
+ import type { BaseTimePickerProps } from '../components/BaseTimePicker';
2
+ import type { DateTimeFilter } from '../types';
3
+ export interface IDateRangeState {
4
+ alias?: DateTimeFilter['alias'];
5
+ start: Date;
6
+ end: Date;
7
+ }
8
+ export interface IDateTimePickerProps {
9
+ ranges?: DateTimeFilter[];
10
+ initialPicked?: DateTimeFilter;
11
+ onApply?: BaseTimePickerProps['onApply'];
12
+ }
13
+ export declare const useDateTimePicker: ({ ranges, initialPicked, onApply }: IDateTimePickerProps) => {
14
+ month: number;
15
+ year: number;
16
+ setDate: import("react").Dispatch<import("react").SetStateAction<{
17
+ month: number;
18
+ year: number;
19
+ }>>;
20
+ dateRange: DateTimeFilter;
21
+ apply: () => void;
22
+ cancel: () => void;
23
+ dateTimePicked: DateTimeFilter;
24
+ onChange: ({ end }: {
25
+ start: Date;
26
+ end: Date;
27
+ }) => void;
28
+ onMonthChange: (month: number, year: number) => void;
29
+ onCalendarChange: (value: IDateRangeState) => void;
30
+ };
@@ -0,0 +1,9 @@
1
+ import type { IDateTimeFilterAddition } from '../components';
2
+ import type { IBaseCampaignVersion } from '../types';
3
+ type MaybeVersion = IBaseCampaignVersion | null | undefined;
4
+ type IVersionDateTimeFiltersProps = MaybeVersion[] | null | undefined;
5
+ interface IVersionDateTimeFiltersReturn {
6
+ rangeAddition: IDateTimeFilterAddition;
7
+ }
8
+ export declare const useVersionDateTimeFilters: (versions: IVersionDateTimeFiltersProps) => IVersionDateTimeFiltersReturn;
9
+ export {};
@@ -0,0 +1,7 @@
1
+ export * from './hooks';
2
+ export * from './contexts';
3
+ export * from './types';
4
+ export * from './constants';
5
+ export * from './components';
6
+ export * from './helpers';
7
+ export * from './GTimePicker';
@@ -0,0 +1,38 @@
1
+ import type { Dayjs } from '@/utils';
2
+ export interface DateTimeFilterBase {
3
+ title: string;
4
+ alias: string;
5
+ }
6
+ export interface IDateTimeFilterValue {
7
+ since: string | number;
8
+ until: string | number;
9
+ }
10
+ export interface DateTimeFilterVersionMeta {
11
+ versionId?: string;
12
+ isVersion?: boolean;
13
+ isCurrentVersion?: boolean;
14
+ description?: string;
15
+ }
16
+ export interface DateTimeFilter extends DateTimeFilterBase, IDateTimeFilterValue, DateTimeFilterVersionMeta {
17
+ }
18
+ export interface IDateTimeFilterMapping extends DateTimeFilterBase {
19
+ getDateRange: (date: Dayjs) => IDateTimeFilterValue;
20
+ }
21
+ export interface AnalyticDateFilter {
22
+ versionId?: string;
23
+ startDate: Dayjs;
24
+ endDate: Dayjs;
25
+ alias: string;
26
+ since?: string | number;
27
+ until?: string | number;
28
+ title?: string;
29
+ }
30
+ export type IGetCompareDateByAlias = (value: IDateTimeFilterValue & {
31
+ alias?: string;
32
+ }) => IDateTimeFilterValue;
33
+ export interface IBaseCampaignVersion {
34
+ id: string;
35
+ version: string;
36
+ startedAt?: string | null;
37
+ completedAt?: string | null;
38
+ }
@@ -3,3 +3,4 @@ export * from './MetricDonutChartCard';
3
3
  export * from './SingleMetricChartCard';
4
4
  export * from './AnalyticMode';
5
5
  export * from './CurrencySelector';
6
+ export * from './GTimePicker';
@@ -1,3 +1,3 @@
1
- import type { Dayjs } from '../utils/dayjs';
1
+ import type { Dayjs } from '@/utils';
2
2
  import { ETimeDimension } from '../types';
3
3
  export declare const getTimeDimensionByDate: (startDate: Dayjs, endDate: Dayjs) => ETimeDimension;
@@ -6,5 +6,3 @@ export * from './helpers';
6
6
  export * from './hooks';
7
7
  export * from './types';
8
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,4 +1,4 @@
1
- import type { Dayjs } from '../utils/dayjs';
1
+ import type { Dayjs } from '@/utils';
2
2
  export interface AnalyticDateFilter {
3
3
  versionId?: string;
4
4
  startDate: Dayjs | string;
@@ -561,28 +561,55 @@ const parse$4 = (query) => {
561
561
  .filter(Boolean);
562
562
  };
563
563
 
564
+ const TRIM_DECIMAL_ZEROS_REGEX = /\.0+$/;
565
+ const DEFAULT_DECIMALS = 2;
566
+ const trimDecimalZeros = (number) => {
567
+ return `${number}`.replace(TRIM_DECIMAL_ZEROS_REGEX, '');
568
+ };
569
+ const cleanDecimal = (number, decimals = DEFAULT_DECIMALS) => {
570
+ return trimDecimalZeros(number.toFixed(decimals));
571
+ };
572
+
573
+ /**
574
+ * Utility function to calculate percentage and format it.
575
+ * @param part - The part value.
576
+ * @param total - The total value.
577
+ * @param decimals - The number of decimal places to format the percentage to.
578
+ * @returns The formatted percentage as a string.
579
+ */
580
+ const PERCENTAGE_THRESHOLD = 0.005;
581
+ const PERCENTAGE_THRESHOLD_STRING = '~0%';
582
+ const calcPercentage = (part, total, decimals = DEFAULT_DECIMALS) => {
583
+ if (typeof part !== 'number' || !total)
584
+ return undefined;
585
+ if (part === 0)
586
+ return 0;
587
+ const percentage = (part / total) * 100;
588
+ return parseFloat(cleanDecimal(percentage, decimals));
589
+ };
590
+ const isLessThanThreshold = (percentage) => percentage > 0 && percentage < PERCENTAGE_THRESHOLD;
591
+ const calcPercentageString = (part, total, decimals = 2) => {
592
+ const percentage = calcPercentage(part, total, decimals);
593
+ if (typeof percentage !== 'number')
594
+ return undefined;
595
+ if (isLessThanThreshold(percentage)) {
596
+ return PERCENTAGE_THRESHOLD_STRING;
597
+ }
598
+ return `${percentage}%`;
599
+ };
600
+
564
601
  dayjs.extend(utc);
565
602
  dayjs.extend(timezone);
566
603
  dayjs.extend(quarterOfYear);
567
604
  let tz = 'UTC';
568
- const DEFAULT_DATE_FORMAT = 'YYYY-MM-DD HH:mm:ss';
569
605
  function getInitialTimezone() {
570
606
  return tz;
571
607
  }
572
- function setTz(value) {
573
- tz = value;
574
- dayjs.tz.setDefault(value);
575
- }
576
608
  const dayjsTz = (date) => {
577
609
  if (!date)
578
610
  return dayjs().tz(tz);
579
611
  return dayjs(date).tz(tz);
580
612
  };
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);
585
- };
586
613
 
587
614
  const toDate = (value) => (typeof value === 'string' ? dayjsTz(value) : value);
588
615
  const isMidnight = (date) => date.hour() === 0 && date.minute() === 0;
@@ -741,43 +768,6 @@ const extractColumnTypes = (response) => {
741
768
  return columnTypes;
742
769
  };
743
770
 
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
771
  var AnalyticInterval;
782
772
  (function (AnalyticInterval) {
783
773
  AnalyticInterval["DAY"] = "DAY";
@@ -1043,4 +1033,4 @@ const useGemXQlPagination = ({ resetKey, itemsPerPage, }) => {
1043
1033
  return { currentPage: effectivePage, offset, buildPagination };
1044
1034
  };
1045
1035
 
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 };
1036
+ 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, createNumericRowReader, extractColumnTypes, extractQueryColumns, extractQueryRows, filterConfigs, formatAnalyticData, formatAnalyticDate, generateFilterConditions, getComparisonKey, getComparisonTotalsKey, getFirstMetricInOrderBy, getFormattedByInterval, 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, useAnalyticData, useCustomGemXQlQuery, useGemXQlPagination, useGemxQlNamedQuery };