UNPKG

xdesign-vue-next

Version:

XDesign Component for vue-next

100 lines (92 loc) 3.71 kB
/** * xdesign v1.0.6 * (c) 2023 xdesign * @license MIT */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var _defineProperty = require('@babel/runtime/helpers/defineProperty'); var _slicedToArray = require('@babel/runtime/helpers/slicedToArray'); var vue = require('vue'); var utils_helper = require('../utils/helper.js'); var tabs_props = require('./props.js'); var hooks_useConfig = require('../hooks/useConfig.js'); require('@babel/runtime/helpers/objectWithoutProperties'); require('lodash/camelCase'); require('lodash/isUndefined'); require('lodash/isNull'); require('lodash/isArray'); require('lodash/isNumber'); require('lodash/isString'); require('../config-provider/useConfig.js'); require('lodash/isFunction'); require('lodash/cloneDeep'); require('../config-provider/context.js'); require('lodash/mergeWith'); require('lodash/merge'); require('../_common/js/global-config/default-config.js'); require('../_common/js/global-config/locale/en_US.js'); require('../_chunks/dep-8d10b59f.js'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty); var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray); var TTabNavBar = vue.defineComponent({ props: { navs: { type: Array }, placement: tabs_props["default"].placement, value: tabs_props["default"].value }, setup: function setup(props) { var COMPONENT_NAME = hooks_useConfig.usePrefixClass("tabs"); var classPrefix = hooks_useConfig.usePrefixClass(); var navBarClass = vue.computed(function () { return ["".concat(COMPONENT_NAME.value, "__bar"), "".concat(classPrefix.value, "-is-").concat(props.placement)]; }); var navBarStyle = vue.ref(null); var getStyle = function getStyle() { var _props$navs$i$el, _ref3; var isVertical = ["left", "right"].includes(props.placement.toLowerCase()); var _ref = isVertical ? ["height", "top"] : ["width", "left"], _ref2 = _slicedToArray__default["default"](_ref, 2), sizePropName = _ref2[0], offsetPropName = _ref2[1]; var offset = 0; var i = 0; for (; i < props.navs.length; i++) { var _props$navs$i; if (props.navs[i].props.value === props.value) { break; } offset += ((_props$navs$i = props.navs[i]) === null || _props$navs$i === void 0 || (_props$navs$i = _props$navs$i.el) === null || _props$navs$i === void 0 ? void 0 : _props$navs$i["client".concat(utils_helper.firstUpperCase(sizePropName))]) || 0; } if (!props.navs[i]) return {}; return _ref3 = {}, _defineProperty__default["default"](_ref3, offsetPropName, "".concat(offset, "px")), _defineProperty__default["default"](_ref3, sizePropName, "".concat(((_props$navs$i$el = props.navs[i].el) === null || _props$navs$i$el === void 0 ? void 0 : _props$navs$i$el["client".concat(utils_helper.firstUpperCase(sizePropName))]) || 0, "px")), _ref3; }; vue.onMounted(function () { vue.nextTick(function () { navBarStyle.value = getStyle(); }); }); vue.watch([function () { return props.navs; }, function () { return props.value; }, function () { return props.placement; }], function () { vue.nextTick(function () { navBarStyle.value = getStyle(); }); }); return function () { return vue.createVNode("div", { "class": navBarClass.value, "style": navBarStyle.value }, null); }; } }); exports["default"] = TTabNavBar; //# sourceMappingURL=tab-nav-bar.js.map