{"version":3,"file":"action-sheet-list.mjs","sources":["../../src/action-sheet/action-sheet-list.tsx"],"sourcesContent":["import { computed, defineComponent, PropType, toRefs, h } from 'vue';\nimport TButton from '../button';\nimport TBadge from '../badge';\nimport { TNode } from '../common';\nimport { ActionSheetItem } from './type';\nimport { useTNodeDefault } from '../hooks/tnode';\nimport { usePrefixClass } from '../hooks/useClass';\n\nexport default defineComponent({\n  props: {\n    items: {\n      type: Array as PropType<ActionSheetItem[]>,\n      required: true,\n    },\n  },\n  emits: ['selected'],\n  setup(props, { emit }) {\n    const actionSheetClass = usePrefixClass('action-sheet');\n\n    const renderTNodeJSX = useTNodeDefault();\n\n    const { items } = toRefs(props);\n    const handleSelected = (index: number) => {\n      emit('selected', index);\n    };\n    const itemClasses = computed(() => ({\n      [`${actionSheetClass.value}__list-item`]: true,\n    }));\n\n    const renderTNode = (node: TNode) => {\n      if (!node) return null;\n      if (typeof node === 'function') {\n        return node(h);\n      }\n      return node;\n    };\n\n    return () => {\n      const renderButtonNode = () => {\n        const renderContent = (item: ActionSheetItem) => {\n          const renderLabel = () => {\n            if (item.badge) {\n              if (item.badge.dot || item.badge.count) {\n                return (\n                  <TBadge\n                    count={item.badge.count}\n                    max-count={item.badge.maxCount || 99}\n                    dot={item.badge.dot}\n                    content={item.badge.content}\n                    size={item.badge.size}\n                    offset={item.badge.offset}\n                  >\n                    <span class={`${actionSheetClass.value}__list-item-text`}> {item.label}</span>\n                  </TBadge>\n                );\n              }\n              return renderTNodeJSX('badge', {\n                defaultNode: <span class={`${actionSheetClass.value}__list-item-text`}>{item.label}</span>,\n              });\n            }\n            return <span class={`${actionSheetClass.value}__list-item-text`}>{item.label}</span>;\n          };\n\n          const iconContent = renderTNode(item.icon);\n          const suffixIconContent = renderTNode(item.suffixIcon);\n\n          return (\n            <>\n              <div class={`${actionSheetClass.value}__list-item-content`}>\n                {iconContent && <span class={`${actionSheetClass.value}__list-item-icon`}>{iconContent}</span>}\n                {renderLabel()}\n                {suffixIconContent && (\n                  <span\n                    class={`${actionSheetClass.value}__list-item-icon ${actionSheetClass.value}__list-item-icon--suffix`}\n                  >\n                    {suffixIconContent}\n                  </span>\n                )}\n              </div>\n              {item.description && <div class={`${actionSheetClass.value}__list-item-desc`}>{item.description}</div>}\n            </>\n          );\n        };\n        const buttonList = items.value.map((item, index) => (\n          <TButton\n            key={index}\n            variant={'text'}\n            block\n            class={[itemClasses.value, { [`${actionSheetClass.value}__list-item--disabled`]: item.disabled }]}\n            disabled={item.disabled}\n            style={{ color: item.color }}\n            onClick={() => handleSelected(index)}\n          >\n            {renderContent(item)}\n          </TButton>\n        ));\n        return buttonList;\n      };\n\n      return <div class={`${actionSheetClass.value}__list`}>{renderButtonNode()}</div>;\n    };\n  },\n});\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","defineComponent","props","items","type","Array","required","emits","setup","_ref","emit","actionSheetClass","usePrefixClass","renderTNodeJSX","useTNodeDefault","_toRefs","toRefs","handleSelected","index","itemClasses","computed","_defineProperty","concat","value","renderTNode","node","h","renderButtonNode","renderContent","item","renderLabel","badge","dot","count","_createVNode","TBadge","maxCount","content","size","offset","default","_default","label","defaultNode","iconContent","icon","suffixIconContent","suffixIcon","_Fragment","description","buttonList","map","_slot","TButton","disabled","color","onClick"],"mappings":"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"}