ivue-material-plus
Version:
A high quality UI components Library with Vue.js
1 lines • 3.32 kB
Source Map (JSON)
{"version":3,"file":"tabs-computed.mjs","sources":["../../../../../src/components/ivue-tabs/tabs-computed.ts"],"sourcesContent":["import { computed } from 'vue';\r\n\r\n// type\r\nimport { Props, Data } from './types/tabs';\r\n\r\nexport default (props: Props, data: Data) => {\r\n // 是否有箭头\r\n const hasArrows = computed((): boolean => {\r\n return props.showArrows && data.isOverflowing;\r\n });\r\n\r\n // 导航样式\r\n const containerStyles = computed(() => {\r\n const height = props.height;\r\n\r\n const regexp = new RegExp(/[a-zA-Z]/g);\r\n\r\n // 是否有单位\r\n const isUnit = regexp.test(`${height}`);\r\n\r\n return {\r\n height: !isUnit ? `${height}px` : height,\r\n transform: `translate3d(-${data.scrollOffset}px, 0,0)`,\r\n };\r\n });\r\n\r\n // 没有找到可以激活的tab\r\n const noFindActiveTab = computed(() => {\r\n return data.tabs.findIndex((tab, index: number) => {\r\n return tab.tabName === props.modelValue || index === props.modelValue;\r\n });\r\n });\r\n\r\n // 激活的Index\r\n const activeIndex = computed(() => {\r\n return data.tabs.findIndex((tab, index: number) => {\r\n if (!props.modelValue) {\r\n return index === 0;\r\n }\r\n\r\n // 没有找到可以激活的tab 默认激活第一项\r\n if (noFindActiveTab.value === -1) {\r\n return index === 0;\r\n }\r\n\r\n return tab.tabName === props.modelValue || index === props.modelValue;\r\n });\r\n });\r\n\r\n // 激活的tab\r\n const activeTab = computed(() => {\r\n if (!data.tabs.length) {\r\n return undefined;\r\n }\r\n\r\n return data.tabs[activeIndex.value];\r\n });\r\n\r\n return {\r\n hasArrows,\r\n activeTab,\r\n activeIndex,\r\n containerStyles,\r\n };\r\n};\r\n"],"names":[],"mappings":";;AAKA,mBAAe,CAAC,OAAc,IAAe,KAAA;AAE3C,EAAM,MAAA,SAAA,GAAY,SAAS,MAAe;AACxC,IAAO,OAAA,KAAA,CAAM,cAAc,IAAK,CAAA,aAAA,CAAA;AAAA,GACjC,CAAA,CAAA;AAGD,EAAM,MAAA,eAAA,GAAkB,SAAS,MAAM;AACrC,IAAA,MAAM,SAAS,KAAM,CAAA,MAAA,CAAA;AAErB,IAAM,MAAA,MAAA,GAAS,IAAI,MAAA,CAAO,WAAW,CAAA,CAAA;AAGrC,IAAA,MAAM,MAAS,GAAA,MAAA,CAAO,IAAK,CAAA,CAAA,EAAG,MAAQ,CAAA,CAAA,CAAA,CAAA;AAEtC,IAAO,OAAA;AAAA,MACL,MAAQ,EAAA,CAAC,MAAS,GAAA,CAAA,EAAG,MAAa,CAAA,EAAA,CAAA,GAAA,MAAA;AAAA,MAClC,SAAA,EAAW,gBAAgB,IAAK,CAAA,YAAA,CAAA,QAAA,CAAA;AAAA,KAClC,CAAA;AAAA,GACD,CAAA,CAAA;AAGD,EAAM,MAAA,eAAA,GAAkB,SAAS,MAAM;AACrC,IAAA,OAAO,IAAK,CAAA,IAAA,CAAK,SAAU,CAAA,CAAC,KAAK,KAAkB,KAAA;AACjD,MAAA,OAAO,GAAI,CAAA,OAAA,KAAY,KAAM,CAAA,UAAA,IAAc,UAAU,KAAM,CAAA,UAAA,CAAA;AAAA,KAC5D,CAAA,CAAA;AAAA,GACF,CAAA,CAAA;AAGD,EAAM,MAAA,WAAA,GAAc,SAAS,MAAM;AACjC,IAAA,OAAO,IAAK,CAAA,IAAA,CAAK,SAAU,CAAA,CAAC,KAAK,KAAkB,KAAA;AACjD,MAAI,IAAA,CAAC,MAAM,UAAY,EAAA;AACrB,QAAA,OAAO,KAAU,KAAA,CAAA,CAAA;AAAA,OACnB;AAGA,MAAI,IAAA,eAAA,CAAgB,UAAU,CAAI,CAAA,EAAA;AAChC,QAAA,OAAO,KAAU,KAAA,CAAA,CAAA;AAAA,OACnB;AAEA,MAAA,OAAO,GAAI,CAAA,OAAA,KAAY,KAAM,CAAA,UAAA,IAAc,UAAU,KAAM,CAAA,UAAA,CAAA;AAAA,KAC5D,CAAA,CAAA;AAAA,GACF,CAAA,CAAA;AAGD,EAAM,MAAA,SAAA,GAAY,SAAS,MAAM;AAC/B,IAAI,IAAA,CAAC,IAAK,CAAA,IAAA,CAAK,MAAQ,EAAA;AACrB,MAAO,OAAA,KAAA,CAAA,CAAA;AAAA,KACT;AAEA,IAAO,OAAA,IAAA,CAAK,KAAK,WAAY,CAAA,KAAA,CAAA,CAAA;AAAA,GAC9B,CAAA,CAAA;AAED,EAAO,OAAA;AAAA,IACL,SAAA;AAAA,IACA,SAAA;AAAA,IACA,WAAA;AAAA,IACA,eAAA;AAAA,GACF,CAAA;AACF,CAAA;;;;"}