UNPKG

tdesign-mobile-vue

Version:
67 lines (64 loc) 2.52 kB
/** * tdesign v1.9.3 * (c) 2025 TDesign Group * @license MIT */ var getDomWidth = function getDomWidth(dom) { return (dom === null || dom === void 0 ? void 0 : dom.offsetWidth) || 0; }; var getDomOffsetLeft = function getDomOffsetLeft(dom) { return (dom === null || dom === void 0 ? void 0 : dom.offsetLeft) || 0; }; function calculateOffset(depElement, offset, scrollPosition) { var navsContainer = depElement.navsContainer, activeTab = depElement.activeTab, rightOperations = depElement.rightOperations, leftOperations = depElement.leftOperations; var tabWidth = getDomWidth(activeTab); var wrapWidth = getDomWidth(navsContainer); var tabOffset = getDomOffsetLeft(activeTab); var rightOperationsWidth = getDomWidth(rightOperations); var leftOperationsWidth = getDomWidth(leftOperations); if (scrollPosition === "auto") { if (tabOffset - leftOperationsWidth < offset) { return tabOffset - leftOperationsWidth; } if (tabOffset + tabWidth > offset + wrapWidth - rightOperationsWidth) { return tabOffset + tabWidth - wrapWidth + rightOperationsWidth; } } else if (scrollPosition === "start") { return tabOffset - leftOperationsWidth; } else if (scrollPosition === "center") { return tabOffset + (tabWidth - wrapWidth) / 2; } else if (scrollPosition === "end") { return tabOffset + tabWidth - wrapWidth + rightOperationsWidth; } return offset; } function calcPrevOrNextOffset(elements, offset, action) { var navsContainer = elements.navsContainer, activeTab = elements.activeTab; var navsContainerWidth = getDomWidth(navsContainer); var activeTabWidth = getDomWidth(activeTab); var diffWidth = Math.abs(navsContainerWidth - activeTabWidth); if (action === "next") { return offset + diffWidth; } return offset - diffWidth; } function calcMaxOffset(elements) { var navsWrap = elements.navsWrap, navsContainer = elements.navsContainer, rightOperations = elements.rightOperations, toRightBtn = elements.toRightBtn; var wrapWidth = getDomWidth(navsWrap); var containerWidth = getDomWidth(navsContainer); var rightOperationsWidth = getDomWidth(rightOperations); var toRightBtnWidth = getDomWidth(toRightBtn); return wrapWidth - containerWidth + rightOperationsWidth - toRightBtnWidth; } function calcValidOffset(offset, maxOffset) { return Math.max(0, Math.min(offset, maxOffset)); } export { calcMaxOffset, calcPrevOrNextOffset, calcValidOffset, calculateOffset }; //# sourceMappingURL=base.js.map