{"version":3,"file":"dialog.mjs","sources":["../../../../../../../packages/components/dialog/src/dialog.tsx"],"sourcesContent":["import {\n  type ExtractPropTypes,\n  type PropType,\n  computed,\n  defineComponent,\n  reactive,\n  ref,\n  withKeys,\n} from 'vue'\n\n// Utils\nimport {\n  BORDER_LEFT,\n  BORDER_LIGHTER,\n  BORDER_TOP,\n  type ComponentInstance,\n  addUnit,\n  callInterceptor,\n  createNamespace,\n  extend,\n  isFunction,\n  makeStringProp,\n  noop,\n  numericProp,\n  pick,\n  truthProp,\n  unknownProp,\n} from '@xzx-design/utils'\n\n// Components\nimport { Button, ButtonGroup, Icon, Popup } from '@xzx-design/components'\n\nimport {\n  popupSharedPropKeys,\n  popupSharedProps,\n} from '@xzx-design/components/popup/src/shared'\n\n// Types\nimport { CheckOneFilled, CloseOneFilled } from '@xzx-design/icons-vue'\nimport type { ButtonGroupDirection, DialogType } from '@xzx-design/components'\nimport type {\n  DialogAction,\n  DialogMessage,\n  DialogMessageAlign,\n  DialogTheme,\n} from './types'\n\nconst [name, bem, t] = createNamespace('dialog')\n\nexport const dialogProps = extend({}, popupSharedProps, {\n  title: String,\n  type: [String, Object] as PropType<DialogType>,\n  theme: String as PropType<DialogTheme>,\n  width: numericProp,\n  message: [String, Function] as PropType<DialogMessage>,\n  callback: Function as PropType<(action?: DialogAction) => void>,\n  allowHtml: Boolean,\n  className: unknownProp,\n  transition: makeStringProp('xzx-dialog-bounce'),\n  messageAlign: String as PropType<DialogMessageAlign>,\n  closeOnPopstate: truthProp,\n  showCancelButton: Boolean,\n  cancelButtonText: String,\n  cancelButtonColor: String,\n  cancelButtonDisabled: Boolean,\n  confirmButtonText: String,\n  confirmButtonColor: String,\n  confirmButtonDisabled: Boolean,\n  showConfirmButton: truthProp,\n  closeOnClickOverlay: Boolean,\n  keyboardEnabled: truthProp,\n  buttonDirection: makeStringProp<ButtonGroupDirection>('horizontal'),\n})\n\nexport type DialogProps = ExtractPropTypes<typeof dialogProps>\n\nconst popupInheritKeys = [\n  ...popupSharedPropKeys,\n  'transition',\n  'closeOnPopstate',\n] as const\n\nexport default defineComponent({\n  name,\n\n  props: dialogProps,\n\n  emits: ['confirm', 'cancel', 'keydown', 'update:show'],\n\n  setup(props, { emit, slots }) {\n    const root = ref<ComponentInstance>()\n    const loading = reactive({\n      confirm: false,\n      cancel: false,\n    })\n\n    const updateShow = (value: boolean) => emit('update:show', value)\n\n    const close = (action: DialogAction) => {\n      updateShow(false)\n      props.callback?.(action)\n    }\n\n    const getActionHandler = (action: DialogAction) => () => {\n      // should not trigger close event when hidden\n      if (!props.show) {\n        return\n      }\n\n      emit(action)\n\n      if (props.beforeClose) {\n        loading[action] = true\n        callInterceptor(props.beforeClose, {\n          args: [action],\n          done() {\n            close(action)\n            loading[action] = false\n          },\n          canceled() {\n            loading[action] = false\n          },\n        })\n      } else {\n        close(action)\n      }\n    }\n\n    const onCancel = getActionHandler('cancel')\n    const onConfirm = getActionHandler('confirm')\n    const onKeydown = withKeys(\n      (event: KeyboardEvent) => {\n        if (!props.keyboardEnabled) {\n          return\n        }\n        // skip keyboard events of child elements\n        if (event.target !== root.value?.popupRef?.value) {\n          return\n        }\n\n        const onEventType: Record<string, () => void> = {\n          Enter: props.showConfirmButton ? onConfirm : noop,\n          Escape: props.showCancelButton ? onCancel : noop,\n        }\n\n        onEventType[event.key]()\n        emit('keydown', event)\n      },\n      ['enter', 'esc']\n    )\n\n    const renderTypeIcon = (type: DialogType) => {\n      const iconMap = {\n        success: CheckOneFilled,\n        fail: CloseOneFilled,\n      }\n\n      const iconColor = computed(() =>\n        type === 'success'\n          ? 'var(--xzx-color-success'\n          : 'var(--xzx-color-danger)'\n      )\n\n      const typeIcon = computed(() => iconMap[type])\n      return (\n        <div class={bem('icon-type')}>\n          <Icon color={iconColor.value}>\n            <typeIcon.value />\n          </Icon>\n        </div>\n      )\n    }\n\n    const renderTitle = () => {\n      const { type } = props\n      const title = slots.title ? slots.title() : props.title\n      if (title) {\n        return (\n          <div\n            class={bem('header', {\n              isolated: !props.message && !slots.default,\n            })}\n          >\n            {type && renderTypeIcon(type)}\n            {title}\n          </div>\n        )\n      }\n    }\n\n    const renderMessage = (hasTitle: boolean) => {\n      const { message, allowHtml, messageAlign } = props\n      const classNames = bem('message', {\n        'has-title': hasTitle,\n        [messageAlign as string]: messageAlign,\n      })\n\n      const content = isFunction(message) ? message() : message\n\n      if (allowHtml && typeof content === 'string') {\n        return <div class={classNames} innerHTML={content} />\n      }\n\n      return <div class={classNames}>{content}</div>\n    }\n\n    const renderContent = () => {\n      if (slots.default) {\n        return <div class={bem('content')}>{slots.default()}</div>\n      }\n\n      const { title, message, allowHtml } = props\n      if (message) {\n        const hasTitle = !!(title || slots.title)\n        return (\n          <div\n            // add key to force re-render\n            // see: https://github.com/vant-ui/vant/issues/7963\n            key={allowHtml ? 1 : 0}\n            class={bem('content', { isolated: !hasTitle })}\n          >\n            {renderMessage(hasTitle)}\n          </div>\n        )\n      }\n    }\n\n    const renderTextButtons = () => {\n      const { buttonDirection } = props\n\n      const isVertical = buttonDirection === 'vertical'\n\n      return (\n        <div class={[BORDER_TOP, bem('footer'), bem('footer-text')]}>\n          <ButtonGroup block direction={buttonDirection} reverse={isVertical}>\n            {props.showCancelButton && (\n              <Button\n                size=\"large\"\n                text={props.cancelButtonText || t('cancel')}\n                class={bem('cancel')}\n                style={{ color: props.cancelButtonColor }}\n                loading={loading.cancel}\n                disabled={props.cancelButtonDisabled}\n                onClick={onCancel}\n              />\n            )}\n            {\n              <i\n                class={{\n                  [isVertical ? BORDER_TOP : BORDER_LEFT]:\n                    props.showCancelButton,\n                  [BORDER_LIGHTER]: true,\n                }}\n              ></i>\n            }\n            {props.showConfirmButton && (\n              <Button\n                size=\"large\"\n                text={props.confirmButtonText || t('confirm')}\n                class={[bem('confirm')]}\n                style={{ color: props.confirmButtonColor }}\n                loading={loading.confirm}\n                disabled={props.confirmButtonDisabled}\n                onClick={onConfirm}\n              />\n            )}\n          </ButtonGroup>\n        </div>\n      )\n    }\n\n    const renderButtons = () => {\n      const { buttonDirection } = props\n      const isVertical = buttonDirection === 'vertical'\n\n      return (\n        <div class={[bem('footer')]}>\n          <ButtonGroup block direction={buttonDirection} reverse={isVertical}>\n            {props.showCancelButton && (\n              <Button\n                type=\"primary\"\n                text\n                bg\n                style={{ color: props.cancelButtonColor }}\n                loading={loading.cancel}\n                disabled={props.cancelButtonDisabled}\n                onClick={onCancel}\n              >\n                {props.cancelButtonText || t('cancel')}\n              </Button>\n            )}\n            {props.showConfirmButton && (\n              <Button\n                type=\"primary\"\n                style={{ color: props.confirmButtonColor }}\n                loading={loading.confirm}\n                disabled={props.confirmButtonDisabled}\n                onClick={onConfirm}\n              >\n                {props.confirmButtonText || t('confirm')}\n              </Button>\n            )}\n          </ButtonGroup>\n        </div>\n      )\n    }\n\n    // const renderRoundButtons = () => (\n    //   <ActionBar class={bem('footer')}>\n    //     {props.showCancelButton && (\n    //       <ActionBarButton\n    //         type=\"info\"\n    //         text={props.cancelButtonText || t('cancel')}\n    //         class={bem('cancel')}\n    //         color={props.cancelButtonColor}\n    //         loading={loading.cancel}\n    //         disabled={props.cancelButtonDisabled}\n    //         onClick={onCancel}\n    //       />\n    //     )}\n    //     {props.showConfirmButton && (\n    //       <ActionBarButton\n    //         type=\"primary\"\n    //         text={props.confirmButtonText || t('confirm')}\n    //         class={bem('confirm')}\n    //         color={props.confirmButtonColor}\n    //         loading={loading.confirm}\n    //         disabled={props.confirmButtonDisabled}\n    //         onClick={onConfirm}\n    //       />\n    //     )}\n    //   </ActionBar>\n    // )\n\n    const renderFooter = () => {\n      if (slots.footer) {\n        return slots.footer()\n      }\n\n      return props.theme === 'text-button'\n        ? renderTextButtons()\n        : renderButtons()\n    }\n\n    return () => {\n      const { width, title, theme, message, className } = props\n      return (\n        <Popup\n          ref={root}\n          role=\"dialog\"\n          class={[bem([theme]), className]}\n          style={{ width: addUnit(width) }}\n          tabindex={0}\n          aria-labelledby={title || message}\n          onKeydown={onKeydown}\n          onUpdate:show={updateShow}\n          {...pick(props, popupInheritKeys)}\n        >\n          {renderTitle()}\n          {renderContent()}\n          {renderFooter()}\n        </Popup>\n      )\n    }\n  },\n})\n"],"names":["name","bem","t","createNamespace","dialogProps","extend","popupSharedProps","title","String","type","Object","theme","width","numericProp","message","Function","callback","allowHtml","Boolean","className","unknownProp","transition","makeStringProp","messageAlign","closeOnPopstate","truthProp","showCancelButton","cancelButtonText","cancelButtonColor","cancelButtonDisabled","confirmButtonText","confirmButtonColor","confirmButtonDisabled","showConfirmButton","closeOnClickOverlay","keyboardEnabled","buttonDirection","popupInheritKeys","popupSharedPropKeys","defineComponent","props","emits","setup","emit","slots","root","ref","loading","reactive","confirm","cancel","updateShow","value","close","action","getActionHandler","show","beforeClose","callInterceptor","args","done","canceled","onCancel","onConfirm","onKeydown","withKeys","event","target","popupRef","onEventType","Enter","noop","Escape","key","renderTypeIcon","iconMap","success","CheckOneFilled","fail","CloseOneFilled","iconColor","computed","typeIcon","_createVNode","Icon","default","renderTitle","isolated","renderMessage","hasTitle","classNames","content","isFunction","renderContent","renderTextButtons","isVertical","BORDER_TOP","ButtonGroup","Button","color","BORDER_LEFT","BORDER_LIGHTER","renderButtons","renderFooter","footer","Popup","_mergeProps","addUnit","pick"],"mappings":"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"}