@levi-gemcommerce/analytics 2.0.5-dev.1 → 3.0.1-dev.2

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.
@@ -13,11 +13,18 @@ export interface IPathAnalysisHeatmapConfig {
13
13
  export interface IPathAnalysisConfig {
14
14
  pricing: IPathAnalysisPricingConfig;
15
15
  heatmap: IPathAnalysisHeatmapConfig;
16
+ /**
17
+ * When enabled, the funnel auto-expands every level along the dominant path
18
+ * (first level → highest-traffic child → ... up to MAX_FUNNEL_ADDITIONAL_LEVEL,
19
+ * stopping early when a level has no further paths) and the "+" add button is hidden.
20
+ */
21
+ autoExpandLevels?: boolean;
16
22
  }
17
23
  export interface IPathAnalysisConfigProviderProps {
18
24
  children: ReactNode;
19
25
  pricing: IPathAnalysisPricingConfig;
20
26
  heatmap: IPathAnalysisHeatmapConfig;
27
+ autoExpandLevels?: boolean;
21
28
  }
22
- export declare const PathAnalysisConfigProvider: ({ children, pricing, heatmap }: IPathAnalysisConfigProviderProps) => import("react/jsx-runtime").JSX.Element;
29
+ export declare const PathAnalysisConfigProvider: ({ children, pricing, heatmap, autoExpandLevels, }: IPathAnalysisConfigProviderProps) => import("react/jsx-runtime").JSX.Element;
23
30
  export declare const usePathAnalysisConfig: () => IPathAnalysisConfig;
@@ -4,6 +4,7 @@ export declare const usePathAnalysisChart: () => {
4
4
  lengthDisplayedLevels: number;
5
5
  listFunnelSelection: IFunnelSelectionItem[];
6
6
  isDisabledAddICon: boolean;
7
+ hideAddIcon: boolean;
7
8
  funnelData: import("@shopify/polaris-viz-core").DataSeries[];
8
9
  onDeleteFunnel: (id?: string) => void;
9
10
  onAddNextFunnel: (id: string) => void;
@@ -6,8 +6,9 @@ interface IUsePathAnalysisFunnelProps {
6
6
  pathAnalysisCacheKey: string;
7
7
  dataFirstLevels?: IPathAnalysisFirstLevel[];
8
8
  locationPath?: string;
9
+ autoExpandLevels?: boolean;
9
10
  }
10
- export declare const usePathAnalysisFunnel: ({ pathAnalytics, pathAnalysisCacheKey, dataFirstLevels, locationPath, }: IUsePathAnalysisFunnelProps) => {
11
+ export declare const usePathAnalysisFunnel: ({ pathAnalytics, pathAnalysisCacheKey, dataFirstLevels, locationPath, autoExpandLevels, }: IUsePathAnalysisFunnelProps) => {
11
12
  pageWithMetric: IBasePathAnalyticPageWithChild | undefined;
12
13
  dynamicLevels: IBasePathAnalyticPageWithChild[];
13
14
  nextLevelPages: IBasePathAnalyticPageWithChild[];
package/dist/esm/index.js CHANGED
@@ -2460,10 +2460,6 @@ const LINE_SERIES_COLORS = {
2460
2460
  all: [...SERIES_COLORS.all],
2461
2461
  };
2462
2462
  const MetricChartProvider = ({ children, minHeight = CHART_MIN_HEIGHT, seriesColors = LINE_SERIES_COLORS, }) => {
2463
- const [mounted, setMounted] = useState(false);
2464
- useEffect(() => setMounted(true), []);
2465
- if (!mounted)
2466
- return jsx(Fragment, {});
2467
2463
  return (jsxs(Fragment, { children: [jsx("link", { rel: "stylesheet", href: chartStyle }), jsx(PolarisVizProvider, { themes: {
2468
2464
  Light: {
2469
2465
  chartContainer: {
@@ -3796,10 +3792,11 @@ const DEFAULT_CONFIG = {
3796
3792
  isEnabledV2: false,
3797
3793
  onView: () => { },
3798
3794
  },
3795
+ autoExpandLevels: false,
3799
3796
  };
3800
3797
  const PathAnalysisConfigContext = createContext(DEFAULT_CONFIG);
3801
- const PathAnalysisConfigProvider = ({ children, pricing, heatmap }) => {
3802
- const value = useMemo(() => ({ pricing, heatmap }), [pricing, heatmap]);
3798
+ const PathAnalysisConfigProvider = ({ children, pricing, heatmap, autoExpandLevels, }) => {
3799
+ const value = useMemo(() => ({ pricing, heatmap, autoExpandLevels }), [pricing, heatmap, autoExpandLevels]);
3803
3800
  return jsx(PathAnalysisConfigContext.Provider, { value: value, children: children });
3804
3801
  };
3805
3802
  const usePathAnalysisConfig = () => useContext(PathAnalysisConfigContext);
@@ -4302,7 +4299,7 @@ const calculateConversionFunnelTrends = ({ pageWithMetric, previousPathAnalytics
4302
4299
  return trends;
4303
4300
  };
4304
4301
 
4305
- const usePathAnalysisFunnel = ({ pathAnalytics, pathAnalysisCacheKey, dataFirstLevels, locationPath, }) => {
4302
+ const usePathAnalysisFunnel = ({ pathAnalytics, pathAnalysisCacheKey, dataFirstLevels, locationPath, autoExpandLevels, }) => {
4306
4303
  const setFirstLevelLocationPath = usePathAnalysisStore((state) => state.setFirstLevelLocationPath);
4307
4304
  const firstLevelLocationPath = usePathAnalysisStore((state) => state.firstLevelLocationPath) || locationPath;
4308
4305
  const setCachedFunnelChartData = useFunnelChartStore((state) => state.setCachedFunnelChartData);
@@ -4413,6 +4410,25 @@ const usePathAnalysisFunnel = ({ pathAnalytics, pathAnalysisCacheKey, dataFirstL
4413
4410
  dynamicLevels: dynamicLevels,
4414
4411
  });
4415
4412
  }, [dynamicLevels]);
4413
+ // Auto-expand the dominant path down every level when the flag is enabled:
4414
+ // first level → highest-traffic child → ... up to MAX_FUNNEL_ADDITIONAL_LEVEL,
4415
+ // stopping as soon as a level has no further paths.
4416
+ useEffect(() => {
4417
+ if (!autoExpandLevels || !pageWithMetric)
4418
+ return;
4419
+ const expandedLevels = [];
4420
+ let currentPage = pageWithMetric;
4421
+ while (expandedLevels.length < MAX_FUNNEL_ADDITIONAL_LEVEL) {
4422
+ const childrenPages = getFunnelChildrenPages(currentPage);
4423
+ if (!childrenPages.length)
4424
+ break;
4425
+ // Pick the dominant child (highest sessions) — matches the top of the "+" popover.
4426
+ const nextPage = childrenPages.reduce((prev, curr) => (curr.metric?.totalSessions || 0) > (prev.metric?.totalSessions || 0) ? curr : prev);
4427
+ expandedLevels.push(nextPage);
4428
+ currentPage = nextPage;
4429
+ }
4430
+ setDynamicLevels(expandedLevels);
4431
+ }, [autoExpandLevels, pageWithMetric]);
4416
4432
  useEffect(() => {
4417
4433
  return () => {
4418
4434
  setFirstLevelLocationPath(undefined);
@@ -4471,12 +4487,14 @@ const PathAnalysisProvider = (props) => {
4471
4487
  const locationPath = analyticsData?.locationPath;
4472
4488
  const shopifyPageType = analyticsData?.shopifyPageType;
4473
4489
  const pathAnalysisCacheKey = JSON.stringify({ mode, campaignVariantID, campaignVersionID });
4490
+ const { autoExpandLevels } = usePathAnalysisConfig();
4474
4491
  const { processedPathAnalytics } = usePathAnalyticsMerger({ pathAnalytics, dataFirstLevels });
4475
4492
  const pathAnalysisFunnelData = usePathAnalysisFunnel({
4476
4493
  pathAnalytics: processedPathAnalytics,
4477
4494
  pathAnalysisCacheKey,
4478
4495
  dataFirstLevels,
4479
4496
  locationPath,
4497
+ autoExpandLevels,
4480
4498
  });
4481
4499
  const isLoading = isLoadingMetric || isFetchingFirstLevelPaths;
4482
4500
  return (jsx(PathAnalysisContext.Provider, { value: {
@@ -23852,7 +23870,7 @@ const FunnelSelectionPopover = (props) => {
23852
23870
  const FunnelChartActionIcon = ({ level, isLastLevel, isFinalFixedLevel, actionProps, }) => {
23853
23871
  const { t } = useTranslation();
23854
23872
  const { isMobileView } = useWindowSize();
23855
- const { listFunnelSelection, onAddNextFunnel, onNotify, isDisabledAddICon } = actionProps || {};
23873
+ const { listFunnelSelection, onAddNextFunnel, onNotify, isDisabledAddICon, hideAddIcon } = actionProps || {};
23856
23874
  const lengthDisplayedLevels = actionProps?.lengthDisplayedLevels || 0;
23857
23875
  const [isOpenPathSelectionPopover, setIsOpenPathSelectionPopover] = useState(false);
23858
23876
  if (isLastLevel)
@@ -23860,7 +23878,7 @@ const FunnelChartActionIcon = ({ level, isLastLevel, isFinalFixedLevel, actionPr
23860
23878
  if (level < lengthDisplayedLevels || isFinalFixedLevel) {
23861
23879
  return jsx(Icon, { source: SvgArrowRightIcon });
23862
23880
  }
23863
- if (isMobileView)
23881
+ if (isMobileView || hideAddIcon)
23864
23882
  return null;
23865
23883
  const tooltip = isDisabledAddICon ? t('Funnel step limit reached.') : t('Add funnel step');
23866
23884
  return (jsx(FunnelSelectionPopover, { open: isOpenPathSelectionPopover, onClose: () => setIsOpenPathSelectionPopover(false), listFunnelSelection: listFunnelSelection, onAddNextFunnel: onAddNextFunnel, onNotify: onNotify, activator: jsx(GTooltip, { content: tooltip, children: jsx(Button, { icon: jsx(Icon, { source: SvgPlusIcon }), onClick: () => setIsOpenPathSelectionPopover((prev) => !prev), disabled: isDisabledAddICon }) }) }));
@@ -24095,7 +24113,7 @@ const NON_HEATMAP_PAGE_TYPES = new Set([TemplateType.CHECKOUT]);
24095
24113
  const usePathAnalysisChart = () => {
24096
24114
  const { t } = useTranslation();
24097
24115
  const { getTextPrice } = useConvertMoneyContext();
24098
- const { heatmap } = usePathAnalysisConfig();
24116
+ const { heatmap, autoExpandLevels } = usePathAnalysisConfig();
24099
24117
  const { shopifyPageType, pageWithMetric, nextLevelPages, dynamicLevels, previousPathAnalyticsMap, handleAddNextLevel, handleChangeLevel, getPagesByParentID, handleDeleteLevel, } = usePathAnalysisContext();
24100
24118
  const orderedPages = useMemo(() => [pageWithMetric, ...dynamicLevels].filter(Boolean), [pageWithMetric, dynamicLevels]);
24101
24119
  const chartTooltipPrimaryAction = useMemo(() => {
@@ -24162,12 +24180,15 @@ const usePathAnalysisChart = () => {
24162
24180
  getTextPrice,
24163
24181
  }),
24164
24182
  chartTooltipPrimaryAction: heatmap.isEnabledV2 ? getTooltipAction(item?.pageType ?? undefined) : undefined,
24165
- secondaryActions: [
24166
- {
24167
- onAction: () => onDeleteFunnel(item.id),
24168
- icon: SvgDeleteIcon,
24169
- },
24170
- ],
24183
+ // Auto-expand mode is a read-only view: hide the delete (trash) action.
24184
+ secondaryActions: autoExpandLevels
24185
+ ? undefined
24186
+ : [
24187
+ {
24188
+ onAction: () => onDeleteFunnel(item.id),
24189
+ icon: SvgDeleteIcon,
24190
+ },
24191
+ ],
24171
24192
  title: item.pageTitle ?? undefined,
24172
24193
  });
24173
24194
  // Previous data
@@ -24177,7 +24198,15 @@ const usePathAnalysisChart = () => {
24177
24198
  title: item.pageTitle ?? undefined,
24178
24199
  });
24179
24200
  return acc;
24180
- }, { currentData: [], previousData: [] }), [dynamicLevels, previousPathAnalyticsMap, onDeleteFunnel, getTextPrice, getTooltipAction, heatmap.isEnabledV2]);
24201
+ }, { currentData: [], previousData: [] }), [
24202
+ dynamicLevels,
24203
+ previousPathAnalyticsMap,
24204
+ onDeleteFunnel,
24205
+ getTextPrice,
24206
+ getTooltipAction,
24207
+ heatmap.isEnabledV2,
24208
+ autoExpandLevels,
24209
+ ]);
24181
24210
  const lastLevelPreviousData = previousPathAnalyticsMap[lastLevel?.id ?? ''];
24182
24211
  const funnelData = useMemo(() => {
24183
24212
  const firstLevelKey = pageWithMetric?.pageTitle ||
@@ -24261,6 +24290,9 @@ const usePathAnalysisChart = () => {
24261
24290
  }, [nextLevelPages]);
24262
24291
  //list funnel selection to change funnel
24263
24292
  const getListFunnelByID = (data) => {
24293
+ // Auto-expand mode is read-only: collapse the change-path popover to a static label.
24294
+ if (autoExpandLevels)
24295
+ return [];
24264
24296
  const { level, parentID } = data;
24265
24297
  const availableChildPages = getPagesByParentID({ level, parentID });
24266
24298
  // if (level === 0) {
@@ -24280,6 +24312,7 @@ const usePathAnalysisChart = () => {
24280
24312
  lengthDisplayedLevels,
24281
24313
  listFunnelSelection,
24282
24314
  isDisabledAddICon,
24315
+ hideAddIcon: !!autoExpandLevels,
24283
24316
  funnelData,
24284
24317
  onDeleteFunnel,
24285
24318
  onAddNextFunnel,
@@ -24289,7 +24322,7 @@ const usePathAnalysisChart = () => {
24289
24322
  };
24290
24323
 
24291
24324
  const PathAnalysisChart = ({ funnelColors, isEnabled }) => {
24292
- const { lengthDisplayedLevels, listFunnelSelection, isDisabledAddICon, funnelData, getListFunnelByID, onAddNextFunnel, onChangeFunnel, } = usePathAnalysisChart();
24325
+ const { lengthDisplayedLevels, listFunnelSelection, isDisabledAddICon, hideAddIcon, funnelData, getListFunnelByID, onAddNextFunnel, onChangeFunnel, } = usePathAnalysisChart();
24293
24326
  const dataSeries = useMemo(() => {
24294
24327
  if (!isEnabled)
24295
24328
  return MOCK_DATA_PATH_ANALYSIS;
@@ -24300,6 +24333,7 @@ const PathAnalysisChart = ({ funnelColors, isEnabled }) => {
24300
24333
  lengthDisplayedLevels,
24301
24334
  listFunnelSelection,
24302
24335
  isDisabledAddICon,
24336
+ hideAddIcon,
24303
24337
  getListFunnelByID,
24304
24338
  onAddNextFunnel,
24305
24339
  onChangeFunnel,
@@ -2460,10 +2460,6 @@ const LINE_SERIES_COLORS = {
2460
2460
  all: [...SERIES_COLORS.all],
2461
2461
  };
2462
2462
  const MetricChartProvider = ({ children, minHeight = CHART_MIN_HEIGHT, seriesColors = LINE_SERIES_COLORS, }) => {
2463
- const [mounted, setMounted] = useState(false);
2464
- useEffect(() => setMounted(true), []);
2465
- if (!mounted)
2466
- return jsx(Fragment, {});
2467
2463
  return (jsxs(Fragment, { children: [jsx("link", { rel: "stylesheet", href: chartStyle }), jsx(PolarisVizProvider, { themes: {
2468
2464
  Light: {
2469
2465
  chartContainer: {
@@ -3796,10 +3792,11 @@ const DEFAULT_CONFIG = {
3796
3792
  isEnabledV2: false,
3797
3793
  onView: () => { },
3798
3794
  },
3795
+ autoExpandLevels: false,
3799
3796
  };
3800
3797
  const PathAnalysisConfigContext = createContext(DEFAULT_CONFIG);
3801
- const PathAnalysisConfigProvider = ({ children, pricing, heatmap }) => {
3802
- const value = useMemo(() => ({ pricing, heatmap }), [pricing, heatmap]);
3798
+ const PathAnalysisConfigProvider = ({ children, pricing, heatmap, autoExpandLevels, }) => {
3799
+ const value = useMemo(() => ({ pricing, heatmap, autoExpandLevels }), [pricing, heatmap, autoExpandLevels]);
3803
3800
  return jsx(PathAnalysisConfigContext.Provider, { value: value, children: children });
3804
3801
  };
3805
3802
  const usePathAnalysisConfig = () => useContext(PathAnalysisConfigContext);
@@ -4302,7 +4299,7 @@ const calculateConversionFunnelTrends = ({ pageWithMetric, previousPathAnalytics
4302
4299
  return trends;
4303
4300
  };
4304
4301
 
4305
- const usePathAnalysisFunnel = ({ pathAnalytics, pathAnalysisCacheKey, dataFirstLevels, locationPath, }) => {
4302
+ const usePathAnalysisFunnel = ({ pathAnalytics, pathAnalysisCacheKey, dataFirstLevels, locationPath, autoExpandLevels, }) => {
4306
4303
  const setFirstLevelLocationPath = usePathAnalysisStore((state) => state.setFirstLevelLocationPath);
4307
4304
  const firstLevelLocationPath = usePathAnalysisStore((state) => state.firstLevelLocationPath) || locationPath;
4308
4305
  const setCachedFunnelChartData = useFunnelChartStore((state) => state.setCachedFunnelChartData);
@@ -4413,6 +4410,25 @@ const usePathAnalysisFunnel = ({ pathAnalytics, pathAnalysisCacheKey, dataFirstL
4413
4410
  dynamicLevels: dynamicLevels,
4414
4411
  });
4415
4412
  }, [dynamicLevels]);
4413
+ // Auto-expand the dominant path down every level when the flag is enabled:
4414
+ // first level → highest-traffic child → ... up to MAX_FUNNEL_ADDITIONAL_LEVEL,
4415
+ // stopping as soon as a level has no further paths.
4416
+ useEffect(() => {
4417
+ if (!autoExpandLevels || !pageWithMetric)
4418
+ return;
4419
+ const expandedLevels = [];
4420
+ let currentPage = pageWithMetric;
4421
+ while (expandedLevels.length < MAX_FUNNEL_ADDITIONAL_LEVEL) {
4422
+ const childrenPages = getFunnelChildrenPages(currentPage);
4423
+ if (!childrenPages.length)
4424
+ break;
4425
+ // Pick the dominant child (highest sessions) — matches the top of the "+" popover.
4426
+ const nextPage = childrenPages.reduce((prev, curr) => (curr.metric?.totalSessions || 0) > (prev.metric?.totalSessions || 0) ? curr : prev);
4427
+ expandedLevels.push(nextPage);
4428
+ currentPage = nextPage;
4429
+ }
4430
+ setDynamicLevels(expandedLevels);
4431
+ }, [autoExpandLevels, pageWithMetric]);
4416
4432
  useEffect(() => {
4417
4433
  return () => {
4418
4434
  setFirstLevelLocationPath(undefined);
@@ -4471,12 +4487,14 @@ const PathAnalysisProvider = (props) => {
4471
4487
  const locationPath = analyticsData?.locationPath;
4472
4488
  const shopifyPageType = analyticsData?.shopifyPageType;
4473
4489
  const pathAnalysisCacheKey = JSON.stringify({ mode, campaignVariantID, campaignVersionID });
4490
+ const { autoExpandLevels } = usePathAnalysisConfig();
4474
4491
  const { processedPathAnalytics } = usePathAnalyticsMerger({ pathAnalytics, dataFirstLevels });
4475
4492
  const pathAnalysisFunnelData = usePathAnalysisFunnel({
4476
4493
  pathAnalytics: processedPathAnalytics,
4477
4494
  pathAnalysisCacheKey,
4478
4495
  dataFirstLevels,
4479
4496
  locationPath,
4497
+ autoExpandLevels,
4480
4498
  });
4481
4499
  const isLoading = isLoadingMetric || isFetchingFirstLevelPaths;
4482
4500
  return (jsx(PathAnalysisContext.Provider, { value: {
@@ -23852,7 +23870,7 @@ const FunnelSelectionPopover = (props) => {
23852
23870
  const FunnelChartActionIcon = ({ level, isLastLevel, isFinalFixedLevel, actionProps, }) => {
23853
23871
  const { t } = useTranslation();
23854
23872
  const { isMobileView } = useWindowSize();
23855
- const { listFunnelSelection, onAddNextFunnel, onNotify, isDisabledAddICon } = actionProps || {};
23873
+ const { listFunnelSelection, onAddNextFunnel, onNotify, isDisabledAddICon, hideAddIcon } = actionProps || {};
23856
23874
  const lengthDisplayedLevels = actionProps?.lengthDisplayedLevels || 0;
23857
23875
  const [isOpenPathSelectionPopover, setIsOpenPathSelectionPopover] = useState(false);
23858
23876
  if (isLastLevel)
@@ -23860,7 +23878,7 @@ const FunnelChartActionIcon = ({ level, isLastLevel, isFinalFixedLevel, actionPr
23860
23878
  if (level < lengthDisplayedLevels || isFinalFixedLevel) {
23861
23879
  return jsx(Icon, { source: SvgArrowRightIcon });
23862
23880
  }
23863
- if (isMobileView)
23881
+ if (isMobileView || hideAddIcon)
23864
23882
  return null;
23865
23883
  const tooltip = isDisabledAddICon ? t('Funnel step limit reached.') : t('Add funnel step');
23866
23884
  return (jsx(FunnelSelectionPopover, { open: isOpenPathSelectionPopover, onClose: () => setIsOpenPathSelectionPopover(false), listFunnelSelection: listFunnelSelection, onAddNextFunnel: onAddNextFunnel, onNotify: onNotify, activator: jsx(GTooltip, { content: tooltip, children: jsx(Button, { icon: jsx(Icon, { source: SvgPlusIcon }), onClick: () => setIsOpenPathSelectionPopover((prev) => !prev), disabled: isDisabledAddICon }) }) }));
@@ -24095,7 +24113,7 @@ const NON_HEATMAP_PAGE_TYPES = new Set([TemplateType.CHECKOUT]);
24095
24113
  const usePathAnalysisChart = () => {
24096
24114
  const { t } = useTranslation();
24097
24115
  const { getTextPrice } = useConvertMoneyContext();
24098
- const { heatmap } = usePathAnalysisConfig();
24116
+ const { heatmap, autoExpandLevels } = usePathAnalysisConfig();
24099
24117
  const { shopifyPageType, pageWithMetric, nextLevelPages, dynamicLevels, previousPathAnalyticsMap, handleAddNextLevel, handleChangeLevel, getPagesByParentID, handleDeleteLevel, } = usePathAnalysisContext();
24100
24118
  const orderedPages = useMemo(() => [pageWithMetric, ...dynamicLevels].filter(Boolean), [pageWithMetric, dynamicLevels]);
24101
24119
  const chartTooltipPrimaryAction = useMemo(() => {
@@ -24162,12 +24180,15 @@ const usePathAnalysisChart = () => {
24162
24180
  getTextPrice,
24163
24181
  }),
24164
24182
  chartTooltipPrimaryAction: heatmap.isEnabledV2 ? getTooltipAction(item?.pageType ?? undefined) : undefined,
24165
- secondaryActions: [
24166
- {
24167
- onAction: () => onDeleteFunnel(item.id),
24168
- icon: SvgDeleteIcon,
24169
- },
24170
- ],
24183
+ // Auto-expand mode is a read-only view: hide the delete (trash) action.
24184
+ secondaryActions: autoExpandLevels
24185
+ ? undefined
24186
+ : [
24187
+ {
24188
+ onAction: () => onDeleteFunnel(item.id),
24189
+ icon: SvgDeleteIcon,
24190
+ },
24191
+ ],
24171
24192
  title: item.pageTitle ?? undefined,
24172
24193
  });
24173
24194
  // Previous data
@@ -24177,7 +24198,15 @@ const usePathAnalysisChart = () => {
24177
24198
  title: item.pageTitle ?? undefined,
24178
24199
  });
24179
24200
  return acc;
24180
- }, { currentData: [], previousData: [] }), [dynamicLevels, previousPathAnalyticsMap, onDeleteFunnel, getTextPrice, getTooltipAction, heatmap.isEnabledV2]);
24201
+ }, { currentData: [], previousData: [] }), [
24202
+ dynamicLevels,
24203
+ previousPathAnalyticsMap,
24204
+ onDeleteFunnel,
24205
+ getTextPrice,
24206
+ getTooltipAction,
24207
+ heatmap.isEnabledV2,
24208
+ autoExpandLevels,
24209
+ ]);
24181
24210
  const lastLevelPreviousData = previousPathAnalyticsMap[lastLevel?.id ?? ''];
24182
24211
  const funnelData = useMemo(() => {
24183
24212
  const firstLevelKey = pageWithMetric?.pageTitle ||
@@ -24261,6 +24290,9 @@ const usePathAnalysisChart = () => {
24261
24290
  }, [nextLevelPages]);
24262
24291
  //list funnel selection to change funnel
24263
24292
  const getListFunnelByID = (data) => {
24293
+ // Auto-expand mode is read-only: collapse the change-path popover to a static label.
24294
+ if (autoExpandLevels)
24295
+ return [];
24264
24296
  const { level, parentID } = data;
24265
24297
  const availableChildPages = getPagesByParentID({ level, parentID });
24266
24298
  // if (level === 0) {
@@ -24280,6 +24312,7 @@ const usePathAnalysisChart = () => {
24280
24312
  lengthDisplayedLevels,
24281
24313
  listFunnelSelection,
24282
24314
  isDisabledAddICon,
24315
+ hideAddIcon: !!autoExpandLevels,
24283
24316
  funnelData,
24284
24317
  onDeleteFunnel,
24285
24318
  onAddNextFunnel,
@@ -24289,7 +24322,7 @@ const usePathAnalysisChart = () => {
24289
24322
  };
24290
24323
 
24291
24324
  const PathAnalysisChart = ({ funnelColors, isEnabled }) => {
24292
- const { lengthDisplayedLevels, listFunnelSelection, isDisabledAddICon, funnelData, getListFunnelByID, onAddNextFunnel, onChangeFunnel, } = usePathAnalysisChart();
24325
+ const { lengthDisplayedLevels, listFunnelSelection, isDisabledAddICon, hideAddIcon, funnelData, getListFunnelByID, onAddNextFunnel, onChangeFunnel, } = usePathAnalysisChart();
24293
24326
  const dataSeries = useMemo(() => {
24294
24327
  if (!isEnabled)
24295
24328
  return MOCK_DATA_PATH_ANALYSIS;
@@ -24300,6 +24333,7 @@ const PathAnalysisChart = ({ funnelColors, isEnabled }) => {
24300
24333
  lengthDisplayedLevels,
24301
24334
  listFunnelSelection,
24302
24335
  isDisabledAddICon,
24336
+ hideAddIcon,
24303
24337
  getListFunnelByID,
24304
24338
  onAddNextFunnel,
24305
24339
  onChangeFunnel,
@@ -1,5 +1,5 @@
1
1
  import type { PartialTheme } from '@shopify/polaris-viz-core';
2
- import { type ReactElement, type ReactNode } from 'react';
2
+ import type { ReactElement, ReactNode } from 'react';
3
3
  type ISeriesColors = PartialTheme['seriesColors'];
4
4
  export interface IProps {
5
5
  children: ReactNode;
@@ -10,6 +10,7 @@ export type OnChangeFunnelType = (data: IOnChangeFunnelParams) => void;
10
10
  export interface IFunnelChartAction {
11
11
  fixedLevel?: number;
12
12
  isDisabledAddICon?: boolean;
13
+ hideAddIcon?: boolean;
13
14
  lengthDisplayedLevels: number;
14
15
  listFunnelSelection?: IFunnelSelectionItem[];
15
16
  isFetchingNextPage?: boolean;
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- .GPathSelectionItem{cursor:pointer;padding:8px 12px 12px;transition:background-color .2s ease}.GPathSelectionItem--selected{background-color:#f7f7f7}.GPathSelectionItem .GPathSelectionItem__view-icon{background-color:#ebebeb;border-radius:8px;display:none;margin-left:8px;padding:4px}.GPathSelectionItem:hover{background-color:#f7f7f7}.GPathSelectionItem:hover .GPathSelectionItem__percentage{display:none}.GPathSelectionItem:hover .GPathSelectionItem__view-icon{display:block}.GAnalytic-Badge-Logo{position:relative}.GAnalytic-Badge-Logo:before{background-image:url("data:image/png;base64,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");background-position:50%;background-repeat:no-repeat;background-size:contain;content:" ";height:84px;left:auto;position:absolute;right:8px;top:50%;transform:translateY(-50%);width:18px;z-index:1}.GAnalytic-Badge-Logo.GAnalytic-Badge-Logo--in-group:before{content:" ";position:absolute;top:48px;transform:translateY(0)}.GPath-Badge-Logo:before{right:-11px}.GFunnelChartNextTooltip-container{left:0;max-width:300px;pointer-events:auto;position:absolute;top:0;z-index:520}.GFunnelChartNextTooltip-rows{display:flex;flex-direction:column;gap:8px}.GFunnelChartNextTooltip-rows>:not(:last-child):after{background:#e3e3e3;content:"";display:block;grid-column:1/-1;height:1px;margin:8px 0 0}.GFunnelChartNextTooltip-row{align-items:center;color:#616161;-moz-column-gap:4px;column-gap:4px;display:grid;font-size:12px;grid-template-columns:8px auto;line-height:16px}.GFunnelChartNextTooltip-keys{align-items:center;display:grid;grid-column:1/-1;grid-template-columns:subgrid}.GFunnelChartNextTooltip-values{align-items:flex-start;display:flex;font-weight:600;gap:8px;grid-column:2;padding-top:2px}.GFunnelChartNextTooltip-values>span{flex:0 0 auto}.GFunnelChartNextTooltip-values .GFunnelChartNextTooltip-trendIndicator{margin-left:auto}.GFunnelChartNextTooltip-values strong{color:#1f2124;font-weight:500}.Polaris-GInlineCenter{--gp-inline-center-box-align:center;--gp-inline-center-box-inline-align:center;--gp-inline-center-box-gap:0;--gp-inline-center-box-flex-direction:row;--gp-inline-center-width:auto;width:var(--gp-inline-center-width)}.Polaris-GInlineCenter>.Polaris-Box{align-items:var(--gp-inline-center-box-align);display:flex;flex-direction:var(--gp-inline-center-box-flex-direction);gap:var(--gp-inline-center-box-gap);justify-content:var(--gp-inline-center-box-inline-align)}.GReportTable__Container{--p-z-index-sticky-header:300;--p-z-index-sticky-footer:301;--p-z-index-dimension:50;position:relative;scrollbar-color:auto}.GReportTable__Container--border-top{border-top:1px solid var(--p-color-border)}.GReportTable__Container--pagination-hidden .GReportTable__Wrapper{border-bottom-left-radius:12px;border-bottom-right-radius:12px;overflow:hidden}.GReportTable__Container .GReportTable__Wrapper{--column-cell-min-width:200px;--column-cell-max-width:unset;--column-cell-height:40px;--column-cell-justify-content:start;--column-cell-padding-inline:12px;--column-first-padding-inline:16px;--column-summary-cell-padding-inline:12px;--column-summary-cell-height:36px;--column-cell-padding-right:12px;--column-header-cell-padding-right:12px;--column-dimension-box-shadow:var(--p-space-025) 0 0 0 var(--p-color-border-secondary);--column-border-right-width:1px;background:var(--p-color-bg-surface);position:relative}.GReportTable__Container .GReportTable__Wrapper .GReportTable__StickyHeader{overflow:hidden;overflow-x:auto;overscroll-behavior-x:none;position:sticky;top:0;z-index:var(--p-z-index-sticky-header);-ms-overflow-style:none;scrollbar-width:none}.GReportTable__Container .GReportTable__Wrapper .GReportTable__StickyHeader .GReportTable__Header{background:var(--p-color-bg-surface);display:flex}.GReportTable__Container .GReportTable__Wrapper .GReportTable__StickyHeader .GReportTable__Header--hide-summary .GReportTable__Header-Cell{background:var(--p-color-bg-surface-secondary)!important;border-bottom:none!important}.GReportTable__Container .GReportTable__Wrapper .GReportTable__StickyHeader .GReportTable__Header>.GReportTable__Header-Cell:first-child{border-right:var(--column-border-right-width) solid var(--p-color-border);left:0;position:sticky;z-index:var(--p-z-index-1)}.GReportTable__Container .GReportTable__Wrapper .GReportTable__StickyHeader .GReportTable__Header .GReportTable__Header-Cell{align-items:center;background:var(--p-color-bg-surface);border-bottom:1px solid var(--p-color-border);display:flex;flex:1;font-weight:800;gap:4px;justify-content:var(--column-cell-justify-content);max-width:var(--column-cell-max-width);min-height:var(--column-cell-height);min-width:var(--column-cell-min-width);overflow:hidden;padding-inline:var(--column-cell-padding-inline);padding-right:var(--column-header-cell-padding-right)}.GReportTable__Container .GReportTable__Wrapper .GReportTable__StickyHeader .GReportTable__Header .GReportTable__Header-Cell .GReportTable-SortableHeaderButton{align-items:center;background:transparent;border:none;border-radius:var(--p-border-radius-100);color:var(--p-color-text);cursor:pointer;display:flex;justify-content:center;min-width:0;padding:2px 4px}.GReportTable__Container .GReportTable__Wrapper .GReportTable__StickyHeader .GReportTable__Header .GReportTable__Header-Cell .GReportTable-SortableHeaderButton:hover{background:var(--p-color-bg-fill-transparent-hover)}.GReportTable__Container .GReportTable__Wrapper .GReportTable__StickyHeader .GReportTable__Summary-Row{display:flex}.GReportTable__Container .GReportTable__Wrapper .GReportTable__StickyHeader .GReportTable__Summary-Row>.GReportTable__Summary-Cell:first-child{border-right:var(--column-border-right-width) solid var(--p-color-border);left:0;position:sticky;z-index:var(--p-z-index-1)}.GReportTable__Container .GReportTable__Wrapper .GReportTable__StickyHeader .GReportTable__Summary-Row .GReportTable__Summary-Cell{align-items:center;background-color:var(--p-color-bg-surface-secondary);display:flex;flex:1;font-weight:800;justify-content:var(--column-cell-justify-content);max-width:var(--column-cell-max-width);min-height:var(--column-summary-cell-height);min-width:var(--column-cell-min-width);padding-inline:var(--column-summary-cell-padding-inline);padding-right:var(--column-cell-padding-right)}.GReportTable__Container .GReportTable__Wrapper .GReportTable__StickyHeader .GReportTable__Summary-Row .GReportTable__Summary-Cell span{white-space:nowrap}.GReportTable__Container .GReportTable__Wrapper .GReportTable__ScrollWrap{overflow-x:auto;overscroll-behavior-x:none;-ms-overflow-style:none;scrollbar-width:none}.GReportTable__Container .GReportTable__Wrapper .GReportTable__ScrollWrap .GReportTable__Row{display:flex}.GReportTable__Container .GReportTable__Wrapper .GReportTable__ScrollWrap .GReportTable__Row:hover,.GReportTable__Container .GReportTable__Wrapper .GReportTable__ScrollWrap .GReportTable__Row:hover>.GReportTable__Cell,.GReportTable__Container .GReportTable__Wrapper .GReportTable__ScrollWrap .GReportTable__Row:hover>.GReportTable__Cell:first-child{background-color:var(--p-color-bg-surface-hover)}.GReportTable__Container .GReportTable__Wrapper .GReportTable__ScrollWrap .GReportTable__Row .GReportTable__Cell{align-items:center;border-top:1px solid var(--p-color-border);display:flex;flex:1;justify-content:var(--column-cell-justify-content);max-width:var(--column-cell-max-width);min-height:var(--column-cell-height);min-width:var(--column-cell-min-width)}.GReportTable__Container .GReportTable__Wrapper .GReportTable__ScrollWrap .GReportTable__Row .GReportTable__Cell .GReportTable__CellContent{align-items:center;display:flex;height:100%;justify-content:var(--column-cell-justify-content);width:100%}.GReportTable__Container .GReportTable__Wrapper .GReportTable__ScrollWrap .GReportTable__Row .GReportTable__Cell .GReportTable__CellContent>:first-child{align-items:center;display:flex;height:100%}.GReportTable__Container .GReportTable__Wrapper .GReportTable__ScrollWrap .GReportTable__Row .GReportTable__Cell .GReportTable__CellContent>:first-child:not(:has(.GReportTable__CellContent--clickable)){padding-inline:var(--column-cell-padding-inline);padding-right:var(--column-cell-padding-right)}.GReportTable__Container .GReportTable__Wrapper .GReportTable__ScrollWrap .GReportTable__Row .GReportTable__Cell .GReportTable__CellContent>:first-child:has(.GReportTable__CellContent--clickable){width:100%}.GReportTable__Container .GReportTable__Wrapper .GReportTable__ScrollWrap .GReportTable__Row .GReportTable__Cell .GReportTable__CellContent--clickable{border-radius:0}.GReportTable__Container .GReportTable__Wrapper .GReportTable__ScrollWrap .GReportTable__Row .GReportTable__Cell .GReportTable__CellContent--clickable:hover{background-color:var(--p-color-bg-surface-selected)}.GReportTable__Container .GReportTable__Wrapper .GReportTable__ScrollWrap .GReportTable__Row .GReportTable__Cell .GReportTable__CellContent--noClick{background-color:transparent!important}.GReportTable__Container .GReportTable__Wrapper .GReportTable__ScrollWrap .GReportTable__Row .GReportTable__Cell--dimension{border-right:var(--column-border-right-width) solid var(--p-color-border)}.GReportTable__Container .GReportTable__Wrapper .GReportTable__ScrollWrap .GReportTable__Row>.GReportTable__Cell:first-child{background:var(--p-color-bg-surface);border-right:var(--column-border-right-width) solid var(--p-color-border);left:0;position:sticky;z-index:var(--p-z-index-1)}.GReportTable__Container .GReportTable__Wrapper .GReportTable__ScrollWrap .GReportTable__Row>.GReportTable__Cell:first-child .GReportTable__CellContent>:first-child:not(:has(.GReportTable__CellContent--clickable)){padding-inline:var(--column-cell-padding-inline)}.GReportTable__Container .GReportTable__FooterWrapper{bottom:0;position:sticky;z-index:var(--p-z-index-sticky-footer)}.GReportTable__Container .GReportTable__ScrollBarContainer{background-color:var(--p-color-bg-surface);bottom:44px;position:sticky;z-index:var(--p-z-index-sticky-footer)}.GReportTable__Container .GReportTable__ScrollBarContainer--pagination-hidden{border-bottom-left-radius:12px;border-bottom-right-radius:12px;bottom:0;overflow:hidden}.GReportTable__Container .GReportTable__ScrollBarContainer .GReportTable__ScrollBar{margin:0;overflow-x:scroll;padding:0;width:100%}.GReportTable__Container .GReportTable__ScrollBarContainer .GReportTable__ScrollBarContent{height:.0625rem}.GReportTable__Container .GReportTable__Pagination{align-items:center;background-color:var(--p-color-bg-surface-secondary);border-bottom-left-radius:8px;border-bottom-right-radius:8px;display:flex;height:44px;padding-inline:16px}.GReportTable__Container .GReportTable--shadow,.GReportTable__Container .GReportTable__LeftShadow,.GReportTable__Container .GReportTable__RightShadow{--scrollbar-container-height:18px;content:"";height:calc(100% - var(--scrollbar-container-height)/2);opacity:0;pointer-events:none;position:absolute;right:0;top:0;transition:opacity var(--p-motion-duration-300) var(--p-motion-ease);width:var(--p-space-150);z-index:var(--p-z-index-sticky-header)}.GReportTable__Container .GReportTable__LeftShadow{background:linear-gradient(90deg,rgba(26,26,26,.1),transparent)}.GReportTable__Container .GReportTable__RightShadow{background:linear-gradient(270deg,rgba(26,26,26,.1),transparent)}.Polaris-Box[aria-label=shadow-outset-200]{box-shadow:0 4px 6px -2px rgba(26,26,26,.2),inset 0 -1px rgba(0,0,0,.169),inset 0 0 rgba(0,0,0,.129),inset 0 0 rgba(0,0,0,.129)}.Polaris-Box[aria-label=shadow-drop-outset-100]{box-shadow:0 0 6px 1px rgba(26,26,26,.2)}.Polaris-Box[aria-label=shadow-top-100]{box-shadow:0 -2px 4px -1px rgba(26,26,26,.078)}.Polaris-Box[aria-label=shadow-bottom-100]{box-shadow:0 2px 4px -1px rgba(26,26,26,.141)}.Polaris-Box[aria-description=height-full]{height:100%}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.z-\[1000\]{z-index:1000}.-mb-1{margin-bottom:-.25rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.table{display:table}.\!grid{display:grid!important}.grid{display:grid}.hidden{display:none}.size-10{height:2.5rem;width:2.5rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-\[20px\]{height:20px}.h-\[2px\]{height:2px}.h-\[80px\]{height:80px}.h-\[8px\]{height:8px}.h-\[92px\]{height:92px}.h-full{height:100%}.max-h-\[216px\]{max-height:216px}.max-h-\[250px\]{max-height:250px}.max-h-\[325px\]{max-height:325px}.w-12{width:3rem}.w-16{width:4rem}.w-20{width:5rem}.w-24{width:6rem}.w-28{width:7rem}.w-4{width:1rem}.w-6{width:1.5rem}.w-\[11px\]{width:11px}.w-\[12px\]{width:12px}.w-\[20px\]{width:20px}.w-\[210px\]{width:210px}.w-\[320px\]{width:320px}.w-\[328px\]{width:328px}.w-\[50px\]{width:50px}.w-\[80px\]{width:80px}.w-\[8px\]{width:8px}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.min-w-0{min-width:0}.min-w-\[175px\]{min-width:175px}.min-w-\[184px\]{min-width:184px}.max-w-40{max-width:10rem}.max-w-\[100\%\]{max-width:100%}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-\[2px\]{gap:2px}.overflow-hidden,.truncate{overflow:hidden}.truncate{text-overflow:ellipsis;white-space:nowrap}.text-nowrap{text-wrap:nowrap}.rounded{border-radius:.25rem}.rounded-\[10px\]{border-radius:10px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.\!border-r-0{border-right-width:0!important}.border-dashed{border-style:dashed}.border-\[\#A1CAE7\]{--tw-border-opacity:1;border-color:rgb(161 202 231/var(--tw-border-opacity))}.bg-\[\#4FA9EA\]{--tw-bg-opacity:1;background-color:rgb(79 169 234/var(--tw-bg-opacity))}.bg-\[\#8A8A8A\]{--tw-bg-opacity:1;background-color:rgb(138 138 138/var(--tw-bg-opacity))}.bg-\[\#F1F1F1\]{--tw-bg-opacity:1;background-color:rgb(241 241 241/var(--tw-bg-opacity))}.bg-\[\#f7f7f7\]{--tw-bg-opacity:1;background-color:rgb(247 247 247/var(--tw-bg-opacity))}.object-contain{-o-object-fit:contain;object-fit:contain}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-\[8px\]{padding-left:8px;padding-right:8px}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-2\.5{padding-bottom:.625rem;padding-top:.625rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pr-1{padding-right:.25rem}.pr-\[5px\]{padding-right:5px}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.capitalize{text-transform:capitalize}.text-\[var\(--p-color-text\)\]{color:var(--p-color-text)}.text-\[var\(--p-color-text-disabled\)\]{color:var(--p-color-text-disabled)}.text-\[var\(--p-color-text-subdued\)\]{color:var(--p-color-text-subdued)}.underline{text-decoration-line:underline}.opacity-0{opacity:0}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.blur{--tw-blur:blur(8px)}.blur,.drop-shadow{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow{--tw-drop-shadow:drop-shadow(0 1px 2px rgba(0,0,0,.1)) drop-shadow(0 1px 1px rgba(0,0,0,.06))}.grayscale{--tw-grayscale:grayscale(100%)}.grayscale,.invert{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.invert{--tw-invert:invert(100%)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.hover\:cursor-pointer:hover{cursor:pointer}.hover\:\!bg-\[\#f7f7f7\]:hover{--tw-bg-opacity:1!important;background-color:rgb(247 247 247/var(--tw-bg-opacity))!important}.hover\:bg-\[\#F1F1F1\]:hover{--tw-bg-opacity:1;background-color:rgb(241 241 241/var(--tw-bg-opacity))}.hover\:text-\[--p-color-text-link-hover\]:hover{color:var(--p-color-text-link-hover)}.group\/GReportTable__Row:hover .group-hover\/GReportTable__Row\:opacity-100{opacity:1}
1
+ .GPathSelectionItem{cursor:pointer;padding:8px 12px 12px;transition:background-color .2s ease}.GPathSelectionItem--selected{background-color:#f7f7f7}.GPathSelectionItem .GPathSelectionItem__view-icon{background-color:#ebebeb;border-radius:8px;display:none;margin-left:8px;padding:4px}.GPathSelectionItem:hover{background-color:#f7f7f7}.GPathSelectionItem:hover .GPathSelectionItem__percentage{display:none}.GPathSelectionItem:hover .GPathSelectionItem__view-icon{display:block}.GAnalytic-Badge-Logo{position:relative}.GAnalytic-Badge-Logo:before{background-image:url("data:image/png;base64,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");background-position:50%;background-repeat:no-repeat;background-size:contain;content:" ";height:84px;left:auto;position:absolute;right:8px;top:50%;transform:translateY(-50%);width:18px;z-index:1}.GAnalytic-Badge-Logo.GAnalytic-Badge-Logo--in-group:before{content:" ";position:absolute;top:48px;transform:translateY(0)}.GPath-Badge-Logo:before{right:-11px}.GFunnelChartNextTooltip-container{left:0;max-width:300px;pointer-events:auto;position:absolute;top:0;z-index:520}.GFunnelChartNextTooltip-rows{display:flex;flex-direction:column;gap:8px}.GFunnelChartNextTooltip-rows>:not(:last-child):after{background:#e3e3e3;content:"";display:block;grid-column:1/-1;height:1px;margin:8px 0 0}.GFunnelChartNextTooltip-row{align-items:center;color:#616161;-moz-column-gap:4px;column-gap:4px;display:grid;font-size:12px;grid-template-columns:8px auto;line-height:16px}.GFunnelChartNextTooltip-keys{align-items:center;display:grid;grid-column:1/-1;grid-template-columns:subgrid}.GFunnelChartNextTooltip-values{align-items:flex-start;display:flex;font-weight:600;gap:8px;grid-column:2;padding-top:2px}.GFunnelChartNextTooltip-values>span{flex:0 0 auto}.GFunnelChartNextTooltip-values .GFunnelChartNextTooltip-trendIndicator{margin-left:auto}.GFunnelChartNextTooltip-values strong{color:#1f2124;font-weight:500}.Polaris-GInlineCenter{--gp-inline-center-box-align:center;--gp-inline-center-box-inline-align:center;--gp-inline-center-box-gap:0;--gp-inline-center-box-flex-direction:row;--gp-inline-center-width:auto;width:var(--gp-inline-center-width)}.Polaris-GInlineCenter>.Polaris-Box{align-items:var(--gp-inline-center-box-align);display:flex;flex-direction:var(--gp-inline-center-box-flex-direction);gap:var(--gp-inline-center-box-gap);justify-content:var(--gp-inline-center-box-inline-align)}.GReportTable__Container{--p-z-index-sticky-header:300;--p-z-index-sticky-footer:301;--p-z-index-dimension:50;position:relative;scrollbar-color:auto}.GReportTable__Container--border-top{border-top:1px solid var(--p-color-border)}.GReportTable__Container--pagination-hidden .GReportTable__Wrapper{border-bottom-left-radius:12px;border-bottom-right-radius:12px;overflow:hidden}.GReportTable__Container .GReportTable__Wrapper{--column-cell-min-width:200px;--column-cell-max-width:unset;--column-cell-height:40px;--column-cell-justify-content:start;--column-cell-padding-inline:12px;--column-first-padding-inline:16px;--column-summary-cell-padding-inline:12px;--column-summary-cell-height:36px;--column-cell-padding-right:12px;--column-header-cell-padding-right:12px;--column-dimension-box-shadow:var(--p-space-025) 0 0 0 var(--p-color-border-secondary);--column-border-right-width:1px;background:var(--p-color-bg-surface);position:relative}.GReportTable__Container .GReportTable__Wrapper .GReportTable__StickyHeader{overflow:hidden;overflow-x:auto;overscroll-behavior-x:none;position:sticky;top:0;z-index:var(--p-z-index-sticky-header);-ms-overflow-style:none;scrollbar-width:none}.GReportTable__Container .GReportTable__Wrapper .GReportTable__StickyHeader .GReportTable__Header{background:var(--p-color-bg-surface);display:flex}.GReportTable__Container .GReportTable__Wrapper .GReportTable__StickyHeader .GReportTable__Header--hide-summary .GReportTable__Header-Cell{background:var(--p-color-bg-surface-secondary)!important;border-bottom:none!important}.GReportTable__Container .GReportTable__Wrapper .GReportTable__StickyHeader .GReportTable__Header>.GReportTable__Header-Cell:first-child{border-right:var(--column-border-right-width) solid var(--p-color-border);left:0;position:sticky;z-index:var(--p-z-index-1)}.GReportTable__Container .GReportTable__Wrapper .GReportTable__StickyHeader .GReportTable__Header .GReportTable__Header-Cell{align-items:center;background:var(--p-color-bg-surface);border-bottom:1px solid var(--p-color-border);display:flex;flex:1;font-weight:800;gap:4px;justify-content:var(--column-cell-justify-content);max-width:var(--column-cell-max-width);min-height:var(--column-cell-height);min-width:var(--column-cell-min-width);overflow:hidden;padding-inline:var(--column-cell-padding-inline);padding-right:var(--column-header-cell-padding-right)}.GReportTable__Container .GReportTable__Wrapper .GReportTable__StickyHeader .GReportTable__Header .GReportTable__Header-Cell .GReportTable-SortableHeaderButton{align-items:center;background:transparent;border:none;border-radius:var(--p-border-radius-100);color:var(--p-color-text);cursor:pointer;display:flex;justify-content:center;min-width:0;padding:2px 4px}.GReportTable__Container .GReportTable__Wrapper .GReportTable__StickyHeader .GReportTable__Header .GReportTable__Header-Cell .GReportTable-SortableHeaderButton:hover{background:var(--p-color-bg-fill-transparent-hover)}.GReportTable__Container .GReportTable__Wrapper .GReportTable__StickyHeader .GReportTable__Summary-Row{display:flex}.GReportTable__Container .GReportTable__Wrapper .GReportTable__StickyHeader .GReportTable__Summary-Row>.GReportTable__Summary-Cell:first-child{border-right:var(--column-border-right-width) solid var(--p-color-border);left:0;position:sticky;z-index:var(--p-z-index-1)}.GReportTable__Container .GReportTable__Wrapper .GReportTable__StickyHeader .GReportTable__Summary-Row .GReportTable__Summary-Cell{align-items:center;background-color:var(--p-color-bg-surface-secondary);display:flex;flex:1;font-weight:800;justify-content:var(--column-cell-justify-content);max-width:var(--column-cell-max-width);min-height:var(--column-summary-cell-height);min-width:var(--column-cell-min-width);padding-inline:var(--column-summary-cell-padding-inline);padding-right:var(--column-cell-padding-right)}.GReportTable__Container .GReportTable__Wrapper .GReportTable__StickyHeader .GReportTable__Summary-Row .GReportTable__Summary-Cell span{white-space:nowrap}.GReportTable__Container .GReportTable__Wrapper .GReportTable__ScrollWrap{overflow-x:auto;overscroll-behavior-x:none;-ms-overflow-style:none;scrollbar-width:none}.GReportTable__Container .GReportTable__Wrapper .GReportTable__ScrollWrap .GReportTable__Row{display:flex}.GReportTable__Container .GReportTable__Wrapper .GReportTable__ScrollWrap .GReportTable__Row:hover,.GReportTable__Container .GReportTable__Wrapper .GReportTable__ScrollWrap .GReportTable__Row:hover>.GReportTable__Cell,.GReportTable__Container .GReportTable__Wrapper .GReportTable__ScrollWrap .GReportTable__Row:hover>.GReportTable__Cell:first-child{background-color:var(--p-color-bg-surface-hover)}.GReportTable__Container .GReportTable__Wrapper .GReportTable__ScrollWrap .GReportTable__Row .GReportTable__Cell{align-items:center;border-top:1px solid var(--p-color-border);display:flex;flex:1;justify-content:var(--column-cell-justify-content);max-width:var(--column-cell-max-width);min-height:var(--column-cell-height);min-width:var(--column-cell-min-width)}.GReportTable__Container .GReportTable__Wrapper .GReportTable__ScrollWrap .GReportTable__Row .GReportTable__Cell .GReportTable__CellContent{align-items:center;display:flex;height:100%;justify-content:var(--column-cell-justify-content);width:100%}.GReportTable__Container .GReportTable__Wrapper .GReportTable__ScrollWrap .GReportTable__Row .GReportTable__Cell .GReportTable__CellContent>:first-child{align-items:center;display:flex;height:100%}.GReportTable__Container .GReportTable__Wrapper .GReportTable__ScrollWrap .GReportTable__Row .GReportTable__Cell .GReportTable__CellContent>:first-child:not(:has(.GReportTable__CellContent--clickable)){padding-inline:var(--column-cell-padding-inline);padding-right:var(--column-cell-padding-right)}.GReportTable__Container .GReportTable__Wrapper .GReportTable__ScrollWrap .GReportTable__Row .GReportTable__Cell .GReportTable__CellContent>:first-child:has(.GReportTable__CellContent--clickable){width:100%}.GReportTable__Container .GReportTable__Wrapper .GReportTable__ScrollWrap .GReportTable__Row .GReportTable__Cell .GReportTable__CellContent--clickable{border-radius:0}.GReportTable__Container .GReportTable__Wrapper .GReportTable__ScrollWrap .GReportTable__Row .GReportTable__Cell .GReportTable__CellContent--clickable:hover{background-color:var(--p-color-bg-surface-selected)}.GReportTable__Container .GReportTable__Wrapper .GReportTable__ScrollWrap .GReportTable__Row .GReportTable__Cell .GReportTable__CellContent--noClick{background-color:transparent!important}.GReportTable__Container .GReportTable__Wrapper .GReportTable__ScrollWrap .GReportTable__Row .GReportTable__Cell--dimension{border-right:var(--column-border-right-width) solid var(--p-color-border)}.GReportTable__Container .GReportTable__Wrapper .GReportTable__ScrollWrap .GReportTable__Row>.GReportTable__Cell:first-child{background:var(--p-color-bg-surface);border-right:var(--column-border-right-width) solid var(--p-color-border);left:0;position:sticky;z-index:var(--p-z-index-1)}.GReportTable__Container .GReportTable__Wrapper .GReportTable__ScrollWrap .GReportTable__Row>.GReportTable__Cell:first-child .GReportTable__CellContent>:first-child:not(:has(.GReportTable__CellContent--clickable)){padding-inline:var(--column-cell-padding-inline)}.GReportTable__Container .GReportTable__FooterWrapper{bottom:0;position:sticky;z-index:var(--p-z-index-sticky-footer)}.GReportTable__Container .GReportTable__ScrollBarContainer{background-color:var(--p-color-bg-surface);bottom:44px;position:sticky;z-index:var(--p-z-index-sticky-footer)}.GReportTable__Container .GReportTable__ScrollBarContainer--pagination-hidden{border-bottom-left-radius:12px;border-bottom-right-radius:12px;bottom:0;overflow:hidden}.GReportTable__Container .GReportTable__ScrollBarContainer .GReportTable__ScrollBar{margin:0;overflow-x:scroll;padding:0;width:100%}.GReportTable__Container .GReportTable__ScrollBarContainer .GReportTable__ScrollBarContent{height:.0625rem}.GReportTable__Container .GReportTable__Pagination{align-items:center;background-color:var(--p-color-bg-surface-secondary);border-bottom-left-radius:8px;border-bottom-right-radius:8px;display:flex;height:44px;padding-inline:16px}.GReportTable__Container .GReportTable--shadow,.GReportTable__Container .GReportTable__LeftShadow,.GReportTable__Container .GReportTable__RightShadow{--scrollbar-container-height:18px;content:"";height:calc(100% - var(--scrollbar-container-height)/2);opacity:0;pointer-events:none;position:absolute;right:0;top:0;transition:opacity var(--p-motion-duration-300) var(--p-motion-ease);width:var(--p-space-150);z-index:var(--p-z-index-sticky-header)}.GReportTable__Container .GReportTable__LeftShadow{background:linear-gradient(90deg,rgba(26,26,26,.1),transparent)}.GReportTable__Container .GReportTable__RightShadow{background:linear-gradient(270deg,rgba(26,26,26,.1),transparent)}.Polaris-Box[aria-label=shadow-outset-200]{box-shadow:0 4px 6px -2px rgba(26,26,26,.2),inset 0 -1px rgba(0,0,0,.169),inset 0 0 rgba(0,0,0,.129),inset 0 0 rgba(0,0,0,.129)}.Polaris-Box[aria-label=shadow-drop-outset-100]{box-shadow:0 0 6px 1px rgba(26,26,26,.2)}.Polaris-Box[aria-label=shadow-top-100]{box-shadow:0 -2px 4px -1px rgba(26,26,26,.078)}.Polaris-Box[aria-label=shadow-bottom-100]{box-shadow:0 2px 4px -1px rgba(26,26,26,.141)}.Polaris-Box[aria-description=height-full]{height:100%}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.z-\[1000\]{z-index:1000}.-mb-1{margin-bottom:-.25rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.table{display:table}.\!grid{display:grid!important}.grid{display:grid}.hidden{display:none}.size-10{height:2.5rem;width:2.5rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-\[20px\]{height:20px}.h-\[2px\]{height:2px}.h-\[80px\]{height:80px}.h-\[8px\]{height:8px}.h-\[92px\]{height:92px}.h-full{height:100%}.max-h-\[216px\]{max-height:216px}.max-h-\[250px\]{max-height:250px}.max-h-\[325px\]{max-height:325px}.w-12{width:3rem}.w-16{width:4rem}.w-20{width:5rem}.w-24{width:6rem}.w-28{width:7rem}.w-4{width:1rem}.w-6{width:1.5rem}.w-\[11px\]{width:11px}.w-\[12px\]{width:12px}.w-\[20px\]{width:20px}.w-\[210px\]{width:210px}.w-\[320px\]{width:320px}.w-\[328px\]{width:328px}.w-\[50px\]{width:50px}.w-\[80px\]{width:80px}.w-\[8px\]{width:8px}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.min-w-0{min-width:0}.min-w-\[175px\]{min-width:175px}.min-w-\[184px\]{min-width:184px}.max-w-40{max-width:10rem}.max-w-\[100\%\]{max-width:100%}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-\[2px\]{gap:2px}.overflow-hidden,.truncate{overflow:hidden}.truncate{text-overflow:ellipsis;white-space:nowrap}.text-nowrap{text-wrap:nowrap}.rounded{border-radius:.25rem}.rounded-\[10px\]{border-radius:10px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.\!border-r-0{border-right-width:0!important}.border-dashed{border-style:dashed}.border-\[\#A1CAE7\]{--tw-border-opacity:1;border-color:rgb(161 202 231/var(--tw-border-opacity))}.bg-\[\#4FA9EA\]{--tw-bg-opacity:1;background-color:rgb(79 169 234/var(--tw-bg-opacity))}.bg-\[\#8A8A8A\]{--tw-bg-opacity:1;background-color:rgb(138 138 138/var(--tw-bg-opacity))}.bg-\[\#F1F1F1\]{--tw-bg-opacity:1;background-color:rgb(241 241 241/var(--tw-bg-opacity))}.bg-\[\#f7f7f7\]{--tw-bg-opacity:1;background-color:rgb(247 247 247/var(--tw-bg-opacity))}.object-contain{-o-object-fit:contain;object-fit:contain}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-\[8px\]{padding-left:8px;padding-right:8px}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-2\.5{padding-bottom:.625rem;padding-top:.625rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pr-1{padding-right:.25rem}.pr-\[5px\]{padding-right:5px}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.capitalize{text-transform:capitalize}.text-\[var\(--p-color-text\)\]{color:var(--p-color-text)}.text-\[var\(--p-color-text-disabled\)\]{color:var(--p-color-text-disabled)}.text-\[var\(--p-color-text-subdued\)\]{color:var(--p-color-text-subdued)}.underline{text-decoration-line:underline}.opacity-0{opacity:0}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.blur{--tw-blur:blur(8px)}.blur,.drop-shadow{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow{--tw-drop-shadow:drop-shadow(0 1px 2px rgba(0,0,0,.1)) drop-shadow(0 1px 1px rgba(0,0,0,.06))}.grayscale{--tw-grayscale:grayscale(100%)}.grayscale,.invert{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.invert{--tw-invert:invert(100%)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.hover\:cursor-pointer:hover{cursor:pointer}.hover\:\!bg-\[\#f7f7f7\]:hover{--tw-bg-opacity:1!important;background-color:rgb(247 247 247/var(--tw-bg-opacity))!important}.hover\:bg-\[\#F1F1F1\]:hover{--tw-bg-opacity:1;background-color:rgb(241 241 241/var(--tw-bg-opacity))}.hover\:text-\[--p-color-text-link-hover\]:hover{color:var(--p-color-text-link-hover)}.group\/GReportTable__Row:hover .group-hover\/GReportTable__Row\:opacity-100{opacity:1}
@@ -13,11 +13,18 @@ export interface IPathAnalysisHeatmapConfig {
13
13
  export interface IPathAnalysisConfig {
14
14
  pricing: IPathAnalysisPricingConfig;
15
15
  heatmap: IPathAnalysisHeatmapConfig;
16
+ /**
17
+ * When enabled, the funnel auto-expands every level along the dominant path
18
+ * (first level → highest-traffic child → ... up to MAX_FUNNEL_ADDITIONAL_LEVEL,
19
+ * stopping early when a level has no further paths) and the "+" add button is hidden.
20
+ */
21
+ autoExpandLevels?: boolean;
16
22
  }
17
23
  export interface IPathAnalysisConfigProviderProps {
18
24
  children: ReactNode;
19
25
  pricing: IPathAnalysisPricingConfig;
20
26
  heatmap: IPathAnalysisHeatmapConfig;
27
+ autoExpandLevels?: boolean;
21
28
  }
22
- export declare const PathAnalysisConfigProvider: ({ children, pricing, heatmap }: IPathAnalysisConfigProviderProps) => import("react/jsx-runtime").JSX.Element;
29
+ export declare const PathAnalysisConfigProvider: ({ children, pricing, heatmap, autoExpandLevels, }: IPathAnalysisConfigProviderProps) => import("react/jsx-runtime").JSX.Element;
23
30
  export declare const usePathAnalysisConfig: () => IPathAnalysisConfig;
@@ -4,6 +4,7 @@ export declare const usePathAnalysisChart: () => {
4
4
  lengthDisplayedLevels: number;
5
5
  listFunnelSelection: IFunnelSelectionItem[];
6
6
  isDisabledAddICon: boolean;
7
+ hideAddIcon: boolean;
7
8
  funnelData: import("@shopify/polaris-viz-core").DataSeries[];
8
9
  onDeleteFunnel: (id?: string) => void;
9
10
  onAddNextFunnel: (id: string) => void;
@@ -6,8 +6,9 @@ interface IUsePathAnalysisFunnelProps {
6
6
  pathAnalysisCacheKey: string;
7
7
  dataFirstLevels?: IPathAnalysisFirstLevel[];
8
8
  locationPath?: string;
9
+ autoExpandLevels?: boolean;
9
10
  }
10
- export declare const usePathAnalysisFunnel: ({ pathAnalytics, pathAnalysisCacheKey, dataFirstLevels, locationPath, }: IUsePathAnalysisFunnelProps) => {
11
+ export declare const usePathAnalysisFunnel: ({ pathAnalytics, pathAnalysisCacheKey, dataFirstLevels, locationPath, autoExpandLevels, }: IUsePathAnalysisFunnelProps) => {
11
12
  pageWithMetric: IBasePathAnalyticPageWithChild | undefined;
12
13
  dynamicLevels: IBasePathAnalyticPageWithChild[];
13
14
  nextLevelPages: IBasePathAnalyticPageWithChild[];
@@ -1,5 +1,5 @@
1
1
  import type { PartialTheme } from '@shopify/polaris-viz-core';
2
- import { type ReactElement, type ReactNode } from 'react';
2
+ import type { ReactElement, ReactNode } from 'react';
3
3
  type ISeriesColors = PartialTheme['seriesColors'];
4
4
  export interface IProps {
5
5
  children: ReactNode;
@@ -10,6 +10,7 @@ export type OnChangeFunnelType = (data: IOnChangeFunnelParams) => void;
10
10
  export interface IFunnelChartAction {
11
11
  fixedLevel?: number;
12
12
  isDisabledAddICon?: boolean;
13
+ hideAddIcon?: boolean;
13
14
  lengthDisplayedLevels: number;
14
15
  listFunnelSelection?: IFunnelSelectionItem[];
15
16
  isFetchingNextPage?: boolean;