Socket
Socket
Sign inDemoInstall

rc-tabs

Package Overview
Dependencies
19
Maintainers
7
Versions
224
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 12.5.6 to 12.5.7

es/hooks/useUpdate.d.ts

8

es/hooks/useAnimateConfig.js

@@ -10,3 +10,2 @@ import _typeof from "@babel/runtime/helpers/esm/typeof";

var mergedAnimated;
if (animated === false) {

@@ -26,9 +25,8 @@ mergedAnimated = {

}, _typeof(animated) === 'object' ? animated : {});
} // Enable tabPane animation if provide motion
}
// Enable tabPane animation if provide motion
if (mergedAnimated.tabPaneMotion && mergedAnimated.tabPane === undefined) {
mergedAnimated.tabPane = true;
}
if (!mergedAnimated.tabPaneMotion && mergedAnimated.tabPane) {

@@ -38,7 +36,5 @@ if (process.env.NODE_ENV !== 'production') {

}
mergedAnimated.tabPane = false;
}
return mergedAnimated;
}

@@ -12,25 +12,22 @@ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";

var _tabs$;
var map = new Map();
var lastOffset = tabSizes.get((_tabs$ = tabs[0]) === null || _tabs$ === void 0 ? void 0 : _tabs$.key) || DEFAULT_SIZE;
var rightOffset = lastOffset.left + lastOffset.width;
for (var i = 0; i < tabs.length; i += 1) {
var key = tabs[i].key;
var data = tabSizes.get(key); // Reuse last one when not exist yet
var data = tabSizes.get(key);
// Reuse last one when not exist yet
if (!data) {
var _tabs;
data = tabSizes.get((_tabs = tabs[i - 1]) === null || _tabs === void 0 ? void 0 : _tabs.key) || DEFAULT_SIZE;
}
var entity = map.get(key) || _objectSpread({}, data);
var entity = map.get(key) || _objectSpread({}, data); // Right
// Right
entity.right = rightOffset - entity.left - entity.width;
entity.right = rightOffset - entity.left - entity.width; // Update entity
// Update entity
map.set(key, entity);
}
return map;

