@levi-gemcommerce/analytics 0.0.1-dev.8 → 1.0.0-dev.11

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 (599) hide show
  1. package/dist/esm/components/AnalyticMode/AnalyticModeSelector.d.ts +13 -0
  2. package/dist/esm/components/AnalyticMode/index.d.ts +2 -0
  3. package/dist/esm/components/CurrencySelector/CurrencySelector.d.ts +10 -0
  4. package/dist/esm/components/CurrencySelector/index.d.ts +2 -0
  5. package/dist/esm/components/index.d.ts +2 -0
  6. package/dist/esm/constants/campaign.d.ts +1 -0
  7. package/dist/esm/constants/currency.d.ts +2 -0
  8. package/dist/esm/constants/index.d.ts +2 -0
  9. package/dist/esm/core/gemxql/utils/dayjs.d.ts +2 -0
  10. package/dist/esm/gemxql.js +3 -3
  11. package/dist/esm/gemxql.mjs +3 -3
  12. package/dist/esm/hooks/index.d.ts +3 -0
  13. package/dist/esm/hooks/useEnhancedEffect.d.ts +2 -0
  14. package/dist/esm/hooks/usePopoverResizeObserver.d.ts +7 -0
  15. package/dist/esm/hooks/useToggle.d.ts +12 -0
  16. package/dist/esm/index.d.ts +1 -0
  17. package/dist/esm/index.js +1585 -34
  18. package/dist/esm/index.mjs +1585 -34
  19. package/dist/esm/shared/charts/components/ComboChart.d.ts +1 -0
  20. package/dist/esm/shared/charts/components/GBarChart.d.ts +13 -0
  21. package/dist/esm/shared/charts/components/GComboChart.d.ts +5 -0
  22. package/dist/esm/shared/charts/components/GDonutChart.d.ts +5 -0
  23. package/dist/esm/shared/charts/components/GFunnelChart/GFunnelChart.d.ts +10 -0
  24. package/dist/esm/shared/charts/components/GFunnelChart/components/FunnelChartAction.d.ts +7 -0
  25. package/dist/esm/shared/charts/components/GFunnelChart/components/FunnelChartActionIcon.d.ts +9 -0
  26. package/dist/esm/shared/charts/components/GFunnelChart/components/FunnelChartActionWrapper.d.ts +16 -0
  27. package/dist/esm/shared/charts/components/GFunnelChart/components/FunnelSelection/FunnelSelectionContent.d.ts +6 -0
  28. package/dist/esm/shared/charts/components/GFunnelChart/components/FunnelSelection/FunnelSelectionHeader.d.ts +1 -0
  29. package/dist/esm/shared/charts/components/GFunnelChart/components/FunnelSelection/FunnelSelectionItem.d.ts +9 -0
  30. package/dist/esm/shared/charts/components/GFunnelChart/components/FunnelSelection/FunnelSelectionPopover.d.ts +22 -0
  31. package/dist/esm/shared/charts/components/GFunnelChart/components/FunnelSelection/index.d.ts +1 -0
  32. package/dist/esm/shared/charts/components/GFunnelChart/components/FunnelSelection/type.d.ts +7 -0
  33. package/dist/esm/shared/charts/components/GFunnelChart/components/types.d.ts +23 -0
  34. package/dist/esm/shared/charts/components/GFunnelChart/index.d.ts +3 -0
  35. package/dist/esm/shared/charts/components/GFunnelChart/types.d.ts +11 -0
  36. package/dist/esm/shared/charts/components/GPolarisViz/components/Arc/Arc.d.ts +16 -0
  37. package/dist/esm/shared/charts/components/GPolarisViz/components/Arc/index.d.ts +1 -0
  38. package/dist/esm/shared/charts/components/GPolarisViz/components/ChartContainer/ChartContainer.d.ts +17 -0
  39. package/dist/esm/shared/charts/components/GPolarisViz/components/ChartContainer/hooks/useContainerBounds.d.ts +11 -0
  40. package/dist/esm/shared/charts/components/GPolarisViz/components/ChartContainer/index.d.ts +1 -0
  41. package/dist/esm/shared/charts/components/GPolarisViz/components/ChartElements/ChartDiv.d.ts +9 -0
  42. package/dist/esm/shared/charts/components/GPolarisViz/components/ChartElements/ChartSVG.d.ts +12 -0
  43. package/dist/esm/shared/charts/components/GPolarisViz/components/ChartElements/index.d.ts +6 -0
  44. package/dist/esm/shared/charts/components/GPolarisViz/components/ChartErrorBoundary/ChartErrorBoundary.d.ts +25 -0
  45. package/dist/esm/shared/charts/components/GPolarisViz/components/ChartErrorBoundary/index.d.ts +1 -0
  46. package/dist/esm/shared/charts/components/GPolarisViz/components/ChartErrorBoundary/utilities/checkForMismatchedData.d.ts +2 -0
  47. package/dist/esm/shared/charts/components/GPolarisViz/components/ChartSkeleton/ChartSkeleton.d.ts +31 -0
  48. package/dist/esm/shared/charts/components/GPolarisViz/components/ChartSkeleton/components/DonutSkeleton/DonutSkeleton.d.ts +7 -0
  49. package/dist/esm/shared/charts/components/GPolarisViz/components/ChartSkeleton/components/DonutSkeleton/index.d.ts +1 -0
  50. package/dist/esm/shared/charts/components/GPolarisViz/components/ChartSkeleton/components/ErrorText/ErrorText.d.ts +7 -0
  51. package/dist/esm/shared/charts/components/GPolarisViz/components/ChartSkeleton/components/ErrorText/index.d.ts +1 -0
  52. package/dist/esm/shared/charts/components/GPolarisViz/components/ChartSkeleton/components/FunnelSkeleton/FunnelSkeleton.d.ts +7 -0
  53. package/dist/esm/shared/charts/components/GPolarisViz/components/ChartSkeleton/components/FunnelSkeleton/index.d.ts +1 -0
  54. package/dist/esm/shared/charts/components/GPolarisViz/components/ChartSkeleton/components/GridSkeleton/GridSkeleton.d.ts +7 -0
  55. package/dist/esm/shared/charts/components/GPolarisViz/components/ChartSkeleton/components/GridSkeleton/index.d.ts +1 -0
  56. package/dist/esm/shared/charts/components/GPolarisViz/components/ChartSkeleton/components/Shimmer/Shimmer.d.ts +3 -0
  57. package/dist/esm/shared/charts/components/GPolarisViz/components/ChartSkeleton/components/Shimmer/index.d.ts +1 -0
  58. package/dist/esm/shared/charts/components/GPolarisViz/components/ChartSkeleton/components/SimpleBarSkeleton/SimpleBarSkeleton.d.ts +7 -0
  59. package/dist/esm/shared/charts/components/GPolarisViz/components/ChartSkeleton/components/SimpleBarSkeleton/index.d.ts +1 -0
  60. package/dist/esm/shared/charts/components/GPolarisViz/components/ChartSkeleton/components/SimpleNormalizedSkeleton/SimpleNormalizedSkeleton.d.ts +10 -0
  61. package/dist/esm/shared/charts/components/GPolarisViz/components/ChartSkeleton/components/SimpleNormalizedSkeleton/index.d.ts +1 -0
  62. package/dist/esm/shared/charts/components/GPolarisViz/components/ChartSkeleton/components/SparkSkeleton/SparkSkeleton.d.ts +7 -0
  63. package/dist/esm/shared/charts/components/GPolarisViz/components/ChartSkeleton/components/SparkSkeleton/index.d.ts +1 -0
  64. package/dist/esm/shared/charts/components/GPolarisViz/components/ChartSkeleton/components/index.d.ts +8 -0
  65. package/dist/esm/shared/charts/components/GPolarisViz/components/ChartSkeleton/index.d.ts +3 -0
  66. package/dist/esm/shared/charts/components/GPolarisViz/components/ConicGradientWithStops/ConicGradientWithStops.d.ts +9 -0
  67. package/dist/esm/shared/charts/components/GPolarisViz/components/ConicGradientWithStops/index.d.ts +1 -0
  68. package/dist/esm/shared/charts/components/GPolarisViz/components/DefaultPreview/DefaultPreview.d.ts +5 -0
  69. package/dist/esm/shared/charts/components/GPolarisViz/components/DefaultPreview/index.d.ts +2 -0
  70. package/dist/esm/shared/charts/components/GPolarisViz/components/FunnelChart/Chart.d.ts +9 -0
  71. package/dist/esm/shared/charts/components/GPolarisViz/components/FunnelChart/FunnelChart.d.ts +12 -0
  72. package/dist/esm/shared/charts/components/GPolarisViz/components/FunnelChart/components/FunnelChartXAxisArrows.d.ts +10 -0
  73. package/dist/esm/shared/charts/components/GPolarisViz/components/FunnelChart/components/FunnelChartXAxisLabels.d.ts +13 -0
  74. package/dist/esm/shared/charts/components/GPolarisViz/components/FunnelChart/components/FunnelSegment.d.ts +17 -0
  75. package/dist/esm/shared/charts/components/GPolarisViz/components/FunnelChart/components/Label.d.ts +14 -0
  76. package/dist/esm/shared/charts/components/GPolarisViz/components/FunnelChart/components/index.d.ts +4 -0
  77. package/dist/esm/shared/charts/components/GPolarisViz/components/FunnelChart/index.d.ts +2 -0
  78. package/dist/esm/shared/charts/components/GPolarisViz/components/FunnelChartNext/Chart.d.ts +20 -0
  79. package/dist/esm/shared/charts/components/GPolarisViz/components/FunnelChartNext/FunnelChartNext.d.ts +25 -0
  80. package/dist/esm/shared/charts/components/GPolarisViz/components/FunnelChartNext/components/FunnelChartLabels/FunnelChartLabels.d.ts +29 -0
  81. package/dist/esm/shared/charts/components/GPolarisViz/components/FunnelChartNext/components/FunnelChartLabels/index.d.ts +1 -0
  82. package/dist/esm/shared/charts/components/GPolarisViz/components/FunnelChartNext/components/FunnelTooltip/FunnelTooltip.d.ts +8 -0
  83. package/dist/esm/shared/charts/components/GPolarisViz/components/FunnelChartNext/components/FunnelTooltip/index.d.ts +2 -0
  84. package/dist/esm/shared/charts/components/GPolarisViz/components/FunnelChartNext/components/ScaleIcon.d.ts +1 -0
  85. package/dist/esm/shared/charts/components/GPolarisViz/components/FunnelChartNext/components/ScaleIconTooltip.d.ts +6 -0
  86. package/dist/esm/shared/charts/components/GPolarisViz/components/FunnelChartNext/components/Tooltip/CustomTooltip.d.ts +10 -0
  87. package/dist/esm/shared/charts/components/GPolarisViz/components/FunnelChartNext/components/Tooltip/Tooltip.d.ts +16 -0
  88. package/dist/esm/shared/charts/components/GPolarisViz/components/FunnelChartNext/components/Tooltip/index.d.ts +1 -0
  89. package/dist/esm/shared/charts/components/GPolarisViz/components/FunnelChartNext/components/TooltipOverlay.d.ts +30 -0
  90. package/dist/esm/shared/charts/components/GPolarisViz/components/FunnelChartNext/components/TooltipWithPortal.d.ts +4 -0
  91. package/dist/esm/shared/charts/components/GPolarisViz/components/FunnelChartNext/components/index.d.ts +7 -0
  92. package/dist/esm/shared/charts/components/GPolarisViz/components/FunnelChartNext/constants.d.ts +19 -0
  93. package/dist/esm/shared/charts/components/GPolarisViz/components/FunnelChartNext/hooks/useTooltipInteraction.d.ts +12 -0
  94. package/dist/esm/shared/charts/components/GPolarisViz/components/FunnelChartNext/hooks/useTooltipPlacement.d.ts +27 -0
  95. package/dist/esm/shared/charts/components/GPolarisViz/components/FunnelChartNext/index.d.ts +4 -0
  96. package/dist/esm/shared/charts/components/GPolarisViz/components/FunnelChartNext/types.d.ts +9 -0
  97. package/dist/esm/shared/charts/components/GPolarisViz/components/FunnelChartNext/utilities/calculate-dropoff.d.ts +1 -0
  98. package/dist/esm/shared/charts/components/GPolarisViz/components/FunnelChartNext/utilities/useBuildFunnelTrends.d.ts +10 -0
  99. package/dist/esm/shared/charts/components/GPolarisViz/components/HorizontalGridLines/HorizontalGridLines.d.ts +10 -0
  100. package/dist/esm/shared/charts/components/GPolarisViz/components/HorizontalGridLines/index.d.ts +1 -0
  101. package/dist/esm/shared/charts/components/GPolarisViz/components/Labels/SingleTextLine.d.ts +14 -0
  102. package/dist/esm/shared/charts/components/GPolarisViz/components/Labels/hooks/index.d.ts +1 -0
  103. package/dist/esm/shared/charts/components/GPolarisViz/components/Labels/hooks/useLabels.d.ts +19 -0
  104. package/dist/esm/shared/charts/components/GPolarisViz/components/Labels/index.d.ts +3 -0
  105. package/dist/esm/shared/charts/components/GPolarisViz/components/Labels/utilities/endLineTruncate.d.ts +9 -0
  106. package/dist/esm/shared/charts/components/GPolarisViz/components/Labels/utilities/endWordTruncate.d.ts +8 -0
  107. package/dist/esm/shared/charts/components/GPolarisViz/components/Labels/utilities/estimateTextHeight.d.ts +8 -0
  108. package/dist/esm/shared/charts/components/GPolarisViz/components/Labels/utilities/formatAndAddEllipsis.d.ts +1 -0
  109. package/dist/esm/shared/charts/components/GPolarisViz/components/Labels/utilities/getDiagonalLabels.d.ts +14 -0
  110. package/dist/esm/shared/charts/components/GPolarisViz/components/Labels/utilities/getHorizontalLabels.d.ts +15 -0
  111. package/dist/esm/shared/charts/components/GPolarisViz/components/Labels/utilities/getVerticalLabels.d.ts +13 -0
  112. package/dist/esm/shared/charts/components/GPolarisViz/components/Labels/utilities/getWidestLabel.d.ts +2 -0
  113. package/dist/esm/shared/charts/components/GPolarisViz/components/Labels/utilities/shouldSkipLabel.d.ts +1 -0
  114. package/dist/esm/shared/charts/components/GPolarisViz/components/Labels/utilities/tests/endWordTruncate.test.d.ts +1 -0
  115. package/dist/esm/shared/charts/components/GPolarisViz/components/Labels/utilities/tests/estimateTextHeight.test.d.ts +1 -0
  116. package/dist/esm/shared/charts/components/GPolarisViz/components/Labels/utilities/tests/formatAndAddEllipsis.test.d.ts +1 -0
  117. package/dist/esm/shared/charts/components/GPolarisViz/components/Labels/utilities/tests/truncateLastLine.test.d.ts +1 -0
  118. package/dist/esm/shared/charts/components/GPolarisViz/components/Labels/utilities/tests/truncateSingleLine.test.d.ts +1 -0
  119. package/dist/esm/shared/charts/components/GPolarisViz/components/Labels/utilities/truncateLabels.d.ts +11 -0
  120. package/dist/esm/shared/charts/components/GPolarisViz/components/Labels/utilities/truncateLastLine.d.ts +9 -0
  121. package/dist/esm/shared/charts/components/GPolarisViz/components/Labels/utilities/truncateSingleLine.d.ts +8 -0
  122. package/dist/esm/shared/charts/components/GPolarisViz/components/LinePreview/LinePreview.d.ts +8 -0
  123. package/dist/esm/shared/charts/components/GPolarisViz/components/LinePreview/constants.d.ts +3 -0
  124. package/dist/esm/shared/charts/components/GPolarisViz/components/LinePreview/index.d.ts +2 -0
  125. package/dist/esm/shared/charts/components/GPolarisViz/components/SwallowErrors/SwallowErrors.d.ts +16 -0
  126. package/dist/esm/shared/charts/components/GPolarisViz/components/SwallowErrors/index.d.ts +1 -0
  127. package/dist/esm/shared/charts/components/GPolarisViz/components/TextLine/TextLine.d.ts +8 -0
  128. package/dist/esm/shared/charts/components/GPolarisViz/components/TextLine/index.d.ts +1 -0
  129. package/dist/esm/shared/charts/components/GPolarisViz/components/TooltipContent/TooltipContent.d.ts +8 -0
  130. package/dist/esm/shared/charts/components/GPolarisViz/components/TooltipContent/components/TooltipContentContainer/TooltipContentContainer.d.ts +13 -0
  131. package/dist/esm/shared/charts/components/GPolarisViz/components/TooltipContent/components/TooltipContentContainer/index.d.ts +1 -0
  132. package/dist/esm/shared/charts/components/GPolarisViz/components/TooltipContent/components/TooltipRow/TooltipRow.d.ts +11 -0
  133. package/dist/esm/shared/charts/components/GPolarisViz/components/TooltipContent/components/TooltipRow/index.d.ts +1 -0
  134. package/dist/esm/shared/charts/components/GPolarisViz/components/TooltipContent/components/TooltipSeries/TooltipSeries.d.ts +7 -0
  135. package/dist/esm/shared/charts/components/GPolarisViz/components/TooltipContent/components/TooltipSeries/index.d.ts +1 -0
  136. package/dist/esm/shared/charts/components/GPolarisViz/components/TooltipContent/components/TooltipSeriesName/TooltipSeriesName.d.ts +5 -0
  137. package/dist/esm/shared/charts/components/GPolarisViz/components/TooltipContent/components/TooltipSeriesName/index.d.ts +1 -0
  138. package/dist/esm/shared/charts/components/GPolarisViz/components/TooltipContent/components/TooltipTitle/TooltipTitle.d.ts +6 -0
  139. package/dist/esm/shared/charts/components/GPolarisViz/components/TooltipContent/components/TooltipTitle/index.d.ts +1 -0
  140. package/dist/esm/shared/charts/components/GPolarisViz/components/TooltipContent/components/index.d.ts +5 -0
  141. package/dist/esm/shared/charts/components/GPolarisViz/components/TooltipContent/constants.d.ts +2 -0
  142. package/dist/esm/shared/charts/components/GPolarisViz/components/TooltipContent/hooks/useGetLongestLabelFromData.d.ts +5 -0
  143. package/dist/esm/shared/charts/components/GPolarisViz/components/TooltipContent/index.d.ts +4 -0
  144. package/dist/esm/shared/charts/components/GPolarisViz/components/TooltipContent/utilities/get-tooltip-template-content-column-count.d.ts +2 -0
  145. package/dist/esm/shared/charts/components/GPolarisViz/components/TooltipContent/utilities/tests/get-tooltip-template-content-column-count.test.d.ts +1 -0
  146. package/dist/esm/shared/charts/components/GPolarisViz/components/TooltipWrapper/TooltipWrapper.d.ts +27 -0
  147. package/dist/esm/shared/charts/components/GPolarisViz/components/TooltipWrapper/components/TooltipAnimatedContainer.d.ts +17 -0
  148. package/dist/esm/shared/charts/components/GPolarisViz/components/TooltipWrapper/constants.d.ts +9 -0
  149. package/dist/esm/shared/charts/components/GPolarisViz/components/TooltipWrapper/index.d.ts +5 -0
  150. package/dist/esm/shared/charts/components/GPolarisViz/components/TooltipWrapper/types.d.ts +53 -0
  151. package/dist/esm/shared/charts/components/GPolarisViz/components/TooltipWrapper/utilities/eventPoint.d.ts +15 -0
  152. package/dist/esm/shared/charts/components/GPolarisViz/components/TooltipWrapper/utilities/getAlteredHorizontalBarPosition.d.ts +2 -0
  153. package/dist/esm/shared/charts/components/GPolarisViz/components/TooltipWrapper/utilities/getAlteredLineChartPosition.d.ts +9 -0
  154. package/dist/esm/shared/charts/components/GPolarisViz/components/TooltipWrapper/utilities/getAlteredVerticalBarPosition.d.ts +2 -0
  155. package/dist/esm/shared/charts/components/GPolarisViz/components/TooltipWrapper/utilities/getDonutChartTooltipPosition.d.ts +8 -0
  156. package/dist/esm/shared/charts/components/GPolarisViz/components/TooltipWrapper/utilities/getHorizontalBarChartTooltipPosition.d.ts +7 -0
  157. package/dist/esm/shared/charts/components/GPolarisViz/components/TooltipWrapper/utilities/getLineChartTooltipPosition.d.ts +11 -0
  158. package/dist/esm/shared/charts/components/GPolarisViz/components/TooltipWrapper/utilities/getVerticalBarChartTooltipPosition.d.ts +10 -0
  159. package/dist/esm/shared/charts/components/GPolarisViz/components/TooltipWrapper/utilities/shouldBlockTooltipEvents.d.ts +1 -0
  160. package/dist/esm/shared/charts/components/GPolarisViz/components/TooltipWrapper/utilities.d.ts +13 -0
  161. package/dist/esm/shared/charts/components/GPolarisViz/components/TrendIndicator/TrendIndicator.d.ts +6 -0
  162. package/dist/esm/shared/charts/components/GPolarisViz/components/TrendIndicator/components/Arrows/ArrowDown.d.ts +1 -0
  163. package/dist/esm/shared/charts/components/GPolarisViz/components/TrendIndicator/components/Arrows/ArrowUp.d.ts +1 -0
  164. package/dist/esm/shared/charts/components/GPolarisViz/components/TrendIndicator/components/Arrows/index.d.ts +2 -0
  165. package/dist/esm/shared/charts/components/GPolarisViz/components/TrendIndicator/components/Svg/Svg.d.ts +10 -0
  166. package/dist/esm/shared/charts/components/GPolarisViz/components/TrendIndicator/components/Svg/index.d.ts +1 -0
  167. package/dist/esm/shared/charts/components/GPolarisViz/components/TrendIndicator/components/index.d.ts +2 -0
  168. package/dist/esm/shared/charts/components/GPolarisViz/components/TrendIndicator/constants.d.ts +8 -0
  169. package/dist/esm/shared/charts/components/GPolarisViz/components/TrendIndicator/index.d.ts +6 -0
  170. package/dist/esm/shared/charts/components/GPolarisViz/components/TrendIndicator/utilities/estimateTrendIndicatorWidth.d.ts +4 -0
  171. package/dist/esm/shared/charts/components/GPolarisViz/components/VerticalBarChart/utilities/index.d.ts +1 -0
  172. package/dist/esm/shared/charts/components/GPolarisViz/components/VerticalBarChart/utilities/sortBarChartData.d.ts +2 -0
  173. package/dist/esm/shared/charts/components/GPolarisViz/components/VerticalGridLines/VerticalGridLines.d.ts +9 -0
  174. package/dist/esm/shared/charts/components/GPolarisViz/components/VerticalGridLines/index.d.ts +1 -0
  175. package/dist/esm/shared/charts/components/GPolarisViz/components/index.d.ts +6 -0
  176. package/dist/esm/shared/charts/components/GPolarisViz/constants.d.ts +21 -0
  177. package/dist/esm/shared/charts/components/GPolarisViz/hooks/index.d.ts +5 -0
  178. package/dist/esm/shared/charts/components/GPolarisViz/hooks/useBarSpringConfig.d.ts +12 -0
  179. package/dist/esm/shared/charts/components/GPolarisViz/hooks/useBrowserCheck.d.ts +5 -0
  180. package/dist/esm/shared/charts/components/GPolarisViz/hooks/useCallbackRef.d.ts +3 -0
  181. package/dist/esm/shared/charts/components/GPolarisViz/hooks/useDataForHorizontalChart.d.ts +15 -0
  182. package/dist/esm/shared/charts/components/GPolarisViz/hooks/useDebouncedCallback.d.ts +27 -0
  183. package/dist/esm/shared/charts/components/GPolarisViz/hooks/useFormattedLabels.d.ts +10 -0
  184. package/dist/esm/shared/charts/components/GPolarisViz/hooks/useFunnelBarScaling.d.ts +12 -0
  185. package/dist/esm/shared/charts/components/GPolarisViz/hooks/useHorizontalBarSizes.d.ts +15 -0
  186. package/dist/esm/shared/charts/components/GPolarisViz/hooks/useHorizontalStackedValues.d.ts +13 -0
  187. package/dist/esm/shared/charts/components/GPolarisViz/hooks/useHorizontalTicksAndScale.d.ts +15 -0
  188. package/dist/esm/shared/charts/components/GPolarisViz/hooks/useHorizontalXScale.d.ts +21 -0
  189. package/dist/esm/shared/charts/components/GPolarisViz/hooks/useIndexForLabels.d.ts +2 -0
  190. package/dist/esm/shared/charts/components/GPolarisViz/hooks/usePrefersReducedMotion.d.ts +3 -0
  191. package/dist/esm/shared/charts/components/GPolarisViz/hooks/usePrintResizing.d.ts +11 -0
  192. package/dist/esm/shared/charts/components/GPolarisViz/hooks/useReducedLabelIndexes.d.ts +5 -0
  193. package/dist/esm/shared/charts/components/GPolarisViz/hooks/useResizeObserver.d.ts +6 -0
  194. package/dist/esm/shared/charts/components/GPolarisViz/hooks/useRootContainer.d.ts +1 -0
  195. package/dist/esm/shared/charts/components/GPolarisViz/hooks/useWatchColorVisionEvents.d.ts +8 -0
  196. package/dist/esm/shared/charts/components/GPolarisViz/index.d.ts +7 -0
  197. package/dist/esm/shared/charts/components/GPolarisViz/shared/Bar/Bar.d.ts +14 -0
  198. package/dist/esm/shared/charts/components/GPolarisViz/shared/Bar/index.d.ts +1 -0
  199. package/dist/esm/shared/charts/components/GPolarisViz/shared/FunnelChartConnector/FunnelChartConnector.d.ts +11 -0
  200. package/dist/esm/shared/charts/components/GPolarisViz/shared/FunnelChartConnector/FunnelChartConnectorGradient.d.ts +6 -0
  201. package/dist/esm/shared/charts/components/GPolarisViz/shared/FunnelChartConnector/constants.d.ts +5 -0
  202. package/dist/esm/shared/charts/components/GPolarisViz/shared/FunnelChartConnector/index.d.ts +3 -0
  203. package/dist/esm/shared/charts/components/GPolarisViz/shared/FunnelChartSegment/FunnelChartSegment.d.ts +17 -0
  204. package/dist/esm/shared/charts/components/GPolarisViz/shared/FunnelChartSegment/components/AnimatedSegment.d.ts +13 -0
  205. package/dist/esm/shared/charts/components/GPolarisViz/shared/FunnelChartSegment/components/InteractiveOverlay.d.ts +11 -0
  206. package/dist/esm/shared/charts/components/GPolarisViz/shared/FunnelChartSegment/components/ScaledSegment.d.ts +17 -0
  207. package/dist/esm/shared/charts/components/GPolarisViz/shared/FunnelChartSegment/constants.d.ts +4 -0
  208. package/dist/esm/shared/charts/components/GPolarisViz/shared/FunnelChartSegment/index.d.ts +2 -0
  209. package/dist/esm/shared/charts/components/GPolarisViz/shared/SeriesIcon/SeriesIcon.d.ts +8 -0
  210. package/dist/esm/shared/charts/components/GPolarisViz/shared/SeriesIcon/index.d.ts +1 -0
  211. package/dist/esm/shared/charts/components/GPolarisViz/shared/ZeroValueLine/ZeroValueLine.d.ts +9 -0
  212. package/dist/esm/shared/charts/components/GPolarisViz/shared/ZeroValueLine/index.d.ts +1 -0
  213. package/dist/esm/shared/charts/components/GPolarisViz/shared/index.d.ts +3 -0
  214. package/dist/esm/shared/charts/components/GPolarisViz/types.d.ts +209 -0
  215. package/dist/esm/shared/charts/components/GPolarisViz/utilities/base.d.ts +3 -0
  216. package/dist/esm/shared/charts/components/GPolarisViz/utilities/classnames.d.ts +1 -0
  217. package/dist/esm/shared/charts/components/GPolarisViz/utilities/createCssConicGradient.d.ts +2 -0
  218. package/dist/esm/shared/charts/components/GPolarisViz/utilities/createCssGradient.d.ts +2 -0
  219. package/dist/esm/shared/charts/components/GPolarisViz/utilities/estimateStringWidthWithOffset.d.ts +1 -0
  220. package/dist/esm/shared/charts/components/GPolarisViz/utilities/getAxisOptions.d.ts +3 -0
  221. package/dist/esm/shared/charts/components/GPolarisViz/utilities/getCSSBackgroundFromColor.d.ts +2 -0
  222. package/dist/esm/shared/charts/components/GPolarisViz/utilities/getChartId.d.ts +1 -0
  223. package/dist/esm/shared/charts/components/GPolarisViz/utilities/getFontSize.d.ts +1 -0
  224. package/dist/esm/shared/charts/components/GPolarisViz/utilities/getStackedMinMax.d.ts +10 -0
  225. package/dist/esm/shared/charts/components/GPolarisViz/utilities/getStackedValues.d.ts +10 -0
  226. package/dist/esm/shared/charts/components/GPolarisViz/utilities/getStackedValuesFromDataSeries.d.ts +7 -0
  227. package/dist/esm/shared/charts/components/GPolarisViz/utilities/getTrendIndicatorData.d.ts +8 -0
  228. package/dist/esm/shared/charts/components/GPolarisViz/utilities/hasHiddenComparisonSeries.d.ts +9 -0
  229. package/dist/esm/shared/charts/components/GPolarisViz/utilities/index.d.ts +6 -0
  230. package/dist/esm/shared/charts/components/GSimpleBarChart.d.ts +5 -0
  231. package/dist/esm/shared/charts/components/index.d.ts +7 -0
  232. package/dist/esm/shared/charts/constants/chart.d.ts +2 -0
  233. package/dist/esm/shared/charts/constants/index.d.ts +1 -0
  234. package/dist/esm/shared/charts/contexts/GChartProvider.d.ts +9 -0
  235. package/dist/esm/shared/charts/contexts/index.d.ts +1 -0
  236. package/dist/esm/shared/charts/index.d.ts +4 -0
  237. package/dist/esm/shared/charts/types/chart.d.ts +35 -0
  238. package/dist/esm/shared/charts/types/index.d.ts +1 -0
  239. package/dist/esm/shared/components/GActivatorPopover/GActivatorPopover.d.ts +23 -0
  240. package/dist/esm/shared/components/GActivatorPopover/index.d.ts +1 -0
  241. package/dist/esm/shared/components/GButton/GButton.d.ts +19 -0
  242. package/dist/esm/shared/components/GButton/index.d.ts +1 -0
  243. package/dist/esm/shared/components/GCheckbox/GCheckbox.d.ts +39 -0
  244. package/dist/esm/shared/components/GCheckbox/index.d.ts +1 -0
  245. package/dist/esm/shared/components/GChoice/ChoiceHelpText.d.ts +4 -0
  246. package/dist/esm/shared/components/GChoice/GChoice.d.ts +44 -0
  247. package/dist/esm/shared/components/GChoice/index.d.ts +2 -0
  248. package/dist/esm/shared/components/GClickable/GClickable.d.ts +10 -0
  249. package/dist/esm/shared/components/GClickable/index.d.ts +1 -0
  250. package/dist/esm/shared/components/GDiv/GDiv.d.ts +7 -0
  251. package/dist/esm/shared/components/GDiv/index.d.ts +1 -0
  252. package/dist/esm/shared/components/GI18NText/GI18NText.d.ts +2 -0
  253. package/dist/esm/shared/components/GI18NText/index.d.ts +2 -0
  254. package/dist/esm/shared/components/GI18NText/types.d.ts +6 -0
  255. package/dist/esm/shared/components/GOptionList/GOptionList.d.ts +11 -0
  256. package/dist/esm/shared/components/GOptionList/index.d.ts +1 -0
  257. package/dist/esm/shared/components/GSelector/GSelector.d.ts +27 -0
  258. package/dist/esm/shared/components/GSelector/index.d.ts +1 -0
  259. package/dist/esm/shared/components/GTextLink/GTextLink.d.ts +9 -0
  260. package/dist/esm/shared/components/GTextLink/index.d.ts +1 -0
  261. package/dist/esm/shared/components/GTimePicker/GTimePicker.d.ts +17 -0
  262. package/dist/esm/shared/components/GTimePicker/components/BaseTimePicker.d.ts +10 -0
  263. package/dist/esm/shared/components/GTimePicker/components/CompareTimePicker.d.ts +5 -0
  264. package/dist/esm/shared/components/GTimePicker/components/DateTimeFilterAddition.d.ts +2 -0
  265. package/dist/esm/shared/components/GTimePicker/components/DateTimeFilterInputs.d.ts +9 -0
  266. package/dist/esm/shared/components/GTimePicker/components/DateTimeFilters.d.ts +15 -0
  267. package/dist/esm/shared/components/GTimePicker/components/MainTimePicker.d.ts +3 -0
  268. package/dist/esm/shared/components/GTimePicker/components/index.d.ts +2 -0
  269. package/dist/esm/shared/components/GTimePicker/constants/compareDateTimePicker.d.ts +12 -0
  270. package/dist/esm/shared/components/GTimePicker/constants/datePicker.d.ts +14 -0
  271. package/dist/esm/shared/components/GTimePicker/constants/index.d.ts +2 -0
  272. package/dist/esm/shared/components/GTimePicker/constants/mainDataTimePicker.d.ts +14 -0
  273. package/dist/esm/shared/components/GTimePicker/contexts/DateTimePickerProvider.d.ts +15 -0
  274. package/dist/esm/shared/components/GTimePicker/contexts/index.d.ts +1 -0
  275. package/dist/esm/shared/components/GTimePicker/helpers/date-range-info.d.ts +16 -0
  276. package/dist/esm/shared/components/GTimePicker/helpers/index.d.ts +4 -0
  277. package/dist/esm/shared/components/GTimePicker/helpers/parse-date.d.ts +24 -0
  278. package/dist/esm/shared/components/GTimePicker/helpers/time-picker.d.ts +76 -0
  279. package/dist/esm/shared/components/GTimePicker/helpers/version.d.ts +2 -0
  280. package/dist/esm/shared/components/GTimePicker/hooks/index.d.ts +3 -0
  281. package/dist/esm/shared/components/GTimePicker/hooks/useCompareDateTimePicker.d.ts +26 -0
  282. package/dist/esm/shared/components/GTimePicker/hooks/useDateTimeFilter.d.ts +18 -0
  283. package/dist/esm/shared/components/GTimePicker/hooks/useDateTimePicker.d.ts +30 -0
  284. package/dist/esm/shared/components/GTimePicker/hooks/useVersionDateTimeFilters.d.ts +9 -0
  285. package/dist/esm/shared/components/GTimePicker/index.d.ts +7 -0
  286. package/dist/esm/shared/components/GTimePicker/types/index.d.ts +38 -0
  287. package/dist/esm/shared/components/GTooltip/GTooltip.d.ts +22 -0
  288. package/dist/esm/shared/components/GTooltip/index.d.ts +2 -0
  289. package/dist/esm/shared/components/GViewBySelector/GViewBySelector.d.ts +17 -0
  290. package/dist/esm/shared/components/GViewBySelector/index.d.ts +1 -0
  291. package/dist/esm/shared/components/index.d.ts +14 -1
  292. package/dist/esm/types/analytic-mode.d.ts +5 -0
  293. package/dist/esm/types/currency.d.ts +329 -0
  294. package/dist/esm/types/index.d.ts +2 -0
  295. package/dist/esm/types/metric.d.ts +27 -0
  296. package/dist/esm/types.js +8 -1
  297. package/dist/esm/types.mjs +8 -1
  298. package/dist/esm/utils/index.d.ts +1 -0
  299. package/dist/esm/utils/number.d.ts +1 -0
  300. package/dist/esm/utils/sort.d.ts +13 -0
  301. package/dist/style.css +1 -1
  302. package/dist/umd/esm/components/AnalyticMode/AnalyticModeSelector.d.ts +13 -0
  303. package/dist/umd/esm/components/AnalyticMode/index.d.ts +2 -0
  304. package/dist/umd/esm/components/CurrencySelector/CurrencySelector.d.ts +10 -0
  305. package/dist/umd/esm/components/CurrencySelector/index.d.ts +2 -0
  306. package/dist/umd/esm/components/index.d.ts +2 -0
  307. package/dist/umd/esm/constants/campaign.d.ts +1 -0
  308. package/dist/umd/esm/constants/currency.d.ts +2 -0
  309. package/dist/umd/esm/constants/index.d.ts +2 -0
  310. package/dist/umd/esm/core/gemxql/utils/dayjs.d.ts +2 -0
  311. package/dist/umd/esm/hooks/index.d.ts +3 -0
  312. package/dist/umd/esm/hooks/useEnhancedEffect.d.ts +2 -0
  313. package/dist/umd/esm/hooks/usePopoverResizeObserver.d.ts +7 -0
  314. package/dist/umd/esm/hooks/useToggle.d.ts +12 -0
  315. package/dist/umd/esm/index.d.ts +1 -0
  316. package/dist/umd/esm/shared/charts/components/ComboChart.d.ts +1 -0
  317. package/dist/umd/esm/shared/charts/components/GBarChart.d.ts +13 -0
  318. package/dist/umd/esm/shared/charts/components/GComboChart.d.ts +5 -0
  319. package/dist/umd/esm/shared/charts/components/GDonutChart.d.ts +5 -0
  320. package/dist/umd/esm/shared/charts/components/GFunnelChart/GFunnelChart.d.ts +10 -0
  321. package/dist/umd/esm/shared/charts/components/GFunnelChart/components/FunnelChartAction.d.ts +7 -0
  322. package/dist/umd/esm/shared/charts/components/GFunnelChart/components/FunnelChartActionIcon.d.ts +9 -0
  323. package/dist/umd/esm/shared/charts/components/GFunnelChart/components/FunnelChartActionWrapper.d.ts +16 -0
  324. package/dist/umd/esm/shared/charts/components/GFunnelChart/components/FunnelSelection/FunnelSelectionContent.d.ts +6 -0
  325. package/dist/umd/esm/shared/charts/components/GFunnelChart/components/FunnelSelection/FunnelSelectionHeader.d.ts +1 -0
  326. package/dist/umd/esm/shared/charts/components/GFunnelChart/components/FunnelSelection/FunnelSelectionItem.d.ts +9 -0
  327. package/dist/umd/esm/shared/charts/components/GFunnelChart/components/FunnelSelection/FunnelSelectionPopover.d.ts +22 -0
  328. package/dist/umd/esm/shared/charts/components/GFunnelChart/components/FunnelSelection/index.d.ts +1 -0
  329. package/dist/umd/esm/shared/charts/components/GFunnelChart/components/FunnelSelection/type.d.ts +7 -0
  330. package/dist/umd/esm/shared/charts/components/GFunnelChart/components/types.d.ts +23 -0
  331. package/dist/umd/esm/shared/charts/components/GFunnelChart/index.d.ts +3 -0
  332. package/dist/umd/esm/shared/charts/components/GFunnelChart/types.d.ts +11 -0
  333. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/Arc/Arc.d.ts +16 -0
  334. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/Arc/index.d.ts +1 -0
  335. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/ChartContainer/ChartContainer.d.ts +17 -0
  336. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/ChartContainer/hooks/useContainerBounds.d.ts +11 -0
  337. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/ChartContainer/index.d.ts +1 -0
  338. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/ChartElements/ChartDiv.d.ts +9 -0
  339. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/ChartElements/ChartSVG.d.ts +12 -0
  340. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/ChartElements/index.d.ts +6 -0
  341. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/ChartErrorBoundary/ChartErrorBoundary.d.ts +25 -0
  342. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/ChartErrorBoundary/index.d.ts +1 -0
  343. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/ChartErrorBoundary/utilities/checkForMismatchedData.d.ts +2 -0
  344. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/ChartSkeleton/ChartSkeleton.d.ts +31 -0
  345. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/ChartSkeleton/components/DonutSkeleton/DonutSkeleton.d.ts +7 -0
  346. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/ChartSkeleton/components/DonutSkeleton/index.d.ts +1 -0
  347. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/ChartSkeleton/components/ErrorText/ErrorText.d.ts +7 -0
  348. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/ChartSkeleton/components/ErrorText/index.d.ts +1 -0
  349. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/ChartSkeleton/components/FunnelSkeleton/FunnelSkeleton.d.ts +7 -0
  350. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/ChartSkeleton/components/FunnelSkeleton/index.d.ts +1 -0
  351. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/ChartSkeleton/components/GridSkeleton/GridSkeleton.d.ts +7 -0
  352. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/ChartSkeleton/components/GridSkeleton/index.d.ts +1 -0
  353. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/ChartSkeleton/components/Shimmer/Shimmer.d.ts +3 -0
  354. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/ChartSkeleton/components/Shimmer/index.d.ts +1 -0
  355. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/ChartSkeleton/components/SimpleBarSkeleton/SimpleBarSkeleton.d.ts +7 -0
  356. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/ChartSkeleton/components/SimpleBarSkeleton/index.d.ts +1 -0
  357. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/ChartSkeleton/components/SimpleNormalizedSkeleton/SimpleNormalizedSkeleton.d.ts +10 -0
  358. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/ChartSkeleton/components/SimpleNormalizedSkeleton/index.d.ts +1 -0
  359. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/ChartSkeleton/components/SparkSkeleton/SparkSkeleton.d.ts +7 -0
  360. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/ChartSkeleton/components/SparkSkeleton/index.d.ts +1 -0
  361. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/ChartSkeleton/components/index.d.ts +8 -0
  362. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/ChartSkeleton/index.d.ts +3 -0
  363. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/ConicGradientWithStops/ConicGradientWithStops.d.ts +9 -0
  364. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/ConicGradientWithStops/index.d.ts +1 -0
  365. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/DefaultPreview/DefaultPreview.d.ts +5 -0
  366. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/DefaultPreview/index.d.ts +2 -0
  367. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/FunnelChart/Chart.d.ts +9 -0
  368. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/FunnelChart/FunnelChart.d.ts +12 -0
  369. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/FunnelChart/components/FunnelChartXAxisArrows.d.ts +10 -0
  370. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/FunnelChart/components/FunnelChartXAxisLabels.d.ts +13 -0
  371. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/FunnelChart/components/FunnelSegment.d.ts +17 -0
  372. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/FunnelChart/components/Label.d.ts +14 -0
  373. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/FunnelChart/components/index.d.ts +4 -0
  374. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/FunnelChart/index.d.ts +2 -0
  375. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/FunnelChartNext/Chart.d.ts +20 -0
  376. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/FunnelChartNext/FunnelChartNext.d.ts +25 -0
  377. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/FunnelChartNext/components/FunnelChartLabels/FunnelChartLabels.d.ts +29 -0
  378. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/FunnelChartNext/components/FunnelChartLabels/index.d.ts +1 -0
  379. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/FunnelChartNext/components/FunnelTooltip/FunnelTooltip.d.ts +8 -0
  380. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/FunnelChartNext/components/FunnelTooltip/index.d.ts +2 -0
  381. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/FunnelChartNext/components/ScaleIcon.d.ts +1 -0
  382. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/FunnelChartNext/components/ScaleIconTooltip.d.ts +6 -0
  383. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/FunnelChartNext/components/Tooltip/CustomTooltip.d.ts +10 -0
  384. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/FunnelChartNext/components/Tooltip/Tooltip.d.ts +16 -0
  385. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/FunnelChartNext/components/Tooltip/index.d.ts +1 -0
  386. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/FunnelChartNext/components/TooltipOverlay.d.ts +30 -0
  387. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/FunnelChartNext/components/TooltipWithPortal.d.ts +4 -0
  388. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/FunnelChartNext/components/index.d.ts +7 -0
  389. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/FunnelChartNext/constants.d.ts +19 -0
  390. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/FunnelChartNext/hooks/useTooltipInteraction.d.ts +12 -0
  391. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/FunnelChartNext/hooks/useTooltipPlacement.d.ts +27 -0
  392. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/FunnelChartNext/index.d.ts +4 -0
  393. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/FunnelChartNext/types.d.ts +9 -0
  394. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/FunnelChartNext/utilities/calculate-dropoff.d.ts +1 -0
  395. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/FunnelChartNext/utilities/useBuildFunnelTrends.d.ts +10 -0
  396. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/HorizontalGridLines/HorizontalGridLines.d.ts +10 -0
  397. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/HorizontalGridLines/index.d.ts +1 -0
  398. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/Labels/SingleTextLine.d.ts +14 -0
  399. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/Labels/hooks/index.d.ts +1 -0
  400. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/Labels/hooks/useLabels.d.ts +19 -0
  401. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/Labels/index.d.ts +3 -0
  402. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/Labels/utilities/endLineTruncate.d.ts +9 -0
  403. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/Labels/utilities/endWordTruncate.d.ts +8 -0
  404. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/Labels/utilities/estimateTextHeight.d.ts +8 -0
  405. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/Labels/utilities/formatAndAddEllipsis.d.ts +1 -0
  406. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/Labels/utilities/getDiagonalLabels.d.ts +14 -0
  407. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/Labels/utilities/getHorizontalLabels.d.ts +15 -0
  408. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/Labels/utilities/getVerticalLabels.d.ts +13 -0
  409. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/Labels/utilities/getWidestLabel.d.ts +2 -0
  410. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/Labels/utilities/shouldSkipLabel.d.ts +1 -0
  411. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/Labels/utilities/tests/endWordTruncate.test.d.ts +1 -0
  412. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/Labels/utilities/tests/estimateTextHeight.test.d.ts +1 -0
  413. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/Labels/utilities/tests/formatAndAddEllipsis.test.d.ts +1 -0
  414. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/Labels/utilities/tests/truncateLastLine.test.d.ts +1 -0
  415. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/Labels/utilities/tests/truncateSingleLine.test.d.ts +1 -0
  416. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/Labels/utilities/truncateLabels.d.ts +11 -0
  417. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/Labels/utilities/truncateLastLine.d.ts +9 -0
  418. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/Labels/utilities/truncateSingleLine.d.ts +8 -0
  419. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/LinePreview/LinePreview.d.ts +8 -0
  420. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/LinePreview/constants.d.ts +3 -0
  421. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/LinePreview/index.d.ts +2 -0
  422. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/SwallowErrors/SwallowErrors.d.ts +16 -0
  423. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/SwallowErrors/index.d.ts +1 -0
  424. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TextLine/TextLine.d.ts +8 -0
  425. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TextLine/index.d.ts +1 -0
  426. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TooltipContent/TooltipContent.d.ts +8 -0
  427. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TooltipContent/components/TooltipContentContainer/TooltipContentContainer.d.ts +13 -0
  428. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TooltipContent/components/TooltipContentContainer/index.d.ts +1 -0
  429. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TooltipContent/components/TooltipRow/TooltipRow.d.ts +11 -0
  430. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TooltipContent/components/TooltipRow/index.d.ts +1 -0
  431. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TooltipContent/components/TooltipSeries/TooltipSeries.d.ts +7 -0
  432. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TooltipContent/components/TooltipSeries/index.d.ts +1 -0
  433. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TooltipContent/components/TooltipSeriesName/TooltipSeriesName.d.ts +5 -0
  434. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TooltipContent/components/TooltipSeriesName/index.d.ts +1 -0
  435. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TooltipContent/components/TooltipTitle/TooltipTitle.d.ts +6 -0
  436. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TooltipContent/components/TooltipTitle/index.d.ts +1 -0
  437. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TooltipContent/components/index.d.ts +5 -0
  438. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TooltipContent/constants.d.ts +2 -0
  439. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TooltipContent/hooks/useGetLongestLabelFromData.d.ts +5 -0
  440. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TooltipContent/index.d.ts +4 -0
  441. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TooltipContent/utilities/get-tooltip-template-content-column-count.d.ts +2 -0
  442. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TooltipContent/utilities/tests/get-tooltip-template-content-column-count.test.d.ts +1 -0
  443. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TooltipWrapper/TooltipWrapper.d.ts +27 -0
  444. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TooltipWrapper/components/TooltipAnimatedContainer.d.ts +17 -0
  445. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TooltipWrapper/constants.d.ts +9 -0
  446. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TooltipWrapper/index.d.ts +5 -0
  447. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TooltipWrapper/types.d.ts +53 -0
  448. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TooltipWrapper/utilities/eventPoint.d.ts +15 -0
  449. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TooltipWrapper/utilities/getAlteredHorizontalBarPosition.d.ts +2 -0
  450. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TooltipWrapper/utilities/getAlteredLineChartPosition.d.ts +9 -0
  451. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TooltipWrapper/utilities/getAlteredVerticalBarPosition.d.ts +2 -0
  452. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TooltipWrapper/utilities/getDonutChartTooltipPosition.d.ts +8 -0
  453. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TooltipWrapper/utilities/getHorizontalBarChartTooltipPosition.d.ts +7 -0
  454. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TooltipWrapper/utilities/getLineChartTooltipPosition.d.ts +11 -0
  455. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TooltipWrapper/utilities/getVerticalBarChartTooltipPosition.d.ts +10 -0
  456. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TooltipWrapper/utilities/shouldBlockTooltipEvents.d.ts +1 -0
  457. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TooltipWrapper/utilities.d.ts +13 -0
  458. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TrendIndicator/TrendIndicator.d.ts +6 -0
  459. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TrendIndicator/components/Arrows/ArrowDown.d.ts +1 -0
  460. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TrendIndicator/components/Arrows/ArrowUp.d.ts +1 -0
  461. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TrendIndicator/components/Arrows/index.d.ts +2 -0
  462. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TrendIndicator/components/Svg/Svg.d.ts +10 -0
  463. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TrendIndicator/components/Svg/index.d.ts +1 -0
  464. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TrendIndicator/components/index.d.ts +2 -0
  465. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TrendIndicator/constants.d.ts +8 -0
  466. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TrendIndicator/index.d.ts +6 -0
  467. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/TrendIndicator/utilities/estimateTrendIndicatorWidth.d.ts +4 -0
  468. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/VerticalBarChart/utilities/index.d.ts +1 -0
  469. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/VerticalBarChart/utilities/sortBarChartData.d.ts +2 -0
  470. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/VerticalGridLines/VerticalGridLines.d.ts +9 -0
  471. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/VerticalGridLines/index.d.ts +1 -0
  472. package/dist/umd/esm/shared/charts/components/GPolarisViz/components/index.d.ts +6 -0
  473. package/dist/umd/esm/shared/charts/components/GPolarisViz/constants.d.ts +21 -0
  474. package/dist/umd/esm/shared/charts/components/GPolarisViz/hooks/index.d.ts +5 -0
  475. package/dist/umd/esm/shared/charts/components/GPolarisViz/hooks/useBarSpringConfig.d.ts +12 -0
  476. package/dist/umd/esm/shared/charts/components/GPolarisViz/hooks/useBrowserCheck.d.ts +5 -0
  477. package/dist/umd/esm/shared/charts/components/GPolarisViz/hooks/useCallbackRef.d.ts +3 -0
  478. package/dist/umd/esm/shared/charts/components/GPolarisViz/hooks/useDataForHorizontalChart.d.ts +15 -0
  479. package/dist/umd/esm/shared/charts/components/GPolarisViz/hooks/useDebouncedCallback.d.ts +27 -0
  480. package/dist/umd/esm/shared/charts/components/GPolarisViz/hooks/useFormattedLabels.d.ts +10 -0
  481. package/dist/umd/esm/shared/charts/components/GPolarisViz/hooks/useFunnelBarScaling.d.ts +12 -0
  482. package/dist/umd/esm/shared/charts/components/GPolarisViz/hooks/useHorizontalBarSizes.d.ts +15 -0
  483. package/dist/umd/esm/shared/charts/components/GPolarisViz/hooks/useHorizontalStackedValues.d.ts +13 -0
  484. package/dist/umd/esm/shared/charts/components/GPolarisViz/hooks/useHorizontalTicksAndScale.d.ts +15 -0
  485. package/dist/umd/esm/shared/charts/components/GPolarisViz/hooks/useHorizontalXScale.d.ts +21 -0
  486. package/dist/umd/esm/shared/charts/components/GPolarisViz/hooks/useIndexForLabels.d.ts +2 -0
  487. package/dist/umd/esm/shared/charts/components/GPolarisViz/hooks/usePrefersReducedMotion.d.ts +3 -0
  488. package/dist/umd/esm/shared/charts/components/GPolarisViz/hooks/usePrintResizing.d.ts +11 -0
  489. package/dist/umd/esm/shared/charts/components/GPolarisViz/hooks/useReducedLabelIndexes.d.ts +5 -0
  490. package/dist/umd/esm/shared/charts/components/GPolarisViz/hooks/useResizeObserver.d.ts +6 -0
  491. package/dist/umd/esm/shared/charts/components/GPolarisViz/hooks/useRootContainer.d.ts +1 -0
  492. package/dist/umd/esm/shared/charts/components/GPolarisViz/hooks/useWatchColorVisionEvents.d.ts +8 -0
  493. package/dist/umd/esm/shared/charts/components/GPolarisViz/index.d.ts +7 -0
  494. package/dist/umd/esm/shared/charts/components/GPolarisViz/shared/Bar/Bar.d.ts +14 -0
  495. package/dist/umd/esm/shared/charts/components/GPolarisViz/shared/Bar/index.d.ts +1 -0
  496. package/dist/umd/esm/shared/charts/components/GPolarisViz/shared/FunnelChartConnector/FunnelChartConnector.d.ts +11 -0
  497. package/dist/umd/esm/shared/charts/components/GPolarisViz/shared/FunnelChartConnector/FunnelChartConnectorGradient.d.ts +6 -0
  498. package/dist/umd/esm/shared/charts/components/GPolarisViz/shared/FunnelChartConnector/constants.d.ts +5 -0
  499. package/dist/umd/esm/shared/charts/components/GPolarisViz/shared/FunnelChartConnector/index.d.ts +3 -0
  500. package/dist/umd/esm/shared/charts/components/GPolarisViz/shared/FunnelChartSegment/FunnelChartSegment.d.ts +17 -0
  501. package/dist/umd/esm/shared/charts/components/GPolarisViz/shared/FunnelChartSegment/components/AnimatedSegment.d.ts +13 -0
  502. package/dist/umd/esm/shared/charts/components/GPolarisViz/shared/FunnelChartSegment/components/InteractiveOverlay.d.ts +11 -0
  503. package/dist/umd/esm/shared/charts/components/GPolarisViz/shared/FunnelChartSegment/components/ScaledSegment.d.ts +17 -0
  504. package/dist/umd/esm/shared/charts/components/GPolarisViz/shared/FunnelChartSegment/constants.d.ts +4 -0
  505. package/dist/umd/esm/shared/charts/components/GPolarisViz/shared/FunnelChartSegment/index.d.ts +2 -0
  506. package/dist/umd/esm/shared/charts/components/GPolarisViz/shared/SeriesIcon/SeriesIcon.d.ts +8 -0
  507. package/dist/umd/esm/shared/charts/components/GPolarisViz/shared/SeriesIcon/index.d.ts +1 -0
  508. package/dist/umd/esm/shared/charts/components/GPolarisViz/shared/ZeroValueLine/ZeroValueLine.d.ts +9 -0
  509. package/dist/umd/esm/shared/charts/components/GPolarisViz/shared/ZeroValueLine/index.d.ts +1 -0
  510. package/dist/umd/esm/shared/charts/components/GPolarisViz/shared/index.d.ts +3 -0
  511. package/dist/umd/esm/shared/charts/components/GPolarisViz/types.d.ts +209 -0
  512. package/dist/umd/esm/shared/charts/components/GPolarisViz/utilities/base.d.ts +3 -0
  513. package/dist/umd/esm/shared/charts/components/GPolarisViz/utilities/classnames.d.ts +1 -0
  514. package/dist/umd/esm/shared/charts/components/GPolarisViz/utilities/createCssConicGradient.d.ts +2 -0
  515. package/dist/umd/esm/shared/charts/components/GPolarisViz/utilities/createCssGradient.d.ts +2 -0
  516. package/dist/umd/esm/shared/charts/components/GPolarisViz/utilities/estimateStringWidthWithOffset.d.ts +1 -0
  517. package/dist/umd/esm/shared/charts/components/GPolarisViz/utilities/getAxisOptions.d.ts +3 -0
  518. package/dist/umd/esm/shared/charts/components/GPolarisViz/utilities/getCSSBackgroundFromColor.d.ts +2 -0
  519. package/dist/umd/esm/shared/charts/components/GPolarisViz/utilities/getChartId.d.ts +1 -0
  520. package/dist/umd/esm/shared/charts/components/GPolarisViz/utilities/getFontSize.d.ts +1 -0
  521. package/dist/umd/esm/shared/charts/components/GPolarisViz/utilities/getStackedMinMax.d.ts +10 -0
  522. package/dist/umd/esm/shared/charts/components/GPolarisViz/utilities/getStackedValues.d.ts +10 -0
  523. package/dist/umd/esm/shared/charts/components/GPolarisViz/utilities/getStackedValuesFromDataSeries.d.ts +7 -0
  524. package/dist/umd/esm/shared/charts/components/GPolarisViz/utilities/getTrendIndicatorData.d.ts +8 -0
  525. package/dist/umd/esm/shared/charts/components/GPolarisViz/utilities/hasHiddenComparisonSeries.d.ts +9 -0
  526. package/dist/umd/esm/shared/charts/components/GPolarisViz/utilities/index.d.ts +6 -0
  527. package/dist/umd/esm/shared/charts/components/GSimpleBarChart.d.ts +5 -0
  528. package/dist/umd/esm/shared/charts/components/index.d.ts +7 -0
  529. package/dist/umd/esm/shared/charts/constants/chart.d.ts +2 -0
  530. package/dist/umd/esm/shared/charts/constants/index.d.ts +1 -0
  531. package/dist/umd/esm/shared/charts/contexts/GChartProvider.d.ts +9 -0
  532. package/dist/umd/esm/shared/charts/contexts/index.d.ts +1 -0
  533. package/dist/umd/esm/shared/charts/index.d.ts +4 -0
  534. package/dist/umd/esm/shared/charts/types/chart.d.ts +35 -0
  535. package/dist/umd/esm/shared/charts/types/index.d.ts +1 -0
  536. package/dist/umd/esm/shared/components/GActivatorPopover/GActivatorPopover.d.ts +23 -0
  537. package/dist/umd/esm/shared/components/GActivatorPopover/index.d.ts +1 -0
  538. package/dist/umd/esm/shared/components/GButton/GButton.d.ts +19 -0
  539. package/dist/umd/esm/shared/components/GButton/index.d.ts +1 -0
  540. package/dist/umd/esm/shared/components/GCheckbox/GCheckbox.d.ts +39 -0
  541. package/dist/umd/esm/shared/components/GCheckbox/index.d.ts +1 -0
  542. package/dist/umd/esm/shared/components/GChoice/ChoiceHelpText.d.ts +4 -0
  543. package/dist/umd/esm/shared/components/GChoice/GChoice.d.ts +44 -0
  544. package/dist/umd/esm/shared/components/GChoice/index.d.ts +2 -0
  545. package/dist/umd/esm/shared/components/GClickable/GClickable.d.ts +10 -0
  546. package/dist/umd/esm/shared/components/GClickable/index.d.ts +1 -0
  547. package/dist/umd/esm/shared/components/GDiv/GDiv.d.ts +7 -0
  548. package/dist/umd/esm/shared/components/GDiv/index.d.ts +1 -0
  549. package/dist/umd/esm/shared/components/GI18NText/GI18NText.d.ts +2 -0
  550. package/dist/umd/esm/shared/components/GI18NText/index.d.ts +2 -0
  551. package/dist/umd/esm/shared/components/GI18NText/types.d.ts +6 -0
  552. package/dist/umd/esm/shared/components/GOptionList/GOptionList.d.ts +11 -0
  553. package/dist/umd/esm/shared/components/GOptionList/index.d.ts +1 -0
  554. package/dist/umd/esm/shared/components/GSelector/GSelector.d.ts +27 -0
  555. package/dist/umd/esm/shared/components/GSelector/index.d.ts +1 -0
  556. package/dist/umd/esm/shared/components/GTextLink/GTextLink.d.ts +9 -0
  557. package/dist/umd/esm/shared/components/GTextLink/index.d.ts +1 -0
  558. package/dist/umd/esm/shared/components/GTimePicker/GTimePicker.d.ts +17 -0
  559. package/dist/umd/esm/shared/components/GTimePicker/components/BaseTimePicker.d.ts +10 -0
  560. package/dist/umd/esm/shared/components/GTimePicker/components/CompareTimePicker.d.ts +5 -0
  561. package/dist/umd/esm/shared/components/GTimePicker/components/DateTimeFilterAddition.d.ts +2 -0
  562. package/dist/umd/esm/shared/components/GTimePicker/components/DateTimeFilterInputs.d.ts +9 -0
  563. package/dist/umd/esm/shared/components/GTimePicker/components/DateTimeFilters.d.ts +15 -0
  564. package/dist/umd/esm/shared/components/GTimePicker/components/MainTimePicker.d.ts +3 -0
  565. package/dist/umd/esm/shared/components/GTimePicker/components/index.d.ts +2 -0
  566. package/dist/umd/esm/shared/components/GTimePicker/constants/compareDateTimePicker.d.ts +12 -0
  567. package/dist/umd/esm/shared/components/GTimePicker/constants/datePicker.d.ts +14 -0
  568. package/dist/umd/esm/shared/components/GTimePicker/constants/index.d.ts +2 -0
  569. package/dist/umd/esm/shared/components/GTimePicker/constants/mainDataTimePicker.d.ts +14 -0
  570. package/dist/umd/esm/shared/components/GTimePicker/contexts/DateTimePickerProvider.d.ts +15 -0
  571. package/dist/umd/esm/shared/components/GTimePicker/contexts/index.d.ts +1 -0
  572. package/dist/umd/esm/shared/components/GTimePicker/helpers/date-range-info.d.ts +16 -0
  573. package/dist/umd/esm/shared/components/GTimePicker/helpers/index.d.ts +4 -0
  574. package/dist/umd/esm/shared/components/GTimePicker/helpers/parse-date.d.ts +24 -0
  575. package/dist/umd/esm/shared/components/GTimePicker/helpers/time-picker.d.ts +76 -0
  576. package/dist/umd/esm/shared/components/GTimePicker/helpers/version.d.ts +2 -0
  577. package/dist/umd/esm/shared/components/GTimePicker/hooks/index.d.ts +3 -0
  578. package/dist/umd/esm/shared/components/GTimePicker/hooks/useCompareDateTimePicker.d.ts +26 -0
  579. package/dist/umd/esm/shared/components/GTimePicker/hooks/useDateTimeFilter.d.ts +18 -0
  580. package/dist/umd/esm/shared/components/GTimePicker/hooks/useDateTimePicker.d.ts +30 -0
  581. package/dist/umd/esm/shared/components/GTimePicker/hooks/useVersionDateTimeFilters.d.ts +9 -0
  582. package/dist/umd/esm/shared/components/GTimePicker/index.d.ts +7 -0
  583. package/dist/umd/esm/shared/components/GTimePicker/types/index.d.ts +38 -0
  584. package/dist/umd/esm/shared/components/GTooltip/GTooltip.d.ts +22 -0
  585. package/dist/umd/esm/shared/components/GTooltip/index.d.ts +2 -0
  586. package/dist/umd/esm/shared/components/GViewBySelector/GViewBySelector.d.ts +17 -0
  587. package/dist/umd/esm/shared/components/GViewBySelector/index.d.ts +1 -0
  588. package/dist/umd/esm/shared/components/index.d.ts +14 -1
  589. package/dist/umd/esm/types/analytic-mode.d.ts +5 -0
  590. package/dist/umd/esm/types/currency.d.ts +329 -0
  591. package/dist/umd/esm/types/index.d.ts +2 -0
  592. package/dist/umd/esm/types/metric.d.ts +27 -0
  593. package/dist/umd/esm/utils/index.d.ts +1 -0
  594. package/dist/umd/esm/utils/number.d.ts +1 -0
  595. package/dist/umd/esm/utils/sort.d.ts +13 -0
  596. package/dist/umd/gemxql.js +1 -1
  597. package/dist/umd/index.js +1 -1
  598. package/dist/umd/types.js +1 -1
  599. package/package.json +9 -1
