import { Component, ContextType, createContext, SyntheticEvent, cloneElement, Ref, ReactElement, Children, ReactComponentElement, ReactInstance, isValidElement, MouseEvent, FocusEvent, Fragment, } from 'react' // import * as PropTypes from 'prop-types' // import {default as c} from 'classnames' import { codeWarningOnce, safeInvoke, addEventListener, EventListenerHandler, ifNodeContains, refNode, pickDerivedStateFromProps, isPromiseLike, isDev, } from '@befe/brick-utils' import {isFunction, isUndefined} from 'lodash-es' import {isPopper, Popper, PopperProps} from './popper' import {PopperContext} from './popper-context' // 不同于 PopperTarget,不接受模拟的 PopperJS.ReferenceObject // 因为一个模拟的 ReferenceObject 无所谓 trigger 触发方式,没有意义 type TriggerTarget = (() => HTMLElement | null | void) | HTMLElement | null export interface PopperTriggerProps { /** * 触发方式 */ type?: 'click' | 'hover' | 'focus' /** * @todo 是否禁用 * @private * * 暂不提供 * - trigger 是个无实体的 wrap,按理说应没有所谓的 disabled * - 考虑 `