@@ -37,0 +34,0 @@ }, [tabs.map(function (tab) {

@@ -5,19 +5,14 @@ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";

var stateRef = React.useRef(defaultState);
var _React$useState = React.useState({}),
_React$useState2 = _slicedToArray(_React$useState, 2),
forceUpdate = _React$useState2[1];
_React$useState2 = _slicedToArray(_React$useState, 2),
forceUpdate = _React$useState2[1];
function setState(updater) {
var newValue = typeof updater === 'function' ? updater(stateRef.current) : updater;
if (newValue !== stateRef.current) {
onChange(newValue, stateRef.current);
}
stateRef.current = newValue;
forceUpdate({});
}
return [stateRef.current, setState];
}

@@ -7,32 +7,30 @@ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";

var REFRESH_INTERVAL = 20;
var SPEED_OFF_MULTIPLE = Math.pow(0.995, REFRESH_INTERVAL); // ================================= Hook =================================
var SPEED_OFF_MULTIPLE = Math.pow(0.995, REFRESH_INTERVAL);
// ================================= Hook =================================
export default function useTouchMove(ref, onOffset) {
var _useState = useState(),
_useState2 = _slicedToArray(_useState, 2),
touchPosition = _useState2[0],
setTouchPosition = _useState2[1];
_useState2 = _slicedToArray(_useState, 2),
touchPosition = _useState2[0],
setTouchPosition = _useState2[1];
var _useState3 = useState(0),
_useState4 = _slicedToArray(_useState3, 2),
lastTimestamp = _useState4[0],
setLastTimestamp = _useState4[1];
_useState4 = _slicedToArray(_useState3, 2),
lastTimestamp = _useState4[0],
setLastTimestamp = _useState4[1];
var _useState5 = useState(0),
_useState6 = _slicedToArray(_useState5, 2),
lastTimeDiff = _useState6[0],
setLastTimeDiff = _useState6[1];
_useState6 = _slicedToArray(_useState5, 2),
lastTimeDiff = _useState6[0],
setLastTimeDiff = _useState6[1];
var _useState7 = useState(),
_useState8 = _slicedToArray(_useState7, 2),
lastOffset = _useState8[0],
setLastOffset = _useState8[1];
_useState8 = _slicedToArray(_useState7, 2),
lastOffset = _useState8[0],
setLastOffset = _useState8[1];
var motionRef = useRef();
var motionRef = useRef(); // ========================= Events =========================
// ========================= Events =========================
// >>> Touch events
function onTouchStart(e) {
var _e$touches$ = e.touches[0],
screenX = _e$touches$.screenX,
screenY = _e$touches$.screenY;
screenX = _e$touches$.screenX,
screenY = _e$touches$.screenY;
setTouchPosition({

@@ -44,3 +42,2 @@ x: screenX,

}
function onTouchMove(e) {

@@ -50,4 +47,4 @@ if (!touchPosition) return;

var _e$touches$2 = e.touches[0],
screenX = _e$touches$2.screenX,
screenY = _e$touches$2.screenY;
screenX = _e$touches$2.screenX,
screenY = _e$touches$2.screenY;
setTouchPosition({

@@ -68,8 +65,8 @@ x: screenX,

}
function onTouchEnd() {
if (!touchPosition) return;
setTouchPosition(null);
setLastOffset(null); // Swipe if needed
setLastOffset(null);
// Swipe if needed
if (lastOffset) {

@@ -79,4 +76,5 @@ var distanceX = lastOffset.x / lastTimeDiff;

var absX = Math.abs(distanceX);
var absY = Math.abs(distanceY); // Skip swipe if low distance
var absY = Math.abs(distanceY);
// Skip swipe if low distance
if (Math.max(absX, absY) < MIN_SWIPE_DISTANCE) return;

@@ -90,3 +88,2 @@ var currentX = distanceX;

}
currentX *= SPEED_OFF_MULTIPLE;

@@ -97,15 +94,14 @@ currentY *= SPEED_OFF_MULTIPLE;

}
} // >>> Wheel event
}
// >>> Wheel event
var lastWheelDirectionRef = useRef();
function onWheel(e) {
var deltaX = e.deltaX,
deltaY = e.deltaY; // Convert both to x & y since wheel only happened on PC
deltaY = e.deltaY;
// Convert both to x & y since wheel only happened on PC
var mixed = 0;
var absX = Math.abs(deltaX);
var absY = Math.abs(deltaY);
if (absX === absY) {

@@ -120,9 +116,8 @@ mixed = lastWheelDirectionRef.current === 'x' ? deltaX : deltaY;

}
if (onOffset(-mixed, -mixed)) {
e.preventDefault();
}
} // ========================= Effect =========================
}
// ========================= Effect =========================
var touchEventsRef = useRef(null);

@@ -139,15 +134,11 @@ touchEventsRef.current = {

}
function onProxyTouchMove(e) {
touchEventsRef.current.onTouchMove(e);
}
function onProxyTouchEnd(e) {
touchEventsRef.current.onTouchEnd(e);
}
function onProxyWheel(e) {
touchEventsRef.current.onWheel(e);
}
document.addEventListener('touchmove', onProxyTouchMove, {

@@ -158,4 +149,5 @@ passive: false

passive: false
}); // No need to clean up since element removed
});
// No need to clean up since element removed
ref.current.addEventListener('touchstart', onProxyTouchStart, {

@@ -162,0 +154,0 @@ passive: false

@@ -11,8 +11,7 @@ import { useMemo } from 'react';

var tabs = _ref.tabs,
tabPosition = _ref.tabPosition,
rtl = _ref.rtl;
tabPosition = _ref.tabPosition,
rtl = _ref.rtl;
var charUnit;
var position;
var transformSize;
if (['top', 'bottom'].includes(tabPosition)) {

@@ -27,3 +26,2 @@ charUnit = 'width';

}
return useMemo(function () {

@@ -33,9 +31,6 @@ if (!tabs.length) {

}
var len = tabs.length;
var endIndex = len;
for (var i = 0; i < len; i += 1) {
var offset = tabOffsets.get(tabs[i].key) || DEFAULT_SIZE;
if (offset[position] + offset[charUnit] > transformSize + visibleTabContentValue) {

@@ -46,8 +41,5 @@ endIndex = i - 1;

}
var startIndex = 0;
for (var _i = len - 1; _i >= 0; _i -= 1) {
var _offset = tabOffsets.get(tabs[_i].key) || DEFAULT_SIZE;
if (_offset[position] < transformSize) {

@@ -58,3 +50,2 @@ startIndex = _i + 1;

}
return [startIndex, endIndex];

@@ -61,0 +52,0 @@ }, [tabOffsets, visibleTabContentValue, tabContentSizeValue, addNodeSizeValue, operationNodeSizeValue, transformSize, tabPosition, tabs.map(function (tab) {

import * as React from 'react';
function AddButton(_ref, ref) {
var prefixCls = _ref.prefixCls,
editable = _ref.editable,
locale = _ref.locale,
style = _ref.style;
editable = _ref.editable,
locale = _ref.locale,
style = _ref.style;
if (!editable || editable.showAdd === false) {
return null;
}
return /*#__PURE__*/React.createElement("button", {

@@ -26,3 +23,2 @@ ref: ref,

}
export default /*#__PURE__*/React.forwardRef(AddButton);

@@ -5,9 +5,9 @@ import _typeof from "@babel/runtime/helpers/esm/typeof";

var position = _ref.position,
prefixCls = _ref.prefixCls,
extra = _ref.extra;
prefixCls = _ref.prefixCls,
extra = _ref.extra;
if (!extra) return null;
var content; // Parse extra
var content;
// Parse extra
var assertExtra = {};
if (_typeof(extra) === 'object' && ! /*#__PURE__*/React.isValidElement(extra)) {

@@ -18,11 +18,8 @@ assertExtra = extra;

}
if (position === 'right') {
content = assertExtra.right;
}
if (position === 'left') {
content = assertExtra.left;
}
return content ? /*#__PURE__*/React.createElement("div", {

@@ -33,7 +30,5 @@ className: "".concat(prefixCls, "-extra-content"),

});
if (process.env.NODE_ENV !== 'production') {
ExtraContent.displayName = 'ExtraContent';
}
export default ExtraContent;

@@ -8,2 +8,3 @@ import _extends from "@babel/runtime/helpers/esm/extends";

import ResizeObserver from 'rc-resize-observer';
import useEvent from "rc-util/es/hooks/useEvent";
import raf from "rc-util/es/raf";

@@ -14,5 +15,5 @@ import { useComposeRef } from "rc-util/es/ref";

import useOffsets from "../hooks/useOffsets";
import useRaf, { useRafState } from "../hooks/useRaf";
import useSyncState from "../hooks/useSyncState";
import useTouchMove from "../hooks/useTouchMove";
import useUpdate, { useUpdateState } from "../hooks/useUpdate";
import useVisibleRange from "../hooks/useVisibleRange";

@@ -25,42 +26,36 @@ import TabContext from "../TabContext";

import TabNode from "./TabNode";
var getSize = function getSize(refObj) {
var _ref = refObj.current || {},
_ref$offsetWidth = _ref.offsetWidth,
offsetWidth = _ref$offsetWidth === void 0 ? 0 : _ref$offsetWidth,
_ref$offsetHeight = _ref.offsetHeight,
offsetHeight = _ref$offsetHeight === void 0 ? 0 : _ref$offsetHeight;
_ref$offsetWidth = _ref.offsetWidth,
offsetWidth = _ref$offsetWidth === void 0 ? 0 : _ref$offsetWidth,
_ref$offsetHeight = _ref.offsetHeight,
offsetHeight = _ref$offsetHeight === void 0 ? 0 : _ref$offsetHeight;
return [offsetWidth, offsetHeight];
};
/**
* Convert `SizeInfo` to unit value. Such as [123, 456] with `top` position get `123`
*/
var getUnitValue = function getUnitValue(size, tabPositionTopOrBottom) {
return size[tabPositionTopOrBottom ? 0 : 1];
};
function TabNavList(props, ref) {
var _classNames;
var _React$useContext = React.useContext(TabContext),
prefixCls = _React$useContext.prefixCls,
tabs = _React$useContext.tabs;
prefixCls = _React$useContext.prefixCls,
tabs = _React$useContext.tabs;
var className = props.className,
style = props.style,
id = props.id,
animated = props.animated,
activeKey = props.activeKey,
rtl = props.rtl,
extra = props.extra,
editable = props.editable,
locale = props.locale,
tabPosition = props.tabPosition,
tabBarGutter = props.tabBarGutter,
children = props.children,
onTabClick = props.onTabClick,
onTabScroll = props.onTabScroll;
style = props.style,
id = props.id,
animated = props.animated,
activeKey = props.activeKey,
rtl = props.rtl,
extra = props.extra,
editable = props.editable,
locale = props.locale,
tabPosition = props.tabPosition,
tabBarGutter = props.tabBarGutter,
children = props.children,
onTabClick = props.onTabClick,
onTabScroll = props.onTabScroll;
var containerRef = useRef();

@@ -72,55 +67,49 @@ var extraLeftRef = useRef();

var operationsRef = useRef();
var innerAddButtonRef = useRef(); // const [getBtnRef, removeBtnRef] = useRefs<HTMLDivElement>();
var innerAddButtonRef = useRef();
// const [getBtnRef, removeBtnRef] = useRefs<HTMLDivElement>();
var tabPositionTopOrBottom = tabPosition === 'top' || tabPosition === 'bottom';
var _useSyncState = useSyncState(0, function (next, prev) {
if (tabPositionTopOrBottom && onTabScroll) {
onTabScroll({
direction: next > prev ? 'left' : 'right'
});
}
}),
_useSyncState2 = _slicedToArray(_useSyncState, 2),
transformLeft = _useSyncState2[0],
setTransformLeft = _useSyncState2[1];
if (tabPositionTopOrBottom && onTabScroll) {
onTabScroll({
direction: next > prev ? 'left' : 'right'
});
}
}),
_useSyncState2 = _slicedToArray(_useSyncState, 2),
transformLeft = _useSyncState2[0],
setTransformLeft = _useSyncState2[1];
var _useSyncState3 = useSyncState(0, function (next, prev) {
if (!tabPositionTopOrBottom && onTabScroll) {
onTabScroll({
direction: next > prev ? 'top' : 'bottom'
});
}
}),
_useSyncState4 = _slicedToArray(_useSyncState3, 2),
transformTop = _useSyncState4[0],
setTransformTop = _useSyncState4[1];
if (!tabPositionTopOrBottom && onTabScroll) {
onTabScroll({
direction: next > prev ? 'top' : 'bottom'
});
}
}),
_useSyncState4 = _slicedToArray(_useSyncState3, 2),
transformTop = _useSyncState4[0],
setTransformTop = _useSyncState4[1];
var _useState = useState([0, 0]),
_useState2 = _slicedToArray(_useState, 2),
containerExcludeExtraSize = _useState2[0],
setContainerExcludeExtraSize = _useState2[1];
_useState2 = _slicedToArray(_useState, 2),
containerExcludeExtraSize = _useState2[0],
setContainerExcludeExtraSize = _useState2[1];
var _useState3 = useState([0, 0]),
_useState4 = _slicedToArray(_useState3, 2),
tabContentSize = _useState4[0],
setTabContentSize = _useState4[1];
_useState4 = _slicedToArray(_useState3, 2),
tabContentSize = _useState4[0],
setTabContentSize = _useState4[1];
var _useState5 = useState([0, 0]),
_useState6 = _slicedToArray(_useState5, 2),
addSize = _useState6[0],
setAddSize = _useState6[1];
_useState6 = _slicedToArray(_useState5, 2),
addSize = _useState6[0],
setAddSize = _useState6[1];
var _useState7 = useState([0, 0]),
_useState8 = _slicedToArray(_useState7, 2),
operationSize = _useState8[0],
setOperationSize = _useState8[1];
_useState8 = _slicedToArray(_useState7, 2),
operationSize = _useState8[0],
setOperationSize = _useState8[1];
var _useUpdateState = useUpdateState(new Map()),
_useUpdateState2 = _slicedToArray(_useUpdateState, 2),
tabSizes = _useUpdateState2[0],
setTabSizes = _useUpdateState2[1];
var tabOffsets = useOffsets(tabs, tabSizes, tabContentSize[0]);
var _useRafState = useRafState(new Map()),
_useRafState2 = _slicedToArray(_useRafState, 2),
tabSizes = _useRafState2[0],
setTabSizes = _useRafState2[1];
var tabOffsets = useOffsets(tabs, tabSizes, tabContentSize[0]); // ========================== Unit =========================
// ========================== Unit =========================
var containerExcludeExtraSizeValue = getUnitValue(containerExcludeExtraSize, tabPositionTopOrBottom);

@@ -131,8 +120,8 @@ var tabContentSizeValue = getUnitValue(tabContentSize, tabPositionTopOrBottom);

var needScroll = containerExcludeExtraSizeValue < tabContentSizeValue + addSizeValue;
var visibleTabContentValue = needScroll ? containerExcludeExtraSizeValue - operationSizeValue : containerExcludeExtraSizeValue - addSizeValue; // ========================== Util =========================
var visibleTabContentValue = needScroll ? containerExcludeExtraSizeValue - operationSizeValue : containerExcludeExtraSizeValue - addSizeValue;
// ========================== Util =========================
var operationsHiddenClassName = "".concat(prefixCls, "-nav-operations-hidden");
var transformMin = 0;
var transformMax = 0;
if (!tabPositionTopOrBottom) {

@@ -148,3 +137,2 @@ transformMin = Math.min(0, visibleTabContentValue - tabContentSizeValue);

}
function alignInRange(value) {

@@ -154,26 +142,20 @@ if (value < transformMin) {

}
if (value > transformMax) {
return transformMax;
}
return value;
} // ========================= Mobile ========================
}
// ========================= Mobile ========================
var touchMovingRef = useRef();
var _useState9 = useState(),
_useState10 = _slicedToArray(_useState9, 2),
lockAnimation = _useState10[0],
setLockAnimation = _useState10[1];
_useState10 = _slicedToArray(_useState9, 2),
lockAnimation = _useState10[0],
setLockAnimation = _useState10[1];
function doLockAnimation() {
setLockAnimation(Date.now());
}
function clearTouchMoving() {
window.clearTimeout(touchMovingRef.current);
}
useTouchMove(tabsWrapperRef, function (offsetX, offsetY) {

@@ -185,9 +167,8 @@ function doMove(setState, offset) {

});
} // Skip scroll if place is enough
}
if (containerExcludeExtraSizeValue >= tabContentSizeValue) {
// Skip scroll if place is enough
if (!needScroll) {
return false;
}
if (tabPositionTopOrBottom) {

@@ -198,3 +179,2 @@ doMove(setTransformLeft, offsetX);

}
clearTouchMoving();

@@ -206,3 +186,2 @@ doLockAnimation();

clearTouchMoving();
if (lockAnimation) {

@@ -213,21 +192,26 @@ touchMovingRef.current = window.setTimeout(function () {

}
return clearTouchMoving;
}, [lockAnimation]);
return clearTouchMoving;
}, [lockAnimation]); // ===================== Visible Range =====================
// ===================== Visible Range =====================
// Render tab node & collect tab offset
var _useVisibleRange = useVisibleRange(tabOffsets,
// Container
visibleTabContentValue,
// Transform
tabPositionTopOrBottom ? transformLeft : transformTop,
// Tabs
tabContentSizeValue,
// Add
addSizeValue,
// Operation
operationSizeValue, _objectSpread(_objectSpread({}, props), {}, {
tabs: tabs
})),
_useVisibleRange2 = _slicedToArray(_useVisibleRange, 2),
visibleStart = _useVisibleRange2[0],
visibleEnd = _useVisibleRange2[1];
var _useVisibleRange = useVisibleRange(tabOffsets, // Container
visibleTabContentValue, // Transform
tabPositionTopOrBottom ? transformLeft : transformTop, // Tabs
tabContentSizeValue, // Add
addSizeValue, // Operation
operationSizeValue, _objectSpread(_objectSpread({}, props), {}, {
tabs: tabs
})),
_useVisibleRange2 = _slicedToArray(_useVisibleRange, 2),
visibleStart = _useVisibleRange2[0],
visibleEnd = _useVisibleRange2[1]; // ========================= Scroll ========================
var scrollToTab = function scrollToTab() {
// ========================= Scroll ========================
var scrollToTab = useEvent(function () {
var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : activeKey;

@@ -241,7 +225,7 @@ var tabOffset = tabOffsets.get(key) || {

};
if (tabPositionTopOrBottom) {
// ============ Align with top & bottom ============
var newTransform = transformLeft; // RTL
var newTransform = transformLeft;
// RTL
if (rtl) {

@@ -253,3 +237,4 @@ if (tabOffset.right < transformLeft) {

}
} // LTR
}
// LTR
else if (tabOffset.left < -transformLeft) {

@@ -260,3 +245,2 @@ newTransform = -tabOffset.left;

}
setTransformTop(0);

@@ -267,3 +251,2 @@ setTransformLeft(alignInRange(newTransform));

var _newTransform = transformTop;
if (tabOffset.top < -transformTop) {

@@ -274,11 +257,9 @@ _newTransform = -tabOffset.top;

}
setTransformLeft(0);
setTransformTop(alignInRange(_newTransform));
}
}; // ========================== Tab ==========================
});
// ========================== Tab ==========================
var tabNodeStyle = {};
if (tabPosition === 'top' || tabPosition === 'bottom') {

@@ -289,3 +270,2 @@ tabNodeStyle[rtl ? 'marginRight' : 'marginLeft'] = tabBarGutter;

}
var tabNodes = tabs.map(function (tab, i) {

@@ -298,4 +278,3 @@ var key = tab.key;

tab: tab
/* first node should not have margin left */
,
/* first node should not have margin left */,
style: i === 0 ? undefined : tabNodeStyle,

@@ -313,17 +292,15 @@ closable: tab.closable,

doLockAnimation();
if (!tabsWrapperRef.current) {
return;
} // Focus element will make scrollLeft change which we should reset back
}
// Focus element will make scrollLeft change which we should reset back
if (!rtl) {
tabsWrapperRef.current.scrollLeft = 0;
}
tabsWrapperRef.current.scrollTop = 0;
}
});
}); // Update buttons records
});
// Update buttons records
var updateTabSizes = function updateTabSizes() {

@@ -334,6 +311,4 @@ return setTabSizes(function () {

var _tabListRef$current;
var key = _ref2.key;
var btnNode = (_tabListRef$current = tabListRef.current) === null || _tabListRef$current === void 0 ? void 0 : _tabListRef$current.querySelector("[data-node-key=\"".concat(key, "\"]"));
if (btnNode) {

@@ -351,3 +326,2 @@ newSizes.set(key, {

};
useEffect(function () {

@@ -358,3 +332,3 @@ updateTabSizes();

}).join('_')]);
var onListHolderResize = useRaf(function () {
var onListHolderResize = useUpdate(function () {
// Update wrapper records

@@ -368,30 +342,31 @@ var containerSize = getSize(containerRef);

var newOperationSize = getSize(operationsRef);
setOperationSize(newOperationSize); // Which includes add button size
setOperationSize(newOperationSize);
// Which includes add button size
var tabContentFullSize = getSize(tabListRef);
setTabContentSize([tabContentFullSize[0] - newAddSize[0], tabContentFullSize[1] - newAddSize[1]]); // Update buttons records
setTabContentSize([tabContentFullSize[0] - newAddSize[0], tabContentFullSize[1] - newAddSize[1]]);
// Update buttons records
updateTabSizes();
}); // ======================== Dropdown =======================
});
// ======================== Dropdown =======================
var startHiddenTabs = tabs.slice(0, visibleStart);
var endHiddenTabs = tabs.slice(visibleEnd + 1);
var hiddenTabs = [].concat(_toConsumableArray(startHiddenTabs), _toConsumableArray(endHiddenTabs)); // =================== Link & Operations ===================
var hiddenTabs = [].concat(_toConsumableArray(startHiddenTabs), _toConsumableArray(endHiddenTabs));
// =================== Link & Operations ===================
var _useState11 = useState(),
_useState12 = _slicedToArray(_useState11, 2),
inkStyle = _useState12[0],
setInkStyle = _useState12[1];
_useState12 = _slicedToArray(_useState11, 2),
inkStyle = _useState12[0],
setInkStyle = _useState12[1];
var activeTabOffset = tabOffsets.get(activeKey);
var activeTabOffset = tabOffsets.get(activeKey); // Delay set ink style to avoid remove tab blink
// Delay set ink style to avoid remove tab blink
var inkBarRafRef = useRef();
function cleanInkBarRaf() {
raf.cancel(inkBarRafRef.current);
}
useEffect(function () {
var newInkStyle = {};
if (activeTabOffset) {

@@ -404,3 +379,2 @@ if (tabPositionTopOrBottom) {

}
newInkStyle.width = activeTabOffset.width;

@@ -412,3 +386,2 @@ } else {

}
cleanInkBarRaf();

@@ -419,12 +392,17 @@ inkBarRafRef.current = raf(function () {

return cleanInkBarRaf;
}, [activeTabOffset, tabPositionTopOrBottom, rtl]); // ========================= Effect ========================
}, [activeTabOffset, tabPositionTopOrBottom, rtl]);
// ========================= Effect ========================
useEffect(function () {
scrollToTab(); // eslint-disable-next-line
}, [activeKey, stringify(activeTabOffset), stringify(tabOffsets), tabPositionTopOrBottom]); // Should recalculate when rtl changed
scrollToTab();
// eslint-disable-next-line
}, [activeKey, transformMin, transformMax, stringify(activeTabOffset), stringify(tabOffsets), tabPositionTopOrBottom]);
// Should recalculate when rtl changed
useEffect(function () {
onListHolderResize(); // eslint-disable-next-line
}, [rtl]); // ========================= Render ========================
onListHolderResize();
// eslint-disable-next-line
}, [rtl]);
// ========================= Render ========================
var hasDropdown = !!hiddenTabs.length;

