{"version":3,"file":"/Users/anthonygubler/development/dojo-org/widgets/src/breadcrumb-group/index.tsx","sourceRoot":"","sources":["index.tsx"],"names":[],"mappings":"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","sourcesContent":["import { RenderResult } from '@dojo/framework/core/interfaces';\nimport theme from '../middleware/theme';\nimport { create, tsx } from '@dojo/framework/core/vdom';\n\nimport * as css from '../theme/default/breadcrumb-group.m.css';\nimport * as fixedCss from './styles/breadcrumb-group.m.css';\n\nexport interface BreadcrumbItem {\n\t[key: string]: any;\n\n\thref?: string;\n\tlabel: string;\n\ttitle?: string;\n}\n\nexport interface BreadcrumbProperties {\n\tcurrent?: 'page' | 'step';\n\thref?: string;\n\ttitle?: string;\n}\n\nexport interface BreadcrumbGroupProperties {\n\titems: BreadcrumbItem[];\n\tlabel: string;\n}\n\nexport interface BreadcrumbGroupChildren {\n\t(items: BreadcrumbItem[]): RenderResult;\n}\n\nconst separatorFactory = create({ theme });\n\nexport const Separator = separatorFactory(function Separator({ children, middleware: { theme } }) {\n\tconst themeCss = theme.classes(css);\n\n\treturn (\n\t\t<li aria-hidden=\"true\" classes={themeCss.listItem}>\n\t\t\t<span classes={[fixedCss.separatorFixed, themeCss.separator]}>{children()}</span>\n\t\t</li>\n\t);\n});\n\nexport { Separator as BreadcrumbSeparator };\n\nconst breadcrumbFactory = create({ theme }).properties<BreadcrumbProperties>();\n\nexport const Breadcrumb = breadcrumbFactory(function Breadcrumb({\n\tchildren,\n\tmiddleware: { theme },\n\tproperties\n}) {\n\tconst { current, href, title } = properties();\n\tconst themeCss = theme.classes(css);\n\n\treturn (\n\t\t<li classes={[themeCss.listItem, current ? themeCss.current : undefined]}>\n\t\t\t{href ? (\n\t\t\t\t<a\n\t\t\t\t\taria-current={current || undefined}\n\t\t\t\t\tclasses={[fixedCss.breadcrumbFixed, themeCss.breadcrumb]}\n\t\t\t\t\thref={href}\n\t\t\t\t\ttitle={title}\n\t\t\t\t>\n\t\t\t\t\t{children()}\n\t\t\t\t</a>\n\t\t\t) : (\n\t\t\t\t<span\n\t\t\t\t\taria-current={current || undefined}\n\t\t\t\t\tclasses={[fixedCss.breadcrumbFixed, themeCss.breadcrumb]}\n\t\t\t\t>\n\t\t\t\t\t{children()}\n\t\t\t\t</span>\n\t\t\t)}\n\t\t</li>\n\t);\n});\n\nconst factory = create({ theme })\n\t.properties<BreadcrumbGroupProperties>()\n\t.children<BreadcrumbGroupChildren | undefined>();\n\nexport const BreadcrumbGroup = factory(function BreadcrumbGroup({\n\tchildren,\n\tproperties,\n\tmiddleware: { theme }\n}) {\n\tconst { items, label, classes, theme: themeProp, variant } = properties();\n\tconst themeCss = theme.classes(css);\n\n\tconst defaultRenderer: BreadcrumbGroupChildren = (items: BreadcrumbItem[]) => {\n\t\tconst lastIndex = items.length - 1;\n\n\t\treturn items.map((item, index) => (\n\t\t\t<virtual>\n\t\t\t\t{index !== 0 && <Separator key={`breadcrumb-${index}-separator`}>/</Separator>}\n\t\t\t\t<Breadcrumb\n\t\t\t\t\tkey={`breadcrumb-${index}`}\n\t\t\t\t\tcurrent={index === lastIndex ? 'page' : undefined}\n\t\t\t\t\thref={item.href}\n\t\t\t\t\ttitle={item.title}\n\t\t\t\t\tclasses={classes}\n\t\t\t\t\ttheme={themeProp}\n\t\t\t\t\tvariant={variant}\n\t\t\t\t>\n\t\t\t\t\t{item.label}\n\t\t\t\t</Breadcrumb>\n\t\t\t</virtual>\n\t\t));\n\t};\n\tconst [renderer = defaultRenderer] = children();\n\n\treturn (\n\t\t<nav classes={[theme.variant(), themeCss.root]} aria-label={label}>\n\t\t\t<ol classes={[fixedCss.listFixed, themeCss.list]}>{renderer(items)}</ol>\n\t\t</nav>\n\t);\n});\n\nexport default BreadcrumbGroup;\n"]}