{"version":3,"file":"static/js/39217.5d6d540e.chunk.js","mappings":"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","sources":["webpack:///./src/QuickInsights/internal/StyledInsightsWrapper.tsx","webpack:///./src/QuickInsights/internal/InsightsContent.tsx","webpack:///./src/QuickInsights/QuickInsights.tsx","webpack:///./src/hooks/use-insightsWidget.ts","webpack:///./src/utils/common.util.ts","webpack:///./node_modules/@mui/material/CircularProgress/CircularProgress.js","webpack:///./node_modules/@mui/material/CircularProgress/circularProgressClasses.js"],"sourcesContent":["import React from 'react';\nimport Stack from '@mui/material/Stack';\nimport { styled } from '@mui/material/styles';\nimport Typography from '@mui/material/Typography';\nimport InsightsIcon from '@mui/icons-material/Insights';\nimport parse from 'html-react-parser';\nimport { useNavigate } from 'react-router';\nimport { ObjectMap } from 'mf_core/config';\nimport { getFormattedNumber } from '../../utils/common.util';\n\ntype InsightPropTypes = {\n additionalInsightsData?: ObjectMap;\n bodyContent: string | null;\n ctaLink?: string;\n currentPage?: string;\n dataName?: string;\n insightTitle: string | null;\n};\n\nexport const StyledInsightsWrapper = (props: InsightPropTypes) => {\n const {\n additionalInsightsData,\n bodyContent,\n ctaLink,\n currentPage,\n dataName,\n insightTitle,\n } = props;\n const navigate = useNavigate();\n\n return (\n \n \n \n \n {insightTitle}\n \n\n {ctaLink ? (\n \n navigate(ctaLink ?? '')}\n sx={{ cursor: 'pointer' }}\n variant=\"bodycopyregular\"\n >\n {currentPage === 'Renewals Page'\n ? parse(\n `
${parse(\n bodyContent ?? ''\n )}${getFormattedNumber(\n additionalInsightsData?.['renewal revenue'] ?? ''\n )}
`\n )\n : parse(\n `
${parse(\n bodyContent ?? ''\n )}
`\n )}\n \n
\n ) : (\n \n \n {parse(\n `
${parse(bodyContent ?? '')}
`\n )}\n
\n
\n )}\n
\n
\n );\n};\n\nconst StyledStack = styled(Stack)(() => ({\n '& .insight-content': {\n a: {\n '&:hover, &:link, &:active, &:visited': { color: '#0077D4 !important' },\n color: '#0077D4',\n fontWeight: 600,\n textDecoration: 'none',\n },\n fontSize: '14px',\n },\n}));\n\nconst StyledInsightDetailsStackWrapper = styled(Stack)(({ theme }) => ({\n '&: hover': {\n background: '#f4f4f4',\n },\n borderBottom: '1px solid #ececec',\n flexGrow: 1,\n maxWidth: 650,\n padding: theme.spacing(1),\n paddingBottom: theme.spacing(2),\n}));\n","/* eslint-disable max-lines */\nimport React, { useCallback, useEffect, useState } from 'react';\nimport Box from '@mui/material/Box';\nimport Stack from '@mui/material/Stack';\nimport { styled } from '@mui/material/styles';\nimport Typography from '@mui/material/Typography';\nimport Tooltip, { tooltipClasses, TooltipProps } from '@mui/material/Tooltip';\nimport InfoOutlinedIcon from '@mui/icons-material/InfoOutlined';\nimport Chip from '@mui/material/Chip';\nimport Button from '@mui/material/Button';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport { StyledInsightsWrapper } from './StyledInsightsWrapper';\nimport { useLocation } from 'react-router-dom';\nimport { ObjectMap } from 'mf_core/query';\nimport { useTranslate } from '@im/react-localization';\nimport { setDigitalData } from 'mf_core/adobe';\n\ntype FilterChip = {\n active: boolean;\n count: number;\n name: string;\n};\n\ntype Prop = {\n additionalInsightsData: ObjectMap;\n currentPage: string;\n insightsData: ObjectMap[];\n isInsightsError: boolean;\n isInsightsLoading: boolean;\n onClickInsightsCenter: (navigateLink?: string) => void;\n widgetTitle: string;\n};\n\nexport default function InsightsContent(prop: Readonly) {\n const {\n additionalInsightsData,\n currentPage,\n insightsData,\n isInsightsError,\n isInsightsLoading,\n onClickInsightsCenter,\n widgetTitle,\n } = prop;\n\n const translate = useTranslate();\n const [viewAllData, setViewAllData] = useState(true);\n const [chipsInsights, setChipsInsights] = useState(null);\n const [filterChips, setFilterChips] = useState([]);\n\n const location = useLocation();\n\n const generateKey = (pre: string, id: any) => {\n return `${pre}_${id}`;\n };\n\n useEffect(() => {\n setChipsInsights(insightsData ?? null);\n\n const filterChipList: FilterChip[] = [];\n filterChipList.push({\n active: true,\n count: insightsData?.length ?? 0,\n name: 'View All',\n });\n\n insightsData?.forEach((chip: ObjectMap) => {\n if (\n !filterChipList.some(\n (filterChip) => filterChip.name === chip.insightTemplateName\n )\n )\n filterChipList.push({\n active: false,\n count: insightsData?.filter(\n (chipCount: ObjectMap) =>\n chipCount.insightTemplateName === chip.insightTemplateName\n )?.length,\n name: chip.insightTemplateName ?? '',\n });\n });\n setFilterChips(filterChipList);\n setViewAllData(true);\n }, [insightsData]);\n\n const showContent = useCallback(\n (chipName: string) => {\n setFilterChips((prevState) => {\n return prevState.map((chip) => {\n if (chip.name === chipName) {\n return { active: true, count: chip.count, name: chip.name };\n } else {\n return { active: false, count: chip.count, name: chip.name };\n }\n });\n });\n\n const impressionsData: ObjectMap[] = [];\n\n const contentDetails = chipsInsights?.map((chipDetails) => {\n if (chipName === chipDetails.insightTemplateName) {\n impressionsData.push({\n InsightName: chipDetails.insightTitle,\n InsightTab: chipDetails.insightTemplateName,\n });\n return {\n ...chipDetails,\n active: true,\n };\n } else {\n if (chipName === 'View All') {\n impressionsData.push({\n InsightName: chipDetails.insightTitle,\n InsightTab: 'View All',\n });\n }\n return {\n ...chipDetails,\n active: false,\n };\n }\n });\n setDigitalData({\n QuickInsightsImpressions: impressionsData,\n });\n\n setViewAllData(chipName === 'View All');\n setChipsInsights(contentDetails ?? null);\n },\n [chipsInsights]\n );\n\n useEffect(() => {\n if (insightsData?.length > 0) {\n const impressionsData = insightsData?.map((chipDetails: any) => {\n return {\n InsightName: chipDetails.insightTitle,\n InsightTab: 'View All',\n };\n });\n\n setDigitalData({ QuickInsightsImpressions: impressionsData });\n }\n }, [insightsData]);\n\n return (\n \n {isInsightsLoading ? (\n \n \n \n ) : (\n \n \n \n {widgetTitle}\n \n \n \n \n \n \n {translate(`Insights.${currentPage.replace(/\\s/g, '')}`)}\n \n \n \n {filterChips.map((filterChip: FilterChip) => {\n return (\n \n {filterChip?.count}\n \n }\n key={filterChip?.name}\n label={\n filterChip.name === 'View All'\n ? translate('Insights.ViewAll')\n : filterChip.name\n }\n onClick={() => showContent(filterChip.name)}\n onDelete={() => showContent(filterChip.name)}\n variant=\"outlined\"\n />\n );\n })}\n \n {insightsData?.length <= 0 || isInsightsError ? (\n \n \n {translate('Insights.NoInsightsAvailable')}\n \n \n ) : (\n \n {/* View All start*/}\n\n {viewAllData &&\n chipsInsights?.map((viewAll: ObjectMap, index: number) => {\n return (\n \n \n \n );\n })}\n\n {/* End View All */}\n {chipsInsights?.map((filterChip: ObjectMap, index: number) => {\n return (\n filterChip.active && (\n \n \n \n )\n );\n })}\n \n )}\n\n {location.pathname !== '/insight/insights-v2' && (\n \n onClickInsightsCenter()}\n variant=\"contained\"\n >\n {translate('Insights.InsightsCenter')}\n \n \n )}\n \n \n )}\n \n );\n}\n\nconst StyledWrapper = styled(Stack)(({ theme }) => ({\n backgroundColor: '#FFF',\n borderRadius: '4px',\n display: 'inline-flex',\n height: 520,\n minWidth: 350,\n padding: theme.spacing(2),\n width: 680,\n}));\n\nconst StyledButton = styled(Button)(() => ({\n textTransform: 'none',\n}));\n\nconst CustomWidthTooltip = styled(({ className, ...props }: TooltipProps) => (\n \n))({\n [`& .${tooltipClasses.tooltip}`]: {\n background: '#333333 !important',\n borderRadius: '4px',\n boxShadow: 'none',\n color: '#fff !important',\n fontSize: '12px !important',\n },\n});\n\nconst StyledChip = styled(Chip)(({ theme }) => ({\n '&.active': {\n '.count-badge': {\n backgroundColor: 'rgba(1, 100, 176, 1)',\n color: '#fff',\n },\n backgroundColor: 'rgba(243, 250, 255, 1)',\n borderColor: 'rgba(0, 119, 212, 1)',\n marginBottom: theme.spacing(0.5),\n },\n}));\n\nconst CountBadge = styled(Box)(({ theme }) => ({\n '&.MuiChip-deleteIcon, &.MuiChip-deleteIcon:hover': {\n backgroundColor: '#eeeeee',\n borderRadius: 4,\n color: '#333333',\n fontSize: '12px !important',\n padding: theme.spacing(0, 1, 0, 1),\n },\n}));\n\nconst StyledStack = styled(Stack)(({ theme }) => ({\n '&::-webkit-scrollbar': {\n height: '8.86px',\n },\n '&::-webkit-scrollbar-thumb': {\n background: theme.palette.text.disabled,\n borderRadius: '6px',\n },\n '&::-webkit-scrollbar-thumb:hover': {\n background: theme.palette.primary.main,\n },\n '&::-webkit-scrollbar-track': {\n borderRadius: '6px',\n boxShadow: 'none',\n },\n '&::-webkit-scrollbar-track:hover': {\n boxShadow: 'inset 0 0 6px #C4C4C4',\n },\n height: 46,\n overflowX: 'auto',\n overflowY: 'hidden',\n}));\n\nconst StyledStackContainer = styled(Stack)(({ theme }) => ({\n '&::-webkit-scrollbar': {\n height: '8.86px',\n width: '8.86px',\n },\n '&::-webkit-scrollbar-thumb': {\n background: theme.palette.text.disabled,\n borderRadius: '6px',\n },\n '&::-webkit-scrollbar-thumb:hover': {\n background: theme.palette.primary.main,\n },\n '&::-webkit-scrollbar-track': {\n borderRadius: '6px',\n boxShadow: 'none',\n },\n '&::-webkit-scrollbar-track:hover': {\n boxShadow: 'inset 0 0 6px #C4C4C4',\n },\n}));\n\nconst StyledStackRow = styled(Stack)(({ theme }) => ({\n flexGrow: 1,\n marginLeft: '0 !important',\n}));\n\nconst StyledPageNameTypography = styled(Typography)(({ theme }) => ({\n color: '#a9a8a8',\n fontSize: '11px',\n fontWeight: 'bold',\n lineHeight: '10px',\n}));\n","import React, { useCallback, useEffect, useState } from 'react';\nimport { useLocation } from 'react-router-dom';\nimport { ObjectMap } from 'mf_core/config';\nimport { useGetWidgetDetails } from '../hooks/use-insightsWidget';\nimport InsightsContent from './internal/InsightsContent';\nimport { useLocalizationContext } from '@im/react-localization';\nimport { modifyDigitalData } from 'mf_core/adobe';\nimport { GetUserRole, userRoles } from '../utils/common.util';\nimport { useFeatureFlag } from 'mf_core/feature-flag';\n\ntype Props = {\n hasInsightsData: boolean | null;\n isInsightsButtonClicked?: boolean;\n isInsightsDropOpen?: boolean;\n onClickInsightsCenter: (navigateLink?: string) => void;\n updateInsightDataStatus?: (hasData: boolean | null) => void;\n};\n\nexport default function QuickInsights(props: Readonly) {\n const [widgetKey, setWidgetKey] = useState();\n const [filterKey, setFilterKey] = useState('');\n const [insightLoader, setInsightLoader] = useState(false);\n const [insightError, setInsightError] = useState(false);\n const [insightsData, setInsightsData] = useState>([]);\n const [additionalInsightsData, setAdditionalInsightsData] =\n useState({});\n\n const [currentPage, setCurrentPage] = useState('');\n const [widgetTitle, setWidgetTitle] = useState('');\n const widgetMutation = useGetWidgetDetails();\n const location = useLocation();\n const { locale } = useLocalizationContext();\n const { value: enableUserManagement } = useFeatureFlag(\n 'EnableUserManagement'\n );\n\n const widgetKeys: ObjectMap = {\n '/insight/insights-v2': 2,\n '/invoice/InvoiceList': 59,\n '/invoice/invoicessearch': 59,\n '/my/cart': 6,\n '/my/dashboard': 1,\n '/my/ordertracking/v3/orderdetails': 58,\n '/my/ordertracking/v3/ordersearch': 58,\n '/my/subscriptions/list': 61,\n '/product/productdetails': 7,\n '/product/productsearch': 3,\n '/product/subscriptioncategories': 5,\n };\n\n const pageNames: ObjectMap = {\n '/insight/insights-v2': 'Insights Center',\n '/invoice/InvoiceList': 'Invoice Page',\n '/invoice/invoicessearch': 'Invoice Page',\n '/my/cart': 'cart checkout',\n '/my/dashboard': 'Home Page',\n '/my/ordertracking/v3/orderdetails': 'Order Page',\n '/my/ordertracking/v3/ordersearch': 'Order Page',\n '/my/subscriptions/list': 'Subscription Page',\n '/product/productdetails': 'Details Page',\n '/product/productsearch': 'Search Page',\n };\n\n const enableInsightsPaths = [\n '/insight/insights-v2',\n '/my/cart',\n '/my/dashboard',\n '/product/productsearch',\n '/product/productdetails',\n '/product/subscriptioncategories',\n '/frame',\n '/my/ordertracking/v3/ordersearch',\n '/my/ordertracking/v3/orderdetails',\n '/invoice/InvoiceList',\n '/invoice/invoicessearch',\n '/my/subscriptions/list',\n ];\n\n const userRole = GetUserRole();\n\n const getUrlParams = useCallback((queryString: string) => {\n const vendorName = new URLSearchParams(queryString).get('vendor') ?? '';\n return vendorName;\n }, []);\n\n const updateInsightsDetails = useCallback((data: ObjectMap[]) => {\n return data.map((insight: ObjectMap) => {\n const updatedInsightContent = insight.insightContent.replace(\n />([^&]*)<\\/a/g,\n (match: string, group: string) => {\n return decodeURIComponent(match);\n }\n );\n return {\n ...insight,\n insightContent: updatedInsightContent,\n };\n });\n }, []);\n\n const updateVisitedPagesData = useCallback(\n (pathName: string) => {\n const visitedPages = JSON.parse(\n localStorage.getItem('visitedQuickInsightPages') ?? '[]'\n );\n\n if (!visitedPages.includes(location?.pathname)) {\n if (\n pathName === '/my/ordertracking/v3/ordersearch' ||\n pathName === '/my/ordertracking/v3/orderdetails' ||\n (pathName === '/frame' && location.search.includes('ordersearch'))\n ) {\n visitedPages.push('/my/ordertracking/');\n } else visitedPages.push(location?.pathname);\n\n localStorage.setItem(\n 'visitedQuickInsightPages',\n JSON.stringify(visitedPages)\n );\n }\n },\n [location]\n );\n\n useEffect(() => {\n const pathName = location?.pathname ?? '';\n const timer: any = null;\n\n if (enableInsightsPaths.includes(pathName) && props.isInsightsDropOpen) {\n if (\n (pathName === '/product/productsearch' &&\n (location?.search?.includes('categories') ||\n location?.search?.includes('category'))) ||\n pathName === '/product/subscriptioncategories'\n ) {\n setWidgetKey(5);\n setCurrentPage('Product Category');\n setFilterKey('');\n } else if (\n pathName === '/product/productsearch' &&\n location?.search?.toLowerCase().includes('vendor')\n ) {\n setWidgetKey(4);\n setCurrentPage('Vendor List');\n\n const vendor: any = getUrlParams(location?.search);\n setFilterKey(`vendorname:${vendor}`);\n } else if (\n (pathName === '/frame' && location.search.includes('ordersearch')) ||\n pathName === '/my/ordertracking/v3/ordersearch' ||\n pathName === '/my/ordertracking/v3/orderdetails'\n ) {\n setWidgetKey(58);\n setCurrentPage('Order Page');\n setFilterKey('');\n } else if (pathName === '/frame') {\n setWidgetKey(57);\n setCurrentPage('Renewals Page');\n setFilterKey('');\n } else if (\n pathName === '/invoice/invoicessearch' ||\n pathName === '/invoice/InvoiceList'\n ) {\n setWidgetKey(59);\n setCurrentPage('Invoice Page');\n setFilterKey('');\n } else {\n setWidgetKey(widgetKeys[pathName]);\n setCurrentPage(pageNames[pathName]);\n setFilterKey('');\n }\n\n updateVisitedPagesData(pathName);\n }\n\n return () => {\n clearTimeout(timer);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [props.isInsightsDropOpen, location]);\n\n useEffect(() => {\n const pathName = location?.pathname ?? '';\n if (enableInsightsPaths.includes(pathName)) setInsightLoader(true);\n modifyDigitalData('QuickInsightsImpressions');\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [location?.pathname]);\n\n useEffect(() => {\n if (widgetKey) {\n setInsightLoader(true);\n widgetMutation\n .mutateAsync({ filters: filterKey, widgetKey: widgetKey })\n .then((response) => {\n const htmlData = JSON.parse(\n response?.insights?.[0]?.insightContent?.[0]?.insightBodyContent\n ?.html ?? '[]'\n );\n\n const data = JSON.parse(\n response?.insights?.[0]?.insightContent?.[0]?.insightBodyContent\n ?.data ?? '{}'\n );\n\n let updatedData = updateInsightsDetails(htmlData);\n setAdditionalInsightsData(data);\n\n if (enableUserManagement === 'true' && userRole === userRoles.BASIC) {\n updatedData = updatedData?.filter((InsightCard: ObjectMap) => {\n return InsightCard?.dataName !== 'SalesTrend';\n });\n }\n\n setInsightsData(updatedData);\n\n if (props.updateInsightDataStatus) {\n let dataStatus: boolean | null = true;\n\n if (props?.isInsightsButtonClicked) {\n dataStatus = Boolean(updatedData?.length);\n } else if (updatedData.length === 0) dataStatus = null;\n\n props.updateInsightDataStatus(dataStatus);\n }\n\n setWidgetTitle(response?.widgetTitle);\n })\n .catch((error: any) => {\n setInsightsData([]);\n if (error) setInsightError(true);\n\n if (props.updateInsightDataStatus)\n props.updateInsightDataStatus(\n props?.isInsightsButtonClicked ? false : null\n );\n })\n .finally(() => {\n setInsightLoader(false);\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [widgetKey, filterKey, locale]);\n\n if (props?.hasInsightsData !== null)\n return (\n \n );\n}\n","import { useApiGet } from 'mf_core/query';\nimport { useMutation } from '@tanstack/react-query';\n\nexport function useGetWidgetDetails() {\n const apiGet = useApiGet();\n\n return useMutation({\n mutationFn: (body: {\n filters?: string;\n insightKey?: number;\n widgetKey: number;\n }) => {\n let widgetsUrl = `/shared/v1/insights/widgets?widgetKey=${body?.widgetKey}`;\n\n if (body?.insightKey) {\n widgetsUrl = `/shared/v1/insights/widgets?widgetKey=${body.widgetKey}&insightkey=${body.insightKey}`;\n }\n\n if (body?.filters) {\n widgetsUrl += `&filters=${body?.filters}`;\n }\n\n const data = apiGet(widgetsUrl);\n\n return data;\n },\n });\n}\n","import { useHasPermission } from 'mf_core/auth';\nimport { ObjectMap } from 'mf_core/query';\n\nexport function isEmpty(value: any): boolean {\n if (!value || value === null || value === undefined) return true;\n if (typeof value === 'string') {\n if (value?.trim() === '') return true;\n }\n if (typeof value === 'object') {\n if (!Object.keys(value) || Object.keys(value)?.length === 0) return true;\n if (Object.keys(value)?.length === 1 && Object.keys(value)?.includes('')) {\n return true;\n }\n }\n return false;\n}\n\nexport const userRoles: ObjectMap = {\n ADMIN: 'Admin',\n BASIC: 'Basic',\n PURCHASE: 'Purchase',\n SUPPORT: 'Support',\n};\n\nexport const GetUserRole = () => {\n const hasPermission = useHasPermission();\n if (hasPermission(['ResellerAdmin'])) return userRoles.ADMIN;\n else if (\n (hasPermission(['SeeResellerPriceAndStockOnCatalogue']) ||\n hasPermission(['CreateBaskets'])) &&\n (hasPermission(['PlaceOrders']) ||\n hasPermission(['FulfillmentOrdering']) ||\n hasPermission(['ViewOrderStatus']))\n )\n return userRoles.PURCHASE;\n else if (\n hasPermission(['ViewAccountStatements']) ||\n hasPermission(['ViewOrderStatus']) ||\n hasPermission(['CreateReturns'])\n )\n return userRoles.SUPPORT;\n else return userRoles.BASIC;\n};\n\nexport function getAmount(value?: number | string) {\n if (!value || isEmpty(value)) return 0;\n if (typeof value === 'string') return +value?.replace(/\\s+/g, '');\n return value;\n}\n\nexport function percentage(value: number, total: number) {\n if (value === 0 || total === 0) return 0;\n return getAmount(((value / total) * 100).toFixed(2));\n}\n\nexport function capitalizeFirstLetter(word: string) {\n return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();\n}\n\nexport function capitalizeSentence(sentence: string | undefined): string {\n if (!sentence) return '';\n const words = sentence.split(' ');\n const capitalizedWords = words.map((word) => capitalizeFirstLetter(word));\n const capitalizedSentence = capitalizedWords.join(' ');\n return capitalizedSentence;\n}\n\nexport function getSKUsMap(skus: any = []) {\n const skuMap: ObjectMap = {};\n\n skus.forEach((sku: ObjectMap) => {\n skuMap[sku?.partNumber ?? sku?.skuNumber] = sku;\n });\n\n return skuMap;\n}\n\nexport function getSKUMap(skus: any = []) {\n const skuMap: ObjectMap = {};\n\n skus.forEach((sku: ObjectMap) => {\n skuMap[sku?.partnumber ?? sku?.skuNumber] = sku;\n });\n\n return skuMap;\n}\n\nexport function sortJSONListByKey(jsonList: Array, key: string) {\n jsonList?.sort((productDetailsA: ObjectMap, productDetailsB: ObjectMap) => {\n if (productDetailsA[key] > productDetailsB[key]) return 1;\n else if (productDetailsA[key] < productDetailsB[key]) return -1;\n else return 0;\n });\n\n return jsonList;\n}\n\nexport function sortJSONByNullValue(jsonList: Array, key: string) {\n jsonList.sort((productA: ObjectMap, productB: ObjectMap) => {\n if (JSON.stringify(productA?.[key]) === '{}') {\n return 1;\n }\n\n if (JSON.stringify(productB?.[key]) === '{}') {\n return -1;\n }\n\n if (productA?.[key] === productB?.[key]) {\n return 0;\n }\n\n return productA?.[key] < productB?.[key] ? -1 : 1;\n });\n return jsonList;\n}\n\nexport function sortJSONListByBooleanKey(\n jsonList: Array,\n key: string,\n orderBy: string\n) {\n jsonList?.sort((productA: ObjectMap, productB: ObjectMap) => {\n if (orderBy === 'desc') {\n return Number(productB?.[key]) - Number(productA?.[key]);\n }\n\n return Number(productA?.[key]) - Number(productB?.[key]);\n });\n return jsonList;\n}\n\nexport function sortJSONListByTwoBooleanKey(\n jsonList: Array,\n key1: string,\n key2: string,\n orderBy: string\n) {\n sortJSONListByBooleanKey(jsonList, key1, orderBy).sort(\n (productA, productB) => {\n if (orderBy === 'desc') {\n return Number(productB[key2]) - Number(productA[key2]);\n }\n\n return Number(productA[key2]) - Number(productB[key2]);\n }\n );\n\n return jsonList;\n}\n\nexport function getFormattedNumber(\n num: number,\n currencySymbol = '$',\n zeroRequired = false\n): string {\n num = num * 1;\n\n if (num >= 1000000000) {\n return `${currencySymbol}${(num / 1000000000)\n .toFixed(1)\n .replace(/\\.0$/, '')}B`;\n }\n if (num >= 1000000) {\n return `${currencySymbol}${(num / 1000000)\n .toFixed(1)\n .replace(/\\.0$/, '')}M`;\n }\n if (num >= 1000) {\n return `${currencySymbol}${(num / 1000)?.toFixed(1)?.replace(/\\.0$/, '')}K`;\n }\n if (num === 0) {\n return zeroRequired ? `${currencySymbol}0` : '';\n }\n return `${currencySymbol}${num?.toFixed(1)?.replace(/\\.0$/, '')}`;\n}\n","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"color\", \"disableShrink\", \"size\", \"style\", \"thickness\", \"value\", \"variant\"];\nlet _ = t => t,\n _t,\n _t2,\n _t3,\n _t4;\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport chainPropTypes from '@mui/utils/chainPropTypes';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { keyframes, css } from '@mui/system';\nimport capitalize from '../utils/capitalize';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport { getCircularProgressUtilityClass } from './circularProgressClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst SIZE = 44;\nconst circularRotateKeyframe = keyframes(_t || (_t = _`\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n`));\nconst circularDashKeyframe = keyframes(_t2 || (_t2 = _`\n 0% {\n stroke-dasharray: 1px, 200px;\n stroke-dashoffset: 0;\n }\n\n 50% {\n stroke-dasharray: 100px, 200px;\n stroke-dashoffset: -15px;\n }\n\n 100% {\n stroke-dasharray: 100px, 200px;\n stroke-dashoffset: -125px;\n }\n`));\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n variant,\n color,\n disableShrink\n } = ownerState;\n const slots = {\n root: ['root', variant, `color${capitalize(color)}`],\n svg: ['svg'],\n circle: ['circle', `circle${capitalize(variant)}`, disableShrink && 'circleDisableShrink']\n };\n return composeClasses(slots, getCircularProgressUtilityClass, classes);\n};\nconst CircularProgressRoot = styled('span', {\n name: 'MuiCircularProgress',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.variant], styles[`color${capitalize(ownerState.color)}`]];\n }\n})(({\n ownerState,\n theme\n}) => _extends({\n display: 'inline-block'\n}, ownerState.variant === 'determinate' && {\n transition: theme.transitions.create('transform')\n}, ownerState.color !== 'inherit' && {\n color: (theme.vars || theme).palette[ownerState.color].main\n}), ({\n ownerState\n}) => ownerState.variant === 'indeterminate' && css(_t3 || (_t3 = _`\n animation: ${0} 1.4s linear infinite;\n `), circularRotateKeyframe));\nconst CircularProgressSVG = styled('svg', {\n name: 'MuiCircularProgress',\n slot: 'Svg',\n overridesResolver: (props, styles) => styles.svg\n})({\n display: 'block' // Keeps the progress centered\n});\nconst CircularProgressCircle = styled('circle', {\n name: 'MuiCircularProgress',\n slot: 'Circle',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.circle, styles[`circle${capitalize(ownerState.variant)}`], ownerState.disableShrink && styles.circleDisableShrink];\n }\n})(({\n ownerState,\n theme\n}) => _extends({\n stroke: 'currentColor'\n}, ownerState.variant === 'determinate' && {\n transition: theme.transitions.create('stroke-dashoffset')\n}, ownerState.variant === 'indeterminate' && {\n // Some default value that looks fine waiting for the animation to kicks in.\n strokeDasharray: '80px, 200px',\n strokeDashoffset: 0 // Add the unit to fix a Edge 16 and below bug.\n}), ({\n ownerState\n}) => ownerState.variant === 'indeterminate' && !ownerState.disableShrink && css(_t4 || (_t4 = _`\n animation: ${0} 1.4s ease-in-out infinite;\n `), circularDashKeyframe));\n\n/**\n * ## ARIA\n *\n * If the progress bar is describing the loading progress of a particular region of a page,\n * you should use `aria-describedby` to point to the progress bar, and set the `aria-busy`\n * attribute to `true` on that region until it has finished loading.\n */\nconst CircularProgress = /*#__PURE__*/React.forwardRef(function CircularProgress(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiCircularProgress'\n });\n const {\n className,\n color = 'primary',\n disableShrink = false,\n size = 40,\n style,\n thickness = 3.6,\n value = 0,\n variant = 'indeterminate'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n color,\n disableShrink,\n size,\n thickness,\n value,\n variant\n });\n const classes = useUtilityClasses(ownerState);\n const circleStyle = {};\n const rootStyle = {};\n const rootProps = {};\n if (variant === 'determinate') {\n const circumference = 2 * Math.PI * ((SIZE - thickness) / 2);\n circleStyle.strokeDasharray = circumference.toFixed(3);\n rootProps['aria-valuenow'] = Math.round(value);\n circleStyle.strokeDashoffset = `${((100 - value) / 100 * circumference).toFixed(3)}px`;\n rootStyle.transform = 'rotate(-90deg)';\n }\n return /*#__PURE__*/_jsx(CircularProgressRoot, _extends({\n className: clsx(classes.root, className),\n style: _extends({\n width: size,\n height: size\n }, rootStyle, style),\n ownerState: ownerState,\n ref: ref,\n role: \"progressbar\"\n }, rootProps, other, {\n children: /*#__PURE__*/_jsx(CircularProgressSVG, {\n className: classes.svg,\n ownerState: ownerState,\n viewBox: `${SIZE / 2} ${SIZE / 2} ${SIZE} ${SIZE}`,\n children: /*#__PURE__*/_jsx(CircularProgressCircle, {\n className: classes.circle,\n style: circleStyle,\n ownerState: ownerState,\n cx: SIZE,\n cy: SIZE,\n r: (SIZE - thickness) / 2,\n fill: \"none\",\n strokeWidth: thickness\n })\n })\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? CircularProgress.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * @default 'primary'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['inherit', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * If `true`, the shrink animation is disabled.\n * This only works if variant is `indeterminate`.\n * @default false\n */\n disableShrink: chainPropTypes(PropTypes.bool, props => {\n if (props.disableShrink && props.variant && props.variant !== 'indeterminate') {\n return new Error('MUI: You have provided the `disableShrink` prop ' + 'with a variant other than `indeterminate`. This will have no effect.');\n }\n return null;\n }),\n /**\n * The size of the component.\n * If using a number, the pixel unit is assumed.\n * If using a string, you need to provide the CSS unit, for example '3rem'.\n * @default 40\n */\n size: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * @ignore\n */\n style: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The thickness of the circle.\n * @default 3.6\n */\n thickness: PropTypes.number,\n /**\n * The value of the progress indicator for the determinate variant.\n * Value between 0 and 100.\n * @default 0\n */\n value: PropTypes.number,\n /**\n * The variant to use.\n * Use indeterminate when there is no progress value.\n * @default 'indeterminate'\n */\n variant: PropTypes.oneOf(['determinate', 'indeterminate'])\n} : void 0;\nexport default CircularProgress;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getCircularProgressUtilityClass(slot) {\n return generateUtilityClass('MuiCircularProgress', slot);\n}\nconst circularProgressClasses = generateUtilityClasses('MuiCircularProgress', ['root', 'determinate', 'indeterminate', 'colorPrimary', 'colorSecondary', 'svg', 'circle', 'circleDeterminate', 'circleIndeterminate', 'circleDisableShrink']);\nexport default circularProgressClasses;"],"names":["StyledInsightsWrapper","props","additionalInsightsData","bodyContent","ctaLink","currentPage","dataName","insightTitle","navigate","useNavigate","React","StyledInsightDetailsStackWrapper","direction","spacing","Stack","InsightsIcon","Typography","variant","StyledStack","onClick","sx","cursor","parse","getFormattedNumber","styled","a","color","fontWeight","textDecoration","fontSize","theme","background","borderBottom","flexGrow","maxWidth","padding","paddingBottom","InsightsContent","prop","insightsData","isInsightsError","isInsightsLoading","onClickInsightsCenter","widgetTitle","translate","useTranslate","viewAllData","setViewAllData","useState","chipsInsights","setChipsInsights","filterChips","setFilterChips","location","useLocation","generateKey","pre","id","useEffect","filterChipList","push","active","count","length","name","forEach","chip","some","filterChip","insightTemplateName","filter","chipCount","showContent","useCallback","chipName","prevState","map","impressionsData","contentDetails","chipDetails","InsightName","InsightTab","setDigitalData","QuickInsightsImpressions","StyledWrapper","alignItems","height","justifyContent","CircularProgress","CustomWidthTooltip","title","InfoOutlinedIcon","display","ml","StyledPageNameTypography","replace","Box","component","py","flexWrap","StyledChip","className","deleteIcon","CountBadge","key","label","onDelete","pt","StyledStackContainer","alignContent","overflow","viewAll","index","StyledStackRow","insightName","insightContent","cta_link","pathname","marginTop","position","right","StyledButton","backgroundColor","borderRadius","minWidth","width","Button","textTransform","Tooltip","_extends","classes","popper","tooltipClasses","tooltip","boxShadow","Chip","borderColor","marginBottom","palette","text","disabled","primary","main","overflowX","overflowY","marginLeft","lineHeight","QuickInsights","widgetKey","setWidgetKey","filterKey","setFilterKey","insightLoader","setInsightLoader","insightError","setInsightError","setInsightsData","setAdditionalInsightsData","setCurrentPage","setWidgetTitle","widgetMutation","apiGet","useApiGet","useMutation","mutationFn","body","widgetsUrl","insightKey","filters","useGetWidgetDetails","locale","useLocalizationContext","value","enableUserManagement","useFeatureFlag","widgetKeys","pageNames","enableInsightsPaths","userRole","GetUserRole","getUrlParams","queryString","URLSearchParams","get","updateInsightsDetails","data","insight","updatedInsightContent","match","group","decodeURIComponent","updateVisitedPagesData","pathName","visitedPages","JSON","localStorage","getItem","includes","search","setItem","stringify","isInsightsDropOpen","toLowerCase","vendor","clearTimeout","modifyDigitalData","mutateAsync","then","response","htmlData","insights","insightBodyContent","html","updatedData","userRoles","BASIC","InsightCard","updateInsightDataStatus","dataStatus","isInsightsButtonClicked","Boolean","catch","error","finally","hasInsightsData","isEmpty","trim","Object","keys","ADMIN","PURCHASE","SUPPORT","hasPermission","useHasPermission","capitalizeFirstLetter","word","charAt","toUpperCase","slice","getSKUMap","skus","skuMap","sku","partnumber","skuNumber","sortJSONListByKey","jsonList","sort","productDetailsA","productDetailsB","sortJSONByNullValue","productA","productB","sortJSONListByBooleanKey","orderBy","Number","sortJSONListByTwoBooleanKey","key1","key2","num","currencySymbol","zeroRequired","toFixed","_excluded","_t","_t2","_t3","_t4","_","t","circularRotateKeyframe","keyframes","circularDashKeyframe","CircularProgressRoot","slot","overridesResolver","styles","ownerState","root","transition","transitions","create","vars","css","CircularProgressSVG","svg","CircularProgressCircle","circle","disableShrink","circleDisableShrink","stroke","strokeDasharray","strokeDashoffset","inProps","ref","size","style","thickness","other","slots","useUtilityClasses","circleStyle","rootStyle","rootProps","circumference","Math","PI","round","transform","role","children","viewBox","cx","cy","r","fill","strokeWidth","getCircularProgressUtilityClass"],"sourceRoot":""}