@@ -2,11 +2,12 @@
2
2
  import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
3
3
  import '@tanstack/react-query';
4
4
  import dayjs from 'dayjs';
5
- import quarterOfYear from 'dayjs/plugin/quarterOfYear';
6
- import timezone from 'dayjs/plugin/timezone';
7
- import utc from 'dayjs/plugin/utc';
8
- import React, { useMemo, forwardRef, useState, useRef, useImperativeHandle, useEffect } from 'react';
9
- import { SkeletonDisplayText, Box, Popover, InlineStack, BlockStack, Text, List, Card, SkeletonBodyText, Icon } from '@shopify/polaris';
5
+ import quarterOfYear from 'dayjs/plugin/quarterOfYear.js';
6
+ import timezone from 'dayjs/plugin/timezone.js';
7
+ import utc from 'dayjs/plugin/utc.js';
8
+ import React, { useMemo, useCallback, useState, useEffect, forwardRef, Fragment as Fragment$1, useRef, useImperativeHandle, createContext, useContext } from 'react';
9
+ import { Text, Box, InlineStack, Icon, InlineGrid, Tooltip, Button, BlockStack, Checkbox, RadioButton, Popover, ActionList, Link, SkeletonDisplayText, List, TextField, Collapsible, useBreakpoints, Select, Scrollable, OptionList, DatePicker, ButtonGroup, Card, SkeletonBodyText } from '@shopify/polaris';
10
+ import { useTranslation } from 'react-i18next';
10
11
  import { PolarisVizProvider, LineChart, DonutChart } from '@shopify/polaris-viz';
