song-ui-u
Version:
vue3 + js的PC前端组件库
1 lines • 3.94 kB
Source Map (JSON)
{"version":3,"file":"menu.mjs","sources":["../../../../../packages/components/menu/src/menu.jsx"],"sourcesContent":["import { defineComponent, provide, ref, computed } from \"vue\";\r\nimport { useNamespace } from \"@ui-library/hook\";\r\nimport { MENU_KEY } from \"./constant\";\r\n\r\nexport default defineComponent({\r\n name: \"x-menu\",\r\n props: {\r\n defaultActive: {\r\n type: String,\r\n default: \"\",\r\n },\r\n mode: {\r\n type: String,\r\n default: \"vertical\",\r\n },\r\n\r\n width: {\r\n type: String,\r\n default: \"auto\",\r\n },\r\n },\r\n\r\n setup(props, { slots, emit }) {\r\n const change = (index) => {\r\n emit(\"change\", index);\r\n };\r\n\r\n const leave = (index) => {\r\n emit(\"leave\", index);\r\n };\r\n\r\n const enter = (index) => {\r\n emit(\"enter\", index);\r\n };\r\n\r\n const toggle = (index) => {\r\n emit(\"toggle\", index);\r\n };\r\n\r\n const currentIndex = ref(props.defaultActive);\r\n\r\n const width = computed(() => {\r\n if (props.mode == \"horizontal\") return \"auto\";\r\n return props.width;\r\n });\r\n\r\n const setCurrentIndex = (index) => {\r\n currentIndex.value = index;\r\n };\r\n\r\n provide(MENU_KEY, {\r\n props,\r\n currentIndex,\r\n setCurrentIndex,\r\n change,\r\n leave,\r\n enter,\r\n toggle,\r\n });\r\n\r\n const ns = useNamespace(\"menu\");\r\n\r\n return () => (\r\n <ul\r\n class={[ns.b(), ns.m(\"mode\", props.mode)]}\r\n style={{\r\n backgroundColor: props.backgroundColor,\r\n color: props.textColor,\r\n width: width.value + \"px\",\r\n }}\r\n >\r\n {slots.default?.()}\r\n </ul>\r\n );\r\n },\r\n});\r\n"],"names":["name","props","defaultActive","type","String","default","mode","width","setup","slots","emit","change","index","leave","enter","toggle","currentIndex","ref","computed","setCurrentIndex","value","provide","MENU_KEY","ns","useNamespace","_createVNode","b","m","backgroundColor","color","textColor"],"mappings":";;;;;;AAIA,2BAA+B,eAAA,CAAA;AAAA,EAC7BA,IAAM,EAAA,QAAA;AAAA,EACNC,KAAO,EAAA;AAAA,IACLC,aAAe,EAAA;AAAA,MACbC,IAAMC,EAAAA,MAAAA;AAAAA,MACNC,OAAS,EAAA,EAAA;AAAA,KACX;AAAA,IACAC,IAAM,EAAA;AAAA,MACJH,IAAMC,EAAAA,MAAAA;AAAAA,MACNC,OAAS,EAAA,UAAA;AAAA,KACX;AAAA,IAEAE,KAAO,EAAA;AAAA,MACLJ,IAAMC,EAAAA,MAAAA;AAAAA,MACNC,OAAS,EAAA,MAAA;AAAA,KACX;AAAA,GACF;AAAA,EAEAG,MAAMP,KAAO,EAAA;AAAA,IAAEQ,KAAAA;AAAAA,IAAOC,IAAAA;AAAAA,GAAQ,EAAA;AAC5B,IAAA,MAAMC,SAAUC,CAAU,KAAA,KAAA;AACxBF,MAAAA,IAAAA,CAAK,UAAUE,KAAK,CAAA,CAAA;AAAA,KACtB,CAAA;AAEA,IAAA,MAAMC,QAASD,CAAU,KAAA,KAAA;AACvBF,MAAAA,IAAAA,CAAK,SAASE,KAAK,CAAA,CAAA;AAAA,KACrB,CAAA;AAEA,IAAA,MAAME,QAASF,CAAU,KAAA,KAAA;AACvBF,MAAAA,IAAAA,CAAK,SAASE,KAAK,CAAA,CAAA;AAAA,KACrB,CAAA;AAEA,IAAA,MAAMG,SAAUH,CAAU,KAAA,KAAA;AACxBF,MAAAA,IAAAA,CAAK,UAAUE,KAAK,CAAA,CAAA;AAAA,KACtB,CAAA;AAEA,IAAMI,MAAAA,YAAAA,GAAeC,GAAIhB,CAAAA,KAAAA,CAAMC,aAAa,CAAA,CAAA;AAE5C,IAAMK,MAAAA,KAAAA,GAAQW,SAAS,MAAM;AAC3B,MAAIjB,IAAAA,KAAAA,CAAMK,IAAQ,IAAA,YAAA,EAAqB,OAAA,MAAA,CAAA;AACvC,MAAA,OAAOL,KAAMM,CAAAA,KAAAA,CAAAA;AAAAA,KACd,CAAA,CAAA;AAED,IAAA,MAAMY,kBAAmBP,CAAU,KAAA,KAAA;AACjCI,MAAAA,YAAAA,CAAaI,KAAQR,GAAAA,KAAAA,CAAAA;AAAAA,KACvB,CAAA;AAEAS,IAAAA,OAAAA,CAAQC,QAAU,EAAA;AAAA,MAChBrB,KAAAA;AAAAA,MACAe,YAAAA;AAAAA,MACAG,eAAAA;AAAAA,MACAR,MAAAA;AAAAA,MACAE,KAAAA;AAAAA,MACAC,KAAAA;AAAAA,MACAC,MAAAA;AAAAA,KACD,CAAA,CAAA;AAED,IAAMQ,MAAAA,EAAAA,GAAKC,aAAa,MAAM,CAAA,CAAA;AAE9B,IAAO,OAAA,MAAAC,YAAA,IAAA,EAAA;AAAA,MAAA,OAAA,EAEI,CAACF,EAAAA,CAAGG,CAAE,EAAA,EAAGH,GAAGI,CAAE,CAAA,MAAA,EAAQ1B,KAAMK,CAAAA,IAAI,CAAC,CAAA;AAAA,MAAC,OAClC,EAAA;AAAA,QACLsB,iBAAiB3B,KAAM2B,CAAAA,eAAAA;AAAAA,QACvBC,OAAO5B,KAAM6B,CAAAA,SAAAA;AAAAA,QACbvB,KAAAA,EAAOA,MAAMa,KAAQ,GAAA,IAAA;AAAA,OACvB;AAAA,KAAC,EAAA,CAEAX,KAAMJ,CAAAA,OAAAA,IAAW,CAErB,CAAA,CAAA;AAAA,GACH;AACF,CAAC,CAAA;;;;"}