UNPKG

xdesign-vue-next

Version:

XDesign Component for vue-next

72 lines (68 loc) 2.89 kB
/** * xdesign v1.0.6 * (c) 2023 xdesign * @license MIT */ import _defineProperty from '@babel/runtime/helpers/defineProperty'; import { ref, computed } from 'vue'; import { formatLabel } from '../util/common.js'; import 'lodash/isString'; function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } var initialProps = { visible: false, trigger: "hover", showArrow: true, overlayInnerStyle: void 0, overlayClassName: void 0, attach: "body", theme: "default" }; var useSliderTooltip = function useSliderTooltip(tooltipConfig) { var tooltipRef = ref(); var showTooltip = computed({ get: function get() { return !tooltipConfig.value.tooltipProps === false; }, set: function set(val) { return val; } }); var normalizeProps = ref(_objectSpread({}, initialProps)); var toggleTooltip = function toggleTooltip(toState) { if (!showTooltip.value) return; normalizeProps.value.visible = toState; }; var validProps = computed(function () { var _tooltipConfig$value = tooltipConfig.value, vertical = _tooltipConfig$value.vertical, tooltipProps = _tooltipConfig$value.tooltipProps, label = _tooltipConfig$value.label, value = _tooltipConfig$value.value; var placement = vertical ? "right" : "top"; var content = formatLabel(label, value); if (tooltipProps instanceof Object) { if (!(tooltipProps !== null && tooltipProps !== void 0 && tooltipProps.placement)) { normalizeProps.value.placement = placement; } if (tooltipProps.content) { content = tooltipProps.content; } return _objectSpread(_objectSpread(_objectSpread({}, normalizeProps.value), tooltipProps), {}, { content: content }); } return _objectSpread(_objectSpread({}, normalizeProps.value), {}, { placement: placement, content: content }); }); return { tooltipRef: tooltipRef, tooltipProps: validProps, toggleTooltip: toggleTooltip, showTooltip: showTooltip }; }; export { useSliderTooltip }; //# sourceMappingURL=useSliderTooltip.js.map