{"version":3,"file":"sidebar.mjs","sources":["../../../../../../../packages/components/sidebar/src/sidebar.tsx"],"sourcesContent":["import {\n  type ComputedRef,\n  type ExtractPropTypes,\n  type InjectionKey,\n  computed,\n  defineComponent,\n} from 'vue'\nimport { makeNumericProp } from '@xzx-design/utils'\nimport { useChildren, useNamespace } from '@xzx-design/hooks'\n\nexport type SidebarProvide = {\n  getActive: () => number\n  setActive: (value: number) => void\n  currentIndex: ComputedRef<string | number>\n}\n\nconst name = 'XzxSidebar'\n\nexport const SIDEBAR_KEY: InjectionKey<SidebarProvide> = Symbol(name)\n\nexport const sidebarProps = {\n  modelValue: makeNumericProp(0),\n}\n\nexport type SidebarProps = ExtractPropTypes<typeof sidebarProps>\n\nexport default defineComponent({\n  name,\n\n  props: sidebarProps,\n\n  emits: ['change', 'update:modelValue'],\n\n  setup(props, { emit, slots }) {\n    const { bem } = useNamespace('sidebar')\n    const { linkChildren } = useChildren(SIDEBAR_KEY)\n\n    const getActive = () => +props.modelValue\n\n    const setActive = (value: number) => {\n      if (value !== getActive()) {\n        emit('update:modelValue', value)\n        emit('change', value)\n      }\n    }\n\n    const currentIndex = computed(() => props.modelValue)\n\n    linkChildren({\n      getActive,\n      setActive,\n      currentIndex,\n    })\n\n    return () => (\n      <div role=\"tablist\" class={bem()}>\n        {slots.default?.()}\n      </div>\n    )\n  },\n})\n"],"names":["name","SIDEBAR_KEY","Symbol","sidebarProps","modelValue","makeNumericProp","defineComponent","props","emits","setup","emit","slots","bem","useNamespace","linkChildren","useChildren","getActive","setActive","value","currentIndex","computed","_createVNode","default"],"mappings":";;;;;;;AAgBA,MAAMA,IAAO,GAAA,YAAA,CAAA;AAEAC,MAAAA,WAAAA,GAA4CC,OAAOF,IAAI,EAAA;AAE7D,MAAMG,YAAe,GAAA;AAAA,EAC1BC,UAAAA,EAAYC,gBAAgB,CAAC,CAAA;AAC/B,EAAA;AAIA,eAAeC,eAAgB,CAAA;AAAA,EAC7BN,IAAAA;AAAAA,EAEAO,KAAOJ,EAAAA,YAAAA;AAAAA,EAEPK,KAAAA,EAAO,CAAC,QAAA,EAAU,mBAAmB,CAAA;AAAA,EAErCC,MAAMF,KAAO,EAAA;AAAA,IAAEG,IAAAA;AAAAA,IAAMC,KAAAA;AAAAA,GAAS,EAAA;AAC5B,IAAM,MAAA;AAAA,MAAEC,GAAAA;AAAAA,KAAI,GAAIC,aAAa,SAAS,CAAA,CAAA;AACtC,IAAM,MAAA;AAAA,MAAEC,YAAAA;AAAAA,KAAa,GAAIC,YAAYd,WAAW,CAAA,CAAA;AAEhD,IAAMe,MAAAA,SAAAA,GAAYA,MAAM,CAACT,KAAMH,CAAAA,UAAAA,CAAAA;AAE/B,IAAA,MAAMa,YAAaC,CAAkB,KAAA,KAAA;AACnC,MAAIA,IAAAA,KAAAA,KAAUF,WAAa,EAAA;AACzBN,QAAAA,IAAAA,CAAK,qBAAqBQ,KAAK,CAAA,CAAA;AAC/BR,QAAAA,IAAAA,CAAK,UAAUQ,KAAK,CAAA,CAAA;AAAA,OACtB;AAAA,KACF,CAAA;AAEA,IAAA,MAAMC,YAAeC,GAAAA,QAAAA,CAAS,MAAMb,KAAAA,CAAMH,UAAU,CAAA,CAAA;AAEpDU,IAAa,YAAA,CAAA;AAAA,MACXE,SAAAA;AAAAA,MACAC,SAAAA;AAAAA,MACAE,YAAAA;AAAAA,KACD,CAAA,CAAA;AAED,IAAA,OAAO;AAtDX,MAAA,IAAA,EAAA,CAAA;AAsDWE,MAAAA,OAAAA,WAAAA,CAAA,KAAA,EAAA;AAAA,QAAA,MAAA,EAAA,SAAA;AAAA,QAAA,SACsBT,GAAI,EAAA;AAAA,OAAC,EAAA,CAAA,CAC7BD,EAAMW,GAAAA,KAAAA,CAAAA,OAAAA,KAANX,8BAAiB,CAErB,CAAA,CAAA;AAAA,KAAA,CAAA;AAAA,GACH;AACF,CAAC,CAAA;;;;"}