first commit
This commit is contained in:
3
frontend/node_modules/rc-tabs/lib/hooks/useAnimateConfig.d.ts
generated
vendored
Normal file
3
frontend/node_modules/rc-tabs/lib/hooks/useAnimateConfig.d.ts
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
import type { TabsProps } from '..';
|
||||
import type { AnimatedConfig } from '../interface';
|
||||
export default function useAnimateConfig(animated?: TabsProps['animated']): AnimatedConfig;
|
||||
44
frontend/node_modules/rc-tabs/lib/hooks/useAnimateConfig.js
generated
vendored
Normal file
44
frontend/node_modules/rc-tabs/lib/hooks/useAnimateConfig.js
generated
vendored
Normal file
@@ -0,0 +1,44 @@
|
||||
"use strict";
|
||||
|
||||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
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() {
|
||||
var animated = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
|
||||
inkBar: true,
|
||||
tabPane: false
|
||||
};
|
||||
var mergedAnimated;
|
||||
if (animated === false) {
|
||||
mergedAnimated = {
|
||||
inkBar: false,
|
||||
tabPane: false
|
||||
};
|
||||
} else if (animated === true) {
|
||||
mergedAnimated = {
|
||||
inkBar: true,
|
||||
tabPane: false
|
||||
};
|
||||
} else {
|
||||
mergedAnimated = (0, _objectSpread2.default)({
|
||||
inkBar: true
|
||||
}, (0, _typeof2.default)(animated) === 'object' ? animated : {});
|
||||
}
|
||||
|
||||
// Enable tabPane animation if provide motion
|
||||
if (mergedAnimated.tabPaneMotion && mergedAnimated.tabPane === undefined) {
|
||||
mergedAnimated.tabPane = true;
|
||||
}
|
||||
if (!mergedAnimated.tabPaneMotion && mergedAnimated.tabPane) {
|
||||
if (process.env.NODE_ENV !== 'production') {
|
||||
(0, _warning.default)(false, '`animated.tabPane` is true but `animated.tabPaneMotion` is not provided. Motion will not work.');
|
||||
}
|
||||
mergedAnimated.tabPane = false;
|
||||
}
|
||||
return mergedAnimated;
|
||||
}
|
||||
16
frontend/node_modules/rc-tabs/lib/hooks/useIndicator.d.ts
generated
vendored
Normal file
16
frontend/node_modules/rc-tabs/lib/hooks/useIndicator.d.ts
generated
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
import React from 'react';
|
||||
import type { TabOffset } from '../interface';
|
||||
export type GetIndicatorSize = number | ((origin: number) => number);
|
||||
interface UseIndicatorOptions {
|
||||
activeTabOffset: TabOffset;
|
||||
horizontal: boolean;
|
||||
rtl: boolean;
|
||||
indicator?: {
|
||||
size?: GetIndicatorSize;
|
||||
align?: 'start' | 'center' | 'end';
|
||||
};
|
||||
}
|
||||
declare const useIndicator: (options: UseIndicatorOptions) => {
|
||||
style: React.CSSProperties;
|
||||
};
|
||||
export default useIndicator;
|
||||
93
frontend/node_modules/rc-tabs/lib/hooks/useIndicator.js
generated
vendored
Normal file
93
frontend/node_modules/rc-tabs/lib/hooks/useIndicator.js
generated
vendored
Normal file
@@ -0,0 +1,93 @@
|
||||
"use strict";
|
||||
|
||||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
||||
var _typeof = require("@babel/runtime/helpers/typeof");
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
||||
var _raf = _interopRequireDefault(require("rc-util/lib/raf"));
|
||||
var _react = _interopRequireWildcard(require("react"));
|
||||
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
||||
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
||||
var useIndicator = function useIndicator(options) {
|
||||
var activeTabOffset = options.activeTabOffset,
|
||||
horizontal = options.horizontal,
|
||||
rtl = options.rtl,
|
||||
_options$indicator = options.indicator,
|
||||
indicator = _options$indicator === void 0 ? {} : _options$indicator;
|
||||
var size = indicator.size,
|
||||
_indicator$align = indicator.align,
|
||||
align = _indicator$align === void 0 ? 'center' : _indicator$align;
|
||||
var _useState = (0, _react.useState)(),
|
||||
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
||||
inkStyle = _useState2[0],
|
||||
setInkStyle = _useState2[1];
|
||||
var inkBarRafRef = (0, _react.useRef)();
|
||||
var getLength = _react.default.useCallback(function (origin) {
|
||||
if (typeof size === 'function') {
|
||||
return size(origin);
|
||||
}
|
||||
if (typeof size === 'number') {
|
||||
return size;
|
||||
}
|
||||
return origin;
|
||||
}, [size]);
|
||||
|
||||
// Delay set ink style to avoid remove tab blink
|
||||
function cleanInkBarRaf() {
|
||||
_raf.default.cancel(inkBarRafRef.current);
|
||||
}
|
||||
(0, _react.useEffect)(function () {
|
||||
var newInkStyle = {};
|
||||
if (activeTabOffset) {
|
||||
if (horizontal) {
|
||||
newInkStyle.width = getLength(activeTabOffset.width);
|
||||
var key = rtl ? 'right' : 'left';
|
||||
if (align === 'start') {
|
||||
newInkStyle[key] = activeTabOffset[key];
|
||||
}
|
||||
if (align === 'center') {
|
||||
newInkStyle[key] = activeTabOffset[key] + activeTabOffset.width / 2;
|
||||
newInkStyle.transform = rtl ? 'translateX(50%)' : 'translateX(-50%)';
|
||||
}
|
||||
if (align === 'end') {
|
||||
newInkStyle[key] = activeTabOffset[key] + activeTabOffset.width;
|
||||
newInkStyle.transform = 'translateX(-100%)';
|
||||
}
|
||||
} else {
|
||||
newInkStyle.height = getLength(activeTabOffset.height);
|
||||
if (align === 'start') {
|
||||
newInkStyle.top = activeTabOffset.top;
|
||||
}
|
||||
if (align === 'center') {
|
||||
newInkStyle.top = activeTabOffset.top + activeTabOffset.height / 2;
|
||||
newInkStyle.transform = 'translateY(-50%)';
|
||||
}
|
||||
if (align === 'end') {
|
||||
newInkStyle.top = activeTabOffset.top + activeTabOffset.height;
|
||||
newInkStyle.transform = 'translateY(-100%)';
|
||||
}
|
||||
}
|
||||
}
|
||||
cleanInkBarRaf();
|
||||
inkBarRafRef.current = (0, _raf.default)(function () {
|
||||
// Avoid jitter caused by tiny numerical differences
|
||||
// fix https://github.com/ant-design/ant-design/issues/53378
|
||||
var isEqual = inkStyle && newInkStyle && Object.keys(newInkStyle).every(function (key) {
|
||||
var newValue = newInkStyle[key];
|
||||
var oldValue = inkStyle[key];
|
||||
return typeof newValue === 'number' && typeof oldValue === 'number' ? Math.round(newValue) === Math.round(oldValue) : newValue === oldValue;
|
||||
});
|
||||
if (!isEqual) {
|
||||
setInkStyle(newInkStyle);
|
||||
}
|
||||
});
|
||||
return cleanInkBarRaf;
|
||||
}, [JSON.stringify(activeTabOffset), horizontal, rtl, align, getLength]);
|
||||
return {
|
||||
style: inkStyle
|
||||
};
|
||||
};
|
||||
var _default = exports.default = useIndicator;
|
||||
2
frontend/node_modules/rc-tabs/lib/hooks/useOffsets.d.ts
generated
vendored
Normal file
2
frontend/node_modules/rc-tabs/lib/hooks/useOffsets.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
import type { Tab, TabOffsetMap, TabSizeMap } from '../interface';
|
||||
export default function useOffsets(tabs: Tab[], tabSizes: TabSizeMap, holderScrollWidth: number): TabOffsetMap;
|
||||
43
frontend/node_modules/rc-tabs/lib/hooks/useOffsets.js
generated
vendored
Normal file
43
frontend/node_modules/rc-tabs/lib/hooks/useOffsets.js
generated
vendored
Normal file
@@ -0,0 +1,43 @@
|
||||
"use strict";
|
||||
|
||||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = useOffsets;
|
||||
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
||||
var _react = require("react");
|
||||
var DEFAULT_SIZE = {
|
||||
width: 0,
|
||||
height: 0,
|
||||
left: 0,
|
||||
top: 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
|
||||
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);
|
||||
|
||||
// Right
|
||||
entity.right = rightOffset - entity.left - entity.width;
|
||||
|
||||
// Update entity
|
||||
map.set(key, entity);
|
||||
}
|
||||
return map;
|
||||
}, [tabs.map(function (tab) {
|
||||
return tab.key;
|
||||
}).join('_'), tabSizes, holderScrollWidth]);
|
||||
}
|
||||
3
frontend/node_modules/rc-tabs/lib/hooks/useSyncState.d.ts
generated
vendored
Normal file
3
frontend/node_modules/rc-tabs/lib/hooks/useSyncState.d.ts
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
type Updater<T> = (prev: T) => T;
|
||||
export default function useSyncState<T>(defaultState: T, onChange: (newValue: T, prevValue: T) => void): [T, (updater: T | Updater<T>) => void];
|
||||
export {};
|
||||
27
frontend/node_modules/rc-tabs/lib/hooks/useSyncState.js
generated
vendored
Normal file
27
frontend/node_modules/rc-tabs/lib/hooks/useSyncState.js
generated
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
"use strict";
|
||||
|
||||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
||||
var _typeof = require("@babel/runtime/helpers/typeof");
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = useSyncState;
|
||||
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
||||
var React = _interopRequireWildcard(require("react"));
|
||||
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
||||
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
||||
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];
|
||||
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];
|
||||
}
|
||||
2
frontend/node_modules/rc-tabs/lib/hooks/useTouchMove.d.ts
generated
vendored
Normal file
2
frontend/node_modules/rc-tabs/lib/hooks/useTouchMove.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
import * as React from 'react';
|
||||
export default function useTouchMove(ref: React.RefObject<HTMLDivElement>, onOffset: (offsetX: number, offsetY: number) => boolean): void;
|
||||
165
frontend/node_modules/rc-tabs/lib/hooks/useTouchMove.js
generated
vendored
Normal file
165
frontend/node_modules/rc-tabs/lib/hooks/useTouchMove.js
generated
vendored
Normal file
@@ -0,0 +1,165 @@
|
||||
"use strict";
|
||||
|
||||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
||||
var _typeof = require("@babel/runtime/helpers/typeof");
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = useTouchMove;
|
||||
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
||||
var _react = _interopRequireWildcard(require("react"));
|
||||
var React = _react;
|
||||
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
||||
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
||||
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 =================================
|
||||
function useTouchMove(ref, onOffset) {
|
||||
var _useState = (0, _react.useState)(),
|
||||
_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];
|
||||
var _useState5 = (0, _react.useState)(0),
|
||||
_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];
|
||||
var motionRef = (0, _react.useRef)();
|
||||
|
||||
// ========================= Events =========================
|
||||
// >>> Touch events
|
||||
function onTouchStart(e) {
|
||||
var _e$touches$ = e.touches[0],
|
||||
screenX = _e$touches$.screenX,
|
||||
screenY = _e$touches$.screenY;
|
||||
setTouchPosition({
|
||||
x: screenX,
|
||||
y: screenY
|
||||
});
|
||||
window.clearInterval(motionRef.current);
|
||||
}
|
||||
function onTouchMove(e) {
|
||||
if (!touchPosition) return;
|
||||
|
||||
// e.preventDefault();
|
||||
var _e$touches$2 = e.touches[0],
|
||||
screenX = _e$touches$2.screenX,
|
||||
screenY = _e$touches$2.screenY;
|
||||
setTouchPosition({
|
||||
x: screenX,
|
||||
y: screenY
|
||||
});
|
||||
var offsetX = screenX - touchPosition.x;
|
||||
var offsetY = screenY - touchPosition.y;
|
||||
onOffset(offsetX, offsetY);
|
||||
var now = Date.now();
|
||||
setLastTimestamp(now);
|
||||
setLastTimeDiff(now - lastTimestamp);
|
||||
setLastOffset({
|
||||
x: offsetX,
|
||||
y: offsetY
|
||||
});
|
||||
}
|
||||
function onTouchEnd() {
|
||||
if (!touchPosition) return;
|
||||
setTouchPosition(null);
|
||||
setLastOffset(null);
|
||||
|
||||
// Swipe if needed
|
||||
if (lastOffset) {
|
||||
var distanceX = lastOffset.x / lastTimeDiff;
|
||||
var distanceY = lastOffset.y / lastTimeDiff;
|
||||
var absX = Math.abs(distanceX);
|
||||
var absY = Math.abs(distanceY);
|
||||
|
||||
// Skip swipe if low distance
|
||||
if (Math.max(absX, absY) < MIN_SWIPE_DISTANCE) return;
|
||||
var currentX = distanceX;
|
||||
var currentY = distanceY;
|
||||
motionRef.current = window.setInterval(function () {
|
||||
if (Math.abs(currentX) < STOP_SWIPE_DISTANCE && Math.abs(currentY) < STOP_SWIPE_DISTANCE) {
|
||||
window.clearInterval(motionRef.current);
|
||||
return;
|
||||
}
|
||||
currentX *= SPEED_OFF_MULTIPLE;
|
||||
currentY *= SPEED_OFF_MULTIPLE;
|
||||
onOffset(currentX * REFRESH_INTERVAL, currentY * REFRESH_INTERVAL);
|
||||
}, REFRESH_INTERVAL);
|
||||
}
|
||||
}
|
||||
|
||||
// >>> 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
|
||||
var mixed = 0;
|
||||
var absX = Math.abs(deltaX);
|
||||
var absY = Math.abs(deltaY);
|
||||
if (absX === absY) {
|
||||
mixed = lastWheelDirectionRef.current === 'x' ? deltaX : deltaY;
|
||||
} else if (absX > absY) {
|
||||
mixed = deltaX;
|
||||
lastWheelDirectionRef.current = 'x';
|
||||
} else {
|
||||
mixed = deltaY;
|
||||
lastWheelDirectionRef.current = 'y';
|
||||
}
|
||||
if (onOffset(-mixed, -mixed)) {
|
||||
e.preventDefault();
|
||||
}
|
||||
}
|
||||
|
||||
// ========================= Effect =========================
|
||||
var touchEventsRef = (0, _react.useRef)(null);
|
||||
touchEventsRef.current = {
|
||||
onTouchStart: onTouchStart,
|
||||
onTouchMove: onTouchMove,
|
||||
onTouchEnd: onTouchEnd,
|
||||
onWheel: onWheel
|
||||
};
|
||||
React.useEffect(function () {
|
||||
function onProxyTouchStart(e) {
|
||||
touchEventsRef.current.onTouchStart(e);
|
||||
}
|
||||
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, {
|
||||
passive: false
|
||||
});
|
||||
document.addEventListener('touchend', onProxyTouchEnd, {
|
||||
passive: true
|
||||
});
|
||||
|
||||
// No need to clean up since element removed
|
||||
ref.current.addEventListener('touchstart', onProxyTouchStart, {
|
||||
passive: true
|
||||
});
|
||||
ref.current.addEventListener('wheel', onProxyWheel, {
|
||||
passive: false
|
||||
});
|
||||
return function () {
|
||||
document.removeEventListener('touchmove', onProxyTouchMove);
|
||||
document.removeEventListener('touchend', onProxyTouchEnd);
|
||||
};
|
||||
}, []);
|
||||
}
|
||||
8
frontend/node_modules/rc-tabs/lib/hooks/useUpdate.d.ts
generated
vendored
Normal file
8
frontend/node_modules/rc-tabs/lib/hooks/useUpdate.d.ts
generated
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
/**
|
||||
* Help to merge callback with `useLayoutEffect`.
|
||||
* One time will only trigger once.
|
||||
*/
|
||||
export default function useUpdate(callback: VoidFunction): () => void;
|
||||
type Callback<T> = (ori: T) => T;
|
||||
export declare function useUpdateState<T>(defaultState: T | (() => T)): [T, (updater: Callback<T>) => void];
|
||||
export {};
|
||||
60
frontend/node_modules/rc-tabs/lib/hooks/useUpdate.js
generated
vendored
Normal file
60
frontend/node_modules/rc-tabs/lib/hooks/useUpdate.js
generated
vendored
Normal file
@@ -0,0 +1,60 @@
|
||||
"use strict";
|
||||
|
||||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = useUpdate;
|
||||
exports.useUpdateState = useUpdateState;
|
||||
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
||||
var _useLayoutEffect = require("rc-util/lib/hooks/useLayoutEffect");
|
||||
var _react = require("react");
|
||||
/**
|
||||
* Help to merge callback with `useLayoutEffect`.
|
||||
* One time will only trigger once.
|
||||
*/
|
||||
function useUpdate(callback) {
|
||||
var _useState = (0, _react.useState)(0),
|
||||
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
||||
count = _useState2[0],
|
||||
setCount = _useState2[1];
|
||||
var effectRef = (0, _react.useRef)(0);
|
||||
var callbackRef = (0, _react.useRef)();
|
||||
callbackRef.current = callback;
|
||||
|
||||
// Trigger on `useLayoutEffect`
|
||||
(0, _useLayoutEffect.useLayoutUpdateEffect)(function () {
|
||||
var _callbackRef$current;
|
||||
(_callbackRef$current = callbackRef.current) === null || _callbackRef$current === void 0 || _callbackRef$current.call(callbackRef);
|
||||
}, [count]);
|
||||
|
||||
// Trigger to update count
|
||||
return function () {
|
||||
if (effectRef.current !== count) {
|
||||
return;
|
||||
}
|
||||
effectRef.current += 1;
|
||||
setCount(effectRef.current);
|
||||
};
|
||||
}
|
||||
function useUpdateState(defaultState) {
|
||||
var batchRef = (0, _react.useRef)([]);
|
||||
var _useState3 = (0, _react.useState)({}),
|
||||
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
||||
forceUpdate = _useState4[1];
|
||||
var state = (0, _react.useRef)(typeof defaultState === 'function' ? defaultState() : defaultState);
|
||||
var flushUpdate = useUpdate(function () {
|
||||
var current = state.current;
|
||||
batchRef.current.forEach(function (callback) {
|
||||
current = callback(current);
|
||||
});
|
||||
batchRef.current = [];
|
||||
state.current = current;
|
||||
forceUpdate({});
|
||||
});
|
||||
function updater(callback) {
|
||||
batchRef.current.push(callback);
|
||||
flushUpdate();
|
||||
}
|
||||
return [state.current, updater];
|
||||
}
|
||||
6
frontend/node_modules/rc-tabs/lib/hooks/useVisibleRange.d.ts
generated
vendored
Normal file
6
frontend/node_modules/rc-tabs/lib/hooks/useVisibleRange.d.ts
generated
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
import type { Tab, TabOffsetMap } from '../interface';
|
||||
import type { TabNavListProps } from '../TabNavList';
|
||||
export type ContainerSizeInfo = [width: number, height: number, left: number, top: number];
|
||||
export default function useVisibleRange(tabOffsets: TabOffsetMap, visibleTabContentValue: number, transform: number, tabContentSizeValue: number, addNodeSizeValue: number, operationNodeSizeValue: number, { tabs, tabPosition, rtl }: {
|
||||
tabs: Tab[];
|
||||
} & TabNavListProps): [visibleStart: number, visibleEnd: number];
|
||||
56
frontend/node_modules/rc-tabs/lib/hooks/useVisibleRange.js
generated
vendored
Normal file
56
frontend/node_modules/rc-tabs/lib/hooks/useVisibleRange.js
generated
vendored
Normal file
@@ -0,0 +1,56 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = useVisibleRange;
|
||||
var _react = require("react");
|
||||
var DEFAULT_SIZE = {
|
||||
width: 0,
|
||||
height: 0,
|
||||
left: 0,
|
||||
top: 0,
|
||||
right: 0
|
||||
};
|
||||
function useVisibleRange(tabOffsets, visibleTabContentValue, transform, tabContentSizeValue, addNodeSizeValue, operationNodeSizeValue, _ref) {
|
||||
var tabs = _ref.tabs,
|
||||
tabPosition = _ref.tabPosition,
|
||||
rtl = _ref.rtl;
|
||||
var charUnit;
|
||||
var position;
|
||||
var transformSize;
|
||||
if (['top', 'bottom'].includes(tabPosition)) {
|
||||
charUnit = 'width';
|
||||
position = rtl ? 'right' : 'left';
|
||||
transformSize = Math.abs(transform);
|
||||
} else {
|
||||
charUnit = 'height';
|
||||
position = 'top';
|
||||
transformSize = -transform;
|
||||
}
|
||||
return (0, _react.useMemo)(function () {
|
||||
if (!tabs.length) {
|
||||
return [0, 0];
|
||||
}
|
||||
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 (Math.floor(offset[position] + offset[charUnit]) > Math.floor(transformSize + visibleTabContentValue)) {
|
||||
endIndex = i - 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
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) {
|
||||
startIndex = _i + 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return startIndex > endIndex ? [0, -1] : [startIndex, endIndex];
|
||||
}, [tabOffsets, visibleTabContentValue, tabContentSizeValue, addNodeSizeValue, operationNodeSizeValue, transformSize, tabPosition, tabs.map(function (tab) {
|
||||
return tab.key;
|
||||
}).join('_'), rtl]);
|
||||
}
|
||||
Reference in New Issue
Block a user