@legion-ui-kit/react-core
Version:
To install the package into your project:
1 lines • 3.4 kB
Source Map (JSON)
{"version":3,"file":"index.cjs","sources":["../../../../src/components/Breadcrumb/index.tsx"],"sourcesContent":["// Modules\r\nimport cn from 'classnames';\r\n\r\n// Types\r\nimport type { TBreadcrumbProps, TBreadcrumbSeparator } from './Breadcrumb.type';\r\n\r\n// Styles\r\nimport styles from './styles.module.scss';\r\n\r\n// Components\r\nimport { Fragment } from 'react';\r\n\r\n// Helpers\r\nimport { isValidElement } from 'react'\r\nimport { isEmpty } from '../../helpers/common';\r\n\r\n// Constants\r\nimport { BREADCRUMB_DEFAULT_PROPS, BREADCRUMB_SEPARATOR } from './Breadcrumb.constant';\r\n\r\nconst getSeparator = (separator: TBreadcrumbSeparator) => {\r\n\tif (separator === BREADCRUMB_SEPARATOR.chevron) {\r\n\t\treturn '>';\r\n\t}\r\n\telse {\r\n\t\treturn '/';\r\n\t}\r\n}\r\n\r\nconst Breadcrumb = (props: TBreadcrumbProps) => {\r\n\tconst {\r\n\t\tclassName,\r\n\t\titemClassName,\r\n\t\titems = BREADCRUMB_DEFAULT_PROPS.items,\r\n\t\tseparator = BREADCRUMB_DEFAULT_PROPS.separator,\r\n\t\tseparatorClassName,\r\n\t\t...restProps\r\n\t} = props;\r\n\r\n\tconst breadcrumbCN = cn(styles.legion_breadcrumb, className);\r\n\tconst separatorCN = cn(styles.breadcrumb_separator, separatorClassName);\r\n\tconst separatorValue = isValidElement(separator) ? separator : getSeparator(separator as TBreadcrumbSeparator);\r\n\r\n\treturn (\r\n\t\t<div className={breadcrumbCN} {...restProps}>\r\n\t\t\t{!isEmpty(items) && items.map((item, index) => {\r\n\t\t\t\tconst lastItem = index === items.length - 1;\r\n\t\t\t\tconst breadcrumbItemCN = cn(styles.breadcrumb_item, itemClassName, {\r\n\t\t\t\t\t[styles.active]: lastItem\r\n\t\t\t\t})\r\n\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<Fragment key={index}>\r\n\t\t\t\t\t\t{index !== 0 && (\r\n\t\t\t\t\t\t\t<span className={separatorCN}>\r\n\t\t\t\t\t\t\t\t{separatorValue}\r\n\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t{lastItem ? (\r\n\t\t\t\t\t\t\t<span key={index} className={breadcrumbItemCN}>\r\n\t\t\t\t\t\t\t\t{item}\r\n\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t<span key={index} className={breadcrumbItemCN}>\r\n\t\t\t\t\t\t\t\t{item}\r\n\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t</Fragment>\r\n\t\t\t\t)\r\n\t\t\t})}\r\n\t\t</div>\r\n\t);\r\n}\r\n\r\nexport default Breadcrumb;\r\n"],"names":["props","className","itemClassName","items","BREADCRUMB_DEFAULT_PROPS","separator","separatorClassName","restProps","breadcrumbCN","cn","styles","legion_breadcrumb","separatorCN","breadcrumb_separator","separatorValue","isValidElement","BREADCRUMB_SEPARATOR","chevron","getSeparator","_jsx","children","isEmpty","map","item","index","lastItem","length","breadcrumbItemCN","breadcrumb_item","active","_jsxs","Fragment"],"mappings":"mVA4BoBA,IACnB,MAAMC,UACLA,EAASC,cACTA,EAAaC,MACbA,EAAQC,EAAAA,yBAAyBD,MAAKE,UACtCA,EAAYD,EAAAA,yBAAyBC,UAASC,mBAC9CA,KACGC,GACAP,EAEEQ,EAAeC,EAAAA,QAAGC,UAAOC,kBAAmBV,GAC5CW,EAAcH,EAAAA,QAAGC,UAAOG,qBAAsBP,GAC9CQ,EAAiBC,EAAAA,eAAeV,GAAaA,EArB/B,CAACA,GACjBA,IAAcW,EAAAA,qBAAqBC,QAC/B,IAGA,IAgBuDC,CAAab,GAE5E,OACCc,EAAAA,WAAKlB,UAAWO,KAAkBD,EAASa,UACxCC,EAAAA,QAAQlB,IAAUA,EAAMmB,IAAI,CAACC,EAAMC,KACpC,MAAMC,EAAWD,IAAUrB,EAAMuB,OAAS,EACpCC,EAAmBlB,EAAAA,QAAGC,UAAOkB,gBAAiB1B,EAAe,CAClE,CAACQ,EAAAA,QAAOmB,QAASJ,IAGlB,OACCK,EAAAA,KAACC,EAAAA,SAAQ,CAAAX,SAAA,CACG,IAAVI,GACAL,MAAA,OAAA,CAAMlB,UAAWW,EAAWQ,SAC1BN,IAIFK,MAAA,OAAA,CAAkBlB,UAAW0B,EAAgBP,SAC3CG,GADSC,KAPEA"}