{"version":3,"file":"action-sheet-grid.mjs","sources":["../../src/action-sheet/action-sheet-grid.tsx"],"sourcesContent":["import { defineComponent, computed } from 'vue';\nimport { Grid as TGrid, GridItem as TGridItem } from '../grid';\nimport { Swiper as TSwiper, SwiperItem as TSwiperItem } from '../swiper';\nimport { ActionSheetItem } from './type';\nimport { usePrefixClass } from '../hooks/useClass';\n\nexport default defineComponent({\n  props: {\n    items: {\n      type: Array<ActionSheetItem>,\n      required: true,\n    },\n    count: {\n      type: Number,\n      default: 8,\n    },\n    selected: {\n      type: Function,\n      default: undefined,\n    },\n  },\n  emits: ['selected'],\n  setup(props, { emit }) {\n    const actionSheetClass = usePrefixClass('action-sheet');\n\n    const gridColumn = computed(() => Math.ceil(props.count / 2));\n\n    const pageNum = computed(() => Math.ceil(props.items.length / props.count));\n\n    const actionItems = computed(() => {\n      const res: ActionSheetItem[][] = [];\n      for (let i = 0; i < pageNum.value; i++) {\n        const temp = props.items.slice(i * props.count, (i + 1) * props.count);\n        res.push(temp);\n      }\n      return res;\n    });\n\n    const gridClasses = computed(() => ({\n      [`${actionSheetClass.value}__grid`]: true,\n      [`${actionSheetClass.value}__grid--swiper`]: pageNum.value > 1,\n      [`${actionSheetClass.value}__dots`]: pageNum.value > 1,\n    }));\n\n    const handleSelected = (i: number) => {\n      emit('selected', i);\n    };\n\n    return () => {\n      const swiper = () => {\n        const swiperItems = actionItems.value.map((items, i) => {\n          const gridItems = items.map((item, index) => (\n            <TGridItem\n              key={index}\n              text={item.label}\n              description={item.description}\n              image={item.icon}\n              badge={item.badge}\n              onClick={(event: MouseEvent) => {\n                event.preventDefault();\n                handleSelected(i * props.count + index);\n              }}\n            />\n          ));\n          return (\n            <TSwiperItem key={i}>\n              <TGrid column={gridColumn.value}>{gridItems}</TGrid>\n            </TSwiperItem>\n          );\n        });\n        if (actionItems.value.length > 1) {\n          return (\n            <TSwiper\n              autoplay={false}\n              pagination-position=\"bottom\"\n              navigation={{ type: 'dots', showControls: false }}\n              loop={false}\n              class={`${actionSheetClass.value}__swiper-wrap`}\n              height={192}\n            >\n              {swiperItems}\n            </TSwiper>\n          );\n        }\n        return null;\n      };\n      const grid = () => {\n        if (actionItems.value.length === 1) {\n          const items = actionItems.value[0].map((item, index) => (\n            <TGridItem\n              key={index}\n              text={item.label}\n              description={item.description}\n              image={item.icon}\n              badge={item.badge}\n              onClick={() => handleSelected(index)}\n            />\n          ));\n\n          return <TGrid column={gridColumn.value}>{items}</TGrid>;\n        }\n        return null;\n      };\n      return (\n        <div class={gridClasses.value}>\n          {swiper()}\n          {grid()}\n        </div>\n      );\n    };\n  },\n});\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","defineComponent","props","items","type","Array","required","count","Number","default","selected","Function","emits","setup","_ref","emit","actionSheetClass","usePrefixClass","gridColumn","computed","Math","ceil","pageNum","length","actionItems","res","i","value","temp","slice","push","gridClasses","_defineProperty","concat","handleSelected","swiper","swiperItems","map","gridItems","item","index","label","description","icon","badge","onClick","event","preventDefault","_createVNode","TSwiperItem","_default","TGrid","TSwiper","showControls","grid","TGridItem"],"mappings":"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"}