11
12
 
12
13
  var EMetricKey;
@@ -158,12 +159,12 @@ var EAnalyticColumnKey;
158
159
  EAnalyticColumnKey["TRAFFIC_SOURCE_ITEMS"] = "traffic_source_items";
159
160
  })(EAnalyticColumnKey || (EAnalyticColumnKey = {}));
160
161
 
161
- var EAnalyticMode;
162
+ var EAnalyticMode$1;
162
163
  (function (EAnalyticMode) {
163
164
  EAnalyticMode["ALL_SESSION"] = "ALL_SESSION";
164
165
  EAnalyticMode["FIRST_SESSION"] = "FIRST_SESSION";
165
166
  EAnalyticMode["PAGE_ONLY"] = "PAGE_ONLY";
166
- })(EAnalyticMode || (EAnalyticMode = {}));
167
+ })(EAnalyticMode$1 || (EAnalyticMode$1 = {}));
167
168
 
168
169
  var EAnalyticSource;
169
170
  (function (EAnalyticSource) {
@@ -351,11 +352,25 @@ dayjs.extend(utc);
351
352
  dayjs.extend(timezone);
352
353
  dayjs.extend(quarterOfYear);
353
354
  let tz = 'UTC';
355
+ const DEFAULT_DATE_FORMAT = 'YYYY-MM-DD HH:mm:ss';
354
356
  const dayjsTz = (date) => {
355
357
  if (!date)
356
358
  return dayjs().tz(tz);
357
359
  return dayjs(date).tz(tz);
358
360
  };
361
+ const convertDateToTz = (date) => {
362
+ if (!date)
363
+ return dayjs.tz(dayjs().format(DEFAULT_DATE_FORMAT), tz);
364
+ return dayjs.tz(dayjs(date).format(DEFAULT_DATE_FORMAT), tz);
365
+ };
366
+ const dayjsTzToLocalTZ = (date) => {
367
+ if (!date)
368
+ return dayjs(dayjsTz().format(DEFAULT_DATE_FORMAT));
369
+ return dayjs(dayjsTz(date).format(DEFAULT_DATE_FORMAT));
370
+ };
371
+ const dayjsTzToDate = (date) => {
372
+ return dayjsTzToLocalTZ(date).toDate();
373
+ };
359
374
 
360
375
  const TRIM_DECIMAL_ZEROS_REGEX = /\.0+$/;
361
376
  const DEFAULT_DECIMALS = 2;
@@ -365,6 +380,10 @@ const trimDecimalZeros = (number) => {
365
380
  const cleanDecimal = (number, decimals = DEFAULT_DECIMALS) => {
366
381
  return trimDecimalZeros(number.toFixed(decimals));
367
382
  };
383
+ const semverToNum = (v) => {
384
+ const [major, minor, patch] = v.split('.').map((n) => Number(n));
385
+ return (major ?? 0) * 1_000_000 + (minor ?? 0) * 1_000 + (patch ?? 0);
386
+ };
368
387
 
369
388
  /**
370
389
  * Utility function to calculate percentage and format it.
@@ -623,6 +642,11 @@ const TARGET_CHANNEL = [
623
642
  { value: ETrafficSourceType.SMS, label: 'SMS' },
624
643
  ];
625
644
 
645
+ const CAMPAIGN_BACKGROUND_MAIN = {
646
+ ORIGIN: '#2C7DFF',
647
+ VARIANT: '#F34A70',
648
+ };
649
+
626
650
  const DEFAULT_CURRENT_PERIOD_LABEL = 'Current';
627
651
  const DEFAULT_PREVIOUS_PERIOD_LABEL = 'Previous';
628
652
  const CHART_MIN_HEIGHT = 228;
@@ -637,11 +661,195 @@ const TREND_TONE = {
637
661
  };
638
662
  const PLACEHOLDER_VALUE = '-';
639
663
 
664
+ const DEFAULT_CURRENCY_ANALYTIC = 'USD';
665
+
640
666
  var THUMB_PRODUCT_DEFAULT = "data:image/svg+xml;base64,PHN2ZwogIHdpZHRoPSI5MCIKICBoZWlnaHQ9IjcyIgogIHZpZXdCb3g9IjAgMCA5MCA3MiIKICBmaWxsPSJub25lIgogIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKPgogIDxwYXRoCiAgICBkPSJNNDguNzUgMzQuNUM0OS45OTI2IDM0LjUgNTEgMzMuNDkyNiA1MSAzMi4yNUM1MSAzMS4wMDc0IDQ5Ljk5MjYgMzAgNDguNzUgMzBDNDcuNTA3NCAzMCA0Ni41IDMxLjAwNzQgNDYuNSAzMi4yNUM0Ni41IDMzLjQ5MjYgNDcuNTA3NCAzNC41IDQ4Ljc1IDM0LjVaIgogICAgZmlsbD0iIzYxNjE2MSIKICAvPgogIDxwYXRoCiAgICBmaWxsUnVsZT0iZXZlbm9kZCIKICAgIGNsaXBSdWxlPSJldmVub2RkIgogICAgZD0iTTQzLjUyNjggMjYuMjVINDYuNDczMkM0Ny42OTI0IDI2LjI1IDQ4LjY3NTggMjYuMjUgNDkuNDcyMiAyNi4zMTVDNTAuMjkyMiAyNi4zODIgNTEuMDEyNCAyNi41MjM2IDUxLjY3ODcgMjYuODYzMUM1Mi43MzcxIDI3LjQwMjQgNTMuNTk3NiAyOC4yNjI5IDU0LjEzNjkgMjkuMzIxM0M1NC40NzY0IDI5Ljk4NzYgNTQuNjE4IDMwLjcwNzggNTQuNjg1IDMxLjUyNzhDNTQuNzUgMzIuMzI0MiA1NC43NSAzMy4zMDc2IDU0Ljc1IDM0LjUyNjhWMzcuNDczMkM1NC43NSAzOC42OTI0IDU0Ljc1IDM5LjY3NTggNTQuNjg1IDQwLjQ3MjJDNTQuNjE4IDQxLjI5MjIgNTQuNDc2NCA0Mi4wMTI0IDU0LjEzNjkgNDIuNjc4N0M1My41OTc2IDQzLjczNzEgNTIuNzM3MSA0NC41OTc2IDUxLjY3ODcgNDUuMTM2OUM1MS4wMTI0IDQ1LjQ3NjQgNTAuMjkyMiA0NS42MTggNDkuNDcyMiA0NS42ODVDNDguNjc1OCA0NS43NSA0Ny42OTI0IDQ1Ljc1IDQ2LjQ3MzIgNDUuNzVINDMuNTI2OEM0Mi4zMDc2IDQ1Ljc1IDQxLjMyNDIgNDUuNzUgNDAuNTI3OCA0NS42ODVDMzkuNzA3OCA0NS42MTggMzguOTg3NiA0NS40NzY0IDM4LjMyMTMgNDUuMTM2OUMzNy4yNjI5IDQ0LjU5NzYgMzYuNDAyNCA0My43MzcxIDM1Ljg2MzEgNDIuNjc4N0MzNS41MjM2IDQyLjAxMjQgMzUuMzgyIDQxLjI5MjIgMzUuMzE1IDQwLjQ3MjJDMzUuMjUgMzkuNjc1OCAzNS4yNSAzOC42OTI0IDM1LjI1IDM3LjQ3MzJWMzQuNTI2OEMzNS4yNSAzMy4zMDc2IDM1LjI1IDMyLjMyNDIgMzUuMzE1IDMxLjUyNzhDMzUuMzgyIDMwLjcwNzggMzUuNTIzNiAyOS45ODc2IDM1Ljg2MzEgMjkuMzIxM0MzNi40MDI0IDI4LjI2MjkgMzcuMjYyOSAyNy40MDI0IDM4LjMyMTMgMjYuODYzMUMzOC45ODc2IDI2LjUyMzYgMzkuNzA3OCAyNi4zODIgNDAuNTI3OCAyNi4zMTVDNDEuMzI0MiAyNi4yNSA0Mi4zMDc2IDI2LjI1IDQzLjUyNjggMjYuMjVaTTQwLjcxMSAyOC41NTc2QzQwLjAzMDIgMjguNjEzMiAzOS42MzkxIDI4LjcxNjkgMzkuMzQyOCAyOC44Njc5QzM4LjcwNzcgMjkuMTkxNCAzOC4xOTE0IDI5LjcwNzcgMzcuODY3OSAzMC4zNDI4QzM3LjcxNjkgMzAuNjM5MSAzNy42MTMyIDMxLjAzMDIgMzcuNTU3NiAzMS43MTFDMzcuNTAwOSAzMi40MDUgMzcuNSAzMy4yOTYzIDM3LjUgMzQuNTc1VjM2LjcxNzdMMzguNTg0MiAzNS40MTY3QzM5LjU3MjQgMzQuMjMwOSA0MS4zNjU1IDM0LjE0OTYgNDIuNDU2OSAzNS4yNDFMNDYuNSAzOS4yODQxTDQ4LjI2OTQgMzcuNTE0NkM0OS4zNzU3IDM2LjQwODMgNTEuMTk4IDM2LjUwOTMgNTIuMTc1NCAzNy43MzA5TDUyLjQ5OTUgMzguMTM2MUM1Mi41IDM3LjkxMzEgNTIuNSAzNy42NzY1IDUyLjUgMzcuNDI1VjM0LjU3NUM1Mi41IDMzLjI5NjMgNTIuNDk5MSAzMi40MDUgNTIuNDQyNCAzMS43MTFDNTIuMzg2OCAzMS4wMzAyIDUyLjI4MzEgMzAuNjM5MSA1Mi4xMzIxIDMwLjM0MjhDNTEuODA4NiAyOS43MDc3IDUxLjI5MjMgMjkuMTkxNCA1MC42NTcyIDI4Ljg2NzlDNTAuMzYwOSAyOC43MTY5IDQ5Ljk2OTggMjguNjEzMiA0OS4yODkgMjguNTU3NkM0OC41OTUgMjguNTAwOSA0Ny43MDM3IDI4LjUgNDYuNDI1IDI4LjVINDMuNTc1QzQyLjI5NjMgMjguNSA0MS40MDUgMjguNTAwOSA0MC43MTEgMjguNTU3NlpNMzcuNTU3NiA0MC4yODlDMzcuNTU0MyA0MC4yNDkyIDM3LjU1MTMgNDAuMjA4OCAzNy41NDg0IDQwLjE2NzhDMzcuNTcxMSA0MC4xNDQ4IDM3LjU5MzEgNDAuMTIwNiAzNy42MTQyIDQwLjA5NTNMNDAuMzEyNyAzNi44NTcxQzQwLjQ1MzkgMzYuNjg3NyA0MC43MSAzNi42NzYxIDQwLjg2NTkgMzYuODMyTDQ1LjcwNDUgNDEuNjcwNkM0Ni4xNDM4IDQyLjEwOTkgNDYuODU2MSA0Mi4xMDk5IDQ3LjI5NTUgNDEuNjcwNkw0OS44NjA0IDM5LjEwNTZDNTAuMDE4NSAzOC45NDc2IDUwLjI3ODggMzguOTYyIDUwLjQxODQgMzkuMTM2NUw1Mi4yMzc3IDQxLjQxMDdDNTIuMjA1NiA0MS41MDEgNTIuMTcwNCA0MS41ODIyIDUyLjEzMjEgNDEuNjU3MkM1MS44MDg2IDQyLjI5MjMgNTEuMjkyMyA0Mi44MDg2IDUwLjY1NzIgNDMuMTMyMUM1MC4zNjA5IDQzLjI4MzEgNDkuOTY5OCA0My4zODY4IDQ5LjI4OSA0My40NDI0QzQ4LjU5NSA0My40OTkxIDQ3LjcwMzcgNDMuNSA0Ni40MjUgNDMuNUg0My41NzVDNDIuMjk2MyA0My41IDQxLjQwNSA0My40OTkxIDQwLjcxMSA0My40NDI0QzQwLjAzMDIgNDMuMzg2OCAzOS42MzkxIDQzLjI4MzEgMzkuMzQyOCA0My4xMzIxQzM4LjcwNzcgNDIuODA4NiAzOC4xOTE0IDQyLjI5MjMgMzcuODY3OSA0MS42NTcyQzM3LjcxNjkgNDEuMzYwOSAzNy42MTMyIDQwLjk2OTggMzcuNTU3NiA0MC4yODlaIgogICAgZmlsbD0iIzYxNjE2MSIKICAvPgo8L3N2Zz4K";
641
667
 
642
- const GSkeletonDisplayText = (props) => {
643
- const height = props.height ?? '50px';
644
- return (jsxs("div", { className: "Polaris-GSkeletonDisplayText", children: [jsx("style", { children: `.Polaris-GSkeletonDisplayText .Polaris-SkeletonDisplayText__DisplayText { height: ${height} !important; }` }), jsx(SkeletonDisplayText, { maxWidth: "100%", size: "extraLarge" })] }));
668
+ var SvgArrowRightIcon = function SvgArrowRightIcon(props) {
669
+ return /*#__PURE__*/React.createElement("svg", Object.assign({
670
+ viewBox: "0 0 20 20"
671
+ }, props), /*#__PURE__*/React.createElement("path", {
672
+ fillRule: "evenodd",
673
+ d: "M3.5 10a.75.75 0 0 1 .75-.75h9.69l-2.72-2.72a.75.75 0 1 1 1.06-1.06l4 4a.75.75 0 0 1 0 1.06l-4 4a.75.75 0 0 1-1.06-1.06l2.72-2.72h-9.69a.75.75 0 0 1-.75-.75Z"
674
+ }));
675
+ };
676
+ SvgArrowRightIcon.displayName = "ArrowRightIcon";
677
+
678
+ var SvgCalendarIcon = function SvgCalendarIcon(props) {
679
+ return /*#__PURE__*/React.createElement("svg", Object.assign({
680
+ viewBox: "0 0 20 20"
681
+ }, props), /*#__PURE__*/React.createElement("path", {
682
+ fillRule: "evenodd",
683
+ d: "M7.75 3.5a.75.75 0 0 0-1.5 0v.407a3.075 3.075 0 0 0-.702.252 3.75 3.75 0 0 0-1.64 1.639c-.226.444-.32.924-.365 1.47-.043.531-.043 1.187-.043 2v1.464c0 .813 0 1.469.043 2 .045.546.14 1.026.366 1.47a3.75 3.75 0 0 0 1.639 1.64c.444.226.924.32 1.47.365.531.043 1.187.043 2 .043h3.383c.323 0 .542 0 .735-.02a3.75 3.75 0 0 0 3.344-3.344c.02-.193.02-.412.02-.735v-2.883c0-.813 0-1.469-.043-2-.045-.546-.14-1.026-.366-1.47a3.75 3.75 0 0 0-1.639-1.64 3.076 3.076 0 0 0-.702-.251v-.407a.75.75 0 0 0-1.5 0v.259c-.373-.009-.794-.009-1.268-.009h-1.964c-.474 0-.895 0-1.268.009v-.259Zm-1.521 1.995c.197-.1.458-.17.912-.207.462-.037 1.057-.038 1.909-.038h1.9c.853 0 1.447 0 1.91.038.453.037.714.107.912.207.423.216.767.56.983.984.1.197.17.458.207.912.014.18.024.38.029.609h-9.982c.006-.228.015-.429.03-.61.036-.453.106-.714.206-.911a2.25 2.25 0 0 1 .984-.984Zm-1.229 4.005v1.2c0 .853 0 1.447.038 1.91.037.453.107.714.207.912.216.423.56.767.984.983.197.1.458.17.912.207.462.037 1.057.038 1.909.038h3.306c.385 0 .52-.001.626-.012a2.25 2.25 0 0 0 2.006-2.006c.011-.106.012-.241.012-.626v-2.606h-10Z"
684
+ }));
685
+ };
686
+ SvgCalendarIcon.displayName = "CalendarIcon";
687
+
688
+ var SvgCheckIcon = function SvgCheckIcon(props) {
689
+ return /*#__PURE__*/React.createElement("svg", Object.assign({
690
+ viewBox: "0 0 20 20"
691
+ }, props), /*#__PURE__*/React.createElement("path", {
692
+ fillRule: "evenodd",
693
+ d: "M15.78 5.97a.75.75 0 0 1 0 1.06l-6.5 6.5a.75.75 0 0 1-1.06 0l-3.25-3.25a.75.75 0 1 1 1.06-1.06l2.72 2.72 5.97-5.97a.75.75 0 0 1 1.06 0Z"
694
+ }));
695
+ };
696
+ SvgCheckIcon.displayName = "CheckIcon";
697
+
698
+ var SvgChevronDownIcon = function SvgChevronDownIcon(props) {
699
+ return /*#__PURE__*/React.createElement("svg", Object.assign({
700
+ viewBox: "0 0 20 20"
701
+ }, props), /*#__PURE__*/React.createElement("path", {
702
+ fillRule: "evenodd",
703
+ d: "M5.72 8.47a.75.75 0 0 1 1.06 0l3.47 3.47 3.47-3.47a.75.75 0 1 1 1.06 1.06l-4 4a.75.75 0 0 1-1.06 0l-4-4a.75.75 0 0 1 0-1.06Z"
704
+ }));
705
+ };
706
+ SvgChevronDownIcon.displayName = "ChevronDownIcon";
707
+
708
+ var SvgChevronRightIcon = function SvgChevronRightIcon(props) {
709
+ return /*#__PURE__*/React.createElement("svg", Object.assign({
710
+ viewBox: "0 0 20 20"
711
+ }, props), /*#__PURE__*/React.createElement("path", {
712
+ fillRule: "evenodd",
713
+ d: "M7.72 14.53a.75.75 0 0 1 0-1.06l3.47-3.47-3.47-3.47a.75.75 0 0 1 1.06-1.06l4 4a.75.75 0 0 1 0 1.06l-4 4a.75.75 0 0 1-1.06 0Z"
714
+ }));
715
+ };
716
+ SvgChevronRightIcon.displayName = "ChevronRightIcon";
717
+
718
+ var SvgChevronUpIcon = function SvgChevronUpIcon(props) {
719
+ return /*#__PURE__*/React.createElement("svg", Object.assign({
720
+ viewBox: "0 0 20 20"
721
+ }, props), /*#__PURE__*/React.createElement("path", {
722
+ fillRule: "evenodd",
723
+ d: "M14.53 12.28a.75.75 0 0 1-1.06 0l-3.47-3.47-3.47 3.47a.75.75 0 0 1-1.06-1.06l4-4a.75.75 0 0 1 1.06 0l4 4a.75.75 0 0 1 0 1.06Z"
724
+ }));
725
+ };
726
+ SvgChevronUpIcon.displayName = "ChevronUpIcon";
727
+
728
+ function toVal(mix) {
729
+ if (typeof mix === 'string') {
730
+ return mix;
731
+ }
732
+ else if (typeof mix === 'object' && mix !== null) {
733
+ return Object.keys(mix)
734
+ .filter((key) => mix[key])
735
+ .join(' ');
736
+ }
737
+ else {
738
+ return false;
739
+ }
740
+ }
741
+ function cls(...classes) {
742
+ return classes.map(toVal).filter(Boolean).join(' ');
743
+ }
744
+
745
+ function compareValues(a, b, order = 'asc') {
746
+ if (a === b)
747
+ return 0;
748
+ if (a === undefined || b === undefined) {
749
+ if (a === undefined && b !== undefined)
750
+ return order === 'asc' ? -1 : 1;
751
+ if (b === undefined && a !== undefined)
752
+ return order === 'asc' ? 1 : -1;
753
+ return 0;
754
+ }
755
+ const isDate = (val) => typeof val !== 'boolean' && !isNaN(Date.parse(val));
756
+ const isString = (val) => typeof val === 'string';
757
+ let comparison = 0;
758
+ if (isDate(a) && isDate(b)) {
759
+ const dateA = a instanceof Date ? a : new Date(a);
760
+ const dateB = b instanceof Date ? b : new Date(b);
761
+ comparison = dateA > dateB ? 1 : -1;
762
+ }
763
+ else if (isString(a) && isString(b)) {
764
+ comparison = a > b ? 1 : -1;
765
+ }
766
+ else {
767
+ comparison = a > b ? 1 : -1;
768
+ }
769
+ return order === 'asc' ? -comparison : comparison;
770
+ }
771
+ function getNestedValue(obj, path) {
772
+ if (typeof path === 'string') {
773
+ return path
774
+ .replace(/\[(\d+)\]/g, '.$1')
775
+ .split('.')
776
+ .reduce((acc, key) => acc?.[key], obj);
777
+ }
778
+ return obj[path];
779
+ }
780
+ function sortByCondition(array, options) {
781
+ const { attr, order = 'asc', preferredValue, backupAttr, orderArrayAttr, orderArray } = options;
782
+ return array.slice().sort((a, b) => {
783
+ const valueA = getNestedValue(a, attr);
784
+ const valueB = getNestedValue(b, attr);
785
+ if (preferredValue !== undefined) {
786
+ if (valueA === preferredValue && valueB !== preferredValue)
787
+ return -1;
788
+ if (valueB === preferredValue && valueA !== preferredValue)
789
+ return 1;
790
+ }
791
+ if (orderArrayAttr === attr && orderArray) {
792
+ const orderArrayValue = orderArray[order];
793
+ return orderArrayValue.indexOf(valueA) - orderArrayValue.indexOf(valueB);
794
+ }
795
+ const primaryComparison = compareValues(valueA, valueB, order);
796
+ if (primaryComparison !== 0)
797
+ return primaryComparison;
798
+ if (backupAttr)
799
+ return compareValues(a[backupAttr], b[backupAttr], order);
800
+ return 0;
801
+ });
802
+ }
803
+ function sortByConditions(array, optionsArray) {
804
+ return optionsArray.reduce((sortedArray, options) => {
805
+ return sortByCondition(sortedArray, options);
806
+ }, array.slice());
807
+ }
808
+
809
+ const GClickable = ({ children, fullWidth = false, cursor = 'pointer', onClick, onMouseEnter, onMouseLeave, }) => {
810
+ return (jsx("div", { role: "button", tabIndex: 0, className: cls({
811
+ 'w-full': fullWidth,
812
+ 'cursor-pointer': cursor === 'pointer',
813
+ 'cursor-default': cursor === 'default',
814
+ 'cursor-not-allowed': cursor === 'not-allowed',
815
+ }), onKeyDown: (e) => {
816
+ if (e.key === 'Enter' || e.key === ' ') {
817
+ e.preventDefault();
818
+ onClick();
819
+ }
820
+ }, onClick: onClick, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave, children: children }));
821
+ };
822
+
823
+ const GActivatorPopover = ({ onClick, active, content, textProps, boxProps: customBoxProps, disabled, icon: customIcon, }) => {
824
+ const boxProps = useMemo(() => {
825
+ if (disabled) {
826
+ return {
827
+ borderColor: 'border-disabled',
828
+ background: 'bg-surface-disabled',
829
+ ...customBoxProps,
830
+ };
831
+ }
832
+ return {
833
+ shadow: active ? 'button-inset' : 'button',
834
+ background: active ? 'bg-fill-active' : 'bg-fill',
835
+ ...customBoxProps,
836
+ };
837
+ }, [active, disabled, customBoxProps]);
838
+ const toneClass = useMemo(() => {
839
+ if (disabled) {
840
+ return 'text-[var(--p-color-text-disabled)]';
841
+ }
842
+ return active ? 'text-[var(--p-color-text-subdued)]' : 'text-[var(--p-color-text)]';
843
+ }, [active, disabled]);
844
+ const textComponent = useMemo(() => {
845
+ return (jsx(Text, { as: "span", variant: "bodyMd", fontWeight: "medium", tone: disabled ? 'inherit' : textProps?.tone, truncate: true, ...(textProps?.variant && { variant: textProps.variant }), children: content }));
846
+ }, [content, textProps, disabled]);
847
+ const handleClick = useCallback(() => {
848
+ if (disabled)
849
+ return;
850
+ onClick();
851
+ }, [disabled, onClick]);
852
+ return (jsx(GClickable, { cursor: disabled ? 'default' : 'pointer', onClick: handleClick, children: jsx("div", { className: cls(toneClass), children: jsxs(Box, { padding: "150", paddingInline: "300", paddingInlineEnd: "150", borderRadius: "200", ...boxProps, children: [customIcon && (jsxs(InlineStack, { gap: "200", align: "center", wrap: false, children: [jsx(Box, { children: jsx(Icon, { source: customIcon }) }), textComponent] })), !customIcon && (jsxs(InlineGrid, { columns: "1fr 20px", gap: "200", alignItems: "center", children: [textComponent, jsx(Icon, { source: active ? SvgChevronUpIcon : SvgChevronDownIcon })] }))] }) }) }));
645
853
  };
646
854
 
647
855
  const GBlockCenter = ({ height, align, inlineAlign, display, ...props }) => {
@@ -672,22 +880,224 @@ const GBlockCenter = ({ height, align, inlineAlign, display, ...props }) => {
672
880
  }, children: jsx(Box, { ...props }) }));
