'use strict';
|
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
var vue = require('vue');
|
var lodashUnified = require('lodash-unified');
|
require('../../../../hooks/index.js');
|
var constants = require('../constants.js');
|
var utils = require('../utils.js');
|
var index = require('../../../../hooks/use-popper/index.js');
|
|
const DEFAULT_ARROW_OFFSET = 0;
|
const usePopperContent = (props) => {
|
const { popperInstanceRef, contentRef, triggerRef, role } = vue.inject(constants.POPPER_INJECTION_KEY, void 0);
|
const arrowRef = vue.ref();
|
const arrowOffset = vue.ref();
|
const eventListenerModifier = vue.computed(() => {
|
return {
|
name: "eventListeners",
|
enabled: !!props.visible
|
};
|
});
|
const arrowModifier = vue.computed(() => {
|
var _a;
|
const arrowEl = vue.unref(arrowRef);
|
const offset = (_a = vue.unref(arrowOffset)) != null ? _a : DEFAULT_ARROW_OFFSET;
|
return {
|
name: "arrow",
|
enabled: !lodashUnified.isUndefined(arrowEl),
|
options: {
|
element: arrowEl,
|
padding: offset
|
}
|
};
|
});
|
const options = vue.computed(() => {
|
return {
|
onFirstUpdate: () => {
|
update();
|
},
|
...utils.buildPopperOptions(props, [
|
vue.unref(arrowModifier),
|
vue.unref(eventListenerModifier)
|
])
|
};
|
});
|
const computedReference = vue.computed(() => utils.unwrapMeasurableEl(props.referenceEl) || vue.unref(triggerRef));
|
const { attributes, state, styles, update, forceUpdate, instanceRef } = index.usePopper(computedReference, contentRef, options);
|
vue.watch(instanceRef, (instance) => popperInstanceRef.value = instance);
|
vue.onMounted(() => {
|
vue.watch(() => {
|
var _a;
|
return (_a = vue.unref(computedReference)) == null ? void 0 : _a.getBoundingClientRect();
|
}, () => {
|
update();
|
});
|
});
|
return {
|
attributes,
|
arrowRef,
|
contentRef,
|
instanceRef,
|
state,
|
styles,
|
role,
|
forceUpdate,
|
update
|
};
|
};
|
|
exports.usePopperContent = usePopperContent;
|
//# sourceMappingURL=use-content.js.map
|