{"version":3,"file":"side-bar-item.mjs","sources":["../../src/side-bar/side-bar-item.tsx"],"sourcesContent":["import { defineComponent, getCurrentInstance, ComponentPublicInstance, computed, inject, onUnmounted } from 'vue';\nimport props from './side-bar-item-props';\nimport { TdSideBarItemProps } from './type';\nimport TBadge from '../badge';\nimport { useTNodeJSX } from '../hooks/tnode';\n\nimport config from '../config';\nimport { usePrefixClass } from '../hooks/useClass';\n\nconst { prefix } = config;\n\nexport default defineComponent({\n  name: `${prefix}-side-bar-item`,\n  props,\n  setup(props) {\n    const sideBarItemClass = usePrefixClass('side-bar-item');\n    const renderTNodeJSX = useTNodeJSX();\n    const internalInstance = getCurrentInstance();\n    const proxy = internalInstance.proxy as ComponentPublicInstance<TdSideBarItemProps>;\n    const sideBarProvide: any = inject('sideBarProvide', undefined);\n    sideBarProvide.relation(proxy);\n\n    const isActive = computed(() => proxy.value === sideBarProvide.currentValue.value);\n\n    const rootClassName = computed(() => [\n      sideBarItemClass.value,\n      { [`${sideBarItemClass.value}--active`]: isActive.value },\n      { [`${sideBarItemClass.value}--disabled`]: props.disabled },\n    ]);\n\n    const onClick = (e: MouseEvent) => {\n      if (props.disabled) return;\n      sideBarProvide.onClickItem(proxy.value, props.label);\n    };\n\n    onUnmounted(() => {\n      sideBarProvide.removeRelation(proxy);\n    });\n\n    return () => {\n      const renderIconNode = () => {\n        const iconNode = renderTNodeJSX('icon');\n        if (!iconNode) {\n          return null;\n        }\n        return <div class={`${sideBarItemClass.value}__icon`}>{iconNode}</div>;\n      };\n      return (\n        <div class={rootClassName.value} onClick={onClick}>\n          {isActive.value && (\n            <div>\n              <div class={`${sideBarItemClass.value}__line`}></div>\n              <div class={`${sideBarItemClass.value}__prefix`}></div>\n              <div class={`${sideBarItemClass.value}__suffix`}></div>\n            </div>\n          )}\n          {renderIconNode()}\n          {props.badgeProps ? (\n            <TBadge {...(props.badgeProps as TdSideBarItemProps['badgeProps'])} content={props.label} />\n          ) : (\n            <div>{props.label}</div>\n          )}\n        </div>\n      );\n    };\n  },\n});\n"],"names":["prefix","config","defineComponent","name","props","setup","sideBarItemClass","usePrefixClass","renderTNodeJSX","useTNodeJSX","internalInstance","getCurrentInstance","proxy","sideBarProvide","inject","relation","isActive","computed","value","currentValue","rootClassName","_defineProperty","concat","disabled","onClick","e","onClickItem","label","onUnmounted","removeRelation","renderIconNode","iconNode","_createVNode","badgeProps","TBadge","_mergeProps"],"mappings":"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"}