@@ -436,16 +414,14 @@ var wrapPrefix = "".concat(prefixCls, "-nav-wrap");

var pingBottom;
if (tabPositionTopOrBottom) {
if (rtl) {
pingRight = transformLeft > 0;
pingLeft = transformLeft + containerExcludeExtraSizeValue < tabContentSizeValue;
pingLeft = transformLeft !== transformMax;
} else {
pingLeft = transformLeft < 0;
pingRight = -transformLeft + containerExcludeExtraSizeValue < tabContentSizeValue;
pingRight = transformLeft !== transformMin;
}
} else {
pingTop = transformTop < 0;
pingBottom = -transformTop + containerExcludeExtraSizeValue < tabContentSizeValue;
pingBottom = transformTop !== transformMin;
}
return /*#__PURE__*/React.createElement(ResizeObserver, {

@@ -452,0 +428,0 @@ onResize: onListHolderResize

@@ -10,33 +10,29 @@ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";

import AddButton from "./AddButton";
function OperationNode(_ref, ref) {
var prefixCls = _ref.prefixCls,
id = _ref.id,
tabs = _ref.tabs,
locale = _ref.locale,
mobile = _ref.mobile,
_ref$moreIcon = _ref.moreIcon,
moreIcon = _ref$moreIcon === void 0 ? 'More' : _ref$moreIcon,
moreTransitionName = _ref.moreTransitionName,
style = _ref.style,
className = _ref.className,
editable = _ref.editable,
tabBarGutter = _ref.tabBarGutter,
rtl = _ref.rtl,
removeAriaLabel = _ref.removeAriaLabel,
onTabClick = _ref.onTabClick,
getPopupContainer = _ref.getPopupContainer,
popupClassName = _ref.popupClassName;
id = _ref.id,
tabs = _ref.tabs,
locale = _ref.locale,
mobile = _ref.mobile,
_ref$moreIcon = _ref.moreIcon,
moreIcon = _ref$moreIcon === void 0 ? 'More' : _ref$moreIcon,
moreTransitionName = _ref.moreTransitionName,
style = _ref.style,
className = _ref.className,
editable = _ref.editable,
tabBarGutter = _ref.tabBarGutter,
rtl = _ref.rtl,
removeAriaLabel = _ref.removeAriaLabel,
onTabClick = _ref.onTabClick,
getPopupContainer = _ref.getPopupContainer,
popupClassName = _ref.popupClassName;
// ======================== Dropdown ========================
var _useState = useState(false),
_useState2 = _slicedToArray(_useState, 2),
open = _useState2[0],
setOpen = _useState2[1];
_useState2 = _slicedToArray(_useState, 2),
open = _useState2[0],
setOpen = _useState2[1];
var _useState3 = useState(null),
_useState4 = _slicedToArray(_useState3, 2),
selectedKey = _useState4[0],
setSelectedKey = _useState4[1];
_useState4 = _slicedToArray(_useState3, 2),
selectedKey = _useState4[0],
setSelectedKey = _useState4[1];
var popupId = "".concat(id, "-more-popup");

@@ -46,3 +42,2 @@ var dropdownPrefix = "".concat(prefixCls, "-dropdown");

var dropdownAriaLabel = locale === null || locale === void 0 ? void 0 : locale.dropdownAriaLabel;
function onRemoveTab(event, key) {

@@ -56,7 +51,6 @@ event.preventDefault();

}
var menu = /*#__PURE__*/React.createElement(Menu, {
onClick: function onClick(_ref2) {
var key = _ref2.key,
domEvent = _ref2.domEvent;
domEvent = _ref2.domEvent;
onTabClick(key, domEvent);

@@ -91,3 +85,2 @@ setOpen(false);

}));
function selectOffset(offset) {

@@ -101,7 +94,5 @@ var enabledTabs = tabs.filter(function (tab) {

var len = enabledTabs.length;
for (var i = 0; i < len; i += 1) {
selectedIndex = (selectedIndex + offset + len) % len;
var tab = enabledTabs[selectedIndex];
if (!tab.disabled) {

@@ -113,6 +104,4 @@ setSelectedKey(tab.key);

}
function onKeyDown(e) {
var which = e.which;
if (!open) {

@@ -123,6 +112,4 @@ if ([KeyCode.DOWN, KeyCode.SPACE, KeyCode.ENTER].includes(which)) {

}
return;
}
switch (which) {

@@ -133,3 +120,2 @@ case KeyCode.UP:

break;
case KeyCode.DOWN:

@@ -139,7 +125,5 @@ selectOffset(1);

break;
case KeyCode.ESC:
setOpen(false);
break;
case KeyCode.SPACE:

@@ -150,9 +134,8 @@ case KeyCode.ENTER:

}
} // ========================= Effect =========================
}
// ========================= Effect =========================
useEffect(function () {
// We use query element here to avoid React strict warning
var ele = document.getElementById(selectedItemId);
if (ele && ele.scrollIntoView) {

@@ -166,6 +149,6 @@ ele.scrollIntoView(false);

}
}, [open]); // ========================= Render =========================
}, [open]);
// ========================= Render =========================
var moreStyle = _defineProperty({}, rtl ? 'marginRight' : 'marginLeft', tabBarGutter);
if (!tabs.length) {

@@ -175,3 +158,2 @@ moreStyle.visibility = 'hidden';

}
var overlayClassName = classNames(_defineProperty({}, "".concat(dropdownPrefix, "-rtl"), rtl));

@@ -211,5 +193,5 @@ var moreNode = mobile ? null : /*#__PURE__*/React.createElement(Dropdown, {

}
export default /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(OperationNode), function (_, next) {
return (// https://github.com/ant-design/ant-design/issues/32544
return (
// https://github.com/ant-design/ant-design/issues/32544
// We'd better remove syntactic sugar in `rc-menu` since this has perf issue

@@ -216,0 +198,0 @@ next.tabMoving

@@ -5,24 +5,21 @@ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";

import * as React from 'react';
function TabNode(_ref) {
var _classNames;
var prefixCls = _ref.prefixCls,
id = _ref.id,
active = _ref.active,
_ref$tab = _ref.tab,
key = _ref$tab.key,
label = _ref$tab.label,
disabled = _ref$tab.disabled,
closeIcon = _ref$tab.closeIcon,
closable = _ref.closable,
renderWrapper = _ref.renderWrapper,
removeAriaLabel = _ref.removeAriaLabel,
editable = _ref.editable,
onClick = _ref.onClick,
onFocus = _ref.onFocus,
style = _ref.style;
id = _ref.id,
active = _ref.active,
_ref$tab = _ref.tab,
key = _ref$tab.key,
label = _ref$tab.label,
disabled = _ref$tab.disabled,
closeIcon = _ref$tab.closeIcon,
closable = _ref.closable,
renderWrapper = _ref.renderWrapper,
removeAriaLabel = _ref.removeAriaLabel,
editable = _ref.editable,
onClick = _ref.onClick,
onFocus = _ref.onFocus,
style = _ref.style;
var tabPrefix = "".concat(prefixCls, "-tab");
var removable = editable && closable !== false && !disabled;
function onInternalClick(e) {

@@ -32,6 +29,4 @@ if (disabled) {

}
onClick(e);
}
function onRemoveTab(event) {

@@ -45,5 +40,5 @@ event.preventDefault();

}
var node = /*#__PURE__*/React.createElement("div", {
key: key // ref={ref}
key: key
// ref={ref}
,

@@ -85,3 +80,2 @@ "data-node-key": key,

}
export default TabNode;

@@ -5,4 +5,5 @@ import _extends from "@babel/runtime/helpers/esm/extends";

var _excluded = ["renderTabBar"],
_excluded2 = ["label", "key"];
_excluded2 = ["label", "key"];
// zombieJ: To compatible with `renderTabBar` usage.
import * as React from 'react';

@@ -15,7 +16,5 @@ import TabNavList from '.';

var renderTabBar = _ref.renderTabBar,
restProps = _objectWithoutProperties(_ref, _excluded);
restProps = _objectWithoutProperties(_ref, _excluded);
var _React$useContext = React.useContext(TabContext),
tabs = _React$useContext.tabs;
tabs = _React$useContext.tabs;
if (renderTabBar) {

@@ -26,5 +25,4 @@ var tabNavBarProps = _objectSpread(_objectSpread({}, restProps), {}, {

var label = _ref2.label,
key = _ref2.key,
restTabProps = _objectWithoutProperties(_ref2, _excluded2);
key = _ref2.key,
restTabProps = _objectWithoutProperties(_ref2, _excluded2);
return /*#__PURE__*/React.createElement(TabPane, _extends({

@@ -37,7 +35,5 @@ tab: label,

});
return renderTabBar(tabNavBarProps, TabNavList);
}
return /*#__PURE__*/React.createElement(TabNavList, restProps);
}

@@ -13,11 +13,9 @@ import _extends from "@babel/runtime/helpers/esm/extends";

var id = _ref.id,
activeKey = _ref.activeKey,
animated = _ref.animated,
tabPosition = _ref.tabPosition,
destroyInactiveTabPane = _ref.destroyInactiveTabPane;
activeKey = _ref.activeKey,
animated = _ref.animated,
tabPosition = _ref.tabPosition,
destroyInactiveTabPane = _ref.destroyInactiveTabPane;
var _React$useContext = React.useContext(TabContext),
prefixCls = _React$useContext.prefixCls,
tabs = _React$useContext.tabs;
prefixCls = _React$useContext.prefixCls,
tabs = _React$useContext.tabs;
var tabPaneAnimated = animated.tabPane;

@@ -31,7 +29,6 @@ var tabPanePrefixCls = "".concat(prefixCls, "-tabpane");

var key = _ref2.key,
forceRender = _ref2.forceRender,
paneStyle = _ref2.style,
paneClassName = _ref2.className,
restTabProps = _objectWithoutProperties(_ref2, _excluded);
forceRender = _ref2.forceRender,
paneStyle = _ref2.style,
paneClassName = _ref2.className,
restTabProps = _objectWithoutProperties(_ref2, _excluded);
var active = key === activeKey;

@@ -46,3 +43,3 @@ return /*#__PURE__*/React.createElement(CSSMotion, _extends({

var motionStyle = _ref3.style,
motionClassName = _ref3.className;
motionClassName = _ref3.className;
return /*#__PURE__*/React.createElement(TabPane, _extends({}, restTabProps, {

@@ -49,0 +46,0 @@ prefixCls: tabPanePrefixCls,

@@ -5,8 +5,8 @@ import * as React from 'react';

var prefixCls = _ref.prefixCls,
className = _ref.className,
style = _ref.style,
id = _ref.id,
active = _ref.active,
tabKey = _ref.tabKey,
children = _ref.children;
className = _ref.className,
style = _ref.style,
id = _ref.id,
active = _ref.active,
tabKey = _ref.tabKey,
children = _ref.children;
return /*#__PURE__*/React.createElement("div", {

@@ -23,7 +23,5 @@ id: id && "".concat(id, "-panel-").concat(tabKey),

});
if (process.env.NODE_ENV !== 'production') {
TabPane.displayName = 'TabPane';
}
export default TabPane;

@@ -18,2 +18,3 @@ import _extends from "@babel/runtime/helpers/esm/extends";

import useAnimateConfig from "./hooks/useAnimateConfig";
/**

@@ -28,36 +29,33 @@ * Should added antd:

*/
// Used for accessibility
var uuid = 0;
function Tabs(_ref, ref) {
var _classNames;
var id = _ref.id,
_ref$prefixCls = _ref.prefixCls,
prefixCls = _ref$prefixCls === void 0 ? 'rc-tabs' : _ref$prefixCls,
className = _ref.className,
items = _ref.items,
direction = _ref.direction,
activeKey = _ref.activeKey,
defaultActiveKey = _ref.defaultActiveKey,
editable = _ref.editable,
animated = _ref.animated,
_ref$tabPosition = _ref.tabPosition,
tabPosition = _ref$tabPosition === void 0 ? 'top' : _ref$tabPosition,
tabBarGutter = _ref.tabBarGutter,
tabBarStyle = _ref.tabBarStyle,
tabBarExtraContent = _ref.tabBarExtraContent,
locale = _ref.locale,
moreIcon = _ref.moreIcon,
moreTransitionName = _ref.moreTransitionName,
destroyInactiveTabPane = _ref.destroyInactiveTabPane,
renderTabBar = _ref.renderTabBar,
onChange = _ref.onChange,
onTabClick = _ref.onTabClick,
onTabScroll = _ref.onTabScroll,
getPopupContainer = _ref.getPopupContainer,
popupClassName = _ref.popupClassName,
restProps = _objectWithoutProperties(_ref, _excluded);
_ref$prefixCls = _ref.prefixCls,
prefixCls = _ref$prefixCls === void 0 ? 'rc-tabs' : _ref$prefixCls,
className = _ref.className,
items = _ref.items,
direction = _ref.direction,
activeKey = _ref.activeKey,
defaultActiveKey = _ref.defaultActiveKey,
editable = _ref.editable,
animated = _ref.animated,
_ref$tabPosition = _ref.tabPosition,
tabPosition = _ref$tabPosition === void 0 ? 'top' : _ref$tabPosition,
tabBarGutter = _ref.tabBarGutter,
tabBarStyle = _ref.tabBarStyle,
tabBarExtraContent = _ref.tabBarExtraContent,
locale = _ref.locale,
moreIcon = _ref.moreIcon,
moreTransitionName = _ref.moreTransitionName,
destroyInactiveTabPane = _ref.destroyInactiveTabPane,
renderTabBar = _ref.renderTabBar,
onChange = _ref.onChange,
onTabClick = _ref.onTabClick,
onTabScroll = _ref.onTabScroll,
getPopupContainer = _ref.getPopupContainer,
popupClassName = _ref.popupClassName,
restProps = _objectWithoutProperties(_ref, _excluded);
var tabs = React.useMemo(function () {

@@ -69,36 +67,35 @@ return (items || []).filter(function (item) {

var rtl = direction === 'rtl';
var mergedAnimated = useAnimateConfig(animated); // ======================== Mobile ========================
var mergedAnimated = useAnimateConfig(animated);
// ======================== Mobile ========================
var _useState = useState(false),
_useState2 = _slicedToArray(_useState, 2),
mobile = _useState2[0],
setMobile = _useState2[1];
_useState2 = _slicedToArray(_useState, 2),
mobile = _useState2[0],
setMobile = _useState2[1];
useEffect(function () {
// Only update on the client side
setMobile(isMobile());
}, []); // ====================== Active Key ======================
}, []);
// ====================== Active Key ======================
var _useMergedState = useMergedState(function () {
var _tabs$;
return (_tabs$ = tabs[0]) === null || _tabs$ === void 0 ? void 0 : _tabs$.key;
}, {
value: activeKey,
defaultValue: defaultActiveKey
}),
_useMergedState2 = _slicedToArray(_useMergedState, 2),
mergedActiveKey = _useMergedState2[0],
setMergedActiveKey = _useMergedState2[1];
var _tabs$;
return (_tabs$ = tabs[0]) === null || _tabs$ === void 0 ? void 0 : _tabs$.key;
}, {
value: activeKey,
defaultValue: defaultActiveKey
}),
_useMergedState2 = _slicedToArray(_useMergedState, 2),
mergedActiveKey = _useMergedState2[0],
setMergedActiveKey = _useMergedState2[1];
var _useState3 = useState(function () {
return tabs.findIndex(function (tab) {
return tab.key === mergedActiveKey;
});
}),
_useState4 = _slicedToArray(_useState3, 2),
activeIndex = _useState4[0],
setActiveIndex = _useState4[1]; // Reset active key if not exist anymore
return tabs.findIndex(function (tab) {
return tab.key === mergedActiveKey;
});
}),
_useState4 = _slicedToArray(_useState3, 2),
activeIndex = _useState4[0],
setActiveIndex = _useState4[1];
// Reset active key if not exist anymore
useEffect(function () {

@@ -108,23 +105,21 @@ var newActiveIndex = tabs.findIndex(function (tab) {

});
if (newActiveIndex === -1) {
var _tabs$newActiveIndex;
newActiveIndex = Math.max(0, Math.min(activeIndex, tabs.length - 1));
setMergedActiveKey((_tabs$newActiveIndex = tabs[newActiveIndex]) === null || _tabs$newActiveIndex === void 0 ? void 0 : _tabs$newActiveIndex.key);
}
setActiveIndex(newActiveIndex);
}, [tabs.map(function (tab) {
return tab.key;
}).join('_'), mergedActiveKey, activeIndex]); // ===================== Accessibility ====================
}).join('_'), mergedActiveKey, activeIndex]);
// ===================== Accessibility ====================
var _useMergedState3 = useMergedState(null, {
value: id
}),
_useMergedState4 = _slicedToArray(_useMergedState3, 2),
mergedId = _useMergedState4[0],
setMergedId = _useMergedState4[1]; // Async generate id to avoid ssr mapping failed
value: id
}),
_useMergedState4 = _slicedToArray(_useMergedState3, 2),
mergedId = _useMergedState4[0],
setMergedId = _useMergedState4[1];
// Async generate id to avoid ssr mapping failed
useEffect(function () {

@@ -135,4 +130,5 @@ if (!id) {

}
}, []); // ======================== Events ========================
}, []);
// ======================== Events ========================
function onInternalTabClick(key, e) {

@@ -142,9 +138,8 @@ onTabClick === null || onTabClick === void 0 ? void 0 : onTabClick(key, e);

setMergedActiveKey(key);
if (isActiveChanged) {
onChange === null || onChange === void 0 ? void 0 : onChange(key);
}
} // ======================== Render ========================
}
// ======================== Render ========================
var sharedProps = {

@@ -159,3 +154,2 @@ id: mergedId,

var tabNavBar;
var tabNavBarProps = _objectSpread(_objectSpread({}, sharedProps), {}, {

@@ -175,3 +169,2 @@ editable: editable,

});
return /*#__PURE__*/React.createElement(TabContext.Provider, {

@@ -194,9 +187,6 @@ value: {

}
var ForwardTabs = /*#__PURE__*/React.forwardRef(Tabs);
if (process.env.NODE_ENV !== 'production') {
ForwardTabs.displayName = 'Tabs';
}
export default ForwardTabs;

@@ -7,3 +7,2 @@ /**

var tgt;
if (obj instanceof Map) {

@@ -17,4 +16,3 @@ tgt = {};

}
return JSON.stringify(tgt);
}
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {

@@ -9,9 +8,5 @@ value: true

exports.default = useAnimateConfig;
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _warning = _interopRequireDefault(require("rc-util/lib/warning"));
function useAnimateConfig() {

@@ -23,3 +18,2 @@ var animated = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {

var mergedAnimated;
if (animated === false) {

@@ -39,9 +33,8 @@ mergedAnimated = {

}, (0, _typeof2.default)(animated) === 'object' ? animated : {});
} // Enable tabPane animation if provide motion
}
// Enable tabPane animation if provide motion
if (mergedAnimated.tabPaneMotion && mergedAnimated.tabPane === undefined) {
mergedAnimated.tabPane = true;
}
if (!mergedAnimated.tabPaneMotion && mergedAnimated.tabPane) {

@@ -51,7 +44,5 @@ if (process.env.NODE_ENV !== 'production') {

}
mergedAnimated.tabPane = false;
}
return mergedAnimated;
}
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {

@@ -9,7 +8,4 @@ value: true

exports.default = useOffsets;
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _react = require("react");
var DEFAULT_SIZE = {

@@ -21,28 +17,25 @@ width: 0,

};
function useOffsets(tabs, tabSizes, holderScrollWidth) {
return (0, _react.useMemo)(function () {
var _tabs$;
var map = new Map();
var lastOffset = tabSizes.get((_tabs$ = tabs[0]) === null || _tabs$ === void 0 ? void 0 : _tabs$.key) || DEFAULT_SIZE;
var rightOffset = lastOffset.left + lastOffset.width;
for (var i = 0; i < tabs.length; i += 1) {
var key = tabs[i].key;
var data = tabSizes.get(key); // Reuse last one when not exist yet
var data = tabSizes.get(key);
// Reuse last one when not exist yet
if (!data) {
var _tabs;
data = tabSizes.get((_tabs = tabs[i - 1]) === null || _tabs === void 0 ? void 0 : _tabs.key) || DEFAULT_SIZE;
}
var entity = map.get(key) || (0, _objectSpread2.default)({}, data);
var entity = map.get(key) || (0, _objectSpread2.default)({}, data); // Right
// Right
entity.right = rightOffset - entity.left - entity.width;
entity.right = rightOffset - entity.left - entity.width; // Update entity
// Update entity
map.set(key, entity);
}
return map;

@@ -49,0 +42,0 @@ }, [tabs.map(function (tab) {

"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {

@@ -11,30 +9,20 @@ value: true

exports.default = useSyncState;
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var React = _interopRequireWildcard(require("react"));
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
function useSyncState(defaultState, onChange) {
var stateRef = React.useRef(defaultState);
var _React$useState = React.useState({}),
_React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
forceUpdate = _React$useState2[1];
_React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
forceUpdate = _React$useState2[1];
function setState(updater) {
var newValue = typeof updater === 'function' ? updater(stateRef.current) : updater;
if (newValue !== stateRef.current) {
onChange(newValue, stateRef.current);
}
stateRef.current = newValue;
forceUpdate({});
}
return [stateRef.current, setState];
}
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {

@@ -11,44 +9,37 @@ value: true

exports.default = useTouchMove;
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var React = _interopRequireWildcard(require("react"));
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
var MIN_SWIPE_DISTANCE = 0.1;
var STOP_SWIPE_DISTANCE = 0.01;
var REFRESH_INTERVAL = 20;
var SPEED_OFF_MULTIPLE = Math.pow(0.995, REFRESH_INTERVAL); // ================================= Hook =================================
var SPEED_OFF_MULTIPLE = Math.pow(0.995, REFRESH_INTERVAL);
// ================================= Hook =================================
function useTouchMove(ref, onOffset) {
var _useState = (0, React.useState)(),
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
touchPosition = _useState2[0],
setTouchPosition = _useState2[1];
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
touchPosition = _useState2[0],
setTouchPosition = _useState2[1];
var _useState3 = (0, React.useState)(0),
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
lastTimestamp = _useState4[0],
setLastTimestamp = _useState4[1];
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
lastTimestamp = _useState4[0],
setLastTimestamp = _useState4[1];
var _useState5 = (0, React.useState)(0),
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
lastTimeDiff = _useState6[0],
setLastTimeDiff = _useState6[1];
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
lastTimeDiff = _useState6[0],
setLastTimeDiff = _useState6[1];
var _useState7 = (0, React.useState)(),
_useState8 = (0, _slicedToArray2.default)(_useState7, 2),
lastOffset = _useState8[0],
setLastOffset = _useState8[1];
_useState8 = (0, _slicedToArray2.default)(_useState7, 2),
lastOffset = _useState8[0],
setLastOffset = _useState8[1];
var motionRef = (0, React.useRef)();
var motionRef = (0, React.useRef)(); // ========================= Events =========================
// ========================= Events =========================
// >>> Touch events
function onTouchStart(e) {
var _e$touches$ = e.touches[0],
screenX = _e$touches$.screenX,
screenY = _e$touches$.screenY;
screenX = _e$touches$.screenX,
screenY = _e$touches$.screenY;
setTouchPosition({

@@ -60,3 +51,2 @@ x: screenX,

}
function onTouchMove(e) {

@@ -66,4 +56,4 @@ if (!touchPosition) return;

var _e$touches$2 = e.touches[0],
screenX = _e$touches$2.screenX,
screenY = _e$touches$2.screenY;
screenX = _e$touches$2.screenX,
screenY = _e$touches$2.screenY;
setTouchPosition({

@@ -84,8 +74,8 @@ x: screenX,

}
function onTouchEnd() {
if (!touchPosition) return;
setTouchPosition(null);
setLastOffset(null); // Swipe if needed
setLastOffset(null);
// Swipe if needed
if (lastOffset) {

@@ -95,4 +85,5 @@ var distanceX = lastOffset.x / lastTimeDiff;

var absX = Math.abs(distanceX);
var absY = Math.abs(distanceY); // Skip swipe if low distance
var absY = Math.abs(distanceY);
// Skip swipe if low distance
if (Math.max(absX, absY) < MIN_SWIPE_DISTANCE) return;

@@ -106,3 +97,2 @@ var currentX = distanceX;

}
currentX *= SPEED_OFF_MULTIPLE;

@@ -113,15 +103,14 @@ currentY *= SPEED_OFF_MULTIPLE;

}
} // >>> Wheel event
}
// >>> Wheel event
var lastWheelDirectionRef = (0, React.useRef)();
function onWheel(e) {
var deltaX = e.deltaX,
deltaY = e.deltaY; // Convert both to x & y since wheel only happened on PC
deltaY = e.deltaY;
// Convert both to x & y since wheel only happened on PC
var mixed = 0;
var absX = Math.abs(deltaX);
var absY = Math.abs(deltaY);
if (absX === absY) {

@@ -136,9 +125,8 @@ mixed = lastWheelDirectionRef.current === 'x' ? deltaX : deltaY;

}
if (onOffset(-mixed, -mixed)) {
e.preventDefault();
}
} // ========================= Effect =========================
}
// ========================= Effect =========================
var touchEventsRef = (0, React.useRef)(null);

@@ -155,15 +143,11 @@ touchEventsRef.current = {

}
function onProxyTouchMove(e) {
touchEventsRef.current.onTouchMove(e);
}
function onProxyTouchEnd(e) {
touchEventsRef.current.onTouchEnd(e);
}
function onProxyWheel(e) {
touchEventsRef.current.onWheel(e);
}
document.addEventListener('touchmove', onProxyTouchMove, {

@@ -174,4 +158,5 @@ passive: false

passive: false
}); // No need to clean up since element removed
});
// No need to clean up since element removed
ref.current.addEventListener('touchstart', onProxyTouchStart, {

@@ -178,0 +163,0 @@ passive: false

@@ -7,5 +7,3 @@ "use strict";

exports.default = useVisibleRange;
var _react = require("react");
var DEFAULT_SIZE = {

@@ -18,11 +16,9 @@ width: 0,

};
function useVisibleRange(tabOffsets, visibleTabContentValue, transform, tabContentSizeValue, addNodeSizeValue, operationNodeSizeValue, _ref) {
var tabs = _ref.tabs,
tabPosition = _ref.tabPosition,
rtl = _ref.rtl;
tabPosition = _ref.tabPosition,
rtl = _ref.rtl;
var charUnit;
var position;
var transformSize;
if (['top', 'bottom'].includes(tabPosition)) {

@@ -37,3 +33,2 @@ charUnit = 'width';

}
return (0, _react.useMemo)(function () {

@@ -43,9 +38,6 @@ if (!tabs.length) {

}
var len = tabs.length;
var endIndex = len;
for (var i = 0; i < len; i += 1) {
var offset = tabOffsets.get(tabs[i].key) || DEFAULT_SIZE;
if (offset[position] + offset[charUnit] > transformSize + visibleTabContentValue) {

@@ -56,8 +48,5 @@ endIndex = i - 1;

}
var startIndex = 0;
for (var _i = len - 1; _i >= 0; _i -= 1) {
var _offset = tabOffsets.get(tabs[_i].key) || DEFAULT_SIZE;
if (_offset[position] < transformSize) {

@@ -68,3 +57,2 @@ startIndex = _i + 1;

}
return [startIndex, endIndex];

@@ -71,0 +59,0 @@ }, [tabOffsets, visibleTabContentValue, tabContentSizeValue, addNodeSizeValue, operationNodeSizeValue, transformSize, tabPosition, tabs.map(function (tab) {

"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {

@@ -9,6 +8,4 @@ value: true

exports.default = void 0;
var _Tabs = _interopRequireDefault(require("./Tabs"));
var _default = _Tabs.default;
exports.default = _default;

@@ -7,7 +7,4 @@ "use strict";

exports.default = void 0;
var _react = require("react");
var _default = /*#__PURE__*/(0, _react.createContext)(null);
exports.default = _default;
"use strict";
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {

@@ -9,19 +8,13 @@ value: true

exports.default = void 0;
var React = _interopRequireWildcard(require("react"));
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
function AddButton(_ref, ref) {
var prefixCls = _ref.prefixCls,
editable = _ref.editable,
locale = _ref.locale,
style = _ref.style;
editable = _ref.editable,
locale = _ref.locale,
style = _ref.style;
if (!editable || editable.showAdd === false) {
return null;
}
return /*#__PURE__*/React.createElement("button", {

@@ -40,5 +33,3 @@ ref: ref,

}
var _default = /*#__PURE__*/React.forwardRef(AddButton);
exports.default = _default;
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof3 = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {

@@ -11,20 +9,15 @@ value: true

exports.default = void 0;
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
var React = _interopRequireWildcard(require("react"));
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
var ExtraContent = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
var position = _ref.position,
prefixCls = _ref.prefixCls,
extra = _ref.extra;
prefixCls = _ref.prefixCls,
extra = _ref.extra;
if (!extra) return null;
var content; // Parse extra
var content;
// Parse extra
var assertExtra = {};
if ((0, _typeof2.default)(extra) === 'object' && ! /*#__PURE__*/React.isValidElement(extra)) {

@@ -35,11 +28,8 @@ assertExtra = extra;

}
if (position === 'right') {
content = assertExtra.right;
}
if (position === 'left') {
content = assertExtra.left;
}
return content ? /*#__PURE__*/React.createElement("div", {

@@ -50,8 +40,6 @@ className: "".concat(prefixCls, "-extra-content"),

});
if (process.env.NODE_ENV !== 'production') {
ExtraContent.displayName = 'ExtraContent';
}
var _default = ExtraContent;
exports.default = _default;
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {

@@ -11,88 +9,60 @@ value: true

exports.default = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _classnames = _interopRequireDefault(require("classnames"));
var _rcResizeObserver = _interopRequireDefault(require("rc-resize-observer"));
var _useEvent = _interopRequireDefault(require("rc-util/lib/hooks/useEvent"));
var _raf = _interopRequireDefault(require("rc-util/lib/raf"));
var _ref3 = require("rc-util/lib/ref");
var React = _interopRequireWildcard(require("react"));
var _useOffsets = _interopRequireDefault(require("../hooks/useOffsets"));
var _useRaf = _interopRequireWildcard(require("../hooks/useRaf"));
var _useSyncState5 = _interopRequireDefault(require("../hooks/useSyncState"));
var _useTouchMove = _interopRequireDefault(require("../hooks/useTouchMove"));
var _useUpdate = _interopRequireWildcard(require("../hooks/useUpdate"));
var _useVisibleRange3 = _interopRequireDefault(require("../hooks/useVisibleRange"));
var _TabContext = _interopRequireDefault(require("../TabContext"));
var _util = require("../util");
var _AddButton = _interopRequireDefault(require("./AddButton"));
var _ExtraContent = _interopRequireDefault(require("./ExtraContent"));
var _OperationNode = _interopRequireDefault(require("./OperationNode"));
var _TabNode = _interopRequireDefault(require("./TabNode"));
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
var getSize = function getSize(refObj) {
var _ref = refObj.current || {},
_ref$offsetWidth = _ref.offsetWidth,
offsetWidth = _ref$offsetWidth === void 0 ? 0 : _ref$offsetWidth,
_ref$offsetHeight = _ref.offsetHeight,
offsetHeight = _ref$offsetHeight === void 0 ? 0 : _ref$offsetHeight;
_ref$offsetWidth = _ref.offsetWidth,
offsetWidth = _ref$offsetWidth === void 0 ? 0 : _ref$offsetWidth,
_ref$offsetHeight = _ref.offsetHeight,
offsetHeight = _ref$offsetHeight === void 0 ? 0 : _ref$offsetHeight;
return [offsetWidth, offsetHeight];
};
/**
* Convert `SizeInfo` to unit value. Such as [123, 456] with `top` position get `123`
*/
var getUnitValue = function getUnitValue(size, tabPositionTopOrBottom) {
return size[tabPositionTopOrBottom ? 0 : 1];
};
function TabNavList(props, ref) {
var _classNames;
var _React$useContext = React.useContext(_TabContext.default),
prefixCls = _React$useContext.prefixCls,
tabs = _React$useContext.tabs;
prefixCls = _React$useContext.prefixCls,
tabs = _React$useContext.tabs;
var className = props.className,
style = props.style,
id = props.id,
animated = props.animated,
activeKey = props.activeKey,
rtl = props.rtl,
extra = props.extra,
editable = props.editable,
locale = props.locale,
tabPosition = props.tabPosition,
tabBarGutter = props.tabBarGutter,
children = props.children,
onTabClick = props.onTabClick,
onTabScroll = props.onTabScroll;
style = props.style,
id = props.id,
animated = props.animated,
activeKey = props.activeKey,
rtl = props.rtl,
extra = props.extra,
editable = props.editable,
locale = props.locale,
tabPosition = props.tabPosition,
tabBarGutter = props.tabBarGutter,
children = props.children,
onTabClick = props.onTabClick,
onTabScroll = props.onTabScroll;
var containerRef = (0, React.useRef)();

@@ -104,55 +74,49 @@ var extraLeftRef = (0, React.useRef)();

var operationsRef = (0, React.useRef)();
var innerAddButtonRef = (0, React.useRef)(); // const [getBtnRef, removeBtnRef] = useRefs<HTMLDivElement>();
var innerAddButtonRef = (0, React.useRef)();
// const [getBtnRef, removeBtnRef] = useRefs<HTMLDivElement>();
var tabPositionTopOrBottom = tabPosition === 'top' || tabPosition === 'bottom';
var _useSyncState = (0, _useSyncState5.default)(0, function (next, prev) {
if (tabPositionTopOrBottom && onTabScroll) {
onTabScroll({
direction: next > prev ? 'left' : 'right'
});
}
}),
_useSyncState2 = (0, _slicedToArray2.default)(_useSyncState, 2),
transformLeft = _useSyncState2[0],
setTransformLeft = _useSyncState2[1];
if (tabPositionTopOrBottom && onTabScroll) {
onTabScroll({
direction: next > prev ? 'left' : 'right'
});
}
}),
_useSyncState2 = (0, _slicedToArray2.default)(_useSyncState, 2),
transformLeft = _useSyncState2[0],
setTransformLeft = _useSyncState2[1];
var _useSyncState3 = (0, _useSyncState5.default)(0, function (next, prev) {
if (!tabPositionTopOrBottom && onTabScroll) {
onTabScroll({
direction: next > prev ? 'top' : 'bottom'
});
}
}),
_useSyncState4 = (0, _slicedToArray2.default)(_useSyncState3, 2),
transformTop = _useSyncState4[0],
setTransformTop = _useSyncState4[1];
if (!tabPositionTopOrBottom && onTabScroll) {
onTabScroll({
direction: next > prev ? 'top' : 'bottom'
});
}
}),
_useSyncState4 = (0, _slicedToArray2.default)(_useSyncState3, 2),
transformTop = _useSyncState4[0],
setTransformTop = _useSyncState4[1];
var _useState = (0, React.useState)([0, 0]),
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
containerExcludeExtraSize = _useState2[0],
setContainerExcludeExtraSize = _useState2[1];
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
containerExcludeExtraSize = _useState2[0],
setContainerExcludeExtraSize = _useState2[1];
var _useState3 = (0, React.useState)([0, 0]),
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
tabContentSize = _useState4[0],
setTabContentSize = _useState4[1];
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
tabContentSize = _useState4[0],
setTabContentSize = _useState4[1];
var _useState5 = (0, React.useState)([0, 0]),
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
addSize = _useState6[0],
setAddSize = _useState6[1];
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
addSize = _useState6[0],
setAddSize = _useState6[1];
var _useState7 = (0, React.useState)([0, 0]),
_useState8 = (0, _slicedToArray2.default)(_useState7, 2),
operationSize = _useState8[0],
setOperationSize = _useState8[1];
_useState8 = (0, _slicedToArray2.default)(_useState7, 2),
operationSize = _useState8[0],
setOperationSize = _useState8[1];
var _useUpdateState = (0, _useUpdate.useUpdateState)(new Map()),
_useUpdateState2 = (0, _slicedToArray2.default)(_useUpdateState, 2),
tabSizes = _useUpdateState2[0],
setTabSizes = _useUpdateState2[1];
var tabOffsets = (0, _useOffsets.default)(tabs, tabSizes, tabContentSize[0]);
var _useRafState = (0, _useRaf.useRafState)(new Map()),
_useRafState2 = (0, _slicedToArray2.default)(_useRafState, 2),
tabSizes = _useRafState2[0],
setTabSizes = _useRafState2[1];
var tabOffsets = (0, _useOffsets.default)(tabs, tabSizes, tabContentSize[0]); // ========================== Unit =========================
// ========================== Unit =========================
var containerExcludeExtraSizeValue = getUnitValue(containerExcludeExtraSize, tabPositionTopOrBottom);

@@ -163,8 +127,8 @@ var tabContentSizeValue = getUnitValue(tabContentSize, tabPositionTopOrBottom);

var needScroll = containerExcludeExtraSizeValue < tabContentSizeValue + addSizeValue;
var visibleTabContentValue = needScroll ? containerExcludeExtraSizeValue - operationSizeValue : containerExcludeExtraSizeValue - addSizeValue; // ========================== Util =========================
var visibleTabContentValue = needScroll ? containerExcludeExtraSizeValue - operationSizeValue : containerExcludeExtraSizeValue - addSizeValue;
// ========================== Util =========================
var operationsHiddenClassName = "".concat(prefixCls, "-nav-operations-hidden");
var transformMin = 0;
var transformMax = 0;
if (!tabPositionTopOrBottom) {

@@ -180,3 +144,2 @@ transformMin = Math.min(0, visibleTabContentValue - tabContentSizeValue);

}
function alignInRange(value) {

@@ -186,26 +149,20 @@ if (value < transformMin) {

}
if (value > transformMax) {
return transformMax;
}
return value;
} // ========================= Mobile ========================
}
// ========================= Mobile ========================
var touchMovingRef = (0, React.useRef)();
var _useState9 = (0, React.useState)(),
_useState10 = (0, _slicedToArray2.default)(_useState9, 2),
lockAnimation = _useState10[0],
setLockAnimation = _useState10[1];
_useState10 = (0, _slicedToArray2.default)(_useState9, 2),
lockAnimation = _useState10[0],
setLockAnimation = _useState10[1];
function doLockAnimation() {
setLockAnimation(Date.now());
}
function clearTouchMoving() {
window.clearTimeout(touchMovingRef.current);
}
(0, _useTouchMove.default)(tabsWrapperRef, function (offsetX, offsetY) {

@@ -217,9 +174,8 @@ function doMove(setState, offset) {

});
} // Skip scroll if place is enough
}
if (containerExcludeExtraSizeValue >= tabContentSizeValue) {
// Skip scroll if place is enough
if (!needScroll) {
return false;
}
if (tabPositionTopOrBottom) {

@@ -230,3 +186,2 @@ doMove(setTransformLeft, offsetX);

}
clearTouchMoving();

@@ -238,3 +193,2 @@ doLockAnimation();

clearTouchMoving();
if (lockAnimation) {

@@ -245,21 +199,26 @@ touchMovingRef.current = window.setTimeout(function () {

}
return clearTouchMoving;
}, [lockAnimation]);
return clearTouchMoving;
}, [lockAnimation]); // ===================== Visible Range =====================
// ===================== Visible Range =====================
// Render tab node & collect tab offset
var _useVisibleRange = (0, _useVisibleRange3.default)(tabOffsets,
// Container
visibleTabContentValue,
// Transform
tabPositionTopOrBottom ? transformLeft : transformTop,
// Tabs
tabContentSizeValue,
// Add
addSizeValue,
// Operation
operationSizeValue, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {
tabs: tabs
})),
_useVisibleRange2 = (0, _slicedToArray2.default)(_useVisibleRange, 2),
visibleStart = _useVisibleRange2[0],
visibleEnd = _useVisibleRange2[1];
var _useVisibleRange = (0, _useVisibleRange3.default)(tabOffsets, // Container
visibleTabContentValue, // Transform
tabPositionTopOrBottom ? transformLeft : transformTop, // Tabs
tabContentSizeValue, // Add
addSizeValue, // Operation
operationSizeValue, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {
tabs: tabs
})),
_useVisibleRange2 = (0, _slicedToArray2.default)(_useVisibleRange, 2),
visibleStart = _useVisibleRange2[0],
visibleEnd = _useVisibleRange2[1]; // ========================= Scroll ========================
var scrollToTab = function scrollToTab() {
// ========================= Scroll ========================
var scrollToTab = (0, _useEvent.default)(function () {
var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : activeKey;

@@ -273,7 +232,7 @@ var tabOffset = tabOffsets.get(key) || {

};
if (tabPositionTopOrBottom) {
// ============ Align with top & bottom ============
var newTransform = transformLeft; // RTL
var newTransform = transformLeft;
// RTL
if (rtl) {

@@ -285,3 +244,4 @@ if (tabOffset.right < transformLeft) {

}
} // LTR
}
// LTR
else if (tabOffset.left < -transformLeft) {

@@ -292,3 +252,2 @@ newTransform = -tabOffset.left;

}
setTransformTop(0);

@@ -299,3 +258,2 @@ setTransformLeft(alignInRange(newTransform));

var _newTransform = transformTop;
if (tabOffset.top < -transformTop) {

@@ -306,11 +264,9 @@ _newTransform = -tabOffset.top;

}
setTransformLeft(0);
setTransformTop(alignInRange(_newTransform));
}
}; // ========================== Tab ==========================
});
// ========================== Tab ==========================
var tabNodeStyle = {};
if (tabPosition === 'top' || tabPosition === 'bottom') {

@@ -321,3 +277,2 @@ tabNodeStyle[rtl ? 'marginRight' : 'marginLeft'] = tabBarGutter;

}
var tabNodes = tabs.map(function (tab, i) {

@@ -330,4 +285,3 @@ var key = tab.key;

tab: tab
/* first node should not have margin left */
,
/* first node should not have margin left */,
style: i === 0 ? undefined : tabNodeStyle,

@@ -345,17 +299,15 @@ closable: tab.closable,

doLockAnimation();
if (!tabsWrapperRef.current) {
return;
} // Focus element will make scrollLeft change which we should reset back
}
// Focus element will make scrollLeft change which we should reset back
if (!rtl) {
tabsWrapperRef.current.scrollLeft = 0;
}
tabsWrapperRef.current.scrollTop = 0;
}
});
}); // Update buttons records
});
// Update buttons records
var updateTabSizes = function updateTabSizes() {

@@ -366,6 +318,4 @@ return setTabSizes(function () {

var _tabListRef$current;
var key = _ref2.key;
var btnNode = (_tabListRef$current = tabListRef.current) === null || _tabListRef$current === void 0 ? void 0 : _tabListRef$current.querySelector("[data-node-key=\"".concat(key, "\"]"));
if (btnNode) {

@@ -383,3 +333,2 @@ newSizes.set(key, {

};
(0, React.useEffect)(function () {

@@ -390,3 +339,3 @@ updateTabSizes();

}).join('_')]);
var onListHolderResize = (0, _useRaf.default)(function () {
var onListHolderResize = (0, _useUpdate.default)(function () {
// Update wrapper records

@@ -400,30 +349,31 @@ var containerSize = getSize(containerRef);

var newOperationSize = getSize(operationsRef);
setOperationSize(newOperationSize); // Which includes add button size
setOperationSize(newOperationSize);
// Which includes add button size
var tabContentFullSize = getSize(tabListRef);
setTabContentSize([tabContentFullSize[0] - newAddSize[0], tabContentFullSize[1] - newAddSize[1]]); // Update buttons records
setTabContentSize([tabContentFullSize[0] - newAddSize[0], tabContentFullSize[1] - newAddSize[1]]);
// Update buttons records
updateTabSizes();
}); // ======================== Dropdown =======================
});
// ======================== Dropdown =======================
var startHiddenTabs = tabs.slice(0, visibleStart);
var endHiddenTabs = tabs.slice(visibleEnd + 1);
var hiddenTabs = [].concat((0, _toConsumableArray2.default)(startHiddenTabs), (0, _toConsumableArray2.default)(endHiddenTabs)); // =================== Link & Operations ===================
var hiddenTabs = [].concat((0, _toConsumableArray2.default)(startHiddenTabs), (0, _toConsumableArray2.default)(endHiddenTabs));
// =================== Link & Operations ===================
var _useState11 = (0, React.useState)(),
_useState12 = (0, _slicedToArray2.default)(_useState11, 2),
inkStyle = _useState12[0],
setInkStyle = _useState12[1];
_useState12 = (0, _slicedToArray2.default)(_useState11, 2),
inkStyle = _useState12[0],
setInkStyle = _useState12[1];
var activeTabOffset = tabOffsets.get(activeKey);
var activeTabOffset = tabOffsets.get(activeKey); // Delay set ink style to avoid remove tab blink
// Delay set ink style to avoid remove tab blink
var inkBarRafRef = (0, React.useRef)();
function cleanInkBarRaf() {
_raf.default.cancel(inkBarRafRef.current);
}
(0, React.useEffect)(function () {
var newInkStyle = {};
if (activeTabOffset) {

@@ -436,3 +386,2 @@ if (tabPositionTopOrBottom) {

}
newInkStyle.width = activeTabOffset.width;

@@ -444,3 +393,2 @@ } else {

}
cleanInkBarRaf();

@@ -451,12 +399,17 @@ inkBarRafRef.current = (0, _raf.default)(function () {

return cleanInkBarRaf;
}, [activeTabOffset, tabPositionTopOrBottom, rtl]); // ========================= Effect ========================
}, [activeTabOffset, tabPositionTopOrBottom, rtl]);
// ========================= Effect ========================
(0, React.useEffect)(function () {
scrollToTab(); // eslint-disable-next-line
}, [activeKey, (0, _util.stringify)(activeTabOffset), (0, _util.stringify)(tabOffsets), tabPositionTopOrBottom]); // Should recalculate when rtl changed
scrollToTab();
// eslint-disable-next-line
}, [activeKey, transformMin, transformMax, (0, _util.stringify)(activeTabOffset), (0, _util.stringify)(tabOffsets), tabPositionTopOrBottom]);
// Should recalculate when rtl changed
(0, React.useEffect)(function () {
onListHolderResize(); // eslint-disable-next-line
}, [rtl]); // ========================= Render ========================
onListHolderResize();
// eslint-disable-next-line
}, [rtl]);
// ========================= Render ========================
var hasDropdown = !!hiddenTabs.length;

