61239.js.map 4.9 KB

1
  1. {"version":3,"file":"61239.js","mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACDA;;;;;;;;;CASC,GACD,MAAMA,OAAO,GAAG,CAAC,EAAEC,QAAQ,GAAEC,UAAU,GAAEC,OAAO,GAAS,GACvDD,UAAU,GAAGC,OAAO,CAACF,QAAQ,CAAC,GAAGA,QAAQ;AAE3C,iEAAeD,OAAO,EAAC;;;;;;;;;;;;;;;;;;;;;;ACnBvB,4CAA4C,GAAG,iCAAiC;AAChF;AAAoC;AACH;AAEO;AAEW;IAE5C,WAKN;UALWO,WAAW;IAAXA,WAAW,CACrBC,WAAS,IAAG,WAAW;IADbD,WAAW,CAErBE,SAAO,IAAG,SAAS;IAFTF,WAAW,CAGrBG,WAAS,IAAG,WAAW;IAHbH,WAAW,CAIrBI,OAAK,IAAG,OAAO;GAJLJ,WAAW,KAAXA,WAAW;AAsBvB,MAAMK,IAAI,GAAwB,CAAC,EACjCC,IAAI,GACJZ,QAAQ,GACRa,QAAQ,EAAG,KAAK,GAChBC,OAAO,GACPC,QAAQ,GACRC,SAAS,GACTC,OAAO,GACPC,cAAc,GACdC,SAAS,EAAG,KAAK,GACjBC,cAAc,EAAG,IAAI,GACrBC,KAAK,GACLC,SAAS,KACV,iBACC,mDAACvB,4EAAO;QACNE,UAAU,EAAE,CAACc,QAAQ;QACrBb,OAAO,EAAE,CAACqB,IAAI,iBACZ,mDAACnB,kDAAQ;gBACPQ,IAAI,EAAEA,IAAI;gBACT,GAAIM,cAAc,IAAI;oBAAEA,cAAc;iBAAE;gBACxC,GAAIE,cAAc,KAAK,KAAK,IAAI;oBAAEI,QAAQ,EAAE,KAAK;iBAAE;gBACpDC,OAAO,EAAEN,SAAS;0BAEjBI,IAAI;cACI;kBAGb,iEAACG,GAAC;YACAd,IAAI,EAAEA,IAAI;YACVG,QAAQ,EAAEA,QAAQ;YAClBY,MAAM,EAAEd,QAAQ,GAAG,QAAQ,GAAGe,SAAS;YACvCC,GAAG,EAAEhB,QAAQ,GAAG,YAAY,GAAGe,SAAS;YACxCZ,SAAS,EAAEb,iDAAU,CAACE,+DAAW,EAAEW,SAAS,EAAE;gBAC5C,CAACX,oEAAgB,CAAC,EAAES,OAAO,KAAKR,WAAW,CAACC,SAAS;gBACrD,CAACF,kEAAc,CAAC,EAAES,OAAO,KAAKR,WAAW,CAACE,OAAO;gBACjD,CAACH,oEAAgB,CAAC,EAAES,OAAO,KAAKR,WAAW,CAACG,SAAS;gBACrD,CAACJ,gEAAY,CAAC,EAAES,OAAO,KAAKR,WAAW,CAACI,KAAK;aAC9C,CAAC;YACD,GAAIO,OAAO,IAAI;gBAAEA,OAAO;aAAE;YAC1B,GAAII,KAAK,IAAI;gBAAEA,KAAK;aAAE;YAEtB,GAAIC,SAAS,IAAI;gBAAE,YAAY,EAAEA,SAAS;aAAE;sBAE5CtB,QAAQ;UACP;MACI;AAGZ,iEAAeW,IAAI,EAAC","sources":["webpack://quran.com/./src/components/dls/Link/Link.module.scss","webpack://quran.com/./src/components/Wrapper/Wrapper.tsx","webpack://quran.com/./src/components/dls/Link/Link.tsx"],"sourcesContent":["// Exports\nmodule.exports = {\n\t\"base\": \"Link_base__9W8Qs\",\n\t\"highlight\": \"Link_highlight__HdSrf\",\n\t\"primary\": \"Link_primary__rWdtP\",\n\t\"secondary\": \"Link_secondary__m0KtR\",\n\t\"blend\": \"Link_blend___ORVn\"\n};\n","interface Props {\n shouldWrap: boolean;\n children: JSX.Element;\n wrapper: (children: JSX.Element) => JSX.Element;\n}\n\n/**\n * Wrap a component `children` with a `wrapper` component if `condition` is `true`.\n *\n * Reference:\n * - https://blog.hackages.io/conditionally-wrap-an-element-in-react-a8b9a47fab2ng.html\n * - https://arjayosma.com/how-to-conditionally-wrap-a-react-component/\n *\n * @param {Props} props\n * @returns {JSX.Element}\n */\nconst Wrapper = ({ children, shouldWrap, wrapper }: Props): JSX.Element =>\n shouldWrap ? wrapper(children) : children;\n\nexport default Wrapper;\n","/* eslint-disable react/jsx-no-target-blank */ // eslint failed to lint properly\nimport classNames from 'classnames';\nimport NextLink from 'next/link';\n\nimport styles from './Link.module.scss';\n\nimport Wrapper from '@/components/Wrapper/Wrapper';\n\nexport enum LinkVariant {\n Highlight = 'highlight',\n Primary = 'primary',\n Secondary = 'secondary',\n Blend = 'blend',\n}\n\ntype LinkProps = {\n href: string;\n variant?: LinkVariant;\n isNewTab?: boolean;\n download?: string;\n className?: string;\n onClick?: React.MouseEventHandler;\n shouldPassHref?: boolean;\n isShallow?: boolean;\n shouldPrefetch?: boolean;\n title?: string;\n children?: React.ReactNode;\n ariaLabel?: string;\n};\n\nconst Link: React.FC<LinkProps> = ({\n href,\n children,\n isNewTab = false,\n variant,\n download,\n className,\n onClick,\n shouldPassHref,\n isShallow = false,\n shouldPrefetch = true,\n title,\n ariaLabel,\n}) => (\n <Wrapper\n shouldWrap={!download}\n wrapper={(node) => (\n <NextLink\n href={href}\n {...(shouldPassHref && { shouldPassHref })}\n {...(shouldPrefetch === false && { prefetch: false })}\n shallow={isShallow}\n >\n {node}\n </NextLink>\n )}\n >\n <a\n href={href}\n download={download}\n target={isNewTab ? '_blank' : undefined}\n rel={isNewTab ? 'noreferrer' : undefined}\n className={classNames(styles.base, className, {\n [styles.highlight]: variant === LinkVariant.Highlight,\n [styles.primary]: variant === LinkVariant.Primary,\n [styles.secondary]: variant === LinkVariant.Secondary,\n [styles.blend]: variant === LinkVariant.Blend,\n })}\n {...(onClick && { onClick })}\n {...(title && { title })}\n // eslint-disable-next-line @typescript-eslint/naming-convention\n {...(ariaLabel && { 'aria-label': ariaLabel })}\n >\n {children}\n </a>\n </Wrapper>\n);\n\nexport default Link;\n"],"names":["Wrapper","children","shouldWrap","wrapper","classNames","NextLink","styles","LinkVariant","Highlight","Primary","Secondary","Blend","Link","href","isNewTab","variant","download","className","onClick","shouldPassHref","isShallow","shouldPrefetch","title","ariaLabel","node","prefetch","shallow","a","target","undefined","rel","base","highlight","primary","secondary","blend"],"sourceRoot":""}