{"version":3,"file":"popconfirm.mjs","sources":["../../../../../../packages/components/popconfirm/src/popconfirm.vue"],"sourcesContent":["<template>\r\n  <sg-tooltip\r\n    ref=\"tooltipRef\"\r\n    v-bind=\"$attrs\"\r\n    trigger=\"click\"\r\n    theme=\"light\"\r\n    popper-class=\"sg-popover\"\r\n    :popper-style=\"style\"\r\n    :transfer=\"transfer\"\r\n    :fallback-placements=\"['bottom', 'top', 'right', 'left']\"\r\n    :hide-after=\"hideAfter\"\r\n    persistent\r\n  >\r\n    <template #content>\r\n      <div class=\"sg-popconfirm\">\r\n        <div class=\"sg-popconfirm__main\">\r\n          <sg-icon\r\n            v-if=\"!hideIcon && icon\"\r\n            class=\"sg-popconfirm__icon\"\r\n            :style=\"{ color: iconColor }\"\r\n          >\r\n            <component :is=\"icon\" />\r\n          </sg-icon>\r\n          {{ title }}\r\n        </div>\r\n        <div class=\"sg-popconfirm__action\">\r\n          <sg-button\r\n            size=\"small\"\r\n            :type=\"cancelButtonType === 'text' ? '' : cancelButtonType\"\r\n            :text=\"cancelButtonType === 'text'\"\r\n            @click=\"cancel\"\r\n          >\r\n            {{ finalCancelButtonText }}\r\n          </sg-button>\r\n          <sg-button\r\n            size=\"small\"\r\n            :type=\"confirmButtonType === 'text' ? '' : confirmButtonType\"\r\n            :text=\"confirmButtonType === 'text'\"\r\n            @click=\"confirm\"\r\n          >\r\n            {{ finalConfirmButtonText }}\r\n          </sg-button>\r\n        </div>\r\n      </div>\r\n    </template>\r\n    <template v-if=\"$slots.reference\">\r\n      <slot name=\"reference\" />\r\n    </template>\r\n  </sg-tooltip>\r\n</template>\r\n\r\n<script lang=\"ts\">\r\nimport { defineComponent, ref, computed, unref } from 'vue'\r\nimport SgButton from '@sgui-plus/components/button'\r\nimport SgIcon from '@sgui-plus/components/icon'\r\nimport SgTooltip from '@sgui-plus/components/tooltip'\r\nimport { popconfirmProps } from './popconfirm'\r\nimport { isString } from '@vue/shared'\r\nimport { isNumber } from '@vueuse/core'\r\n\r\nexport default defineComponent({\r\n  name: 'SgPopconfirm',\r\n\r\n  components: {\r\n    SgButton,\r\n    SgTooltip,\r\n    SgIcon,\r\n  },\r\n\r\n  props: popconfirmProps,\r\n\r\n  setup(props) {\r\n    const tooltipRef = ref<{ onClose: () => void }>()\r\n\r\n    const hidePopper = () => {\r\n      unref(tooltipRef)?.onClose?.()\r\n    }\r\n\r\n    const style = computed(() => {\r\n      if (isString(props.width)) {\r\n        return {\r\n          width: props.width,\r\n        }\r\n      }\r\n      else if (isNumber(props.width)) {\r\n        return {\r\n          width: `${props.width}px`,\r\n        }\r\n      }\r\n    })\r\n\r\n    const handleCallback = () => {\r\n      hidePopper()\r\n    }\r\n\r\n    const confirm = (e: Event) => {\r\n      props.onConfirm?.(e)\r\n      handleCallback()\r\n    }\r\n    const cancel = (e: Event) => {\r\n      props.onCancel?.(e)\r\n      handleCallback()\r\n    }\r\n\r\n    const finalConfirmButtonText = computed(\r\n      () => props.confirmButtonText || '确认'\r\n    )\r\n    const finalCancelButtonText = computed(\r\n      () => props.cancelButtonText || '取消'\r\n    )\r\n\r\n    return {\r\n      finalConfirmButtonText,\r\n      finalCancelButtonText,\r\n      tooltipRef,\r\n      style,\r\n\r\n      confirm,\r\n      cancel,\r\n    }\r\n  },\r\n})\r\n</script>\r\n"],"names":["_resolveComponent","_openBlock","_createBlock","_mergeProps","_withCtx","_createElementVNode","_normalizeStyle","_createCommentVNode","_createTextVNode","_toDisplayString","_createVNode","_renderSlot"],"mappings":";;;;qBAyBa,KAAM,EAAA,eAAA,EAAA,CAAA;;;;;;AAxBjB,EAAA,MAAA,qBAAA,GAAAA,gBAAA,CA+Ca,YA/Cb,CAAA,CAAA;SAIOC,SAAQ,EAAA,EAAAC,WAAA,CAAA,qBAAA,EAAAC,UAAA,CAAA,EAAA,GAAA,EAAA,YAAA,EAAA,EAAA,IAAA,CAAA,MAAA,EAAA;AAAA,IACb,OAAA,EAAA,OAAA;AAAA,IACC,KAAA,EAAA,OAAA;AAAA,IACA,cAAU,EAAA,YAAA;AAAA,IACV,cAAmB,EAAA,IAAA,CAAA,KAAA;AAAA,IACnB,QAAY,EAAA,IAAA,CAAA,QAAA;AAAA,IACb,qBAAU,EAAA,CAAA,QAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,CAAA;AAAA,IAAA,YAAA,EAAA,IAAA,CAAA,SAAA;IAEC,UAAO,EAAA,EAAA;AAAA,GAChB,CAAA,EAAA;AAAA,IAAA,OAAA,EACEC,OASM,CAAA,MAAA;AAAA,MAAAC,kBAAA,CAPa,OAAI,UAAI,EAAA;AAAA,QAAAA,kBAAA,CAAA,KAAA,EADzB,UAMU,EAAA;AAAA,UAAA,CAAA,IAAA,CAAA,QAAA,IAAA,IAAA,CAAA,IAAA,IAAAJ,SAAA,EAJmB,EAAAC,WAAA,CAAA,kBAAA,EAAA;AAAA,YAC1B,GAAK,EAAA,CAAA;AAAA,YAAA,KAAA,EAAA,qBAAA;AAEkB,YAAA,KAAA,EAAAI,cAAA,CAAA,EAAA,KAAA,EAAA,IAAA,CAAA,SAAA,EAAA,CAAA;AAAA,WAAA,EAAA;;;;;AAE1B,WAAA,EAAA,CAAA,EAAA,CAAA,OAAA,CAAA,CAAA,IAAAC,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;UAEFC,eAiBM,CAAA,GAAA,GAAAC,eAAA,CAAA,IAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAAA;AAAA,SAAA,CAAA;AAfU,QAAAJ,kBAAA,CAAA,KAAA,EAAA,UAAA,EAAA;AAAA,UAAAK,WAAA,CACL,oBAAgB,EAAA;AAAA,YACtB,IAAM,EAAA,OAAA;AAAA,YACN,WAAO,gBAAM,KAAA,MAAA,GAAA,EAAA,GAAA,IAAA,CAAA,gBAAA;AAAA,YAAA,IAAA,EAAA,IAAA,CAAA,gBAAA,KAAA,MAAA;;;;;;AAIhB,YAAA,CAAA,EAAA,CAAA;AAAA,WAAA,EACE,CAAY,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,SAAA,CAAA,CAAA;AAAA,UAAAA,WAAA,CACL,oBAAiB,EAAA;AAAA,YACvB,IAAM,EAAA,OAAA;AAAA,YACN,WAAO,iBAAO,KAAA,MAAA,GAAA,EAAA,GAAA,IAAA,CAAA,iBAAA;AAAA,YAAA,IAAA,EAAA,IAAA,CAAA,iBAAA,KAAA,MAAA;;;;;;;;;;;aAQrBN,OAAyB,CAAA,MAAA;AAAA,MAAA,IAAA,CAAA,MAAA,CAAA,SAAA,GAAAO,UAAA,CAAA,IAAA,CAAA,MAAA,EAAA,WAAA,EAAA,EAAA,GAAA,EAAA,CAAA,EAAA,CAAA,GAAAJ,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;;;;;;;;;"}