@@ -468,16 +421,14 @@ var wrapPrefix = "".concat(prefixCls, "-nav-wrap");

var pingBottom;
if (tabPositionTopOrBottom) {
if (rtl) {
pingRight = transformLeft > 0;
pingLeft = transformLeft + containerExcludeExtraSizeValue < tabContentSizeValue;
pingLeft = transformLeft !== transformMax;
} else {
pingLeft = transformLeft < 0;
pingRight = -transformLeft + containerExcludeExtraSizeValue < tabContentSizeValue;
pingRight = transformLeft !== transformMin;
}
} else {
pingTop = transformTop < 0;
pingBottom = -transformTop + containerExcludeExtraSizeValue < tabContentSizeValue;
pingBottom = transformTop !== transformMin;
}
return /*#__PURE__*/React.createElement(_rcResizeObserver.default, {

@@ -537,5 +488,3 @@ onResize: onListHolderResize

}
var _default = /*#__PURE__*/React.forwardRef(TabNavList);
exports.default = _default;
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {

@@ -11,53 +9,39 @@ value: true

exports.default = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _classnames = _interopRequireDefault(require("classnames"));
var _rcDropdown = _interopRequireDefault(require("rc-dropdown"));
var _rcMenu = _interopRequireWildcard(require("rc-menu"));
var _KeyCode = _interopRequireDefault(require("rc-util/lib/KeyCode"));
var React = _interopRequireWildcard(require("react"));
var _AddButton = _interopRequireDefault(require("./AddButton"));
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
function OperationNode(_ref, ref) {
var prefixCls = _ref.prefixCls,
id = _ref.id,
tabs = _ref.tabs,
locale = _ref.locale,
mobile = _ref.mobile,
_ref$moreIcon = _ref.moreIcon,
moreIcon = _ref$moreIcon === void 0 ? 'More' : _ref$moreIcon,
moreTransitionName = _ref.moreTransitionName,
style = _ref.style,
className = _ref.className,
editable = _ref.editable,
tabBarGutter = _ref.tabBarGutter,
rtl = _ref.rtl,
removeAriaLabel = _ref.removeAriaLabel,
onTabClick = _ref.onTabClick,
getPopupContainer = _ref.getPopupContainer,
popupClassName = _ref.popupClassName;
id = _ref.id,
tabs = _ref.tabs,
locale = _ref.locale,
mobile = _ref.mobile,
_ref$moreIcon = _ref.moreIcon,
moreIcon = _ref$moreIcon === void 0 ? 'More' : _ref$moreIcon,
moreTransitionName = _ref.moreTransitionName,
style = _ref.style,
className = _ref.className,
editable = _ref.editable,
tabBarGutter = _ref.tabBarGutter,
rtl = _ref.rtl,
removeAriaLabel = _ref.removeAriaLabel,
onTabClick = _ref.onTabClick,
getPopupContainer = _ref.getPopupContainer,
popupClassName = _ref.popupClassName;
// ======================== Dropdown ========================
var _useState = (0, React.useState)(false),
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
open = _useState2[0],
setOpen = _useState2[1];
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
open = _useState2[0],
setOpen = _useState2[1];
var _useState3 = (0, React.useState)(null),
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
selectedKey = _useState4[0],
setSelectedKey = _useState4[1];
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
selectedKey = _useState4[0],
setSelectedKey = _useState4[1];
var popupId = "".concat(id, "-more-popup");

@@ -67,3 +51,2 @@ var dropdownPrefix = "".concat(prefixCls, "-dropdown");

var dropdownAriaLabel = locale === null || locale === void 0 ? void 0 : locale.dropdownAriaLabel;
function onRemoveTab(event, key) {

@@ -77,7 +60,6 @@ event.preventDefault();

}
var menu = /*#__PURE__*/React.createElement(_rcMenu.default, {
onClick: function onClick(_ref2) {
var key = _ref2.key,
domEvent = _ref2.domEvent;
domEvent = _ref2.domEvent;
onTabClick(key, domEvent);

@@ -112,3 +94,2 @@ setOpen(false);

}));
function selectOffset(offset) {

@@ -122,7 +103,5 @@ var enabledTabs = tabs.filter(function (tab) {

var len = enabledTabs.length;
for (var i = 0; i < len; i += 1) {
selectedIndex = (selectedIndex + offset + len) % len;
var tab = enabledTabs[selectedIndex];
if (!tab.disabled) {

@@ -134,6 +113,4 @@ setSelectedKey(tab.key);

}
function onKeyDown(e) {
var which = e.which;
if (!open) {

@@ -144,6 +121,4 @@ if ([_KeyCode.default.DOWN, _KeyCode.default.SPACE, _KeyCode.default.ENTER].includes(which)) {

}
return;
}
switch (which) {

@@ -154,3 +129,2 @@ case _KeyCode.default.UP:

break;
case _KeyCode.default.DOWN:

@@ -160,7 +134,5 @@ selectOffset(1);

break;
case _KeyCode.default.ESC:
setOpen(false);
break;
case _KeyCode.default.SPACE:

@@ -171,9 +143,8 @@ case _KeyCode.default.ENTER:

}
} // ========================= Effect =========================
}
// ========================= Effect =========================
(0, React.useEffect)(function () {
// We use query element here to avoid React strict warning
var ele = document.getElementById(selectedItemId);
if (ele && ele.scrollIntoView) {

@@ -187,6 +158,6 @@ ele.scrollIntoView(false);

}
}, [open]); // ========================= Render =========================
}, [open]);
// ========================= Render =========================
var moreStyle = (0, _defineProperty2.default)({}, rtl ? 'marginRight' : 'marginLeft', tabBarGutter);
if (!tabs.length) {

@@ -196,3 +167,2 @@ moreStyle.visibility = 'hidden';

}
var overlayClassName = (0, _classnames.default)((0, _defineProperty2.default)({}, "".concat(dropdownPrefix, "-rtl"), rtl));

@@ -232,5 +202,5 @@ var moreNode = mobile ? null : /*#__PURE__*/React.createElement(_rcDropdown.default, {

}
var _default = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(OperationNode), function (_, next) {
return (// https://github.com/ant-design/ant-design/issues/32544
return (
// https://github.com/ant-design/ant-design/issues/32544
// We'd better remove syntactic sugar in `rc-menu` since this has perf issue

@@ -240,3 +210,2 @@ next.tabMoving

});
exports.default = _default;
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {

@@ -11,36 +9,27 @@ value: true

exports.default = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _classnames = _interopRequireDefault(require("classnames"));
var _KeyCode = _interopRequireDefault(require("rc-util/lib/KeyCode"));
var React = _interopRequireWildcard(require("react"));
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
function TabNode(_ref) {
var _classNames;
var prefixCls = _ref.prefixCls,
id = _ref.id,
active = _ref.active,
_ref$tab = _ref.tab,
key = _ref$tab.key,
label = _ref$tab.label,
disabled = _ref$tab.disabled,
closeIcon = _ref$tab.closeIcon,
closable = _ref.closable,
renderWrapper = _ref.renderWrapper,
removeAriaLabel = _ref.removeAriaLabel,
editable = _ref.editable,
onClick = _ref.onClick,
onFocus = _ref.onFocus,
style = _ref.style;
id = _ref.id,
active = _ref.active,
_ref$tab = _ref.tab,
key = _ref$tab.key,
label = _ref$tab.label,
disabled = _ref$tab.disabled,
closeIcon = _ref$tab.closeIcon,
closable = _ref.closable,
renderWrapper = _ref.renderWrapper,
removeAriaLabel = _ref.removeAriaLabel,
editable = _ref.editable,
onClick = _ref.onClick,
onFocus = _ref.onFocus,
style = _ref.style;
var tabPrefix = "".concat(prefixCls, "-tab");
var removable = editable && closable !== false && !disabled;
function onInternalClick(e) {

@@ -50,6 +39,4 @@ if (disabled) {

}
onClick(e);
}
function onRemoveTab(event) {

@@ -63,5 +50,5 @@ event.preventDefault();

}
var node = /*#__PURE__*/React.createElement("div", {
key: key // ref={ref}
key: key
// ref={ref}
,

@@ -103,4 +90,3 @@ "data-node-key": key,

}
var _default = TabNode;
exports.default = _default;
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {

@@ -11,32 +9,19 @@ value: true

exports.default = TabNavListWrapper;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var React = _interopRequireWildcard(require("react"));
var _ = _interopRequireDefault(require("."));
var _TabContext = _interopRequireDefault(require("../TabContext"));
var _TabPane = _interopRequireDefault(require("../TabPanelList/TabPane"));
var _excluded = ["renderTabBar"],
_excluded2 = ["label", "key"];
_excluded2 = ["label", "key"];
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
// We have to create a TabNavList components.
function TabNavListWrapper(_ref) {
var renderTabBar = _ref.renderTabBar,
restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
var _React$useContext = React.useContext(_TabContext.default),
tabs = _React$useContext.tabs;
tabs = _React$useContext.tabs;
if (renderTabBar) {

@@ -47,4 +32,4 @@ var tabNavBarProps = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, restProps), {}, {

var label = _ref2.label,
key = _ref2.key,
restTabProps = (0, _objectWithoutProperties2.default)(_ref2, _excluded2);
key = _ref2.key,
restTabProps = (0, _objectWithoutProperties2.default)(_ref2, _excluded2);
return /*#__PURE__*/React.createElement(_TabPane.default, (0, _extends2.default)({

@@ -59,4 +44,3 @@ tab: label,

}
return /*#__PURE__*/React.createElement(_.default, restProps);
}
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {

@@ -11,38 +9,23 @@ value: true

exports.default = TabPanelList;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var React = _interopRequireWildcard(require("react"));
var _classnames = _interopRequireDefault(require("classnames"));
var _rcMotion = _interopRequireDefault(require("rc-motion"));
var _TabContext = _interopRequireDefault(require("../TabContext"));
var _TabPane = _interopRequireDefault(require("./TabPane"));
var _excluded = ["key", "forceRender", "style", "className"];
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
function TabPanelList(_ref) {
var id = _ref.id,
activeKey = _ref.activeKey,
animated = _ref.animated,
tabPosition = _ref.tabPosition,
destroyInactiveTabPane = _ref.destroyInactiveTabPane;
activeKey = _ref.activeKey,
animated = _ref.animated,
tabPosition = _ref.tabPosition,
destroyInactiveTabPane = _ref.destroyInactiveTabPane;
var _React$useContext = React.useContext(_TabContext.default),
prefixCls = _React$useContext.prefixCls,
tabs = _React$useContext.tabs;
prefixCls = _React$useContext.prefixCls,
tabs = _React$useContext.tabs;
var tabPaneAnimated = animated.tabPane;

@@ -56,6 +39,6 @@ var tabPanePrefixCls = "".concat(prefixCls, "-tabpane");

var key = _ref2.key,
forceRender = _ref2.forceRender,
paneStyle = _ref2.style,
paneClassName = _ref2.className,
restTabProps = (0, _objectWithoutProperties2.default)(_ref2, _excluded);
forceRender = _ref2.forceRender,
paneStyle = _ref2.style,
paneClassName = _ref2.className,
restTabProps = (0, _objectWithoutProperties2.default)(_ref2, _excluded);
var active = key === activeKey;

@@ -70,3 +53,3 @@ return /*#__PURE__*/React.createElement(_rcMotion.default, (0, _extends2.default)({

var motionStyle = _ref3.style,
motionClassName = _ref3.className;
motionClassName = _ref3.className;
return /*#__PURE__*/React.createElement(_TabPane.default, (0, _extends2.default)({}, restTabProps, {

@@ -73,0 +56,0 @@ prefixCls: tabPanePrefixCls,

"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {

@@ -11,19 +9,14 @@ value: true

exports.default = void 0;
var React = _interopRequireWildcard(require("react"));
var _classnames = _interopRequireDefault(require("classnames"));
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
var TabPane = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
var prefixCls = _ref.prefixCls,
className = _ref.className,
style = _ref.style,
id = _ref.id,
active = _ref.active,
tabKey = _ref.tabKey,
children = _ref.children;
className = _ref.className,
style = _ref.style,
id = _ref.id,
active = _ref.active,
tabKey = _ref.tabKey,
children = _ref.children;
return /*#__PURE__*/React.createElement("div", {

@@ -40,8 +33,6 @@ id: id && "".concat(id, "-panel-").concat(tabKey),

});
if (process.env.NODE_ENV !== 'production') {
TabPane.displayName = 'TabPane';
}
var _default = TabPane;
exports.default = _default;
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof3 = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {

@@ -11,37 +9,19 @@ value: true

exports.default = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var React = _interopRequireWildcard(require("react"));
var _classnames = _interopRequireDefault(require("classnames"));
var _isMobile = _interopRequireDefault(require("rc-util/lib/isMobile"));
var _useMergedState5 = _interopRequireDefault(require("rc-util/lib/hooks/useMergedState"));
var _TabPanelList = _interopRequireDefault(require("./TabPanelList"));
var _TabContext = _interopRequireDefault(require("./TabContext"));
var _Wrapper = _interopRequireDefault(require("./TabNavList/Wrapper"));
var _useAnimateConfig = _interopRequireDefault(require("./hooks/useAnimateConfig"));
var _excluded = ["id", "prefixCls", "className", "items", "direction", "activeKey", "defaultActiveKey", "editable", "animated", "tabPosition", "tabBarGutter", "tabBarStyle", "tabBarExtraContent", "locale", "moreIcon", "moreTransitionName", "destroyInactiveTabPane", "renderTabBar", "onChange", "onTabClick", "onTabScroll", "getPopupContainer", "popupClassName"];
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
/**

@@ -56,34 +36,33 @@ * Should added antd:

*/
// Used for accessibility
var uuid = 0;
function Tabs(_ref, ref) {
var _classNames;
var id = _ref.id,
_ref$prefixCls = _ref.prefixCls,
prefixCls = _ref$prefixCls === void 0 ? 'rc-tabs' : _ref$prefixCls,
className = _ref.className,
items = _ref.items,
direction = _ref.direction,
activeKey = _ref.activeKey,
defaultActiveKey = _ref.defaultActiveKey,
editable = _ref.editable,
animated = _ref.animated,
_ref$tabPosition = _ref.tabPosition,
tabPosition = _ref$tabPosition === void 0 ? 'top' : _ref$tabPosition,
tabBarGutter = _ref.tabBarGutter,
tabBarStyle = _ref.tabBarStyle,
tabBarExtraContent = _ref.tabBarExtraContent,
locale = _ref.locale,
moreIcon = _ref.moreIcon,
moreTransitionName = _ref.moreTransitionName,
destroyInactiveTabPane = _ref.destroyInactiveTabPane,
renderTabBar = _ref.renderTabBar,
onChange = _ref.onChange,
onTabClick = _ref.onTabClick,
onTabScroll = _ref.onTabScroll,
getPopupContainer = _ref.getPopupContainer,
popupClassName = _ref.popupClassName,
restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
_ref$prefixCls = _ref.prefixCls,
prefixCls = _ref$prefixCls === void 0 ? 'rc-tabs' : _ref$prefixCls,
className = _ref.className,
items = _ref.items,
direction = _ref.direction,
activeKey = _ref.activeKey,
defaultActiveKey = _ref.defaultActiveKey,
editable = _ref.editable,
animated = _ref.animated,
_ref$tabPosition = _ref.tabPosition,
tabPosition = _ref$tabPosition === void 0 ? 'top' : _ref$tabPosition,
tabBarGutter = _ref.tabBarGutter,
tabBarStyle = _ref.tabBarStyle,
tabBarExtraContent = _ref.tabBarExtraContent,
locale = _ref.locale,
moreIcon = _ref.moreIcon,
moreTransitionName = _ref.moreTransitionName,
destroyInactiveTabPane = _ref.destroyInactiveTabPane,
renderTabBar = _ref.renderTabBar,
onChange = _ref.onChange,
onTabClick = _ref.onTabClick,
onTabScroll = _ref.onTabScroll,
getPopupContainer = _ref.getPopupContainer,
popupClassName = _ref.popupClassName,
restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
var tabs = React.useMemo(function () {

@@ -95,36 +74,35 @@ return (items || []).filter(function (item) {

var rtl = direction === 'rtl';
var mergedAnimated = (0, _useAnimateConfig.default)(animated); // ======================== Mobile ========================
var mergedAnimated = (0, _useAnimateConfig.default)(animated);
// ======================== Mobile ========================
var _useState = (0, React.useState)(false),
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
mobile = _useState2[0],
setMobile = _useState2[1];
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
mobile = _useState2[0],
setMobile = _useState2[1];
(0, React.useEffect)(function () {
// Only update on the client side
setMobile((0, _isMobile.default)());
}, []); // ====================== Active Key ======================
}, []);
// ====================== Active Key ======================
var _useMergedState = (0, _useMergedState5.default)(function () {
var _tabs$;
return (_tabs$ = tabs[0]) === null || _tabs$ === void 0 ? void 0 : _tabs$.key;
}, {
value: activeKey,
defaultValue: defaultActiveKey
}),
_useMergedState2 = (0, _slicedToArray2.default)(_useMergedState, 2),
mergedActiveKey = _useMergedState2[0],
setMergedActiveKey = _useMergedState2[1];
var _tabs$;
return (_tabs$ = tabs[0]) === null || _tabs$ === void 0 ? void 0 : _tabs$.key;
}, {
value: activeKey,
defaultValue: defaultActiveKey
}),
_useMergedState2 = (0, _slicedToArray2.default)(_useMergedState, 2),
mergedActiveKey = _useMergedState2[0],
setMergedActiveKey = _useMergedState2[1];
var _useState3 = (0, React.useState)(function () {
return tabs.findIndex(function (tab) {
return tab.key === mergedActiveKey;
});
}),
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
activeIndex = _useState4[0],
setActiveIndex = _useState4[1]; // Reset active key if not exist anymore
return tabs.findIndex(function (tab) {
return tab.key === mergedActiveKey;
});
}),
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
activeIndex = _useState4[0],
setActiveIndex = _useState4[1];
// Reset active key if not exist anymore
(0, React.useEffect)(function () {

@@ -134,23 +112,21 @@ var newActiveIndex = tabs.findIndex(function (tab) {

});
if (newActiveIndex === -1) {
var _tabs$newActiveIndex;
newActiveIndex = Math.max(0, Math.min(activeIndex, tabs.length - 1));
setMergedActiveKey((_tabs$newActiveIndex = tabs[newActiveIndex]) === null || _tabs$newActiveIndex === void 0 ? void 0 : _tabs$newActiveIndex.key);
}
setActiveIndex(newActiveIndex);
}, [tabs.map(function (tab) {
return tab.key;
}).join('_'), mergedActiveKey, activeIndex]); // ===================== Accessibility ====================
}).join('_'), mergedActiveKey, activeIndex]);
// ===================== Accessibility ====================
var _useMergedState3 = (0, _useMergedState5.default)(null, {
value: id
}),
_useMergedState4 = (0, _slicedToArray2.default)(_useMergedState3, 2),
mergedId = _useMergedState4[0],
setMergedId = _useMergedState4[1]; // Async generate id to avoid ssr mapping failed
value: id
}),
_useMergedState4 = (0, _slicedToArray2.default)(_useMergedState3, 2),
mergedId = _useMergedState4[0],
setMergedId = _useMergedState4[1];
// Async generate id to avoid ssr mapping failed
(0, React.useEffect)(function () {

@@ -161,4 +137,5 @@ if (!id) {

}
}, []); // ======================== Events ========================
}, []);
// ======================== Events ========================
function onInternalTabClick(key, e) {

@@ -168,9 +145,8 @@ onTabClick === null || onTabClick === void 0 ? void 0 : onTabClick(key, e);

setMergedActiveKey(key);
if (isActiveChanged) {
onChange === null || onChange === void 0 ? void 0 : onChange(key);
}
} // ======================== Render ========================
}
// ======================== Render ========================
var sharedProps = {

@@ -216,10 +192,7 @@ id: mergedId,

}
var ForwardTabs = /*#__PURE__*/React.forwardRef(Tabs);
if (process.env.NODE_ENV !== 'production') {
ForwardTabs.displayName = 'Tabs';
}
var _default = ForwardTabs;
exports.default = _default;

@@ -7,3 +7,2 @@ "use strict";

exports.stringify = stringify;
/**

@@ -15,3 +14,2 @@ * We trade Map as deps which may change with same value but different ref object.

var tgt;
if (obj instanceof Map) {

@@ -25,4 +23,3 @@ tgt = {};

}
return JSON.stringify(tgt);
}
{
"name": "rc-tabs",
"version": "12.5.6",
"version": "12.5.7",
"description": "tabs ui component for react",

@@ -5,0 +5,0 @@ "engines": {

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc