{"version":3,"file":"/Users/anthonygubler/development/dojo-org/widgets/src/chip/index.tsx","sourceRoot":"","sources":["index.tsx"],"names":[],"mappings":"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","sourcesContent":["import { create, tsx } from '@dojo/framework/core/vdom';\nimport { RenderResult } from '@dojo/framework/core/interfaces';\nimport theme from '../middleware/theme';\nimport * as css from '../theme/default/chip.m.css';\nimport Icon from '../icon/index';\nimport { Keys } from '../common/util';\n\nexport interface ChipProperties {\n\t/** A callback when the close icon is clicked, if `closeRenderer` is not provided a default X icon will be used */\n\tonClose?(): void;\n\t/** An optional callback for the the widget is clicked */\n\tonClick?(): void;\n\t/** Whether the widget is disabled, only affects the widget when `onClick` is provided */\n\tdisabled?: boolean;\n\t/** Indicates whe \"checked\" state of the widget, will be passed to the icon renderer */\n\tchecked?: boolean;\n}\n\nexport interface ChipChildren {\n\t/** Renders an icon, provided with the value of the checked property */\n\ticon?(checked?: boolean): RenderResult;\n\t/** The label to be displayed in the widget */\n\tlabel: RenderResult;\n\t/** Renders a close icon, ignored if `onClose` is not provided */\n\tcloseIcon?: RenderResult;\n}\n\nconst factory = create({ theme })\n\t.properties<ChipProperties>()\n\t.children<ChipChildren>();\n\nexport default factory(function Chip({ properties, children, middleware: { theme } }) {\n\tconst {\n\t\tonClose,\n\t\tonClick,\n\t\tdisabled,\n\t\tchecked,\n\t\ttheme: themeProp,\n\t\tvariant,\n\t\tclasses = {}\n\t} = properties();\n\tconst themedCss = theme.classes(css);\n\tconst [{ icon, label, closeIcon }] = children();\n\tconst clickable = !disabled && onClick;\n\treturn (\n\t\t<div\n\t\t\tkey=\"root\"\n\t\t\tclasses={[\n\t\t\t\ttheme.variant(),\n\t\t\t\tthemedCss.root,\n\t\t\t\tdisabled && themedCss.disabled,\n\t\t\t\tclickable && themedCss.clickable\n\t\t\t]}\n\t\t\trole={clickable ? 'button' : undefined}\n\t\t\tonclick={() => {\n\t\t\t\tif (clickable && onClick) {\n\t\t\t\t\tonClick();\n\t\t\t\t}\n\t\t\t}}\n\t\t\ttabIndex={clickable ? 0 : undefined}\n\t\t\tonkeydown={(event) => {\n\t\t\t\tif (\n\t\t\t\t\tclickable &&\n\t\t\t\t\tonClick &&\n\t\t\t\t\t(event.which === Keys.Enter || event.which === Keys.Space)\n\t\t\t\t) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tonClick();\n\t\t\t\t}\n\t\t\t}}\n\t\t>\n\t\t\t{icon && <span classes={themedCss.iconWrapper}>{icon(checked)}</span>}\n\t\t\t<span classes={themedCss.label}>{label}</span>\n\t\t\t{onClose && (\n\t\t\t\t<span\n\t\t\t\t\tkey=\"closeButton\"\n\t\t\t\t\tclasses={themedCss.closeIconWrapper}\n\t\t\t\t\ttabIndex={0}\n\t\t\t\t\trole=\"button\"\n\t\t\t\t\tonclick={(event) => {\n\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t}}\n\t\t\t\t\tonkeydown={(event) => {\n\t\t\t\t\t\tif (event.which === Keys.Enter || event.which === Keys.Space) {\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{closeIcon || (\n\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\ttype=\"closeIcon\"\n\t\t\t\t\t\t\tclasses={{\n\t\t\t\t\t\t\t\t...classes,\n\t\t\t\t\t\t\t\t'@dojo/widgets/icon': {\n\t\t\t\t\t\t\t\t\t...classes['@dojo/widgets/icon'],\n\t\t\t\t\t\t\t\t\ticon: [themedCss.icon]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\ttheme={themeProp}\n\t\t\t\t\t\t\tvariant={variant}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</span>\n\t\t\t)}\n\t\t</div>\n\t);\n});\n"]}