1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- 'use strict';
- Object.defineProperty(exports, '__esModule', { value: true });
- var vue = require('vue');
- var lodashUnified = require('lodash-unified');
- 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
|