UNPKG

antd

Version:

An enterprise-class UI design language and React components implementation

127 lines (126 loc) 4.06 kB
"use strict"; "use client"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var React = _interopRequireWildcard(require("react")); var _ExclamationCircleFilled = _interopRequireDefault(require("@ant-design/icons/ExclamationCircleFilled")); var _util = require("@rc-component/util"); var _clsx = require("clsx"); var _hooks = require("../_util/hooks"); var _context = require("../config-provider/context"); var _popover = _interopRequireDefault(require("../popover")); var _useMergedArrow = _interopRequireDefault(require("../tooltip/hook/useMergedArrow")); var _PurePanel = _interopRequireWildcard(require("./PurePanel")); var _style = _interopRequireDefault(require("./style")); const InternalPopconfirm = /*#__PURE__*/React.forwardRef((props, ref) => { const { prefixCls: customizePrefixCls, placement = 'top', trigger, okType = 'primary', icon = /*#__PURE__*/React.createElement(_ExclamationCircleFilled.default, null), children, overlayClassName, onOpenChange, overlayStyle, styles, arrow: popconfirmArrow, classNames, ...restProps } = props; const { getPrefixCls, className: contextClassName, style: contextStyle, classNames: contextClassNames, styles: contextStyles, arrow: contextArrow, trigger: contextTrigger } = (0, _context.useComponentConfig)('popconfirm'); const [open, setOpen] = (0, _util.useControlledState)(props.defaultOpen ?? false, props.open); const mergedArrow = (0, _useMergedArrow.default)(popconfirmArrow, contextArrow); const mergedTrigger = trigger || contextTrigger || 'click'; const settingOpen = (value, e) => { setOpen(value); onOpenChange?.(value, e); }; const close = e => { settingOpen(false, e); }; const onConfirm = e => props.onConfirm?.call(void 0, e); const onCancel = e => { settingOpen(false, e); props.onCancel?.call(void 0, e); }; const onInternalOpenChange = (value, e) => { const { disabled = false } = props; if (disabled) { return; } settingOpen(value, e); }; const prefixCls = getPrefixCls('popconfirm', customizePrefixCls); const mergedProps = { ...props, placement, trigger: mergedTrigger, okType, overlayStyle, styles, classNames }; const [mergedClassNames, mergedStyles] = (0, _hooks.useMergeSemantic)([contextClassNames, classNames], [contextStyles, styles], { props: mergedProps }); const rootClassNames = (0, _clsx.clsx)(prefixCls, contextClassName, overlayClassName, mergedClassNames.root); (0, _style.default)(prefixCls); return /*#__PURE__*/React.createElement(_popover.default, { arrow: mergedArrow, ...(0, _util.omit)(restProps, ['title']), trigger: mergedTrigger, placement: placement, onOpenChange: onInternalOpenChange, open: open, ref: ref, classNames: { root: rootClassNames, container: mergedClassNames.container, arrow: mergedClassNames.arrow }, styles: { root: { ...contextStyle, ...mergedStyles.root, ...overlayStyle }, container: mergedStyles.container, arrow: mergedStyles.arrow }, content: /*#__PURE__*/React.createElement(_PurePanel.Overlay, { okType: okType, icon: icon, ...props, prefixCls: prefixCls, close: close, onConfirm: onConfirm, onCancel: onCancel, classNames: mergedClassNames, styles: mergedStyles }), "data-popover-inject": true }, children); }); const Popconfirm = InternalPopconfirm; // We don't care debug panel /* istanbul ignore next */ Popconfirm._InternalPanelDoNotUseOrYouWillBeFired = _PurePanel.default; if (process.env.NODE_ENV !== 'production') { Popconfirm.displayName = 'Popconfirm'; } var _default = exports.default = Popconfirm;