{"version":3,"file":"static/chunks/279-653f8c8d7600b75a.js","mappings":"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","sources":["webpack://_N_E/./src/component-factory/components/carousel-promo-component/components/carousel-promo-interval.client.tsx","webpack://_N_E/./src/component-factory/components/hero-component/components/hero-bba-logo.tsx","webpack://_N_E/./src/component-factory/components/hero-component/components/hero-cta.client.tsx","webpack://_N_E/./src/component-factory/components/hero-multi-image-component/components/hero-multi-image-interval.client.tsx","webpack://_N_E/./src/component-factory/components/image-text-component/components/label-flagger/label-flagger.client.tsx","webpack://_N_E/./src/component-factory/components/navibar-component/navibar-component.client.tsx","webpack://_N_E/./src/component-factory/components/page-content-component/(articles)/components/utils.ts","webpack://_N_E/./src/component-factory/components/page-content-component/(articles)/components/tile.tsx","webpack://_N_E/./src/component-factory/components/page-content-component/(articles)/components/load-more.client.tsx","webpack://_N_E/./src/component-factory/components/page-content-component/support/components/search-bar/search-bar.tsx","webpack://_N_E/./src/component-factory/components/page-content-component/support/components/search-bar/utils/utils.tsx","webpack://_N_E/./src/component-factory/components/page-content-component/support/components/search-bar/utils/index.ts","webpack://_N_E/../assets/resources/search-bar.svg","webpack://_N_E/./src/component-factory/components/page-content-component/support/search/components/search-results/search-results.tsx","webpack://_N_E/./src/component-factory/components/promo-component/components/promo-cta.client.tsx","webpack://_N_E/./src/component-factory/components/report-component/availability-and-performance-report/report.client.tsx","webpack://_N_E/./src/component-factory/components/tabs-component/tabs-component.client.tsx","webpack://_N_E/./src/component-factory/components/widget-component/widgets/trustpilot-widget/trustpilot-widget.client.tsx","webpack://_N_E/./src/component-factory/feature-flagger/feature-flagger.tsx","webpack://_N_E/../assets/resources/qr-code/qr-code-fallback.png"],"sourcesContent":["'use client'\n\nimport { useCarouselContext } from '@chaseweb/ui-library/src/molecules/carousel/carousel.context'\nimport type { HTMLAttributes } from 'react'\nimport { useEffect, useState } from 'react'\n\nexport const animationTimer = 5000\n\nexport const CarouselPromoInterval = ({\n children,\n ...props\n}: HTMLAttributes) => {\n const { setCurrentPage, childrenCount, currentPage } = useCarouselContext()\n const [isPlaying, setIsPlaying] = useState(false)\n\n const handleInOutEvent = (isInside: boolean) => () => {\n setIsPlaying(isInside)\n }\n\n useEffect(() => {\n if (!isPlaying && childrenCount > 1) {\n const intervalId = setInterval(() => {\n setCurrentPage((cur) => {\n return (cur + 1) % childrenCount\n })\n }, animationTimer)\n return () => {\n clearInterval(intervalId)\n }\n }\n }, [childrenCount, currentPage, isPlaying, setCurrentPage])\n\n return (\n \n {children}\n \n )\n}\n","'use client'\n\nimport { cn } from '@chaseweb/utils/cn'\nimport { usePathname } from 'next/navigation'\n\nimport { BbaLogo } from '@/components'\n\nexport const HeroBbaLogo = () => {\n const pathname = usePathname()\n\n return ['/product/chase-account/', '/product/chase-saver-account/'].includes(\n pathname,\n ) ? (\n
\n \n
\n ) : null\n}\n","'use client'\n\nimport { Hero as HeroUI } from '@chaseweb/ui-library/src'\nimport { cn } from '@chaseweb/utils/cn'\nimport { useSplitStore } from '@chaseweb/utils/split'\nimport { useEffect, useRef } from 'react'\n\nimport { ActionableLink, DownloadLink } from '@/components'\nimport { FeatureActionLinkEnum, type FeatureTypeIdEnum } from '@/constants'\nimport { useCTAStore } from '@/lib/stores'\nimport type { zActionableLinkType } from '@/lib/validators'\n\nimport type { ComponentProps } from '../../types'\n\nconst defaultHeroAction: zActionableLinkType = {\n actionData: {\n action: FeatureActionLinkEnum.DOWNLOAD,\n },\n link: undefined,\n}\n\nexport const HeroCta = ({\n featureData,\n}: ComponentProps) => {\n const client = useSplitStore((state) => state.clients.user)\n const treatmentCtaText = client?.getTreatmentWithConfig(\n 'homepage_hero_cta_text',\n )\n const treatmentCtaSize = client?.getTreatment('homepage_hero_cta_size')\n const treatmentCtaColour = client?.getTreatment('hero_cta_colour')\n\n const ctaRef = useRef(null)\n const { setHeroCtaRef, setAlwaysVisible } = useCTAStore()\n\n useEffect(() => {\n if (client) {\n if (ctaRef.current) {\n setHeroCtaRef(ctaRef)\n setAlwaysVisible(false)\n } else {\n setAlwaysVisible(true)\n }\n }\n return () => setHeroCtaRef(null)\n }, [setHeroCtaRef, client, setAlwaysVisible])\n\n const ctaLabel = featureData.isHomepage\n ? (\n JSON.parse(\n treatmentCtaText?.config ?? '{\"inlineText\":\"Get the app\"}',\n ) as {\n inlineText: string\n }\n )['inlineText']\n : featureData.cta?.label\n\n const isCtaBigSize = treatmentCtaSize === 'on' && featureData.isHomepage\n const isCtaWhite = treatmentCtaColour === 'on' && featureData.isHomepage\n\n return featureData.cta ? (\n
\n {client && (\n \n \n {ctaLabel}\n \n \n )}\n \n
\n ) : null\n}\n","'use client'\n\nimport { cn } from '@chaseweb/utils/cn'\nimport { Children, type ReactElement, useEffect, useState } from 'react'\n\nexport const imageAnimationTimer = 5000\n\nexport const HeroMultiImageInterval = ({\n children,\n}: {\n children: ReactElement[]\n}) => {\n const [currentImage, setCurrentImage] = useState(0)\n\n useEffect(() => {\n const childrenCount = Children.count(children)\n if (childrenCount > 1) {\n const intervalId = setInterval(() => {\n setCurrentImage((cur) => {\n return (cur + 1) % childrenCount\n })\n }, imageAnimationTimer)\n return () => {\n clearInterval(intervalId)\n }\n }\n }, [children])\n\n return Children.map(children, (child: ReactElement, index) => {\n return (\n \n {child}\n \n )\n })\n}\n","'use client'\n\nimport { useSplitStore } from '@chaseweb/utils/split'\nimport type { ReactElement, ReactNode } from 'react'\n\nexport const LabelFlagger = ({\n children,\n}: {\n children: ReactElement\n}): ReactNode => {\n const client = useSplitStore((state) => state.clients.user)\n const treatment = client?.getTreatmentWithConfig(\n 'homepage_feature_label',\n ).treatment\n\n if (treatment === 'on') {\n return children\n }\n return null\n}\n","'use client'\n\nimport { Header, Navigation } from '@chaseweb/ui-library/src/molecules'\nimport { cn } from '@chaseweb/utils/cn'\nimport { usePathname } from 'next/navigation'\n\nimport {\n DesktopHeaderCta,\n Link,\n MobileHeaderCta,\n SkipToMainContentButton,\n} from '@/components'\nimport { FeatureActionLinkEnum, type FeatureTypeIdEnum } from '@/constants'\nimport type {\n ItemGroup,\n ItemLink,\n} from '@/data/aem/features/featureSchemas/layout-features/processGroupItemLink'\nimport type { FeatureDataFilteredByType } from '@/data/aem/types'\n\ntype Props = {\n featureData: FeatureDataFilteredByType\n logoImage: JSX.Element\n iconImageMap: Record\n}\n\nconst GroupOrLink = ({\n item,\n pathname,\n iconImageMap,\n}: {\n item: ItemGroup | ItemLink\n pathname: string\n iconImageMap: Props['iconImageMap']\n // eslint-disable-next-line sonarjs/cognitive-complexity\n}) => {\n if (item.type === 'group') {\n return (\n \n {item.label}\n \n {item.items[0].type === 'group' ? (\n item.items.map(\n (subItem) =>\n subItem.type === 'group' && (\n \n {subItem.label && (\n \n {subItem.label}\n \n )}\n {subItem.items.map((subGroupItem) => (\n \n ))}\n \n ),\n )\n ) : (\n \n {item.items.map((subItem) => (\n \n ))}\n \n )}\n \n \n )\n } else if (item.type === 'link' && item.linkData) {\n if (item.linkData.link) {\n const isActive =\n item.linkData.link === '/'\n ? pathname === '/'\n : item.linkData.link &&\n pathname.startsWith(item.linkData.link.replace(/\\/$/, ''))\n\n return (\n \n \n \n {item.iconUrl && (\n \n {iconImageMap[item.iconUrl.src]}\n \n )}\n \n {item.label}\n \n \n \n \n )\n } else if (\n item.linkData?.actionData.action === FeatureActionLinkEnum.DOWNLOAD &&\n !/^\\/?((sitemap)|(support)|(legal)|(download))\\//.test(pathname)\n ) {\n return item.visibleOnly === 'desktop' ? (\n \n \n \n ) : (\n \n \n \n )\n }\n }\n}\n\nexport const ClientNavibarComponent = ({\n featureData,\n logoImage,\n iconImageMap,\n}: Props) => {\n const pathname = usePathname()\n return (\n \n {(featureData.items ?? []).length > 0 && }\n \n \n {featureData.logoClickable ? (\n \n {logoImage}\n \n ) : (\n
\n
{logoImage}
\n
\n )}\n
\n \n {(featureData.items ?? []).length > 0 && (\n \n {featureData.items?.map((item) => (\n \n ))}\n \n )}\n \n
\n
\n )\n}\n","import unset from 'lodash/fp/unset'\nimport { notFound } from 'next/navigation'\n\nimport type { Article, ArticleMeta } from '@/data/aem/articles/types'\nimport type { SlugPathType } from '@/types'\nexport const TILES_COLUMN = 6\nexport const LOAD_MORE_AMOUNT = 6\n\nexport const featuredSlugsSet = new Set([\n 'romance-scams/',\n 'bank-online-safely/',\n 'problem-gambling/',\n 'money-lessons-kids/',\n 'identity-scams/',\n 'avoid-elder-fraud/',\n])\n\nexport const getCategories = (articles: Article[]) => {\n const hubArticleCategorySet = new Set()\n articles.forEach(({ category }) => {\n hubArticleCategorySet.add(category)\n })\n return [...hubArticleCategorySet]\n}\n\nexport const transformCategoryToLabel = (category: string) => {\n return category.replaceAll('--', ' & ').replaceAll('-', ' ')\n}\n\nexport const transformCategoryToLabelAndCapitalise = (category: string) => {\n return transformCategoryToLabel(category)\n .split(' ')\n .map((word) => `${word.charAt(0).toUpperCase()}${word.slice(1)}`)\n .join(' ')\n}\n\nexport const transformCategoryToPath = (category: string) => {\n return category\n .replaceAll(' & ', '--')\n .replaceAll('-&-', '--')\n .replaceAll(' ', '-')\n .toLowerCase()\n}\n\nexport const filterCategoryArticles = (\n allArticles: Article[],\n category: string,\n) => {\n return allArticles.filter((article) => article.category === category)\n}\n\nexport const getArticleBySlug = (\n allArticles: Article[],\n slug: SlugPathType,\n) => {\n const article = allArticles.find((article) => article.slug === slug)\n if (!article) return notFound()\n return article\n}\n\nexport const getRelatedArticles = (\n allArticles: Article[],\n currentArticle: Article,\n) => {\n return allArticles.filter(\n (article) =>\n article.category === currentArticle.category &&\n article.slug !== currentArticle.slug,\n )\n}\n\nexport const getArticleMetaForArticlePage = (\n article: Article,\n index: number,\n): ArticleMeta => {\n const {\n slug,\n title,\n readingTime,\n category,\n articleSummary,\n multiSizeImage: { tablet, desktop },\n } = article\n\n const image = index === 0 ? desktop : (tablet ?? desktop)\n\n return {\n slug,\n title,\n readingTime,\n category: transformCategoryToLabel(category),\n articleSummary,\n image,\n }\n}\n\nexport const stripPlaceholderData = (article: ArticleMeta): ArticleMeta => {\n return unset('multiSizeImage.desktop.base64', article)\n}\n","import { ArticleTile } from '@chaseweb/ui-library/src'\nimport { type FC } from 'react'\n\nimport { transformCategoryToLabel } from './utils'\n\nexport interface TileProps {\n variant: 'sm' | 'md' | 'lg'\n label: string\n title: string\n description?: string | JSX.Element | JSX.Element[]\n summary?: string\n image: JSX.Element\n}\n\nexport const Tile: FC = ({\n variant,\n image,\n label,\n title,\n description,\n summary,\n}) => (\n \n \n {image}\n \n \n \n {transformCategoryToLabel(label)}\n \n\n {title}\n\n {description && (\n {description}\n )}\n\n {summary && {summary}}\n \n \n)\n","'use client'\n\nimport { Button, Heading } from '@chaseweb/ui-library/src'\nimport { cn } from '@chaseweb/utils/cn'\nimport { useRouter, useSearchParams } from 'next/navigation'\nimport {\n type FC,\n type HTMLAttributes,\n Suspense,\n useEffect,\n useRef,\n useState,\n} from 'react'\n\nimport { Link } from '@/components'\nimport type { ArticleMeta } from '@/data/aem/articles/types'\nimport { parseContent } from '@/lib/parse-content'\nimport type { RelativePathOrHrefExternalType } from '@/types'\n\nimport { Tile } from './tile'\nimport { LOAD_MORE_AMOUNT, TILES_COLUMN } from './utils'\n\ninterface LoadMoreClientArticle extends ArticleMeta {\n imageComponent: JSX.Element\n}\n\nexport interface LoadMoreClientProps\n extends HTMLAttributes {\n articleList: LoadMoreClientArticle[]\n linkPathPrefix: RelativePathOrHrefExternalType\n title?: string\n}\n\nconst TILES_AMOUNT_PRELOADED = TILES_COLUMN + 1\n\nconst IsANumber = (n: string) => /^\\d*$/.test(n)\n\nconst LoadMoreImplementation: FC = ({\n articleList,\n linkPathPrefix,\n className,\n title,\n ...props\n}) => {\n const tileContainer = useRef(null)\n const totalAmount = articleList.length + TILES_AMOUNT_PRELOADED\n const router = useRouter()\n const [...urlParamsArray] = useSearchParams()\n const [pageNumber, setPageNumber] = useState(0)\n const [visibleTiles, setVisibleTiles] = useState([])\n\n useEffect(() => {\n const pageParamsArray = urlParamsArray.find((array) =>\n array.includes('page'),\n )\n const page =\n pageParamsArray && IsANumber(pageParamsArray[1]) && pageParamsArray[1]\n ? pageParamsArray[1]\n : 1\n setPageNumber(() => +page)\n setVisibleTiles(articleList.slice(0, LOAD_MORE_AMOUNT * +page))\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n if (!articleList.length) {\n return null\n }\n\n const handleLoadMore = () => {\n const currentLink = tileContainer.current?.children[\n pageNumber * LOAD_MORE_AMOUNT - 1\n ] as HTMLAnchorElement\n currentLink.focus()\n\n setPageNumber(pageNumber + 1)\n setVisibleTiles(() =>\n articleList.slice(0, (pageNumber + 1) * LOAD_MORE_AMOUNT),\n )\n\n const newUrlParamsArray = urlParamsArray.map((array) => {\n const [paramName, paramValue] = array\n if (paramName === 'page' && IsANumber(paramValue) && paramValue)\n return `page=${+paramValue + 1}`\n else if (paramName === 'page' && (!IsANumber(paramValue) || !paramValue))\n return 'page=2'\n else return array.join('=')\n })\n\n if (!newUrlParamsArray.find((array) => array.includes('page')))\n newUrlParamsArray.push('page=2')\n\n const newUrlParams = newUrlParamsArray.join('&')\n\n router.replace(`?${newUrlParams}`, {\n scroll: false,\n })\n }\n\n return (\n \n {title && (\n \n {title}\n \n )}\n \n {visibleTiles.map((tile, index) => {\n const isLargeTile =\n index >= LOAD_MORE_AMOUNT &&\n (index % LOAD_MORE_AMOUNT === 0 || index % LOAD_MORE_AMOUNT === 1)\n return (\n \n {isLargeTile ? (\n \n ) : (\n \n )}\n \n )\n })}\n \n {totalAmount > LOAD_MORE_AMOUNT * pageNumber + TILES_AMOUNT_PRELOADED && (\n
\n

{`Viewing ${\n LOAD_MORE_AMOUNT * pageNumber + TILES_AMOUNT_PRELOADED\n } out of ${totalAmount} articles`}

\n \n
\n )}\n \n )\n}\n\nexport const LoadMoreClient: FC = ({ ...props }) => {\n return (\n // Wrapping LoadMore in a Suspense boundary ensures the whole page does not de-opt to client-side rendering\n // More info here: https://nextjs.org/docs/messages/missing-suspense-with-csr-bailout\n \n \n \n )\n}\n","'use client'\n\nimport { CustomSvg, ScreenReader } from '@chaseweb/ui-library/src'\nimport { cn } from '@chaseweb/utils/cn'\nimport throttle from 'lodash/throttle'\nimport { useRouter, useSearchParams } from 'next/navigation'\nimport {\n type ChangeEvent,\n type FocusEventHandler,\n type HTMLAttributes,\n type KeyboardEvent,\n type MouseEventHandler,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport { Link } from '@/components'\nimport type { SupportArticle } from '@/data/aem'\nimport { useHasRehydrated } from '@/lib/hooks/useHasRehydrated'\nimport type { RelativePathType } from '@/types'\n\nimport {\n configureSearchEngine,\n formRegexForMultiWordSearch,\n getSearchResults,\n highlightWords,\n} from './utils'\n\nexport const SEARCH_BUTTON_DISABLED_TEXT =\n 'Search button disabled. Please enter a search term.'\nexport const SEARCH_BUTTON_ENABLED_TEXT = 'Search button enabled.'\nconst SUGGESTIONS = 'Suggestions'\nconst SUGGESTIONS_INFO =\n 'Suggestions found, use up and down arrows to review and enter to select'\nconst MAX_SUGGESTIONS = 5\n\nexport interface SearchBarProps extends HTMLAttributes {\n placeholder: string\n /**\n * type of data being passed to search bar\n */\n articleList: SupportArticle[]\n /**\n * Set prefix for href of suggestion items\n */\n hrefPrefix?: RelativePathType\n /**\n * Style set for search bar container\n */\n classNameContainer?: string\n}\n\nexport const SearchBar = ({\n id,\n articleList,\n hrefPrefix = '/',\n placeholder,\n classNameContainer,\n ...props\n}: // eslint-disable-next-line sonarjs/cognitive-complexity\nSearchBarProps) => {\n const hasRehydrated = useHasRehydrated()\n const searchParams = useSearchParams()\n const inputRef = useRef(null)\n const resetButtonRef = useRef(null)\n const suggestionItemRef = useRef([])\n const [activeSuggestion, setActiveSuggestion] = useState(-1)\n const [isInputActive, setIsInputActive] = useState(false)\n const [showSuggestion, setShowSuggestion] = useState(false)\n const [inputValue, setInputValue] = useState(searchParams.get('query') ?? '')\n const [searchResultList, setSearchResultList] = useState([])\n const router = useRouter()\n\n const search = useMemo(() => {\n const transformedNodes = articleList.map(\n (item: SupportArticle, index: number) => ({\n index,\n ...item,\n content: {\n __html__: item.content.__html__.replace(\n /^([\\s\\S]+?)Related FAQs[\\s\\S]*?<\\/h.>[\\s\\S]+$/,\n '$1',\n ),\n },\n }),\n )\n return configureSearchEngine(transformedNodes, 'index', [\n 'title',\n 'content',\n ])\n }, [articleList])\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const throttleGetResults = useCallback(\n throttle(\n (value: string) => {\n const results = getSearchResults(value, search)\n setSearchResultList(results)\n },\n 1000,\n {\n leading: false,\n trailing: true,\n },\n ),\n [search],\n )\n\n const handleInputChange = useCallback(\n (e: ChangeEvent) => {\n const value = e.target.value\n if (value.trim() === '') {\n setInputValue('')\n setSearchResultList([])\n return\n }\n throttleGetResults(value)\n setInputValue(value)\n },\n [throttleGetResults],\n )\n useEffect(() => {\n // if inputValue is set via search params...\n if (inputValue) {\n const results = getSearchResults(inputValue, search)\n setSearchResultList(results)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const handleReset = () => {\n setInputValue('')\n setSearchResultList([])\n }\n\n const filteredSuggestions = searchResultList\n .slice(0, MAX_SUGGESTIONS)\n .map((item, suggestionId) => ({\n suggestionId,\n ...item,\n }))\n const isSearchQueryValid = inputValue && inputValue.toString().trim() !== ''\n\n /**\n * Navigate to first item in list on keydown event of input\n * @param e\n */\n const onInputKeyDownPress = (e: KeyboardEvent) => {\n setShowSuggestion(true)\n setIsInputActive(false)\n // Focus on first list item\n if (e.key === 'ArrowDown' || e.key === 'Down') {\n e.preventDefault()\n ;(suggestionItemRef.current[0].children[0] as HTMLAnchorElement)?.focus()\n setActiveSuggestion(0)\n }\n // As focus moves out of input field, we won't show suggestion list\n if (e.key === 'Tab') {\n setShowSuggestion(false)\n }\n // On enter should behave like click of search button\n if (e.key === 'Enter') {\n setShowSuggestion(false)\n if (isSearchQueryValid) {\n router.push(`${hrefPrefix}search/?query=${inputValue}`)\n }\n }\n }\n\n const handleCloseSuggestions: MouseEventHandler = () => {\n setShowSuggestion(false)\n setIsInputActive(false)\n if (isSearchQueryValid) {\n router.push(`${hrefPrefix}search/?query=${inputValue}`)\n }\n }\n\n /**\n * On focusing back to input, suggestions should appear back if it was collapsed earlier\n */\n const onFocusOfInput: FocusEventHandler = (e) => {\n setShowSuggestion(filteredSuggestions.length > 0)\n setIsInputActive(e.target.getAttribute('data-input') === 'keyboard')\n }\n\n /**\n * Navigate through suggestion list\n * @param e\n */\n const navigateSuggestionList = (e: KeyboardEvent) => {\n switch (e.key) {\n case 'ArrowUp':\n e.preventDefault()\n navigateUp()\n break\n case 'ArrowDown':\n e.preventDefault()\n navigateDown()\n break\n case 'Tab':\n e.preventDefault()\n setFocusToClearButton()\n break\n default:\n break\n }\n }\n\n /**\n * Navigate down the suggestion list\n */\n const navigateDown = () => {\n if (activeSuggestion === filteredSuggestions.length - 1) {\n suggestionItemRef.current[0].focus()\n ;(suggestionItemRef.current[0].children[0] as HTMLAnchorElement).focus()\n setActiveSuggestion(0)\n return\n }\n ;(\n suggestionItemRef.current[activeSuggestion + 1]\n .children[0] as HTMLAnchorElement\n ).focus()\n setActiveSuggestion(activeSuggestion + 1)\n }\n\n /**\n * Navigate up the suggestion list\n */\n const navigateUp = () => {\n if (activeSuggestion === 0) {\n inputRef.current?.focus() // condition for focus on input is covered in tests\n return\n }\n ;(\n suggestionItemRef.current[activeSuggestion - 1]\n .children[0] as HTMLAnchorElement\n ).focus()\n setActiveSuggestion(activeSuggestion - 1)\n }\n\n /**\n * Once we are at last suggestion item then on press of tab it should focus on reset button\n */\n const setFocusToClearButton = () => {\n resetButtonRef.current?.focus() // condition for focus on reset button is covered in tests\n suggestionItemRef.current[activeSuggestion].blur()\n setActiveSuggestion(-1)\n setShowSuggestion(false)\n }\n\n /**\n * Highlight search query words in suggestion box\n * @param title\n */\n const highlightSearchWords = (title: string) => {\n const input = `${inputValue}`.toLowerCase().replace(/[^\\w\\s]/gi, '')\n const keyWords = input.split(' ')\n // highlight single word search with prefix strategy\n if (title.toLowerCase().includes(input)) {\n return highlightWords(title, new RegExp(`(\\\\b)(${input})`, 'gi'))\n }\n // highlight multiple words in same sentence\n if (keyWords.length > 1) {\n const groups = formRegexForMultiWordSearch(keyWords)\n return highlightWords(title, new RegExp(groups, 'gi'))\n }\n // if search results are available but input query doesn't match the\n // keywords then just show the title without any highlighter\n if (!title.toLowerCase().includes(input)) {\n return (\n \n {title}\n \n )\n }\n }\n\n const isClearButtonVisible = inputValue && inputValue.toString().trim() !== ''\n\n return (\n
\n \n \n {filteredSuggestions.length > 0 && (\n // only readable by screen reader to inform users about number of suggestions available\n \n \n {`${filteredSuggestions.length} ${SUGGESTIONS_INFO}`}\n \n \n )}\n \n \n \n \n \n \n
\n {inputValue !== '' && ( // Suggestion box should be visible if search query has any results\n 0}\n className={`tw-absolute tw-z-50 -tw-mt-0.5 tw-box-border tw-w-full tw-rounded-lg tw-border tw-border-grey80 tw-bg-white tw-p-4 tw-shadow ${\n !showSuggestion ? 'tw-hidden' : ''\n }`}\n id={`${id}_suggestions`}\n aria-labelledby={`${id}_suggestions_label`}\n data-testid={'test-suggestions-dialog'}\n >\n \n {SUGGESTIONS}\n \n
    \n {filteredSuggestions.map(({ slug, title, suggestionId }) => {\n return (\n \n (suggestionItemRef.current[suggestionId] =\n el as HTMLLIElement)\n }\n >\n \n {highlightSearchWords(title)}\n \n \n )\n })}\n
\n \n )}\n \n )\n}\n","import * as JsSearch from 'js-search'\n\nimport type { SupportArticle } from '@/data/aem'\n\n/**\n * Highlighting search words in suggestions box\n */\nexport const highlightWords = (result: string, pattern: RegExp) => {\n return result.split(pattern).map((word: string, index: number) => {\n // There is no way to guarantee uniquiness to the word\n const key = index.toString(32)\n return (\n \n {word}\n \n )\n })\n}\n\n/**\n * Regex pattern for multi word search\n * @param keyWords\n */\nexport const formRegexForMultiWordSearch = (keyWords: string[]) => {\n const format = /[!@#$%^&*()_+\\-=[\\]{};':\"\\\\|,.<>/?]/\n return (\n keyWords\n // get rid of spaces and special characters\n .filter((word: string) => {\n return word !== '' && !format.test(word)\n })\n .map((word: string) => `(\\\\b)(${word})`.trim())\n .join('|')\n )\n}\n\nexport const configureSearchEngine = (\n transformedNodes: SupportArticle[],\n idSearch: string,\n searchIndices: Array>,\n) => {\n const searchEngine = new JsSearch.Search(idSearch)\n searchEngine.indexStrategy = new JsSearch.PrefixIndexStrategy()\n searchEngine.sanitizer = new JsSearch.LowerCaseSanitizer()\n searchEngine.searchIndex = new JsSearch.TfIdfSearchIndex(idSearch)\n searchIndices.forEach((searchIndex) => {\n searchEngine.addIndex(searchIndex)\n })\n searchEngine.addDocuments(transformedNodes)\n return searchEngine\n}\n\nexport const getSearchResults = (value: string, search: JsSearch.Search) => {\n const queryResultSet = new Set()\n let requiredData: SupportArticle[] = []\n const splitWords = value.split(' ')\n if (splitWords.length > 1) {\n splitWords.forEach((word: string) => {\n search.search(word).forEach((output) => {\n queryResultSet.add(output)\n })\n })\n }\n if (value.length > 1) {\n search.search(value).forEach((output) => {\n queryResultSet.add(output)\n })\n // results based upon multiword as well as single word search\n const allData = [...queryResultSet] as SupportArticle[]\n // sort search result for multiwords in such a way that they appear on top\n const topSearchData = sortSearchResults(allData, value)\n // remove duplicate data if present\n requiredData = [...new Set([...topSearchData, ...allData])]\n }\n return requiredData\n}\n\n// sort data based upon indexOf values\nconst sortSearchResults = (data: SupportArticle[], value: string) => {\n return data\n .filter((item: SupportArticle) => {\n return item.title.toLowerCase().includes(value.toLowerCase())\n })\n .sort((a: SupportArticle, b: SupportArticle) => {\n // Sort results by matching title with keyword position in title\n if (\n a.title.toLowerCase().indexOf(value.toLowerCase()) >\n b.title.toLowerCase().indexOf(value.toLowerCase())\n ) {\n return 1\n }\n if (\n a.title.toLowerCase().indexOf(value.toLowerCase()) <\n b.title.toLowerCase().indexOf(value.toLowerCase())\n ) {\n return -1\n }\n return -1\n })\n}\n","export * from './utils'\n","export default {\"src\":\"/gb/en/_next/static/media/search-bar.d40fed2d.svg\",\"height\":80,\"width\":80,\"blurWidth\":0,\"blurHeight\":0};","'use client'\n\nimport NoResultsImg from '@chaseweb/assets/resources/search-bar.svg'\nimport { Button, Heading } from '@chaseweb/ui-library/src'\nimport { useRouter, useSearchParams } from 'next/navigation'\nimport type { HTMLAttributes } from 'react'\nimport { useEffect, useMemo, useRef, useState } from 'react'\n\nimport { Link, LocalImage } from '@/components'\nimport type { SupportArticle } from '@/data/aem'\n\nimport {\n configureSearchEngine,\n getSearchResults,\n} from '../../../components/search-bar/utils'\n\nconst SEARCH_RESULT_AMOUNT = 10\n\ninterface SearchResultsProps extends HTMLAttributes {\n supportArticleList: SupportArticle[]\n hrefPrefix: `/${string}`\n}\n\nexport const findQueryValue = (paramsArray: [string, string][]) => {\n const paramQueryArray = paramsArray.find((array) => array.includes('query'))\n return paramQueryArray ? paramQueryArray[1] : ''\n}\n\nconst IsANumber = (n: string) => /^\\d*$/.test(n)\n\nexport const SearchResults = ({\n supportArticleList,\n hrefPrefix,\n ...props\n}: SearchResultsProps) => {\n const [...urlParamsArray] = useSearchParams()\n const [pageNumber, setPageNumber] = useState(0)\n const [visibleArticles, setVisibleArticles] = useState([])\n const [viewingAmount, setViewingAmount] = useState(SEARCH_RESULT_AMOUNT)\n const listContainerRef = useRef(null)\n\n const paramQueryValue = findQueryValue(urlParamsArray)\n const router = useRouter()\n const resultList = useMemo(() => {\n const nodeList = supportArticleList.map(\n (item: SupportArticle, index: number) => ({\n index,\n ...item,\n content: {\n __html__: item.content.__html__.replace(\n /^([\\s\\S]+?)Related FAQs[\\s\\S]*?<\\/h.>[\\s\\S]+$/,\n '$1',\n ),\n },\n }),\n )\n const search = configureSearchEngine(nodeList, 'index', [\n 'title',\n ['content', '__html__'],\n ])\n return getSearchResults(paramQueryValue || '', search)\n }, [supportArticleList, paramQueryValue])\n\n useEffect(() => {\n const pageParamsArray = urlParamsArray.find((array) =>\n array.includes('page'),\n )\n\n const page =\n pageParamsArray && IsANumber(pageParamsArray[1]) && pageParamsArray[1]\n ? pageParamsArray[1]\n : 1\n if (page == 1) setViewingAmount(SEARCH_RESULT_AMOUNT)\n setPageNumber(+page)\n setVisibleArticles(resultList.slice(0, SEARCH_RESULT_AMOUNT * +page))\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [pageNumber, paramQueryValue])\n\n const handleOnShowMoreButtonClick = () => {\n const currentLink =\n listContainerRef.current?.children[viewingAmount - 1].querySelector('a')\n currentLink?.focus()\n\n setViewingAmount(() => viewingAmount + SEARCH_RESULT_AMOUNT)\n setVisibleArticles(\n resultList.slice(0, viewingAmount * +pageNumber + SEARCH_RESULT_AMOUNT),\n )\n\n const newUrlParamsEntry = urlParamsArray.map((array) => {\n const [paramName, paramValue] = array\n if (paramName === 'page' && IsANumber(paramValue) && paramValue)\n return `page=${+paramValue + 1}`\n else if (paramName === 'page' && (!IsANumber(paramValue) || !paramValue))\n return 'page=2'\n else return array.join('=')\n })\n\n if (!newUrlParamsEntry.find((array) => array.includes('page')))\n newUrlParamsEntry.push('page=2')\n\n const newUrlParams = newUrlParamsEntry.join('&')\n\n router.replace(`?${newUrlParams}`, {\n scroll: false,\n })\n }\n\n if (!resultList.length) {\n return (\n
\n
\n

{`We couldn't find any results for \"${paramQueryValue}\"`}

\n

\n Try narrowing your search by adding more words or start a new\n search.\n

\n
\n \n
\n )\n }\n\n return (\n
\n {`${resultList.length} Results for \"${paramQueryValue}\"`}\n \n {visibleArticles.map((article) => (\n
  • \n \n
  • \n ))}\n \n {resultList.length > viewingAmount * pageNumber && (\n
    \n

    {`Viewing ${viewingAmount * pageNumber} out of ${\n resultList.length\n } results`}

    \n \n Show more\n \n
    \n )}\n
    \n )\n}\n","'use client'\n\nimport { Promo as PromoUI } from '@chaseweb/ui-library/src'\nimport { useEffect, useRef } from 'react'\n\nimport { ActionableLink, DownloadLink } from '@/components'\nimport type { FeatureTypeIdEnum } from '@/constants'\nimport { useCTAStore } from '@/lib/stores'\n\nimport type { ComponentProps } from '../../types'\n\nexport const PromoCta = ({\n featureData,\n}: ComponentProps) => {\n const promoCtaRef = useRef(null)\n const { setPromoCtaRef } = useCTAStore()\n\n useEffect(() => {\n if (promoCtaRef.current) {\n setPromoCtaRef(promoCtaRef)\n }\n return () => setPromoCtaRef(null)\n }, [setPromoCtaRef])\n\n return (\n
    \n \n {featureData.cta.linkData ? (\n \n {featureData.cta.label}\n \n ) : (\n \n {featureData.cta.label}\n \n )}\n \n
    \n )\n}\n","'use client'\n\nimport {\n Button,\n CustomSvg,\n Heading,\n Prose,\n Select,\n Tabs,\n} from '@chaseweb/ui-library/src'\nimport type { ChartOptions } from 'chart.js'\nimport {\n Chart,\n Legend,\n LinearScale,\n LineController,\n LineElement,\n PointElement,\n TimeScale,\n Title,\n Tooltip,\n} from 'chart.js'\nChart.register([\n TimeScale,\n LineController,\n LinearScale,\n PointElement,\n LineElement,\n Tooltip,\n Legend,\n Title,\n])\nimport 'chartjs-adapter-date-fns'\n\nimport { parse } from 'date-fns'\nimport merge from 'deepmerge'\nimport { useEffect, useMemo, useState } from 'react'\n\nimport { StyledLink } from '@/components'\nimport type { FeatureAvailabilityAndPerformanceReport } from '@/data/aem/main-pages/pageTransform/availability-and-performance-report'\nimport type { HrefExternals } from '@/types'\n\nenum TabOptions {\n 'openBanking' = 'Open banking performance',\n 'appPerformance' = 'App performance',\n}\ntype TabEnumType = keyof typeof TabOptions\nconst TabKeys = ['openBanking', 'appPerformance'] as const\nconst dateFormat = 'dd/MM/yyyy'\nconst QuarterList = [1, 2, 3, 4] as const\nconst graphOptions: ChartOptions = {\n clip: false,\n responsive: true,\n maintainAspectRatio: false,\n scales: {\n x: {\n type: 'time',\n time: {\n tooltipFormat: dateFormat,\n displayFormats: {\n day: dateFormat,\n },\n },\n },\n },\n plugins: {\n tooltip: {\n intersect: false,\n position: 'nearest',\n },\n legend: {\n display: true,\n position: 'bottom',\n labels: {\n boxHeight: 3,\n },\n },\n },\n animation: false,\n interaction: {\n mode: 'x',\n },\n layout: {\n padding: 10,\n },\n elements: {\n point: {\n radius: 1,\n hitRadius: 3,\n },\n },\n} as const\n\nconst availabilityGraphOptions: ChartOptions = merge(\n graphOptions,\n {\n scales: {\n y: {\n suggestedMin: 90,\n suggestedMax: 100,\n },\n },\n plugins: {\n title: {\n display: true,\n text: 'Uptime %',\n font: { size: 20, weight: 'normal' },\n },\n },\n },\n)\n\nconst performanceGraphOptions: ChartOptions = merge(\n graphOptions,\n {\n scales: {\n y: {\n suggestedMin: 0,\n suggestedMax: 250,\n },\n },\n plugins: {\n title: {\n display: true,\n text: 'Performance (ms)',\n font: { size: 20, weight: 'normal' },\n },\n },\n },\n)\n\nexport const Report = ({\n featureData,\n}: {\n featureData: FeatureAvailabilityAndPerformanceReport\n}) => {\n const [currentYear, setCurrentYear] = useState(\n Math.max(...Object.keys(featureData.data).map(Number)),\n )\n const [currentQuarter, setCurrentQuarter] = useState(\n Math.max(...Object.keys(featureData.data[currentYear]).map(Number)),\n )\n\n const currentQuarterData = useMemo(\n () => featureData.data[currentYear][currentQuarter],\n [currentQuarter, currentYear, featureData.data],\n )\n\n useEffect(() => {\n const dateList = currentQuarterData.dateStringList.map((dateString) =>\n parse(dateString, dateFormat, new Date()),\n )\n const chartAvailability = new Chart(\n document.querySelector('#graphAvailability') as HTMLCanvasElement,\n {\n type: 'line',\n data: {\n labels: dateList,\n datasets: [\n {\n label: 'Chase App Availability',\n data: currentQuarterData.appPerformance.graph.uptime,\n fill: false,\n // eslint-disable-next-line sonarjs/no-duplicate-string\n borderColor: 'rgb(0, 176, 240)',\n backgroundColor: 'rgb(0, 176, 240)',\n tension: 0.1,\n },\n {\n label: 'Open Banking Availability',\n data: currentQuarterData.openBanking.graph.uptime,\n fill: false,\n borderColor: 'rgb(31, 56, 100)',\n backgroundColor: 'rgb(31, 56, 100)',\n tension: 0.1,\n },\n ],\n },\n options: availabilityGraphOptions,\n },\n )\n const chartPerformance = new Chart(\n document.querySelector('#graphPerformance') as HTMLCanvasElement,\n {\n type: 'line',\n data: {\n labels: dateList,\n datasets: [\n {\n label: 'AIS',\n data: currentQuarterData.openBanking.graph.aisp,\n fill: false,\n borderColor: 'rgb(68, 114, 196)',\n backgroundColor: 'rgb(68, 114, 196)',\n tension: 0.1,\n },\n {\n label: 'PIS',\n data: currentQuarterData.openBanking.graph.pisp,\n fill: false,\n borderColor: 'rgb(237, 125, 50)',\n backgroundColor: 'rgb(237, 125, 50)',\n tension: 0.1,\n },\n {\n label: 'COF',\n data: currentQuarterData.openBanking.graph.cof,\n fill: false,\n borderColor: 'rgb(165, 165, 165)',\n backgroundColor: 'rgb(165, 165, 165)',\n tension: 0.1,\n },\n {\n label: 'Chase App',\n data: currentQuarterData.appPerformance.graph.response,\n fill: false,\n borderColor: 'rgb(0, 176, 240)',\n backgroundColor: 'rgb(0, 176, 240)',\n tension: 0.1,\n },\n ],\n },\n options: performanceGraphOptions,\n },\n )\n return () => {\n chartAvailability.destroy()\n chartPerformance.destroy()\n }\n }, [currentQuarterData])\n\n const [tabSelected, setTabSelected] = useState('openBanking')\n\n const yearList = useMemo(\n () => [\n ...Object.keys(featureData.data).sort((a, b) => Number(a) - Number(b)),\n ],\n [featureData],\n )\n\n const quarterMap = useMemo(\n () =>\n Object.keys(featureData.data[currentYear]).reduce(\n (prev, quarter) => ({ ...prev, [quarter]: true }),\n {\n 1: false,\n 2: false,\n 3: false,\n 4: false,\n },\n ),\n [featureData.data, currentYear],\n )\n\n const averageList = [\n {\n type: 'availability',\n value: currentQuarterData?.[tabSelected].availabilityAverage,\n },\n {\n type: 'performance',\n value: currentQuarterData?.[tabSelected].performanceAverage,\n },\n ]\n\n const handleYearSelectChange = (newValue: string) => {\n const year = Number(newValue)\n setCurrentYear(year)\n if (!featureData.data[year][currentQuarter]) {\n const quarter = Math.max(\n ...Object.keys(featureData.data[year]).map(Number),\n )\n setCurrentQuarter(quarter)\n }\n }\n\n const handleQuarterClick = (ev: React.PointerEvent) => {\n const newQuarter = Number(ev.currentTarget.dataset.value)\n setCurrentQuarter(newQuarter)\n }\n\n const handleValueChange = (tabSelected: string) => {\n setTabSelected(tabSelected as TabEnumType)\n }\n\n return (\n \n \n \n {TabKeys.map((tabKey) => (\n \n {TabOptions[tabKey]}\n \n ))}\n \n \n {TabOptions[tabSelected]}\n
    \n
    \n \n Select year\n \n \n \n \n \n \n \n \n \n \n {yearList.map((year) => (\n \n {year}\n \n \n ))}\n \n \n \n \n
    \n \n Select quarter\n
    \n \n {QuarterList.map((quarter) => (\n \n \n \n ))}\n
    \n
    \n \n
    \n {averageList.map((averageData) => (\n \n
    \n Quarterly average {averageData.type}\n
    \n
    \n {averageData.value}\n
    \n \n ))}\n
    \n \n Availability\n
    \n \n
    \n Performance\n
    \n \n
    \n
    \n \n Download data\n \n
    \n
    \n )\n}\n","'use client'\n\nimport { Heading, Tabs } from '@chaseweb/ui-library/src'\nimport { useRouter } from 'next/navigation'\n\nimport type { FeatureTypeIdEnum } from '@/constants'\nimport type { FeatureDataFilteredByType } from '@/data/aem/types'\n\ntype Props = {\n featureData: FeatureDataFilteredByType\n}\n\nexport const TabsComponent = ({ featureData }: Props) => {\n const { push } = useRouter()\n const handleValueChange = (newTab: string) => {\n push(newTab)\n }\n\n return (\n <>\n \n \n {featureData.tabList.map((tab) => {\n return (\n \n {tab.label}\n \n )\n })}\n \n \n {featureData.shouldAddHeader && (\n \n {featureData.selectedTabLabel}\n \n )}\n \n )\n}\n","'use client'\n\nimport { cn } from '@chaseweb/utils/cn'\nimport Script from 'next/script'\nimport { useEffect, useRef } from 'react'\n\nimport { Link } from '@/components/link'\n\ndeclare global {\n interface Window {\n Trustpilot?: {\n loadFromElement: (ref: HTMLElement, bool: boolean) => unknown\n }\n }\n}\n\nexport interface TrustpilotWidgetProps {\n className?: string\n}\n\nexport const TrustpilotWidget = ({ className }: TrustpilotWidgetProps) => {\n const ref = useRef(null)\n\n useEffect(() => {\n handleLoad()\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const handleLoad = () => {\n if (ref.current && window.Trustpilot) {\n window.Trustpilot.loadFromElement(ref.current, true)\n }\n }\n\n return (\n <>\n \n \n \n \n \n )\n}\n\nTrustpilotWidget.displayName = 'TrustpilotWidget'\n","'use client'\n\nimport { useSplitStore } from '@chaseweb/utils/split'\nimport { createContext, type ReactNode } from 'react'\n\nexport const featureFlaggerContext = createContext>({})\n\nexport const FeatureFlagger = ({\n children,\n featureFlag,\n}: {\n children: ReactNode\n featureFlag?: {\n key: string\n treatment: string\n isControl: boolean\n } | null\n}): ReactNode => {\n const client = useSplitStore((state) => state.clients.user)\n\n if (featureFlag) {\n const splitFlag = client?.getTreatmentWithConfig(featureFlag.key)\n const shouldShowComponent =\n splitFlag?.treatment === featureFlag.treatment || // show if the feature flag treatment matches for this feature\n (featureFlag.isControl &&\n (splitFlag?.treatment === 'control' || // show if split is in CONTROL mode and the feature is marked as control\n !splitFlag)) // show if js split isn't available\n\n if (shouldShowComponent) {\n if (splitFlag?.config) {\n return (\n \n {children}\n \n )\n }\n return children\n }\n return null\n }\n return children\n}\n","export default {\"src\":\"/gb/en/_next/static/media/qr-code-fallback.d7e8d1f8.png\",\"height\":698,\"width\":682,\"blurDataURL\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAMAAADz0U65AAAAFVBMVEXNzc3Hx8fW1ta9vb2bm5uQkJCMjIxG3cQPAAAACXBIWXMAABYlAAAWJQFJUiTwAAAALUlEQVR4nCWKgQkAMAzCom77/+Rih6IQwkVgHSSQbQp+0+3HhCxUVmwEvBXwAAoPAEOrAUOQAAAAAElFTkSuQmCC\",\"blurWidth\":8,\"blurHeight\":8};"],"names":["CarouselPromoInterval","children","props","param","setCurrentPage","childrenCount","currentPage","useCarouselContext","isPlaying","setIsPlaying","useState","handleInOutEvent","isInside","useEffect","intervalId","setInterval","cur","clearInterval","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","jsx","div","onMouseEnter","onMouseLeave","onTouchStart","onTouchEnd","HeroBbaLogo","pathname","usePathname","includes","BbaLogo","path","className","cn","defaultHeroAction","actionData","action","FeatureActionLinkEnum","DOWNLOAD","link","undefined","HeroCta","featureData","client","useSplitStore","state","clients","user","treatmentCtaText","getTreatmentWithConfig","treatmentCtaSize","getTreatment","treatmentCtaColour","ctaRef","useRef","setHeroCtaRef","setAlwaysVisible","useCTAStore","current","ctaLabel","isHomepage","JSON","parse","config","cta","label","isCtaBigSize","isCtaWhite","jsxs","ref","HeroUI","variant","asChild","ActionableLink","sectionLabel","linkData","noscript","DownloadLink","HeroMultiImageInterval","currentImage","setCurrentImage","Children","count","map","child","index","data-testid","LabelFlagger","treatment","GroupOrLink","item","iconImageMap","type","Navigation","items","subItem","subGroupItem","id","isActive","startsWith","replace","visibleOnly","active","aria-current","Link","trackingActionLabel","href","iconUrl","src","test","DesktopHeaderCta","MobileHeaderCta","ClientNavibarComponent","logoImage","Header","length","SkipToMainContentButton","logoClickable","notTracked","aria-label","logoLabel","contentClassName","transformCategoryToLabel","category","replaceAll","Tile","image","title","description","summary","jsx_runtime","ArticleTile","hasHoverEffect","aria-hidden","IsANumber","n","LoadMoreImplementation","articleList","linkPathPrefix","tileContainer","totalAmount","TILES_COLUMN","router","useRouter","urlParamsArray","useSearchParams","pageNumber","setPageNumber","visibleTiles","setVisibleTiles","pageParamsArray","find","array","page","slice","LOAD_MORE_AMOUNT","section","Heading","tile","isLargeTile","readingTime","slug","articleSummary","parseContent","imageComponent","p","Button","onClick","currentLink","focus","newUrlParamsArray","paramName","paramValue","join","push","newUrlParams","scroll","size","LoadMoreClient","Suspense","SEARCH_BUTTON_DISABLED_TEXT","SEARCH_BUTTON_ENABLED_TEXT","SearchBar","hrefPrefix","placeholder","classNameContainer","hasRehydrated","useHasRehydrated","searchParams","inputRef","resetButtonRef","suggestionItemRef","activeSuggestion","setActiveSuggestion","isInputActive","setIsInputActive","showSuggestion","setShowSuggestion","inputValue","setInputValue","get","searchResultList","setSearchResultList","search","useMemo","transformedNodes","content","__html__","configureSearchEngine","throttleGetResults","useCallback","throttle","getSearchResults","value","leading","trailing","handleInputChange","e","target","trim","filteredSuggestions","suggestionId","isSearchQueryValid","toString","navigateSuggestionList","key","preventDefault","navigateUp","navigateDown","setFocusToClearButton","blur","highlightSearchWords","input","toLowerCase","keyWords","split","highlightWords","groups","formRegexForMultiWordSearch","span","isClearButtonVisible","disabled","autoComplete","onKeyDown","onFocus","getAttribute","onChange","aria-autocomplete","role","aria-owns","aria-controls","aria-expanded","ScreenReader","aria-live","output","button","tabIndex","CustomSvg","name","dialog","open","aria-labelledby","h2","ul","li","el","aria-selected","result","pattern","word","format","filter","idSearch","searchIndices","searchEngine","JsSearch","indexStrategy","sanitizer","searchIndex","forEach","addIndex","addDocuments","queryResultSet","Set","requiredData","splitWords","add","allData","sortSearchResults","data","sort","a","b","indexOf","search_bar","findQueryValue","paramQueryArray","paramsArray","SearchResults","supportArticleList","visibleArticles","setVisibleArticles","viewingAmount","setViewingAmount","listContainerRef","paramQueryValue","resultList","nodeList","SEARCH_RESULT_AMOUNT","as","data-length","noExternalIcon","article","querySelector","newUrlParamsEntry","LocalImage","NoResultsImg","alt","PromoCta","promoCtaRef","setPromoCtaRef","PromoUI","TabOptions","Chart","register","TimeScale","LineController","LinearScale","PointElement","LineElement","Tooltip","Legend","Title","TabKeys","dateFormat","QuarterList","graphOptions","clip","responsive","maintainAspectRatio","scales","x","time","tooltipFormat","displayFormats","day","plugins","tooltip","intersect","position","legend","display","labels","boxHeight","animation","interaction","mode","layout","padding","elements","point","radius","hitRadius","availabilityGraphOptions","merge","y","suggestedMin","suggestedMax","text","font","weight","performanceGraphOptions","Report","currentYear","setCurrentYear","Math","max","Object","keys","Number","currentQuarter","setCurrentQuarter","currentQuarterData","dateList","dateStringList","dateString","Date","chartAvailability","document","datasets","appPerformance","graph","uptime","fill","borderColor","backgroundColor","tension","openBanking","options","chartPerformance","aisp","pisp","cof","response","destroy","tabSelected","setTabSelected","yearList","quarterMap","reduce","prev","quarter","averageList","availabilityAverage","performanceAverage","handleQuarterClick","ev","currentTarget","dataset","Prose","Tabs","onValueChange","defaultValue","mobileButtonClassName","mobile-aria-label-close","mobile-aria-label-open","tabKey","Select","String","year","newValue","data-value","aria-checked","averageData","canvas","StyledLink","reportUrl","TabsComponent","Fragment","newTab","defaultTabLabel","selectedTabLabel","ariaLabel","tabList","tab","shouldAddHeader","context","TrustpilotWidget","handleLoad","window","Trustpilot","loadFromElement","Script","strategy","onLoad","inert","data-locale","data-template-id","data-businessunit-id","data-style-height","data-style-width","data-theme","data-style-alignment","displayName","featureFlaggerContext","createContext","FeatureFlagger","featureFlag","splitFlag","isControl","Provider","__webpack_exports__"],"sourceRoot":""}