// Utils import { createNamespace } from '../utils'; // Components import Icon from '../icon'; import Popup, { popupSharedProps } from '../popup'; import Loading from '../loading'; const [createComponent, bem] = createNamespace('action-sheet'); export default createComponent({ props: { ...popupSharedProps, title: String, actions: Array, duration: [Number, String], teleport: [String, Object], cancelText: String, description: String, closeOnPopstate: Boolean, closeOnClickAction: Boolean, round: { type: Boolean, default: true, }, closeIcon: { type: String, default: 'cross', }, safeAreaInsetBottom: { type: Boolean, default: true, }, overlay: { type: Boolean, default: true, }, closeOnClickOverlay: { type: Boolean, default: true, }, }, emits: [ 'open', 'close', 'opened', 'closed', 'cancel', 'select', 'update:show', 'click-overlay', ], setup(props, { slots, emit }) { function onCancel() { emit('update:show', false); emit('cancel'); } const createEmitter = (name) => () => emit(name); const listeners = { onOpen: createEmitter('open'), onClose: createEmitter('close'), onOpened: createEmitter('opened'), onClosed: createEmitter('closed'), 'onClick-overlay': createEmitter('click-overlay'), 'onUpdate:show': (show) => { emit('update:show', show); }, }; return function () { const { title, cancelText } = props; function Header() { if (title) { return (