{"version":3,"file":"action-sheet.mjs","sources":["../../src/action-sheet/action-sheet.tsx"],"sourcesContent":["import { watch, defineComponent, computed } from 'vue';\nimport { useDefault } from '../shared';\nimport ActionSheetList from './action-sheet-list';\nimport ActionSheetGrid from './action-sheet-grid';\nimport TPopup from '../popup';\nimport TButton from '../button';\nimport config from '../config';\nimport { TdActionSheetProps, ActionSheetItem } from './type';\nimport props from './props';\nimport { usePrefixClass, useConfig } from '../hooks/useClass';\n\nconst { prefix } = config;\n\nexport default defineComponent({\n  name: `${prefix}-action-sheet`,\n  components: {\n    TPopup,\n    TButton,\n    ActionSheetList,\n    ActionSheetGrid,\n  },\n  props,\n  emits: ['selected', 'update:modelValue', 'cancel', 'close', 'update:visible'],\n  setup(props, context) {\n    const actionSheetClass = usePrefixClass('action-sheet');\n    const { globalConfig } = useConfig('actionSheet');\n\n    const actionItems = computed(() => {\n      return props.items.map((item: String | ActionSheetItem) => {\n        if (typeof item === 'string') {\n          return {\n            label: item,\n          };\n        }\n        return item;\n      });\n    });\n    const [currentVisible] = useDefault<TdActionSheetProps['visible'], TdActionSheetProps>(\n      props,\n      context.emit,\n      'visible',\n      'visible-change',\n    );\n    const rootClasses = computed(() => ({\n      [`${actionSheetClass.value}__content`]: true,\n    }));\n    const descriptionClasses = computed(() => ({\n      [`${actionSheetClass.value}__description`]: true,\n      [`${actionSheetClass.value}__description--left`]: props.align === 'left',\n      [`${actionSheetClass.value}__description--grid`]: props.theme === 'grid',\n    }));\n    watch(\n      () => currentVisible.value,\n      (val) => {\n        currentVisible.value = val;\n      },\n      {\n        immediate: true,\n        deep: true,\n      },\n    );\n\n    const hide = (trigger: string) => {\n      context.emit('update:modelValue', false);\n      props.onClose?.({ trigger });\n    };\n\n    const handleCancel = () => {\n      props.onCancel?.();\n      context.emit('update:modelValue', false);\n    };\n\n    const handleSelected = (index: number) => {\n      props.onSelected?.(props?.items[index], index);\n      hide('selected');\n    };\n\n    const handleClose = () => {\n      hide('overlay');\n    };\n\n    return () => {\n      const root = () => {\n        const description = () => {\n          if (props.description) {\n            return <p class={descriptionClasses.value}>{props.description}</p>;\n          }\n          return null;\n        };\n        const list = () => {\n          if (props.theme === 'list') {\n            return <action-sheet-list align={props.align} items={actionItems.value} onSelected={handleSelected} />;\n          }\n        };\n        const grid = () => {\n          if (props.theme === 'grid') {\n            return <action-sheet-grid items={actionItems.value} count={props.count} onSelected={handleSelected} />;\n          }\n        };\n        const cancel = () => {\n          if (props.showCancel) {\n            return (\n              <div class={`${actionSheetClass.value}__footer`}>\n                <div class={`${actionSheetClass.value}__gap-${props.theme}`}></div>\n                <t-button class={`${actionSheetClass.value}__cancel`} variant=\"text\" block onClick={handleCancel}>\n                  {props.cancelText || globalConfig.value.cancel}\n                </t-button>\n              </div>\n            );\n          }\n        };\n        return (\n          <div class={rootClasses.value}>\n            {description()}\n            {list()}\n            {grid()}\n            {cancel()}\n          </div>\n        );\n      };\n      return (\n        <t-popup\n          visible={currentVisible.value}\n          placement=\"bottom\"\n          destroy-on-close={true}\n          class={actionSheetClass.value}\n          onClose={handleClose}\n        >\n          {root()}\n        </t-popup>\n      );\n    };\n  },\n});\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","prefix","config","defineComponent","name","components","TPopup","TButton","ActionSheetList","ActionSheetGrid","props","emits","setup","context","actionSheetClass","usePrefixClass","_useConfig","useConfig","globalConfig","actionItems","computed","items","map","item","label","_useDefault","useDefault","emit","_useDefault2","_slicedToArray","currentVisible","rootClasses","_defineProperty","concat","value","descriptionClasses","align","theme","watch","val","immediate","deep","hide","trigger","_props2$onClose","onClose","handleCancel","_props2$onCancel","onCancel","handleSelected","index","_props2$onSelected","onSelected","handleClose","_slot","root","description","_createVNode","list","_resolveComponent","grid","count","cancel","showCancel","cancelText"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAS0C,SAAAA,QAAAC,CAAA,EAAA;AAAA,EAAA,OAAA,OAAAA,CAAA,KAAA,UAAA,IAAAC,MAAA,CAAAC,SAAA,CAAAC,QAAA,CAAAC,IAAA,CAAAJ,CAAA,CAAAK,KAAAA,iBAAAA,IAAAA,CAAAA,OAAA,CAAAL,CAAA,CAAA,CAAA;AAAA,CAAA;AAE1C,IAAQM,SAAWC,MAAA,CAAXD;AAER,qBAAeE,eAAgB,CAAA;AAC7BC,EAAAA,gBAASH,MAAA,EAAA,eAAA,CAAA;AACTI,EAAAA,UAAY,EAAA;AACVC,IAAAA,MAAA,EAAAA,KAAA;AACAC,IAAAA,OAAA,EAAAA,MAAA;AACAC,IAAAA,eAAA,EAAAA,eAAA;AACAC,IAAAA,eAAA,EAAAA,eAAAA;GACF;AACAC,EAAAA,KAAA,EAAAA,KAAA;EACAC,OAAO,CAAC,UAAA,EAAY,mBAAqB,EAAA,QAAA,EAAU,SAAS,gBAAgB,CAAA;AAC5EC,EAAAA,KAAA,WAAAA,KAAAA,CAAMF,QAAOG,OAAS,EAAA;AACd,IAAA,IAAAC,gBAAA,GAAmBC,eAAe,cAAc,CAAA,CAAA;AACtD,IAAA,IAAAC,UAAA,GAAyBC,SAAA,CAAU,aAAa,CAAA;MAAxCC,YAAA,GAAAF,UAAA,CAAAE,YAAA,CAAA;AAEF,IAAA,IAAAC,WAAA,GAAcC,SAAS,YAAM;MACjC,OAAOV,MAAM,CAAAW,KAAA,CAAMC,GAAI,CAAA,UAACC,IAAmC,EAAA;AACrD,QAAA,IAAA,OAAOA,SAAS,QAAU,EAAA;UACrB,OAAA;AACLC,YAAAA,KAAO,EAAAD,IAAAA;WACT,CAAA;AACF,SAAA;AACO,QAAA,OAAAA,IAAA,CAAA;AACT,OAAC,CAAA,CAAA;AACH,KAAC,CAAA,CAAA;AACK,IAAA,IAAAE,WAAA,GAAmBC,UAAA,CACvBhB,MAAAA,EACAG,OAAQ,CAAAc,IAAA,EACR,SAAA,EACA,gBACF,CAAA;MAAAC,YAAA,GAAAC,cAAA,CAAAJ,WAAA,EAAA,CAAA,CAAA;AALOK,MAAAA,cAAc,GAAAF,YAAA,CAAA,CAAA,CAAA,CAAA;IAMf,IAAAG,WAAA,GAAcX,SAAS,YAAA;MAAA,OAAAY,eAAA,QAAAC,MAAA,CACvBnB,gBAAA,CAAiBoB,KAAmB,gBAAA,IAAA,CAAA,CAAA;AAAA,KACxC,CAAA,CAAA;IACI,IAAAC,kBAAA,GAAqBf,SAAS,YAAA;AAAA,MAAA,OAAAY,eAAA,CAAAA,eAAA,CAAAA,eAAA,QAAAC,MAAA,CAC9BnB,gBAAA,CAAiBoB,KAAuB,EAAA,eAAA,CAAA,EAAA,IAAA,CAAAD,EAAAA,EAAAA,CAAAA,MAAA,CACxCnB,gBAAiB,CAAAoB,KAAA,EAAA,qBAAA,CAAA,EAA6BxB,OAAM0B,KAAU,KAAA,MAAA,MAAAH,MAAA,CAC9DnB,gBAAiB,CAAAoB,KAAA,EAA6BxB,qBAAAA,CAAAA,EAAAA,OAAM2B,KAAU,KAAA,MAAA,CAAA,CAAA;AAAA,KAClE,CAAA,CAAA;AACFC,IAAAA,KAAA,CACE,YAAA;MAAA,OAAMR,cAAe,CAAAI,KAAA,CAAA;KACrB,EAAA,UAACK,GAAQ,EAAA;MACPT,cAAA,CAAeI,KAAQ,GAAAK,GAAA,CAAA;AACzB,KAAA,EACA;AACEC,MAAAA,SAAW,EAAA,IAAA;AACXC,MAAAA,IAAM,EAAA,IAAA;AACR,KACF,CAAA,CAAA;AAEM,IAAA,IAAAC,IAAA,GAAO,SAAPA,IAAAA,CAAQC,OAAoB,EAAA;AAAA,MAAA,IAAAC,eAAA,CAAA;AACxB/B,MAAAA,OAAA,CAAAc,IAAA,CAAK,qBAAqB,KAAK,CAAA,CAAA;AACvCjB,MAAAA,CAAAA,eAAAA,GAAAA,MAAM,CAAAmC,OAAA,MAAA,IAAA,IAAAD,eAAA,KAAA,KAAA,CAAA,IAANlC,eAAAA,CAAAA,IAAAA,CAAAA,MAAM,EAAU;AAAEiC,QAAAA,OAAA,EAAAA,OAAAA;AAAQ,OAAC,CAAA,CAAA;KAC7B,CAAA;AAEA,IAAA,IAAMG,eAAe,SAAfA,eAAqB;AAAA,MAAA,IAAAC,gBAAA,CAAA;AACzBrC,MAAAA,CAAAA,gBAAAA,GAAAA,OAAMsC,QAAW,MAAA,IAAA,IAAAD,gBAAA,KAAA,KAAA,CAAA,IAAjBrC,gBAAAA,CAAAA,IAAAA,CAAAA,MAAiB,CAAA,CAAA;AACTG,MAAAA,OAAA,CAAAc,IAAA,CAAK,qBAAqB,KAAK,CAAA,CAAA;KACzC,CAAA;AAEM,IAAA,IAAAsB,cAAA,GAAiB,SAAjBA,cAAAA,CAAkBC,KAAkB,EAAA;AAAA,MAAA,IAAAC,kBAAA,CAAA;MACxCzC,CAAAA,kBAAAA,GAAAA,MAAM,CAAA0C,UAAA,MAAAD,IAAAA,IAAAA,kBAAA,KAANzC,KAAAA,CAAAA,IAAAA,kBAAAA,CAAAA,IAAAA,CAAAA,MAAM,EAAaA,MAAO,KAAA,IAAA,IAAPA,MAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAPA,MAAO,CAAAW,KAAA,CAAM6B,QAAQA,KAAK,CAAA,CAAA;MAC7CR,IAAA,CAAK,UAAU,CAAA,CAAA;KACjB,CAAA;AAEA,IAAA,IAAMW,cAAc,SAAdA,cAAoB;MACxBX,IAAA,CAAK,SAAS,CAAA,CAAA;KAChB,CAAA;AAEA,IAAA,OAAO,YAAM;AAAA,MAAA,IAAAY,KAAA,CAAA;AACX,MAAA,IAAMC,OAAO,SAAPA,OAAa;AACjB,QAAA,IAAMC,cAAc,SAAdA,cAAoB;UACxB,IAAI9C,OAAM8C,WAAa,EAAA;AACrB,YAAA,OAAAC,WAAA,CAAA,GAAA,EAAA;AAAA,cAAA,OAAA,EAAiBtB,mBAAmBD,KAAAA;aAAQxB,EAAAA,CAAAA,MAAAA,CAAM8C;AACpD,WAAA;AACO,UAAA,OAAA,IAAA,CAAA;SACT,CAAA;AACA,QAAA,IAAME,OAAO,SAAPA,OAAa;AACbhD,UAAAA,IAAAA,MAAAA,CAAM2B,UAAU,MAAQ,EAAA;YACnB,OAAAoB,WAAA,CAAAE,gBAAA,CAAA,mBAAA,CAAA,EAAA;cAAA,OAA0BjD,EAAAA,MAAAA,CAAM0B;qBAAcjB,EAAAA,WAAA,CAAYe,KAAO;cAAA,YAAYe,EAAAA,cAAAA;AAAgB,aAAA,EAAA,IAAA,CAAA,CAAA;AACtG,WAAA;SACF,CAAA;AACA,QAAA,IAAMW,OAAO,SAAPA,OAAa;AACblD,UAAAA,IAAAA,MAAAA,CAAM2B,UAAU,MAAQ,EAAA;YACnB,OAAAoB,WAAA,CAAAE,gBAAA,CAAA,mBAAA,CAAA,EAAA;cAAA,OAA0BxC,EAAAA,WAAA,CAAYe;qBAAcxB,EAAAA,MAAAA,CAAMmD,KAAO;cAAA,YAAYZ,EAAAA,cAAAA;AAAgB,aAAA,EAAA,IAAA,CAAA,CAAA;AACtG,WAAA;SACF,CAAA;AACA,QAAA,IAAMa,SAAS,SAATA,SAAe;UACnB,IAAIpD,OAAMqD,UAAY,EAAA;AACpB,YAAA,OAAAN,WAAA,CAAA,KAAA,EAAA;AAAA,cAAA,OAAA,EAAA,EAAA,CAAAxB,MAAA,CACiBnB,gBAAiB,CAAAoB,KAAA,EAAA,UAAA,CAAA;AAAA,aAAA,EAAA,CAAAuB,WAAA,CAAA,KAAA,EAAA;cAAA,OAAAxB,EAAAA,EAAAA,CAAAA,MAAA,CACfnB,gBAAiB,CAAAoB,KAAA,YAAAD,MAAA,CAAcvB,OAAM2B,KAAS,CAAA;aAAAoB,EAAAA,IAAAA,CAAAA,EAAAA,WAAA,CAAAE,gBAAA,CAAA,UAAA,CAAA,EAAA;AAAA,cAAA,OAAA,EAAA,EAAA,CAAA1B,MAAA,CACzCnB,gBAAA,CAAiBoB;yBAAyB,MAAA;AAAA,cAAA,OAAA,EAAA,IAAA;cAAA,SAAsBY,EAAAA,YAAAA;;;uBACjFpC,CAAAA,MAAM,CAAAsD,UAAA,IAAc9C,YAAa,CAAAgB,KAAA,CAAM4B;;;AAIhD,WAAA;SACF,CAAA;AAEE,QAAA,OAAAL,WAAA,CAAA,KAAA,EAAA;AAAA,UAAA,OAAA,EAAY1B,WAAY,CAAAG,KAAAA;AAAA,SAAA,EAAA,CACrBsB,WAAY,EAAA,EACZE,IAAK,EAAA,EACLE,IAAK,EAAA,EACLE,MAAO,EAAA,CAAA,CAAA,CAAA;OAGd,CAAA;MACA,OAAAL,WAAA,CAAAE,gBAAA,CAAA,SAAA,CAAA,EAAA;QAAA,SAEa7B,EAAAA,cAAe,CAAAI,KAAA;AAAA,QAAA,WAAA,EACd,QACV;AAAA,QAAA,kBAAA,EAAkB,IAClB;QAAA,OAAOpB,EAAAA,iBAAiBoB,KACxB;QAAA,SAASmB,EAAAA,WAAAA;OAER3D,EAAAA,OAAA,CAAA4D,KAAA,GAAAC,IAAA;;;;;KAGP,CAAA;AACF,GAAA;AACF,CAAC,CAAA;;;;"}