673
881
  };
674
882
 
675
- function toVal(mix) {
676
- if (typeof mix === 'string') {
677
- return mix;
678
- }
679
- else if (typeof mix === 'object' && mix !== null) {
680
- return Object.keys(mix)
681
- .filter((key) => mix[key])
682
- .join(' ');
883
+ const GTooltip = ({ isEnabled = true, content, maxWidth, ...props }) => {
884
+ const hasContent = isEnabled && !!content;
885
+ return hasContent ? (jsx(Tooltip, { width: "wide", hoverDelay: 500, content: content, ...props, accessibilityLabel: maxWidth?.toString() })) : (props.children);
886
+ };
887
+
888
+ const GButton = ({ activatorWrapper, children, iconRight, inset, stopPropagation = true, onClick, themeTone = 'light', variant, ...props }) => {
889
+ const Wrapper = activatorWrapper || 'div';
890
+ const isNeutral = variant === 'neutral';
891
+ const polarisVariant = isNeutral ? undefined : variant;
892
+ const handleClick = (e) => {
893
+ stopPropagation && e.stopPropagation();
894
+ if (props.disabled)
895
+ return;
896
+ onClick?.();
897
+ };
898
+ const button = (jsx(GTooltip, { activatorWrapper: "tooltip-content", ...props.tooltip, children: jsx(Wrapper, { className: cls('Polaris-GButton', {
899
+ 'Polaris-GButton--icon-right': iconRight,
900
+ 'Polaris-GButton--dark': themeTone === 'dark',
901
+ 'Polaris-GButton--neutral': isNeutral,
902
+ 'cursor-default': props.disabled,
903
+ 'Polaris-GButton--fullWidth': props.fullWidth,
904
+ flex: inset,
905
+ }), onClick: handleClick, children: jsx(Button, { variant: polarisVariant, ...props, children: children }) }) }));
906
+ if (inset) {
907
+ return jsx(Box, { padding: "100", children: button });
683
908
  }
684
- else {
685
- return false;
909
+ return button;
910
+ };
911
+
912
+ const GCheckbox = ({ ...props }) => {
913
+ return props.multiple ? jsx(GCheckboxMultiple, { ...props }) : jsx(GCheckboxSingle, { ...props });
914
+ };
915
+ const GCheckboxMultiple = ({ options, onChange, onChangeSingleValue, emptySelected, selected, onHover, itemHovered, dependentDisabledValues, }) => {
916
+ const [settingOptions, setSettingOptions] = useState([]);
917
+ const handleChange = (value) => {
918
+ if (onChangeSingleValue) {
919
+ onChangeSingleValue(value);
920
+ }
921
+ const updatedOptions = settingOptions.includes(value)
922
+ ? settingOptions.filter((item) => item !== value)
923
+ : [...settingOptions, value];
924
+ setSettingOptions(updatedOptions);
925
+ onChange(updatedOptions);
926
+ };
927
+ const handleHover = (value) => {
928
+ if (!onHover)
929
+ return;
930
+ onHover(value);
931
+ };
932
+ useEffect(() => {
933
+ setSettingOptions(() => {
934
+ if (selected) {
935
+ return options.filter((item) => selected.includes(item.value)).map((item) => item.value);
936
+ }
937
+ return [];
938
+ });
939
+ // eslint-disable-next-line react-hooks/exhaustive-deps
940
+ }, [selected]);
941
+ return (jsx(BlockStack, { children: options.map((item) => {
942
+ const hasForceUnchecked = dependentDisabledValues?.has(item.value);
943
+ const isOnlyOneSelected = emptySelected && options.filter((opt) => opt.selected).length === 1 && emptySelected;
944
+ const handleCheckboxClick = () => {
945
+ if (isOnlyOneSelected)
946
+ return;
947
+ handleChange(item.value);
948
+ };
949
+ return (jsx("div", { className: cls('flex w-full items-center justify-between', {
950
+ 'cursor-not-allowed': isOnlyOneSelected,
951
+ 'cursor-pointer': !isOnlyOneSelected,
952
+ 'bg-surface-hover rounded-lg': itemHovered === item.value,
953
+ }), onClick: () => {
954
+ if (isOnlyOneSelected || item.disabled)
955
+ return;
956
+ handleCheckboxClick();
957
+ }, onMouseEnter: () => handleHover(item.value), onMouseLeave: () => handleHover(undefined), children: isOnlyOneSelected ? (jsx(GTooltip, { isEnabled: item.tooltip?.isEnabled, ...item.tooltip, children: jsx(Box, { paddingBlock: "150", paddingInline: "200", width: "100%", children: jsxs(InlineStack, { blockAlign: "center", gap: "150", children: [jsx(Checkbox, { label: item.label, labelHidden: true, checked: item.selected, disabled: true }), jsx(Text, { as: "p", variant: "bodyMd", tone: "subdued", children: item.label })] }) }) })) : (jsx(Box, { paddingBlock: "150", paddingInline: "200", minWidth: "0", children: jsxs(InlineStack, { blockAlign: "center", gap: "150", wrap: false, children: [jsx(Checkbox, { label: item.label, labelHidden: true, checked: hasForceUnchecked ? false : settingOptions.includes(item.value), onChange: handleCheckboxClick, disabled: item.disabled }), jsxs(Box, { minWidth: "0", children: [jsx(Text, { as: "p", variant: "bodyMd", truncate: true, tone: hasForceUnchecked ? 'disabled' : 'inherit', children: item.label }), item.description && (jsx(Text, { as: "p", variant: "bodySm", tone: "disabled", truncate: true, children: item.description }))] })] }) })) }, item.value));
958
+ }) }));
959
+ };
960
+ const GCheckboxSingle = ({ options, onChange }) => {
961
+ return (jsx(BlockStack, { gap: "300", children: options.map((item) => (jsx(RadioButton, { label: item.label, checked: item.selected, onChange: () => onChange(item.value), helpText: item.helpText ? jsx(ChoiceHelpText, { item: item }) : undefined }, item.value))) }));
962
+ };
963
+
964
+ const GDiv = forwardRef(({ children, onClick, ...props }, ref) => {
965
+ const onKeyDown = useCallback((e) => {
966
+ if (e.key === 'Enter' || e.key === ' ') {
967
+ e.preventDefault();
968
+ onClick?.();
969
+ }
970
+ }, [onClick]);
971
+ return (jsx("div", { ref: ref, ...props, role: "button", tabIndex: 0, onKeyDown: onKeyDown, onClick: onClick, children: children }));
972
+ });
973
+ GDiv.displayName = 'GDiv';
974
+
975
+ const TRANSFORMER_REGEX = /\[(\d+)\](.*?)\[\]/g;
976
+ const GI18NText = (props) => {
977
+ const { children, transformers } = props;
978
+ if (!transformers || Object.values(transformers).length === 0) {
979
+ return jsx(Text, { ...props, children: children });
686
980
  }
981
+ const transformContent = (text) => {
982
+ const parts = [];
983
+ let lastIndex = 0;
984
+ text.replace(TRANSFORMER_REGEX, (match, number, childrenContent, offset) => {
985
+ parts.push(text.slice(lastIndex, offset));
986
+ const transformerFunction = transformers[number];
987
+ if (typeof transformerFunction === 'function') {
988
+ parts.push(transformerFunction(childrenContent));
989
+ }
990
+ else {
991
+ parts.push(match);
992
+ }
993
+ lastIndex = offset + match.length;
994
+ return match;
995
+ });
996
+ parts.push(text.slice(lastIndex));
997
+ return parts.map((part, index) => jsx(Fragment$1, { children: part }, index));
998
+ };
999
+ return jsx(Text, { ...props, children: typeof children === 'string' ? transformContent(children) : children });
1000
+ };
1001
+
1002
+ function GOptionList({ options, selected, onChange }) {
1003
+ const handleSelect = (value) => {
1004
+ onChange([value]);
1005
+ };
1006
+ const handleKeyDown = (event, value) => {
1007
+ if (event.key === 'Enter' || event.key === ' ') {
1008
+ event.preventDefault();
1009
+ handleSelect(value);
1010
+ }
1011
+ };
1012
+ return (jsx(Box, { padding: "150", children: jsx(BlockStack, { gap: "100", children: options.map((option) => {
1013
+ const isSelected = selected.includes(option.value);
1014
+ return (jsx("div", { role: "option", "aria-selected": isSelected, tabIndex: 0, onClick: () => handleSelect(option.value), onKeyDown: (e) => handleKeyDown(e, option.value), className: cls('p-1.5 pl-4 rounded-lg cursor-pointer', {
1015
+ 'bg-[#F1F1F1]': isSelected,
1016
+ 'hover:bg-[#F1F1F1]': !isSelected,
1017
+ }), children: jsxs(InlineStack, { align: "space-between", blockAlign: "center", wrap: false, gap: "200", children: [jsx(Box, { minWidth: "0", children: option.label }), isSelected && (jsx(Box, { children: jsx(Icon, { source: SvgCheckIcon }) }))] }) }, option.value));
1018
+ }) }) }));
687
1019
  }
688
- function cls(...classes) {
689
- return classes.map(toVal).filter(Boolean).join(' ');
690
- }
1020
+
1021
+ const GSelector = (props) => {
1022
+ const [popoverActive, setPopoverActive] = useState(false);
1023
+ const { activatorText, selected, options, emptyLabel, preferredAlignment = 'right', formatActivatorContent = (text) => text.join(', '), } = props;
1024
+ const togglePopoverActive = useCallback(() => setPopoverActive((prev) => !prev), []);
1025
+ const selectedOption = useMemo(() => {
1026
+ return options
1027
+ .filter((item) => item.active || item.id === selected)
1028
+ .map((item) => item.content || '')
1029
+ .filter((item) => !!item);
1030
+ }, [options, selected]);
1031
+ const activatorContent = useMemo(() => {
1032
+ if (selectedOption.length) {
1033
+ const selected = formatActivatorContent(selectedOption);
1034
+ return activatorText ? `${activatorText}: ${selected}` : selected;
1035
+ }
1036
+ if (emptyLabel) {
1037
+ return activatorText ? `${activatorText}: ${emptyLabel}` : emptyLabel;
1038
+ }
1039
+ return activatorText;
1040
+ }, [selectedOption, emptyLabel, activatorText, formatActivatorContent]);
1041
+ const selectorMarkup = useMemo(() => {
1042
+ switch (props.variant) {
1043
+ case 'choice':
1044
+ return jsx(GSelectorChoice, { ...props, setPopoverActive: togglePopoverActive });
1045
+ case 'action-list':
1046
+ return jsx(GSelectorActionList, { ...props, setPopoverActive: togglePopoverActive });
1047
+ }
1048
+ }, [props, togglePopoverActive]);
1049
+ return (jsx(Popover, { active: popoverActive, activator: jsx("div", { className: "flex items-center gap-1", children: jsx(Button, { onClick: togglePopoverActive, disclosure: popoverActive ? 'up' : 'down', children: activatorContent }) }), autofocusTarget: "first-node", fluidContent: true, onClose: togglePopoverActive, preferredAlignment: preferredAlignment, children: selectorMarkup }));
1050
+ };
1051
+ const GSelectorChoice = ({ options, selected, onSelect, maxWidth, minWidth, clearable, setPopoverActive, }) => {
1052
+ const { t } = useTranslation();
1053
+ const items = useMemo(() => {
1054
+ if (!options?.length)
1055
+ return [];
1056
+ return options.map((option) => ({
1057
+ value: option.id,
1058
+ label: option.content || '',
1059
+ selected: false,
1060
+ }));
1061
+ }, [options]);
1062
+ const handleSelection = useCallback((value) => {
1063
+ onSelect(value);
1064
+ }, [onSelect]);
1065
+ return (jsx(Box, { maxWidth: maxWidth, minWidth: minWidth, paddingBlock: "150", children: jsxs(BlockStack, { children: [jsx(BlockStack, { gap: "0", children: jsx(GCheckbox, { multiple: true, options: items, selected: selected, onChange: handleSelection }) }), clearable && (jsx(Box, { paddingBlock: "150", paddingInline: "200", children: jsx(InlineStack, { blockAlign: "center", align: "start", children: jsx(Button, { disabled: !selected?.length, onClick: () => {
1066
+ handleSelection([]);
1067
+ setPopoverActive(false);
1068
+ }, variant: "plain", children: t('Clear') }) }) }))] }) }));
1069
+ };
1070
+ const GSelectorActionList = ({ options, selected, onSelect, helpText, maxWidth, minWidth, setPopoverActive, }) => {
1071
+ const handleSelection = useCallback((value) => {
1072
+ onSelect(value);
1073
+ setPopoverActive(false);
1074
+ }, [onSelect, setPopoverActive]);
1075
+ const items = useMemo(() => {
1076
+ if (!options?.length)
1077
+ return [];
1078
+ return options.map((option) => ({
1079
+ id: option.id,
1080
+ content: option.content,
1081
+ helpText: option.helpText,
1082
+ onAction: () => handleSelection(option.id),
1083
+ active: option.active || option.id === selected,
1084
+ suffix: (option.active || option.id === selected) && jsx(Icon, { source: SvgCheckIcon, tone: "success" }),
1085
+ }));
1086
+ }, [options, selected, handleSelection]);
1087
+ return (jsx(Box, { maxWidth: maxWidth, minWidth: minWidth, children: jsxs(BlockStack, { gap: "0", children: [jsx(ActionList, { actionRole: "menuitem", items: items }), helpText] }) }));
1088
+ };
1089
+
1090
+ const GTextLink = ({ linkAction, isDisabled, disabledFocus, children }) => {
1091
+ if (!linkAction || isDisabled) {
1092
+ return jsx(Fragment, { children: children });
1093
+ }
1094
+ return (jsx("span", { className: cls('GTextLink', { 'GTextLink--disabled-focus': disabledFocus }), children: jsx(Link, { ...linkAction, children: jsx(Fragment, { children: children }) }) }));
1095
+ };
1096
+
1097
+ const GSkeletonDisplayText = (props) => {
1098
+ const height = props.height ?? '50px';
1099
+ return (jsxs("div", { className: "Polaris-GSkeletonDisplayText", children: [jsx("style", { children: `.Polaris-GSkeletonDisplayText .Polaris-SkeletonDisplayText__DisplayText { height: ${height} !important; }` }), jsx(SkeletonDisplayText, { maxWidth: "100%", size: "extraLarge" })] }));
1100
+ };
691
1101
 
692
1102
  /**
693
1103
  * Helper function to generate a variation class name.
@@ -748,6 +1158,1065 @@ const GTooltipCard = forwardRef((props, ref) => {
748
1158
  });
749
1159
  GTooltipCard.displayName = 'GTooltipCard';
750
1160
 
1161
+ var MainDateTimePickerAlias;
1162
+ (function (MainDateTimePickerAlias) {
1163
+ MainDateTimePickerAlias["TODAY"] = "today";
1164
+ MainDateTimePickerAlias["YESTERDAY"] = "yesterday";
1165
+ MainDateTimePickerAlias["LAST_7_DAYS"] = "last7days";
1166
+ MainDateTimePickerAlias["LAST_30_DAYS"] = "last30days";
1167
+ MainDateTimePickerAlias["LAST_90_DAYS"] = "last90days";
1168
+ MainDateTimePickerAlias["LAST_365_DAYS"] = "last365days";
1169
+ MainDateTimePickerAlias["LAST_MONTH"] = "lastMonth";
1170
+ MainDateTimePickerAlias["LAST_12_MONTHS"] = "last12Months";
1171
+ MainDateTimePickerAlias["LAST_YEAR"] = "lastYear";
1172
+ })(MainDateTimePickerAlias || (MainDateTimePickerAlias = {}));
1173
+ function getDateTimeFilterMapping() {
1174
+ const mappings = {
1175
+ [MainDateTimePickerAlias.TODAY]: {
1176
+ title: 'Today',
1177
+ alias: MainDateTimePickerAlias.TODAY,
1178
+ getDateRange: getToday,
1179
+ },
1180
+ [MainDateTimePickerAlias.YESTERDAY]: {
1181
+ title: 'Yesterday',
1182
+ alias: MainDateTimePickerAlias.YESTERDAY,
1183
+ getDateRange: getYesterday,
1184
+ },
1185
+ [MainDateTimePickerAlias.LAST_7_DAYS]: {
1186
+ title: 'Last 7 days',
1187
+ alias: MainDateTimePickerAlias.LAST_7_DAYS,
1188
+ getDateRange: getLast7Days,
1189
+ },
1190
+ [MainDateTimePickerAlias.LAST_30_DAYS]: {
1191
+ title: 'Last 30 days',
1192
+ alias: MainDateTimePickerAlias.LAST_30_DAYS,
1193
+ getDateRange: getLast30Days,
1194
+ },
1195
+ [MainDateTimePickerAlias.LAST_90_DAYS]: {
1196
+ title: 'Last 90 days',
1197
+ alias: MainDateTimePickerAlias.LAST_90_DAYS,
1198
+ getDateRange: getLast90Days,
1199
+ },
1200
+ [MainDateTimePickerAlias.LAST_365_DAYS]: {
1201
+ title: 'Last 365 days',
1202
+ alias: MainDateTimePickerAlias.LAST_365_DAYS,
1203
+ getDateRange: getLast365Days,
1204
+ },
1205
+ [MainDateTimePickerAlias.LAST_MONTH]: {
1206
+ title: 'Last month',
1207
+ alias: MainDateTimePickerAlias.LAST_MONTH,
1208
+ getDateRange: getLastMonth,
1209
+ },
1210
+ [MainDateTimePickerAlias.LAST_12_MONTHS]: {
1211
+ title: 'Last 12 months',
1212
+ alias: MainDateTimePickerAlias.LAST_12_MONTHS,
1213
+ getDateRange: getLast12Months,
1214
+ },
1215
+ [MainDateTimePickerAlias.LAST_YEAR]: {
1216
+ title: 'Last year',
1217
+ alias: MainDateTimePickerAlias.LAST_YEAR,
1218
+ getDateRange: getLastYear,
1219
+ },
1220
+ };
1221
+ return mappings;
1222
+ }
1223
+ function getDateTimeFilterByAlias(alias) {
1224
+ const mappings = getDateTimeFilterMapping();
1225
+ return mappings[alias];
1226
+ }
1227
+
1228
+ const DATE_FORMAT = {
1229
+ YMD: 'YYYY-MM-DD', // 2025-01-01
1230
+ MONTH_YEAR: 'MMM YYYY', // Jan 2025
1231
+ FULL: 'MMMM D, YYYY', // January 1, 2025
1232
+ FULL_WITH_TIME: 'MMMM D, YYYY [at] h:mm A', // January 1, 2025 at 12:00 AM
1233
+ SHORT: 'MMM DD, YYYY', // Jan 01, 2025
1234
+ SHORT_NO_PAD: 'MMM D, YYYY', // Jan 1, 2025
1235
+ SHORT_WITH_TIME: 'MMM D, YYYY [at] h:mm A', // Jan 1, 2025 at 12:00 AM
1236
+ MONTH_DAY: 'MMM D', // Jan 1
1237
+ DAY_YEAR: 'D, YYYY', // 1, 2025
1238
+ TIME: 'h:mm A', // 12:00 AM
1239
+ MONTH_DAY_WITH_TIME: 'MMM D [at] h:mm A', // Jan 1 at 12:00 AM
1240
+ YEAR: 'YYYY', // 2025
1241
+ };
1242
+
1243
+ function parseYearMonthDayDateString(input) {
1244
+ // Date-only strings (e.g. "1970-01-01") are treated as UTC, not local time
1245
+ // when using new Date()
1246
+ // We need to split year, month, day to pass into new Date() separately
1247
+ // to get a localized Date
1248
+ return dayjs(input).valueOf();
1249
+ }
1250
+ const VALID_YYYY_MM_DD_DATE_REGEX = /^\d{4}-\d{1,2}-\d{1,2}/;
1251
+ function isDate(date) {
1252
+ return !isNaN(new Date(date).getDate());
1253
+ }
1254
+ function isValidYearMonthDayDateString(date) {
1255
+ return VALID_YYYY_MM_DD_DATE_REGEX.test(date) && isDate(date);
1256
+ }
1257
+ function isValidDate(date) {
1258
+ return date.length === 10 && isValidYearMonthDayDateString(date);
1259
+ }
1260
+ function formatDate(timestamp, type) {
1261
+ const date = convertDateToTz(timestamp);
1262
+ if (type === 'YMD') {
1263
+ return date.format(DATE_FORMAT.YMD);
1264
+ }
1265
+ if (type === 'MY') {
1266
+ return date.format(DATE_FORMAT.MONTH_YEAR);
1267
+ }
1268
+ if (type === 'FULL') {
1269
+ return date.format(DATE_FORMAT.FULL);
1270
+ }
1271
+ if (type === 'FULL_WITH_TIME') {
1272
+ return date.format(DATE_FORMAT.FULL_WITH_TIME);
1273
+ }
1274
+ return date.format(DATE_FORMAT.SHORT);
1275
+ }
1276
+ function formatTime(timestamp) {
1277
+ const date = convertDateToTz(timestamp);
1278
+ return date.format(DATE_FORMAT.TIME);
1279
+ }
1280
+ function isSameDayTimestamp(since, until) {
1281
+ const sinceDate = convertDateToTz(since);
1282
+ const untilDate = convertDateToTz(until);
1283
+ return sinceDate.isSame(untilDate, 'day');
1284
+ }
1285
+ function formatTimeRange(data) {
1286
+ const { since, until, format = DATE_FORMAT.TIME, showNow = false } = data;
1287
+ const sinceDate = convertDateToTz(since);
1288
+ const untilDate = convertDateToTz(until);
1289
+ return `${sinceDate.format(format)} - ${showNow ? 'Now' : untilDate.format(format)}`;
1290
+ }
1291
+ function formatDateTimeRange(data) {
1292
+ const { since, until, isShowNow } = data;
1293
+ const sinceDate = convertDateToTz(since);
1294
+ const untilDate = convertDateToTz(until);
1295
+ const isToday = sinceDate.isSame(dayjsTz(), 'day');
1296
+ const startTime = sinceDate.format(DATE_FORMAT.TIME);
1297
+ const endTime = untilDate.format(DATE_FORMAT.TIME);
1298
+ if (isToday) {
1299
+ const formatEndTime = isShowNow ? 'Now' : endTime;
1300
+ return `Today at ${startTime} - ${formatEndTime}`;
1301
+ }
1302
+ if (isShowNow) {
1303
+ return `${sinceDate.format(DATE_FORMAT.SHORT_WITH_TIME)} - Now`;
1304
+ }
1305
+ if (sinceDate.isSame(untilDate, 'day')) {
1306
+ return `${sinceDate.format(DATE_FORMAT.SHORT_WITH_TIME)} - ${endTime}`;
1307
+ }
1308
+ if (sinceDate.isSame(untilDate, 'day')) {
1309
+ const time = formatTimeRange({ since, until });
1310
+ return `${sinceDate.format(DATE_FORMAT.SHORT)} (${time})`;
1311
+ }
1312
+ if (sinceDate.isSame(untilDate, 'year')) {
1313
+ return `${sinceDate.format(DATE_FORMAT.MONTH_DAY_WITH_TIME)} - ${untilDate.format(DATE_FORMAT.MONTH_DAY_WITH_TIME)}, ${untilDate.format(DATE_FORMAT.YEAR)}`;
1314
+ }
1315
+ return `${sinceDate.format(DATE_FORMAT.SHORT_WITH_TIME)} - ${untilDate.format(DATE_FORMAT.SHORT_WITH_TIME)}`;
1316
+ }
1317
+ const formatDayjs = (date, isEndDay = false, formatTemplate) => {
1318
+ // const isUTC = date.isUTC?.() ?? false;
1319
+ // if (isUTC) return date.format();
1320
+ if (isEndDay && isMidnight(date)) {
1321
+ return date.endOf('day').format(formatTemplate);
1322
+ }
1323
+ return date.format(formatTemplate);
1324
+ };
1325
+ const getEndOfDayBy = (value, formatTemplate) => {
1326
+ if (!value) {
1327
+ return formatDayjs(dayjsTz().endOf('day'), false, formatTemplate);
1328
+ }
1329
+ return formatDayjs(dayjsTz(value).endOf('day'), false, formatTemplate);
1330
+ };
1331
+ const isMidnight = (date) => {
1332
+ return date.hour() === 0 && date.minute() === 0;
1333
+ };
1334
+ const formatMs = (ms) => {
1335
+ const totalSeconds = Math.floor(ms / 1000);
1336
+ const hours = Math.floor(totalSeconds / 3600);
1337
+ const minutes = Math.floor((totalSeconds % 3600) / 60);
1338
+ const seconds = totalSeconds % 60;
1339
+ return [hours, minutes, seconds].map((v) => String(v).padStart(2, '0')).join(':');
1340
+ };
1341
+
1342
+ function getDateRangeTitle(since, until) {
1343
+ const sinceDate = convertDateToTz(since);
1344
+ const untilDate = convertDateToTz(until);
1345
+ if (sinceDate.isSame(untilDate, 'day')) {
1346
+ return sinceDate.format(DATE_FORMAT.SHORT);
1347
+ }
1348
+ if (sinceDate.isSame(untilDate, 'month') && sinceDate.isSame(untilDate, 'year')) {
1349
+ return `${sinceDate.format(DATE_FORMAT.MONTH_DAY)} - ${untilDate.format(DATE_FORMAT.DAY_YEAR)}`;
1350
+ }
1351
+ if (sinceDate.isSame(untilDate, 'year')) {
1352
+ return `${sinceDate.format(DATE_FORMAT.MONTH_DAY)} - ${untilDate.format(DATE_FORMAT.SHORT_NO_PAD)}`;
1353
+ }
1354
+ return `${sinceDate.format(DATE_FORMAT.SHORT_NO_PAD)} - ${untilDate.format(DATE_FORMAT.SHORT_NO_PAD)}`;
1355
+ }
1356
+ /**
1357
+ * Resolves a { title, alias } pair from a since/until date range.
1358
+ * Matches against known presets (today, last 7 days, …); falls back to
1359
+ * a formatted custom range with alias "custom".
1360
+ */
1361
+ function getDateTimeFilterBase(since, until) {
1362
+ const now = dayjsTz();
1363
+ const sinceDate = convertDateToTz(since);
1364
+ const untilDate = convertDateToTz(until);
1365
+ const mappings = getDateTimeFilterMapping();
1366
+ for (const mapping of Object.values(mappings)) {
1367
+ const range = mapping.getDateRange(now);
1368
+ const expectedSince = convertDateToTz(range.since);
1369
+ const expectedUntil = convertDateToTz(range.until);
1370
+ const isSameSince = sinceDate.isSame(expectedSince, 'day');
1371
+ const isSameUntil = untilDate.isSame(expectedUntil, 'day');
1372
+ if (isSameSince && isSameUntil) {
1373
+ return { title: mapping.title, alias: mapping.alias };
1374
+ }
1375
+ }
1376
+ return {
1377
+ title: getDateRangeTitle(since, until),
1378
+ alias: 'custom',
1379
+ };
1380
+ }
1381
+ function getVersionDateRangeTitle(data) {
1382
+ const { since, until, isShowNow } = data;
1383
+ const sinceDate = convertDateToTz(since);
1384
+ const isToday = sinceDate.isSame(dayjsTz(), 'day');
1385
+ if (isToday)
1386
+ return getDateTimeFilterByAlias(MainDateTimePickerAlias.TODAY).title;
1387
+ if (isShowNow)
1388
+ return `${sinceDate.format(DATE_FORMAT.SHORT_NO_PAD)} - Now`;
1389
+ return getDateRangeTitle(since, until);
1390
+ }
1391
+ const getVersionDateDescription = ({ since, until, isShowNow }) => {
1392
+ const isSameDay = isSameDayTimestamp(since, until);
1393
+ if (!isSameDay)
1394
+ return undefined;
1395
+ return formatTimeRange({ since, until, showNow: isShowNow });
1396
+ };
1397
+
1398
+ const convertToDateTimeFilters = (versions) => {
1399
+ const dataVersions = [...versions].sort((a, b) => semverToNum(b.version) - semverToNum(a.version));
1400
+ return dataVersions
1401
+ .map((item) => {
1402
+ if (!item.startedAt)
1403
+ return false;
1404
+ const isCurrentVersion = !item.completedAt;
1405
+ const since = dayjsTzToLocalTZ(item.startedAt).valueOf();
1406
+ const until = isCurrentVersion
1407
+ ? dayjsTzToLocalTZ(getEndOfDayBy()).valueOf()
1408
+ : dayjsTzToLocalTZ(item.completedAt).valueOf();
1409
+ const title = getVersionDateRangeTitle({ since, until, isShowNow: isCurrentVersion });
1410
+ const description = getVersionDateDescription({ since, until, isShowNow: isCurrentVersion });
1411
+ return {
1412
+ title,
1413
+ alias: `${item.version}`,
1414
+ since,
1415
+ until,
1416
+ isVersion: true,
1417
+ isCurrentVersion,
1418
+ description,
1419
+ versionId: item.id,
1420
+ };
1421
+ })
1422
+ .filter(Boolean);
1423
+ };
1424
+
1425
+ const getNoComparison = () => {
1426
+ return {
1427
+ since: 0,
1428
+ until: 0,
1429
+ };
1430
+ };
1431
+ const getPreviousPeriod = (value) => {
1432
+ const { since, until, alias } = value;
1433
+ const sinceDate = dayjs(since);
1434
+ const untilDate = dayjs(until);
1435
+ if (alias === MainDateTimePickerAlias.LAST_MONTH) {
1436
+ return getLastMonth(sinceDate);
1437
+ }
1438
+ if (alias === MainDateTimePickerAlias.LAST_12_MONTHS) {
1439
+ return getLast12Months(sinceDate);
1440
+ }
1441
+ if (alias === MainDateTimePickerAlias.LAST_YEAR) {
1442
+ return getLastYear(sinceDate);
1443
+ }
1444
+ const duration = untilDate.diff(sinceDate, 'day') + 1;
1445
+ const previousSince = sinceDate.subtract(duration, 'day');
1446
+ const previousUntil = untilDate.subtract(duration, 'day');
1447
+ return {
1448
+ since: previousSince.valueOf(),
1449
+ until: previousUntil.valueOf(),
1450
+ };
1451
+ };
1452
+ const createPreviousRange = (subtractAmount, subtractUnit) => (value) => {
1453
+ const { since, until } = value;
1454
+ const sinceDate = dayjs(since);
1455
+ const untilDate = dayjs(until);
1456
+ const duration = untilDate.diff(sinceDate, 'day');
1457
+ const previousSince = sinceDate.subtract(subtractAmount, subtractUnit);
1458
+ const previousUntil = previousSince.add(duration, 'day');
1459
+ return {
1460
+ since: previousSince.valueOf(),
1461
+ until: previousUntil.valueOf(),
1462
+ };
1463
+ };
1464
+ const getPreviousWeek = createPreviousRange(7, 'day');
1465
+ const getPreviousQuarter = createPreviousRange(3, 'month');
1466
+ const getPreviousMonth = createPreviousRange(1, 'month');
1467
+ const getPreviousYear = createPreviousRange(1, 'year');
1468
+ const createLastDaysRange = (subtractAmount) => (date) => {
1469
+ return {
1470
+ since: date.subtract(subtractAmount, 'day').valueOf(),
1471
+ until: date.valueOf(),
1472
+ };
1473
+ };
1474
+ const getToday = (currentDate) => {
1475
+ return {
1476
+ since: currentDate.valueOf(),
1477
+ until: currentDate.valueOf(),
1478
+ };
1479
+ };
1480
+ const getYesterday = (date) => {
1481
+ return {
1482
+ since: date.subtract(1, 'day').valueOf(),
1483
+ until: date.subtract(1, 'day').valueOf(),
1484
+ };
1485
+ };
1486
+ const getLast7Days = createLastDaysRange(6);
1487
+ const getLast30Days = createLastDaysRange(29);
1488
+ const getLast90Days = createLastDaysRange(89);
1489
+ const getLast365Days = createLastDaysRange(364);
1490
+ function getLastMonth(date) {
1491
+ return {
1492
+ since: date.subtract(1, 'month').startOf('month').valueOf(),
1493
+ until: date.subtract(1, 'month').endOf('month').valueOf(),
1494
+ };
1495
+ }
1496
+ function getLast12Months(date) {
1497
+ return {
1498
+ since: date.subtract(12, 'month').startOf('month').valueOf(),
1499
+ until: date.subtract(1, 'month').endOf('month').valueOf(),
1500
+ };
1501
+ }
1502
+ function getLastYear(date) {
1503
+ return {
1504
+ since: date.subtract(1, 'year').startOf('year').valueOf(),
1505
+ until: date.subtract(1, 'year').endOf('year').valueOf(),
1506
+ };
1507
+ }
1508
+ const getMonthAndYearByDateFilter = (month, year, date) => {
1509
+ const endDate = dayjs(date);
1510
+ const endMonthFilter = endDate.month();
1511
+ const endYearFilter = endDate.year();
1512
+ if (endYearFilter !== year || endMonthFilter !== month) {
1513
+ const prev = endDate.subtract(1, 'month');
1514
+ return {
1515
+ month: prev.month(),
1516
+ year: prev.year(),
1517
+ };
1518
+ }
1519
+ return { month, year };
1520
+ };
1521
+
1522
+ var CompareDateTimePickerAlias;
1523
+ (function (CompareDateTimePickerAlias) {
1524
+ CompareDateTimePickerAlias["NO_COMPARISON"] = "noComparison";
1525
+ CompareDateTimePickerAlias["PREVIOUS_PERIOD"] = "previousPeriod";
1526
+ CompareDateTimePickerAlias["PREVIOUS_WEEK"] = "previousWeek";
1527
+ CompareDateTimePickerAlias["PREVIOUS_MONTH"] = "previousMonth";
1528
+ CompareDateTimePickerAlias["PREVIOUS_QUARTER"] = "previousQuarter";
1529
+ CompareDateTimePickerAlias["PREVIOUS_YEAR"] = "previousYear";
1530
+ })(CompareDateTimePickerAlias || (CompareDateTimePickerAlias = {}));
1531
+ const PREVIOUS_PERIOD_FILTER = {
1532
+ title: 'Previous period',
1533
+ alias: CompareDateTimePickerAlias.PREVIOUS_PERIOD,
1534
+ since: 0,
1535
+ until: 0,
1536
+ };
1537
+ const DATE_TIME_COMPARISON_FILTERS = [
1538
+ {
1539
+ title: 'No comparison',
1540
+ alias: CompareDateTimePickerAlias.NO_COMPARISON,
1541
+ since: 0,
1542
+ until: 0,
1543
+ },
1544
+ PREVIOUS_PERIOD_FILTER,
1545
+ {
1546
+ title: 'Previous week',
1547
+ alias: CompareDateTimePickerAlias.PREVIOUS_WEEK,
1548
+ since: 0,
1549
+ until: 0,
1550
+ },
1551
+ {
1552
+ title: 'Previous quarter',
1553
+ alias: CompareDateTimePickerAlias.PREVIOUS_QUARTER,
1554
+ since: 0,
1555
+ until: 0,
1556
+ },
1557
+ {
1558
+ title: 'Previous month',
1559
+ alias: CompareDateTimePickerAlias.PREVIOUS_MONTH,
1560
+ since: 0,
1561
+ until: 0,
1562
+ },
1563
+ {
1564
+ title: 'Previous year',
1565
+ alias: CompareDateTimePickerAlias.PREVIOUS_YEAR,
1566
+ since: 0,
1567
+ until: 0,
1568
+ },
1569
+ ];
1570
+ const COMPARE_DATE_TIME_FILTERS_MAP = {
1571
+ [CompareDateTimePickerAlias.NO_COMPARISON]: getNoComparison,
1572
+ [CompareDateTimePickerAlias.PREVIOUS_PERIOD]: getPreviousPeriod,
1573
+ [CompareDateTimePickerAlias.PREVIOUS_WEEK]: getPreviousWeek,
1574
+ [CompareDateTimePickerAlias.PREVIOUS_QUARTER]: getPreviousQuarter,
1575
+ [CompareDateTimePickerAlias.PREVIOUS_MONTH]: getPreviousMonth,
1576
+ [CompareDateTimePickerAlias.PREVIOUS_YEAR]: getPreviousYear,
1577
+ };
1578
+
1579
+ const useDateTimeFilter = () => {
1580
+ const currentDate = dayjsTzToLocalTZ().startOf('day');
1581
+ const mappings = getDateTimeFilterMapping();
1582
+ const TODAY_CONFIG = mappings[MainDateTimePickerAlias.TODAY];
1583
+ const TODAY_DATE_RANGE = {
1584
+ ...TODAY_CONFIG,
1585
+ ...TODAY_CONFIG.getDateRange(currentDate),
1586
+ };
1587
+ const YESTERDAY_CONFIG = mappings[MainDateTimePickerAlias.YESTERDAY];
1588
+ const YESTERDAY_DATE_RANGE = {
1589
+ ...YESTERDAY_CONFIG,
1590
+ ...YESTERDAY_CONFIG.getDateRange(currentDate),
1591
+ };
1592
+ const LAST_7_DAYS_CONFIG = mappings[MainDateTimePickerAlias.LAST_7_DAYS];
1593
+ const LAST_7_DAYS_DATE_RANGE = {
1594
+ ...LAST_7_DAYS_CONFIG,
1595
+ ...LAST_7_DAYS_CONFIG.getDateRange(currentDate),
1596
+ };
1597
+ const LAST_30_DAYS_CONFIG = mappings[MainDateTimePickerAlias.LAST_30_DAYS];
1598
+ const LAST_30_DAYS_DATE_RANGE = {
1599
+ ...LAST_30_DAYS_CONFIG,
1600
+ ...LAST_30_DAYS_CONFIG.getDateRange(currentDate),
1601
+ };
1602
+ const LAST_90_DAYS_CONFIG = mappings[MainDateTimePickerAlias.LAST_90_DAYS];
1603
+ const LAST_90_DAYS_DATE_RANGE = {
1604
+ ...LAST_90_DAYS_CONFIG,
1605
+ ...LAST_90_DAYS_CONFIG.getDateRange(currentDate),
1606
+ };
1607
+ const LAST_365_DAYS_CONFIG = mappings[MainDateTimePickerAlias.LAST_365_DAYS];
1608
+ const LAST_365_DAYS_DATE_RANGE = {
1609
+ ...LAST_365_DAYS_CONFIG,
1610
+ ...LAST_365_DAYS_CONFIG.getDateRange(currentDate),
1611
+ };
1612
+ const LAST_MONTH_CONFIG = mappings[MainDateTimePickerAlias.LAST_MONTH];
1613
+ const LAST_MONTH_DATE_RANGE = {
1614
+ ...LAST_MONTH_CONFIG,
1615
+ ...LAST_MONTH_CONFIG.getDateRange(currentDate),
1616
+ };
1617
+ const LAST_12_MONTHS_CONFIG = mappings[MainDateTimePickerAlias.LAST_12_MONTHS];
1618
+ const LAST_12_MONTHS_DATE_RANGE = {
1619
+ ...LAST_12_MONTHS_CONFIG,
1620
+ ...LAST_12_MONTHS_CONFIG.getDateRange(currentDate),
1621
+ };
1622
+ const LAST_YEAR_CONFIG = mappings[MainDateTimePickerAlias.LAST_YEAR];
1623
+ const LAST_YEAR_DATE_RANGE = {
1624
+ ...LAST_YEAR_CONFIG,
1625
+ ...LAST_YEAR_CONFIG.getDateRange(currentDate),
1626
+ };
1627
+ const DATE_TIME_FILTERS = [
1628
+ TODAY_DATE_RANGE,
1629
+ YESTERDAY_DATE_RANGE,
1630
+ LAST_7_DAYS_DATE_RANGE,
1631
+ LAST_30_DAYS_DATE_RANGE,
1632
+ LAST_90_DAYS_DATE_RANGE,
1633
+ LAST_365_DAYS_DATE_RANGE,
1634
+ LAST_MONTH_DATE_RANGE,
1635
+ LAST_12_MONTHS_DATE_RANGE,
1636
+ LAST_YEAR_DATE_RANGE,
1637
+ ];
1638
+ return {
1639
+ DATE_TIME_FILTERS,
1640
+ LAST_7_DAYS_DATE_RANGE,
1641
+ LAST_30_DAYS_DATE_RANGE,
1642
+ };
1643
+ };
1644
+
1645
+ const DateTimePickerContext = createContext({
1646
+ dateTimePicked: {
1647
+ since: dayjsTz().valueOf(),
1648
+ until: dayjsTz().valueOf(),
1649
+ title: 'Today',
1650
+ alias: 'today',
1651
+ },
1652
+ compareDateTimePicked: PREVIOUS_PERIOD_FILTER,
1653
+ setDateTimePicked: () => { },
1654
+ setCompareDateTimePicked: () => { },
1655
+ resetDateVersion: () => { },
1656
+ });
1657
+ const DateTimePickerProvider = ({ children, initDate, initDateCompare, }) => {
1658
+ const [dateTimePicked, setDateTimePicked] = useState(initDate || {
1659
+ since: dayjsTz().set('hour', 0).valueOf(),
1660
+ until: dayjsTz().set('hour', 0).valueOf(),
1661
+ title: 'Today',
1662
+ alias: 'today',
1663
+ });
1664
+ const { DATE_TIME_FILTERS } = useDateTimeFilter();
1665
+ const getCompareDateTimePicked = useCallback((alias, source = dateTimePicked) => {
1666
+ return {
1667
+ ...PREVIOUS_PERIOD_FILTER,
1668
+ ...COMPARE_DATE_TIME_FILTERS_MAP[alias]({
1669
+ since: source.since,
1670
+ until: source.until,
1671
+ alias: source.alias,
1672
+ }),
1673
+ };
1674
+ }, [dateTimePicked]);
1675
+ const [compareDateTimePicked, setCompareDateTimePicked] = useState(initDateCompare || getCompareDateTimePicked(CompareDateTimePickerAlias.PREVIOUS_PERIOD));
1676
+ const updateCompareDateTimePicked = useCallback((source) => {
1677
+ if (compareDateTimePicked.alias === 'custom' ||
1678
+ compareDateTimePicked.alias === CompareDateTimePickerAlias.NO_COMPARISON)
1679
+ return;
1680
+ setCompareDateTimePicked(getCompareDateTimePicked(compareDateTimePicked.alias, source));
1681
+ }, [compareDateTimePicked, getCompareDateTimePicked]);
1682
+ const resetDateVersion = () => {
1683
+ const since = dayjs(dateTimePicked.since).startOf('day').valueOf();
1684
+ const until = dayjs(dateTimePicked.until).startOf('day').valueOf();
1685
+ const dateFilter = DATE_TIME_FILTERS.find((filter) => filter.since === since && filter.until === until);
1686
+ setDateTimePicked({
1687
+ ...dateTimePicked,
1688
+ isVersion: false,
1689
+ versionId: undefined,
1690
+ isCurrentVersion: false,
1691
+ description: '',
1692
+ title: dateFilter?.title || dateTimePicked.title,
1693
+ alias: dateFilter?.alias || 'custom',
1694
+ });
1695
+ };
1696
+ const onSetDateTimePicked = useCallback((value) => {
1697
+ setDateTimePicked(value);
1698
+ updateCompareDateTimePicked(value);
1699
+ }, [updateCompareDateTimePicked]);
1700
+ return (jsx(DateTimePickerContext.Provider, { value: {
1701
+ dateTimePicked,
1702
+ setDateTimePicked: onSetDateTimePicked,
1703
+ compareDateTimePicked,
1704
+ setCompareDateTimePicked,
1705
+ resetDateVersion,
1706
+ }, children: children }));
1707
+ };
1708
+ const useDateTimePickerContext = () => {
1709
+ const context = useContext(DateTimePickerContext);
1710
+ if (!context) {
1711
+ throw new Error('useDateTimePickerContext must be used within a DateTimePickerProvider');
1712
+ }
1713
+ return context;
1714
+ };
1715
+
1716
+ const useDateTimePicker = ({ ranges, initialPicked, onApply }) => {
1717
+ const { DATE_TIME_FILTERS } = useDateTimeFilter();
1718
+ const allRanges = ranges || DATE_TIME_FILTERS;
1719
+ const { dateTimePicked, setDateTimePicked } = useDateTimePickerContext();
1720
+ const [dateRange, setDateRange] = useState(dateTimePicked);
1721
+ const [{ month, year }, setDate] = useState({
1722
+ month: dayjs(dateTimePicked.since).month(),
1723
+ year: dayjs(dateTimePicked.since).year(),
1724
+ });
1725
+ useEffect(() => {
1726
+ if (dateTimePicked) {
1727
+ const untilDate = new Date(dateTimePicked.until);
1728
+ const monthDiff = (referenceDate, newDate) => {
1729
+ return newDate.month - referenceDate.month + 12 * (referenceDate.year - newDate.year);
1730
+ };
1731
+ monthDiff({ year, month }, {
1732
+ year: untilDate.getFullYear(),
1733
+ month: untilDate.getMonth(),
1734
+ });
1735
+ // if (monthDifference > 1 || monthDifference < 0) {
1736
+ // setDate({
1737
+ // month: untilDate.getMonth(),
1738
+ // year: untilDate.getFullYear(),
1739
+ // });
1740
+ // }
1741
+ }
1742
+ }, [dateTimePicked, month, year]);
1743
+ const onMonthChange = (month, year) => {
1744
+ setDate({ month, year });
1745
+ };
1746
+ const onCalendarChange = (value) => {
1747
+ const { start, end, alias } = value;
1748
+ const customDateRange = {
1749
+ alias: 'custom',
1750
+ title: 'Custom',
1751
+ since: start.getTime(),
1752
+ until: end.getTime(),
1753
+ };
1754
+ const newDateRange = allRanges.find((range) => {
1755
+ const isSameAlias = range.alias === alias;
1756
+ const isSameUntil = range.until === end.getTime();
1757
+ const isSameSince = range.since === start.getTime();
1758
+ // const isSameVersionId = !!range.versionId && !!versionId && range.versionId === versionId;
1759
+ const isSameTime = isSameSince && isSameUntil;
1760
+ return isSameAlias || isSameTime;
1761
+ });
1762
+ const finalDateRange = newDateRange || initialPicked || customDateRange;
1763
+ setDateRange(finalDateRange);
1764
+ };
1765
+ const onChange = ({ end }) => {
1766
+ setDate(getMonthAndYearByDateFilter(month, year, end));
1767
+ };
1768
+ const apply = () => {
1769
+ setDateTimePicked(dateRange);
1770
+ onApply?.(dateRange);
1771
+ };
1772
+ const cancel = () => {
1773
+ setDateRange(dateTimePicked);
1774
+ };
1775
+ useEffect(() => {
1776
+ if (dateTimePicked) {
1777
+ setDateRange(dateTimePicked);
1778
+ setDate({
1779
+ month: dayjs(dateTimePicked.since).month(),
1780
+ year: dayjs(dateTimePicked.since).year(),
1781
+ });
1782
+ }
1783
+ }, [dateTimePicked]);
1784
+ return {
1785
+ month,
1786
+ year,
1787
+ setDate,
1788
+ dateRange,
1789
+ apply,
1790
+ cancel,
1791
+ dateTimePicked,
1792
+ onChange,
1793
+ onMonthChange,
1794
+ onCalendarChange,
1795
+ };
1796
+ };
1797
+
1798
+ const useVersionDateTimeFilters = (versions) => {
1799
+ const { t } = useTranslation();
1800
+ const rangers = useMemo(() => {
1801
+ if (!versions?.length)
1802
+ return [];
1803
+ return convertToDateTimeFilters(versions);
1804
+ }, [versions]);
1805
+ const rangeAddition = {
1806
+ title: t('Experiment periods'),
1807
+ rangers,
1808
+ };
1809
+ return { rangeAddition };
1810
+ };
1811
+
1812
+ function DateTimeFilterInputs({ onBlur, dateRange, setDateTimePicked }) {
1813
+ const [isFocus, setIsFocus] = useState(false);
1814
+ const [inputValues, setInputValues] = useState({});
1815
+ const formatDisplayDate = useCallback((timestamp, isEnd = false) => {
1816
+ if (!dateRange.isVersion || (isEnd && dateRange.isCurrentVersion))
1817
+ return formatDate(timestamp, 'FULL');
1818
+ return formatDate(timestamp, 'FULL_WITH_TIME');
1819
+ }, [dateRange.isVersion, dateRange.isCurrentVersion]);
1820
+ useEffect(() => {
1821
+ if (isFocus)
1822
+ return;
1823
+ setInputValues({
1824
+ since: formatDisplayDate(dateRange.since),
1825
+ until: formatDisplayDate(dateRange.until, true),
1826
+ });
1827
+ }, [dateRange, formatDisplayDate]);
1828
+ function handleStartInputValueChange(value) {
1829
+ setInputValues((prevState) => {
1830
+ return { ...prevState, since: value };
1831
+ });
1832
+ if (isValidDate(value)) {
1833
+ const newSinceDate = convertDateToTz(value).startOf('day');
1834
+ const untilDate = convertDateToTz(dateRange.until).endOf('day');
1835
+ const endDate = newSinceDate.isAfter(untilDate) ? newSinceDate.endOf('day') : untilDate;
1836
+ setDateTimePicked({
1837
+ start: dayjsTzToLocalTZ(newSinceDate).toDate(),
1838
+ end: dayjsTzToLocalTZ(endDate).toDate(),
1839
+ });
1840
+ }
1841
+ }
1842
+ function handleEndInputValueChange(value) {
1843
+ setInputValues((prevState) => ({ ...prevState, until: value }));
1844
+ if (isValidDate(value)) {
1845
+ const nowEndOfDay = dayjsTz().endOf('day');
1846
+ const newUntilDate = convertDateToTz(value).endOf('day');
1847
+ const clampedUntil = newUntilDate.isAfter(nowEndOfDay) ? nowEndOfDay : newUntilDate;
1848
+ const sinceDate = convertDateToTz(dateRange.since).startOf('day');
1849
+ const startDate = clampedUntil.isBefore(sinceDate) ? clampedUntil.startOf('day') : sinceDate;
1850
+ setDateTimePicked({
1851
+ start: dayjsTzToLocalTZ(startDate).toDate(),
1852
+ end: dayjsTzToLocalTZ(clampedUntil).toDate(),
1853
+ });
1854
+ }
1855
+ }
1856
+ function handleInputBlur() {
1857
+ setIsFocus(false);
1858
+ setInputValues({
1859
+ since: formatDisplayDate(dateRange.since),
1860
+ until: formatDisplayDate(dateRange.until, true),
1861
+ });
1862
+ onBlur && onBlur();
1863
+ }
1864
+ function handleFocusStartInput() {
1865
+ setIsFocus(true);
1866
+ setInputValues({
1867
+ ...inputValues,
1868
+ since: formatDate(dateRange.since, 'YMD'),
1869
+ });
1870
+ }
1871
+ function handleFocusEndInput() {
1872
+ setIsFocus(true);
1873
+ setInputValues({
1874
+ ...inputValues,
1875
+ until: formatDate(dateRange.until, 'YMD'),
1876
+ });
1877
+ }
1878
+ return (jsxs(InlineGrid, { gap: "200", columns: "1fr auto 1fr", children: [jsx(TextField, { role: "combobox", label: 'Since', labelHidden: true,
1879
+ // prefix={<Icon source={CalendarIcon} />}
1880
+ value: dateRange.since ? inputValues.since : 'MMMM D, YYYY', onChange: handleStartInputValueChange, onBlur: () => handleInputBlur(), onFocus: () => handleFocusStartInput(), autoComplete: "off" }), jsx(InlineStack, { children: jsx(Icon, { source: SvgArrowRightIcon, tone: "subdued" }) }), jsx(TextField, { role: "combobox", label: 'Until', labelHidden: true,
1881
+ // prefix={<Icon source={CalendarIcon} />}
1882
+ value: dateRange.until ? inputValues.until : 'MMMM D, YYYY', onChange: handleEndInputValueChange, onBlur: () => handleInputBlur(), onFocus: () => handleFocusEndInput(), autoComplete: "off" })] }));
1883
+ }
1884
+
1885
+ /**
1886
+ * Returns a stateful value, and a set of memoized functions to toggle it,
1887
+ * set it to true and set it to false
1888
+ */
1889
+ function useToggle(initialState) {
1890
+ const [value, setState] = useState(initialState);
1891
+ return {
1892
+ value,
1893
+ toggle: useCallback(() => setState((state) => !state), []),
1894
+ setTrue: useCallback(() => setState(true), []),
1895
+ setFalse: useCallback(() => setState(false), []),
1896
+ };
1897
+ }
1898
+
1899
+ function DateTimeFilterAddition(props) {
1900
+ const { setDateTimePicked, dateTimePicked, rangeAddition, allRanges } = props;
1901
+ const { value: isExpanded, toggle: toggleExpanded } = useToggle(true);
1902
+ const rangesAdditions = rangeAddition?.rangers || [];
1903
+ const handleChangeFilterByOption = (value) => {
1904
+ const alias = value[0];
1905
+ const result = allRanges.find((range) => range.alias === alias) || allRanges[0];
1906
+ setDateTimePicked({
1907
+ start: dayjsTz(result?.since).toDate(),
1908
+ end: dayjsTz(result?.until).toDate(),
1909
+ alias: result?.alias,
1910
+ });
1911
+ };
1912
+ const options = rangesAdditions.map((range) => {
1913
+ const selected = dateTimePicked.alias === range.alias;
1914
+ return {
1915
+ value: range.alias,
1916
+ label: (jsxs(Text, { as: "span", truncate: true, children: [jsx(Text, { as: "span", variant: 'bodyMd', fontWeight: selected ? 'semibold' : 'regular', children: range.title }), range.description && (jsxs(Fragment, { children: [' ', jsx(Text, { as: "span", variant: 'bodyXs', fontWeight: 'regular', tone: "subdued", children: `(${range.description})` })] }))] })),
1917
+ };
1918
+ });
1919
+ if (!rangeAddition || rangesAdditions.length === 0)
1920
+ return;
1921
+ return (jsxs(Box, { borderBlockEndWidth: '025', borderColor: 'border', paddingBlock: '200', children: [jsx("div", { className: "px-1.5", children: jsx(GDiv, { onClick: toggleExpanded, "aria-expanded": isExpanded, className: cls('hover:bg-surface-hover cursor-pointer rounded-lg p-1.5'), children: jsxs(InlineStack, { align: "space-between", blockAlign: "center", children: [jsx(Text, { as: "span", variant: "bodyMd", children: rangeAddition.title }), jsx(Box, { children: jsx(Icon, { source: isExpanded ? SvgChevronUpIcon : SvgChevronDownIcon }) })] }) }) }), jsx(Collapsible, { open: isExpanded, id: "date-time-filter-periods-collapsible", transition: { duration: '200ms', timingFunction: 'ease-in-out' }, children: jsx(GOptionList, { options: options, selected: dateTimePicked ? [dateTimePicked.alias] : [], onChange: handleChangeFilterByOption }) })] }));
1922
+ }
1923
+
1924
+ function DateTimeFilters(props) {
1925
+ const { setDateTimePicked, dateTimePicked, allRanges, isCompare } = props;
1926
+ const { DATE_TIME_FILTERS } = useDateTimeFilter();
1927
+ const { mdDown } = useBreakpoints();
1928
+ const rangesDefault = isCompare ? [...DATE_TIME_COMPARISON_FILTERS] : [...DATE_TIME_FILTERS];
1929
+ const handleChangeFilterBySelect = (value) => {
1930
+ const result = allRanges.find(({ title, alias }) => title === value || alias === value) || allRanges[0];
1931
+ setDateTimePicked({
1932
+ start: dayjsTz(result?.since).toDate(),
1933
+ end: dayjsTz(result?.until).toDate(),
1934
+ alias: result?.alias,
1935
+ });
1936
+ };
1937
+ const handleChangeFilterByOption = (value) => {
1938
+ const result = allRanges.find((range) => range.alias === value[0]) || allRanges[0];
1939
+ setDateTimePicked({
1940
+ start: dayjsTz(result?.since).toDate(),
1941
+ end: dayjsTz(result?.until).toDate(),
1942
+ alias: result?.alias,
1943
+ });
1944
+ };
1945
+ return (jsx(Box, { maxWidth: mdDown ? '516px' : '250px', width: mdDown ? '100%' : '250px', padding: { xs: '500', md: '0' }, paddingBlockEnd: { xs: '100', md: '0' }, children: mdDown ? (jsx(Select, { label: "dateRangeLabel", labelHidden: true, onChange: (value) => handleChangeFilterBySelect(value), value: dateTimePicked?.title || dateTimePicked?.alias || '', options: allRanges.map(({ alias, title }) => title || alias) })) : (jsx(Scrollable, { style: { maxHeight: '356px' }, children: jsx(Box, { children: jsxs(BlockStack, { children: [jsx(DateTimeFilterAddition, { ...props }), jsx(OptionList, { options: rangesDefault.map((range) => ({
1946
+ value: range.alias,
1947
+ label: range.title,
1948
+ })), selected: dateTimePicked ? [dateTimePicked.alias] : [], onChange: (value) => handleChangeFilterByOption(value) })] }) }) })) }));
1949
+ }
1950
+
1951
+ const useCompareDateTimePicker = ({ ranges, onApply }) => {
1952
+ const allRanges = ranges || DATE_TIME_COMPARISON_FILTERS;
1953
+ const { compareDateTimePicked, setCompareDateTimePicked } = useDateTimePickerContext();
1954
+ const { dateTimePicked: mainDateRange } = useDateTimePickerContext();
1955
+ const [dateRange, setDateRange] = useState(compareDateTimePicked);
1956
+ const [{ month, year }, setDate] = useState({
1957
+ month: dayjsTz(compareDateTimePicked.since).month(),
1958
+ year: dayjsTz(compareDateTimePicked.since).year(),
1959
+ });
1960
+ const onMonthChange = (month, year) => {
1961
+ setDate({ month, year });
1962
+ };
1963
+ const onCalendarChange = ({ start, end, alias }) => {
1964
+ const newDateRange = allRanges.find((range) => {
1965
+ return range.alias === alias;
1966
+ });
1967
+ // If the alias is not found, set the custom date range
1968
+ if (!newDateRange) {
1969
+ setDateRange({
1970
+ alias: 'custom',
1971
+ title: 'Custom',
1972
+ since: start.getTime(),
1973
+ until: end.getTime(),
1974
+ });
1975
+ return;
1976
+ }
1977
+ setDateRange({
1978
+ ...newDateRange,
1979
+ ...COMPARE_DATE_TIME_FILTERS_MAP[alias]({
1980
+ since: mainDateRange.since,
1981
+ until: mainDateRange.until,
1982
+ }),
1983
+ });
1984
+ };
1985
+ const apply = () => {
1986
+ setCompareDateTimePicked(dateRange);
1987
+ onApply?.(dateRange);
1988
+ };
1989
+ const cancel = () => {
1990
+ setDateRange(compareDateTimePicked);
1991
+ };
1992
+ const onChange = ({ end }) => {
1993
+ setDate(getMonthAndYearByDateFilter(month, year, end));
1994
+ };
1995
+ return {
1996
+ month,
1997
+ year,
1998
+ setDate,
1999
+ dateRange,
2000
+ apply,
2001
+ cancel,
2002
+ compareDateTimePicked,
2003
+ onChange,
2004
+ onMonthChange,
2005
+ onCalendarChange,
2006
+ };
2007
+ };
2008
+
2009
+ const BaseTimePicker = (props) => {
2010
+ const { dateTimeFilters, rangeAddition, popoverProps, activatorProps, actionProps, isCompare, buttonValue, activator, } = props;
2011
+ const initialPicked = rangeAddition?.initialPicked;
2012
+ const ranges = [...(dateTimeFilters || []), ...(rangeAddition?.rangers || [])];
2013
+ const useHookDateTimePicker = isCompare ? useCompareDateTimePicker : useDateTimePicker;
2014
+ const { month, year, dateRange, apply, cancel, onMonthChange, onCalendarChange, onChange } = useHookDateTimePicker({
2015
+ ranges,
2016
+ initialPicked,
2017
+ onApply: props.onApply,
2018
+ });
2019
+ const { t } = useTranslation();
2020
+ const { mdDown, lgUp } = useBreakpoints();
2021
+ const shouldShowMultiMonth = lgUp;
2022
+ const rawTooltipContent = useMemo(() => {
2023
+ // Only show tooltip when selecting Period (isVersion)
2024
+ if (!dateRange.isVersion || !dateRange.since || !dateRange.until)
2025
+ return;
2026
+ return formatDateTimeRange({
2027
+ since: dateRange.since,
2028
+ until: dateRange.until,
2029
+ isShowNow: dateRange.isCurrentVersion,
2030
+ });
2031
+ }, [dateRange.since, dateRange.until, dateRange.isVersion, dateRange.isCurrentVersion]);
2032
+ const [popoverActive, setPopoverActive] = useState(false);
2033
+ // Freeze tooltip content while popover is open to prevent button remount (focus/CSS loss)
2034
+ const datePickerRef = useRef(null);
2035
+ const tooltipContentRef = useRef(rawTooltipContent);
2036
+ if (!popoverActive)
2037
+ tooltipContentRef.current = rawTooltipContent;
2038
+ const tooltipContent = tooltipContentRef.current;
2039
+ //@ts-ignore
2040
+ function nodeContainsDescendant(rootNode, descendant) {
2041
+ if (rootNode === descendant) {
2042
+ return true;
2043
+ }
2044
+ let parent = descendant.parentNode;
2045
+ while (parent != null) {
2046
+ if (parent === rootNode) {
2047
+ return true;
2048
+ }
2049
+ parent = parent.parentNode;
2050
+ }
2051
+ return false;
2052
+ }
2053
+ //@ts-ignore
2054
+ function isNodeWithinPopover(node) {
2055
+ return datePickerRef?.current ? nodeContainsDescendant(datePickerRef.current, node) : false;
2056
+ }
2057
+ //@ts-ignore
2058
+ function handleInputBlur({ relatedTarget }) {
2059
+ const isRelatedTargetWithinPopover = relatedTarget != null && isNodeWithinPopover(relatedTarget);
2060
+ // If focus moves from the TextField to the Popover
2061
+ // we don't want to close the popover
2062
+ if (isRelatedTargetWithinPopover) {
2063
+ return;
2064
+ }
2065
+ setPopoverActive(false);
2066
+ }
2067
+ function applyFunc() {
2068
+ apply();
2069
+ setPopoverActive(false);
2070
+ }
2071
+ function cancelFunc() {
2072
+ cancel();
2073
+ setPopoverActive(false);
2074
+ }
2075
+ const handleTogglePopover = () => {
2076
+ if (isCompare) {
2077
+ return;
2078
+ }
2079
+ setPopoverActive(!popoverActive);
2080
+ };
2081
+ const onChangeDateTimeFilter = (data) => {
2082
+ onCalendarChange(data);
2083
+ onChange(data);
2084
+ };
2085
+ return (jsx(Popover, { active: popoverActive, autofocusTarget: "none", preferredAlignment: "right", preferredPosition: "below", fluidContent: true, sectioned: false, fullHeight: true, activator: jsx(GBlockCenter, { height: "100%", minHeight: "28px", align: "center", children: jsx(GTooltip, { content: tooltipContent, maxWidth: activator ? 'large' : 'extra-large', children: jsx(Box, { children: activator ? (activator({ onClick: handleTogglePopover, value: buttonValue })) : (jsx(Button, { size: "slim", icon: !isCompare ? SvgCalendarIcon : undefined, onClick: handleTogglePopover, ...activatorProps, children: buttonValue })) }) }) }), onClose: cancelFunc, ...popoverProps, children: jsxs(Scrollable, { vertical: true, scrollbarWidth: "thin", className: "max-w-[100%]", children: [jsx(Popover.Pane, { fixed: true, children: jsx("div", { ref: datePickerRef, children: jsxs(InlineGrid, { columns: {
2086
+ xs: '1fr',
2087
+ md: 'max-content max-content',
2088
+ }, gap: "0", children: [jsx(DateTimeFilters, { setDateTimePicked: onChangeDateTimeFilter, dateTimePicked: dateRange, rangeAddition: rangeAddition, allRanges: ranges, isCompare: isCompare }), jsx(Box, { padding: "400", maxWidth: mdDown ? '320px' : '516px', borderInlineStartWidth: "025", borderColor: "border-secondary", children: jsxs(BlockStack, { gap: "400", children: [jsx(DateTimeFilterInputs, { setDateTimePicked: onCalendarChange, dateRange: dateRange, onBlur: () => handleInputBlur }), jsx("div", { children: jsx(DatePicker, { month: month, year: year, selected: !dateRange.since && !dateRange.until
2089
+ ? undefined
2090
+ : {
2091
+ start: dayjs(dateRange.since).toDate(),
2092
+ end: dayjs(dateRange.until).toDate(),
2093
+ }, onMonthChange: onMonthChange, onChange: onCalendarChange, multiMonth: shouldShowMultiMonth, allowRange: true, disableDatesAfter: dayjsTzToDate() }) }), actionProps && (jsx(GButton, { ...actionProps, onClick: () => {
2094
+ setPopoverActive(false);
2095
+ actionProps.onClick?.();
2096
+ } }))] }) })] }) }) }), jsx(Popover.Pane, { fixed: true, children: jsx(Box, { padding: "400", borderBlockStartWidth: "025", borderColor: "border-secondary", children: jsx(InlineStack, { align: "end", gap: "200", children: jsxs(ButtonGroup, { children: [jsx(Button, { onClick: cancelFunc, children: t('Cancel') }), jsx(Button, { variant: "primary", onClick: applyFunc, children: t('Apply') })] }) }) }) })] }) }));
2097
+ };
2098
+
2099
+ const CompareTimePicker = (props) => {
2100
+ const { rangeAddition, popoverProps } = props;
2101
+ const initialPicked = rangeAddition?.initialPicked;
2102
+ const dateTimeFilters = DATE_TIME_COMPARISON_FILTERS;
2103
+ const ranges = [...dateTimeFilters, ...(rangeAddition?.rangers || [])];
2104
+ const { t } = useTranslation();
2105
+ const { compareDateTimePicked } = useCompareDateTimePicker({ ranges, initialPicked });
2106
+ const buttonValue = useMemo(() => {
2107
+ if (compareDateTimePicked.alias === CompareDateTimePickerAlias.NO_COMPARISON) {
2108
+ return t('No comparison');
2109
+ }
2110
+ return t('Compare to: {{value}}', {
2111
+ value: getDateRangeTitle(compareDateTimePicked.since, compareDateTimePicked.until),
2112
+ });
2113
+ }, [compareDateTimePicked, t]);
2114
+ return (jsx(BaseTimePicker, { dateTimeFilters: dateTimeFilters, rangeAddition: rangeAddition, popoverProps: popoverProps, isCompare: true, buttonValue: buttonValue }));
2115
+ };
2116
+
2117
+ const MainTimePicker = (props) => {
2118
+ const { rangeAddition, popoverProps, activator, onApply, activatorProps, actionProps } = props;
2119
+ const { DATE_TIME_FILTERS } = useDateTimeFilter();
2120
+ const dateTimeFilters = DATE_TIME_FILTERS;
2121
+ const additionalRanges = rangeAddition?.rangers || [];
2122
+ const initialPicked = rangeAddition?.initialPicked;
2123
+ const ranges = [...dateTimeFilters, ...additionalRanges];
2124
+ const { dateTimePicked } = useDateTimePicker({ ranges, initialPicked });
2125
+ const getButtonValue = () => {
2126
+ if (dateTimePicked.isVersion && additionalRanges.length > 0) {
2127
+ const time = dateTimePicked.description ? `at ${dateTimePicked.description}` : '';
2128
+ return `Period: ${dateTimePicked.title} ${time}`;
2129
+ }
2130
+ if (dateTimePicked.alias === 'custom') {
2131
+ return getDateRangeTitle(dateTimePicked.since, dateTimePicked.until);
2132
+ }
2133
+ return dateTimePicked.title;
2134
+ };
2135
+ return (jsx(BaseTimePicker, { activatorProps: activatorProps, dateTimeFilters: dateTimeFilters, rangeAddition: rangeAddition, popoverProps: popoverProps, actionProps: actionProps, buttonValue: getButtonValue(), activator: activator, onApply: onApply }));
2136
+ };
2137
+
2138
+ const GTimePicker = (props) => {
2139
+ const { isCompare, ...timePickerProps } = props;
2140
+ return (jsxs(InlineStack, { gap: "200", children: [jsx(MainTimePicker, { ...timePickerProps }), isCompare && (jsx(CompareTimePicker, { rangeAddition: timePickerProps.rangeAddition, popoverProps: timePickerProps.popoverProps }))] }));
2141
+ };
2142
+
2143
+ const GViewBySelector = ({ activatorText, selected, options, minWidth, maxWidth, preferredAlignment = 'right', onSelect, }) => {
2144
+ const [popoverActive, setPopoverActive] = useState(false);
2145
+ const [itemHover, setItemHover] = useState(null);
2146
+ const togglePopoverActive = () => setPopoverActive((prev) => !prev);
2147
+ const selectedOption = useMemo(() => {
2148
+ return options.find((item) => item.id === selected);
2149
+ }, [options, selected]);
2150
+ const activatorContent = useMemo(() => {
2151
+ if (selectedOption) {
2152
+ const content = selectedOption.title ?? selectedOption.content;
2153
+ return activatorText ? `${activatorText}: ${content}` : content;
2154
+ }
2155
+ return activatorText;
2156
+ }, [selectedOption, activatorText]);
2157
+ const handleSelect = (value) => {
2158
+ onSelect(value);
2159
+ setPopoverActive(false);
2160
+ };
2161
+ return (jsx(Popover, { active: popoverActive, activator: jsx(GActivatorPopover, { active: popoverActive, content: activatorContent, textProps: { variant: 'bodySm' }, onClick: togglePopoverActive }), autofocusTarget: "first-node", fluidContent: true, onClose: togglePopoverActive, preferredAlignment: preferredAlignment, children: jsx(Box, { maxWidth: maxWidth, minWidth: minWidth, padding: "200", children: jsx(BlockStack, { gap: "200", children: options.map((option) => {
2162
+ const isSelected = option.id === selected;
2163
+ const isHover = itemHover === option.id;
2164
+ const borderColor = isSelected ? 'input-border' : isHover ? 'border-hover' : 'transparent';
2165
+ return (jsx(Box, { padding: "150", borderWidth: "025", borderColor: borderColor, borderRadius: "100", children: jsx("div", { onClick: () => handleSelect(option.id), className: "cursor-pointer", onMouseEnter: () => setItemHover(option.id), onMouseLeave: () => setItemHover(null), children: jsxs(InlineStack, { gap: "300", align: "space-between", blockAlign: "center", wrap: false, children: [jsxs(InlineStack, { gap: "300", blockAlign: "center", wrap: false, children: [jsx("div", { className: "bg-surface-secondary flex items-center justify-center rounded-md min-w-[184px] h-[92px]", children: jsx("img", { src: option.icon, alt: option.content, className: "w-full h-full object-contain" }) }), jsxs(BlockStack, { gap: "100", children: [jsx(Text, { as: "span", variant: "bodyMd", fontWeight: "semibold", children: option.content }), jsx(Text, { as: "p", variant: "bodyMd", tone: "subdued", children: option.helpText })] })] }), isSelected && (jsx(Box, { children: jsx(Icon, { source: SvgCheckIcon }) }))] }) }) }, option.id));
2166
+ }) }) }) }));
2167
+ };
2168
+
2169
+ const ChoiceHelpText = ({ item }) => {
2170
+ return (jsxs(Text, { as: "p", variant: "bodyMd", children: [item.description, item.inlineAction && (jsx(Link, { monochrome: true, onClick: () => {
2171
+ if (item.inlineAction?.onAction) {
2172
+ item.inlineAction?.onAction();
2173
+ }
2174
+ else {
2175
+ window.open(item.inlineAction?.url, item.inlineAction?.target ?? '_blank');
2176
+ }
2177
+ }, children: item.inlineAction?.content }))] }));
2178
+ };
2179
+
2180
+ const GChoice = ({ item, disabled, isActive, suffix, isMultipleSelect, onClick, children, position = 'right', boxProps, activeStyle, }) => {
2181
+ const paddingBox = {
2182
+ paddingBlockStart: '200',
2183
+ paddingBlockEnd: '200',
2184
+ paddingInlineStart: '400',
2185
+ paddingInlineEnd: '400',
2186
+ };
2187
+ const emitOnClick = (e) => {
2188
+ e.preventDefault();
2189
+ e.stopPropagation();
2190
+ if (disabled)
2191
+ return;
2192
+ onClick?.(item.value, item.type);
2193
+ };
2194
+ const styleByState = useMemo(() => {
2195
+ if (!isActive) {
2196
+ return {
2197
+ box: { outlineWidth: '025', outlineColor: 'border' },
2198
+ text: { fontWeight: 'regular' },
2199
+ };
2200
+ }
2201
+ if (activeStyle)
2202
+ return activeStyle;
2203
+ return {
2204
+ box: { outlineWidth: '050', outlineColor: 'border-inverse' },
2205
+ text: { fontWeight: 'semibold' },
2206
+ };
2207
+ }, [activeStyle, isActive]);
2208
+ const checkBoxComponent = () => {
2209
+ return (jsx(Checkbox, { label: jsx(InlineStack, { gap: "100", children: jsx(Text, { truncate: true, as: "p", variant: "bodyMd", fontWeight: styleByState.text.fontWeight, children: item.label }) }), disabled: disabled, checked: isActive, name: item.type, ...(item.description && { helpText: jsx(ChoiceHelpText, { item: item }) }) }));
2210
+ };
2211
+ const radioComponent = () => {
2212
+ return (jsx(RadioButton, { label: jsxs(InlineStack, { gap: "100", children: [jsx(Text, { truncate: true, as: "p", variant: "bodyMd", fontWeight: styleByState.text.fontWeight, children: item.label }), item.icon] }), disabled: disabled, checked: isActive, name: item.type, ...(item.description && { helpText: jsx(ChoiceHelpText, { item: item }) }) }));
2213
+ };
2214
+ const renderInputComponent = () => {
2215
+ return isMultipleSelect ? checkBoxComponent() : radioComponent();
2216
+ };
2217
+ return (jsx("div", { onClick: (e) => emitOnClick(e), className: 'GChoice-ChoiceBox', children: jsx(Box, { borderRadius: "300", padding: '050', children: jsx(Box, { ...paddingBox, ...styleByState.box, shadow: "100", borderRadius: "300", ...boxProps, children: jsx(BlockStack, { gap: "0", children: jsxs(InlineStack, { align: "space-between", children: [position === 'left' && children, renderInputComponent(), position === 'right' && children, suffix] }) }) }) }, item.value) }));
2218
+ };
2219
+
751
2220
  const GChartSkeleton = () => {
752
2221
  return jsx(GSkeletonDisplayText, { height: "188px" });
753
2222
  };
@@ -896,16 +2365,6 @@ const MetricDonutChartSkeleton = () => {
896
2365
  return (jsx(Card, { children: jsxs(BlockStack, { gap: "400", children: [jsx(MetricInfoSkeleton, { isShowOneLine: true }), jsx(GChartSkeleton, {})] }) }));
897
2366
  };
898
2367
 
899
- var SvgChevronRightIcon = function SvgChevronRightIcon(props) {
900
- return /*#__PURE__*/React.createElement("svg", Object.assign({
901
- viewBox: "0 0 20 20"
902
- }, props), /*#__PURE__*/React.createElement("path", {
903
- fillRule: "evenodd",
904
- d: "M7.72 14.53a.75.75 0 0 1 0-1.06l3.47-3.47-3.47-3.47a.75.75 0 0 1 1.06-1.06l4 4a.75.75 0 0 1 0 1.06l-4 4a.75.75 0 0 1-1.06 0Z"
905
- }));
906
- };
907
- SvgChevronRightIcon.displayName = "ChevronRightIcon";
908
-
909
2368
  const MetricValueSummary = ({ totalValue, hideComparison }) => (jsx(BlockStack, { gap: "200", children: jsxs(InlineStack, { blockAlign: "center", gap: "200", wrap: false, children: [jsx(InlineStack, { blockAlign: "center", gap: "200", children: jsx(Text, { as: "span", variant: "headingSm", children: totalValue.value }) }), !hideComparison && jsx(MetricPercentage, { change: totalValue.change })] }) }));
910
2369
 
911
2370
  const MetricInfoBlock = ({ item, isHovered, isLoading, hideComparison, titleVariant = 'headingMd', titleFontWeight, onClickTitle, }) => {
@@ -1013,4 +2472,96 @@ const SingleMetricChartCard = ({ metricInfo, lineChartData, isLoading, hideCompa
1013
2472
  return (jsx("div", { onMouseEnter: () => setIsHovered(true), onMouseLeave: () => setIsHovered(false), children: jsx(Card, { children: jsxs(BlockStack, { gap: "200", children: [jsx(MetricInfoBlock, { item: metricInfo, isHovered: isHovered, isLoading: isLoading, hideComparison: hideComparison, onClickTitle: onClickTitle }), jsx(MetricChart, { lineChartData: lineChartData, isLoading: isLoading, isEmptyMetricData: isEmptyMetricData, columnTypes: columnTypes, metricKey: metricInfo.key })] }) }) }));
1014
2473
  };
1015
2474
 
1016
- export { ANALYTICS_METRIC_TOOLTIP, CHART_MIN_HEIGHT, DEFAULT_CURRENT_PERIOD_LABEL, DEFAULT_PREVIOUS_PERIOD_LABEL, EAnalyticColumnKey, EDeviceType, EMetricKey, ETrafficSourceType, EVisitorType, GSelectableMetricChartCard, MetricDonutChartCard, PLACEHOLDER_VALUE, SERIES_COLORS, SingleMetricChartCard, TARGET_CHANNEL, TARGET_DEVICES, TARGET_VISITOR, THUMB_PRODUCT_DEFAULT, TREND_TONE };
2475
+ var IMAGE_FIRST_SESSION = "data:image/png;base64,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";
2476
+
2477
+ var IMAGE_ALL_SESSION = "data:image/png;base64,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";
2478
+
2479
+ var EAnalyticMode;
2480
+ (function (EAnalyticMode) {
2481
+ EAnalyticMode["ALL_SESSION"] = "ALL_SESSION";
2482
+ EAnalyticMode["FIRST_SESSION"] = "FIRST_SESSION";
2483
+ EAnalyticMode["PAGE_ONLY"] = "PAGE_ONLY";
2484
+ })(EAnalyticMode || (EAnalyticMode = {}));
2485
+
2486
+ const VIEW_BY_OPTIONS = [
2487
+ {
2488
+ id: EAnalyticMode.ALL_SESSION,
2489
+ content: 'All sessions',
2490
+ helpText: 'Count metrics for all sessions where this page shows up anywhere in the journey: before, during, or after other pages.',
2491
+ icon: IMAGE_ALL_SESSION,
2492
+ },
2493
+ {
2494
+ id: EAnalyticMode.FIRST_SESSION,
2495
+ content: 'Entry session only',
2496
+ helpText: 'Count metrics for sessions only where this page was the very first page visited, then track how they moved through the funnel.',
2497
+ icon: IMAGE_FIRST_SESSION,
2498
+ },
2499
+ ];
2500
+ const AnalyticModeSelector = ({ activatorText = 'View by', value, onChange }) => {
2501
+ const options = useMemo(() => {
2502
+ return VIEW_BY_OPTIONS.map((option) => ({
2503
+ ...option,
2504
+ }));
2505
+ }, []);
2506
+ const onSelectMode = (value) => {
2507
+ onChange(value);
2508
+ };
2509
+ return (jsx(GViewBySelector, { activatorText: activatorText, options: options, selected: value, onSelect: onSelectMode, maxWidth: "650px" }));
2510
+ };
2511
+
2512
+ const EXCHANGE_RATE_HELP_URL = 'https://help.shopify.com/en/manual/international/pricing/exchange-rates#auto-convert';
2513
+ const CurrencySelector = ({ currencies, selected, preferredAlignment = 'left', activatorText, onSelect, }) => {
2514
+ const { t } = useTranslation();
2515
+ const onSelectRef = useRef(onSelect);
2516
+ const handleSelection = useCallback((value) => {
2517
+ onSelectRef.current?.(value);
2518
+ }, []);
2519
+ const actionItems = useMemo(() => {
2520
+ if (!currencies)
2521
+ return [];
2522
+ const formattedCurrencies = currencies.map((currency) => ({
2523
+ content: currency,
2524
+ id: currency,
2525
+ }));
2526
+ const hasCurrencyDefault = formattedCurrencies.some((item) => item.id === DEFAULT_CURRENCY_ANALYTIC);
2527
+ if (!hasCurrencyDefault) {
2528
+ formattedCurrencies.push({
2529
+ content: DEFAULT_CURRENCY_ANALYTIC,
2530
+ id: DEFAULT_CURRENCY_ANALYTIC,
2531
+ });
2532
+ }
2533
+ return sortByConditions(formattedCurrencies, [
2534
+ { attr: 'content', order: 'asc', preferredValue: DEFAULT_CURRENCY_ANALYTIC },
2535
+ ]);
2536
+ }, [currencies]);
2537
+ const actionListItems = useMemo(() => {
2538
+ return actionItems.map((option) => ({
2539
+ id: option.id,
2540
+ content: option.content,
2541
+ onAction: () => handleSelection(option.id),
2542
+ active: option.id === selected,
2543
+ suffix: option.id === selected && jsx(Icon, { source: SvgCheckIcon, tone: "success" }),
2544
+ helpText: option.id === DEFAULT_CURRENCY_ANALYTIC && (jsx(Text, { as: "p", fontWeight: "semibold", children: t('Default') })),
2545
+ }));
2546
+ }, [actionItems, selected, handleSelection, t]);
2547
+ const isHidden = useMemo(() => {
2548
+ if (!actionItems?.length)
2549
+ return true;
2550
+ return actionItems.length === 1 && actionItems[0]?.id === DEFAULT_CURRENCY_ANALYTIC;
2551
+ }, [actionItems]);
2552
+ useEffect(() => {
2553
+ onSelectRef.current = onSelect;
2554
+ });
2555
+ if (isHidden)
2556
+ return null;
2557
+ return (jsx(GSelector, { options: actionListItems, selected: selected, variant: "action-list",
2558
+ // value originates from our CurrencyCode option ids, so the widen-to-string round trip is safe
2559
+ onSelect: (value) => handleSelection(value), activatorText: activatorText ?? t('Currency'), maxWidth: "225px", preferredAlignment: preferredAlignment, helpText: jsx(Box, { padding: "200", paddingBlockStart: "300", paddingBlockEnd: "300", borderColor: "border-tertiary", background: 'bg', children: jsx(GI18NText, { as: "p", variant: "bodyMd", transformers: {
2560
+ 1: (text) => (jsx(GTextLink, { linkAction: {
2561
+ url: EXCHANGE_RATE_HELP_URL,
2562
+ target: '_blank',
2563
+ }, children: text }, text + 'text-link')),
2564
+ }, children: t("This will follow Shopify's current exchange rate. [1]Read more[]") }) }) }));
2565
+ };
2566
+
2567
+ export { ANALYTICS_METRIC_TOOLTIP, AnalyticModeSelector, CAMPAIGN_BACKGROUND_MAIN, CHART_MIN_HEIGHT, COMPARE_DATE_TIME_FILTERS_MAP, ChoiceHelpText, CompareDateTimePickerAlias, CurrencySelector, DATE_TIME_COMPARISON_FILTERS, DEFAULT_CURRENCY_ANALYTIC, DEFAULT_CURRENT_PERIOD_LABEL, DEFAULT_PREVIOUS_PERIOD_LABEL, DateTimeFilterInputs, DateTimeFilters, DateTimePickerContext, DateTimePickerProvider, EAnalyticColumnKey, EAnalyticMode, EDeviceType, EMetricKey, ETrafficSourceType, EVisitorType, GActivatorPopover, GBlockCenter, GButton, GCheckbox, GCheckboxMultiple, GCheckboxSingle, GChoice, GClickable, GDiv, GI18NText, GOptionList, GSelectableMetricChartCard, GSelector, GSkeletonDisplayText, GTextLink, GThumbnail, GTimePicker, GTooltip, GTooltipCard, GViewBySelector, MainDateTimePickerAlias, MetricDonutChartCard, PLACEHOLDER_VALUE, PREVIOUS_PERIOD_FILTER, SERIES_COLORS, SingleMetricChartCard, TARGET_CHANNEL, TARGET_DEVICES, TARGET_VISITOR, THUMB_PRODUCT_DEFAULT, TREND_TONE, convertToDateTimeFilters, createLastDaysRange, formatDate, formatDateTimeRange, formatDayjs, formatMs, formatTime, formatTimeRange, getDateRangeTitle, getDateTimeFilterBase, getDateTimeFilterByAlias, getDateTimeFilterMapping, getEndOfDayBy, getLast12Months, getLast30Days, getLast365Days, getLast7Days, getLast90Days, getLastMonth, getLastYear, getMonthAndYearByDateFilter, getNoComparison, getPreviousMonth, getPreviousPeriod, getPreviousQuarter, getPreviousWeek, getPreviousYear, getToday, getVersionDateDescription, getVersionDateRangeTitle, getYesterday, isDate, isMidnight, isSameDayTimestamp, isValidDate, isValidYearMonthDayDateString, parseYearMonthDayDateString, useDateTimeFilter, useDateTimePicker, useDateTimePickerContext, useVersionDateTimeFilters, variationName };