{"version":3,"file":"interactive-result-eb4fdc4b.js","sources":["../../../../src/scripts/coveo/components/interactive-result.tsx"],"sourcesContent":["import { buildInteractiveResult, Result, SearchEngine } from '@coveo/headless';\nimport React, { FunctionComponent, useEffect, PropsWithChildren } from 'react';\nimport { headlessEngine } from '../engine';\n\ninterface LinkProps extends PropsWithChildren {\n result: Result;\n target?: string;\n link: string;\n className: string;\n dataLayer?: string;\n download?: boolean;\n ariaLabel?: string;\n}\n\n// Filters out dangerous URIs that can create XSS attacks such as `javascript:`.\nfunction filterProtocol(uri: string) {\n const isAbsolute = /^(https?|ftp|file|mailto|tel):/i.test(uri);\n const isRelative = /^\\//.test(uri);\n\n return isAbsolute || isRelative ? uri : '';\n}\n\nexport const ResultLink: FunctionComponent = props => {\n const interactiveResult = buildInteractiveResult(\n headlessEngine as SearchEngine,\n {\n options: { result: props.result }\n }\n );\n\n useEffect(() => () => interactiveResult.cancelPendingSelect(), []);\n\n return (\n interactiveResult.select()}\n onContextMenu={() => interactiveResult.select()}\n onMouseDown={() => interactiveResult.select()}\n onMouseUp={() => interactiveResult.select()}\n onTouchStart={() => interactiveResult.beginDelayedSelect()}\n onTouchEnd={() => interactiveResult.cancelPendingSelect()}\n data-layer={props.dataLayer}\n className={props.className}\n target={props.target ? props.target : '_blank'}\n download={props.download ? props.download : undefined}\n aria-label={props.ariaLabel ? props.ariaLabel : undefined}\n >\n {props.children}\n \n );\n};\n"],"names":["filterProtocol","uri","isAbsolute","isRelative","ResultLink","props","interactiveResult","buildInteractiveResult","headlessEngine","useEffect","React"],"mappings":"qIAeA,SAASA,EAAeC,EAAa,CAC7B,MAAAC,EAAa,kCAAkC,KAAKD,CAAG,EACvDE,EAAa,MAAM,KAAKF,CAAG,EAE1B,OAAAC,GAAcC,EAAaF,EAAM,EAC1C,CAEO,MAAMG,EAAoDC,GAAA,CAC/D,MAAMC,EAAoBC,EACxBC,EACA,CACE,QAAS,CAAE,OAAQH,EAAM,MAAO,CAClC,CAAA,EAGFI,OAAAA,EAAAA,UAAU,IAAM,IAAMH,EAAkB,oBAAoB,EAAG,CAAE,CAAA,EAG/DI,EAAA,cAAC,IAAA,CACC,KAAMV,EAAeK,EAAM,IAAI,EAC/B,QAAS,IAAMC,EAAkB,OAAO,EACxC,cAAe,IAAMA,EAAkB,OAAO,EAC9C,YAAa,IAAMA,EAAkB,OAAO,EAC5C,UAAW,IAAMA,EAAkB,OAAO,EAC1C,aAAc,IAAMA,EAAkB,mBAAmB,EACzD,WAAY,IAAMA,EAAkB,oBAAoB,EACxD,aAAYD,EAAM,UAClB,UAAWA,EAAM,UACjB,OAAQA,EAAM,OAASA,EAAM,OAAS,SACtC,SAAUA,EAAM,SAAWA,EAAM,SAAW,OAC5C,aAAYA,EAAM,UAAYA,EAAM,UAAY,MAAA,EAE/CA,EAAM,QAAA,CAGb"}