add all frontend files

This commit is contained in:
2026-01-17 15:16:36 -05:00
parent ff16ae7858
commit e40287e4aa
25704 changed files with 1935289 additions and 0 deletions

4
node_modules/antd/lib/float-button/BackTop.d.ts generated vendored Normal file
View File

@@ -0,0 +1,4 @@
import React from 'react';
import type { BackTopProps, FloatButtonRef } from './interface';
declare const BackTop: React.ForwardRefExoticComponent<BackTopProps & React.RefAttributes<FloatButtonRef>>;
export default BackTop;

109
node_modules/antd/lib/float-button/BackTop.js generated vendored Normal file
View File

@@ -0,0 +1,109 @@
"use strict";
"use client";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = _interopRequireWildcard(require("react"));
var _VerticalAlignTopOutlined = _interopRequireDefault(require("@ant-design/icons/VerticalAlignTopOutlined"));
var _classnames = _interopRequireDefault(require("classnames"));
var _rcMotion = _interopRequireDefault(require("rc-motion"));
var _ref = require("rc-util/lib/ref");
var _getScroll = _interopRequireDefault(require("../_util/getScroll"));
var _scrollTo = _interopRequireDefault(require("../_util/scrollTo"));
var _throttleByAnimationFrame = _interopRequireDefault(require("../_util/throttleByAnimationFrame"));
var _configProvider = require("../config-provider");
var _context = require("../config-provider/context");
var _context2 = _interopRequireDefault(require("./context"));
var _FloatButton = _interopRequireWildcard(require("./FloatButton"));
var __rest = void 0 && (void 0).__rest || function (s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
}
return t;
};
const defaultIcon = /*#__PURE__*/_react.default.createElement(_VerticalAlignTopOutlined.default, null);
const BackTop = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
var _a;
const {
backTopIcon: contextIcon
} = (0, _context.useComponentConfig)('floatButton');
const {
prefixCls: customizePrefixCls,
className,
type = 'default',
shape = 'circle',
visibilityHeight = 400,
icon,
target,
onClick,
duration = 450
} = props,
restProps = __rest(props, ["prefixCls", "className", "type", "shape", "visibilityHeight", "icon", "target", "onClick", "duration"]);
const mergedIcon = (_a = icon !== null && icon !== void 0 ? icon : contextIcon) !== null && _a !== void 0 ? _a : defaultIcon;
const [visible, setVisible] = (0, _react.useState)(visibilityHeight === 0);
const internalRef = _react.default.useRef(null);
_react.default.useImperativeHandle(ref, () => ({
nativeElement: internalRef.current
}));
const getDefaultTarget = () => {
var _a;
return ((_a = internalRef.current) === null || _a === void 0 ? void 0 : _a.ownerDocument) || window;
};
const handleScroll = (0, _throttleByAnimationFrame.default)(e => {
const scrollTop = (0, _getScroll.default)(e.target);
setVisible(scrollTop >= visibilityHeight);
});
(0, _react.useEffect)(() => {
const getTarget = target || getDefaultTarget;
const container = getTarget();
handleScroll({
target: container
});
container === null || container === void 0 ? void 0 : container.addEventListener('scroll', handleScroll);
return () => {
handleScroll.cancel();
container === null || container === void 0 ? void 0 : container.removeEventListener('scroll', handleScroll);
};
}, [target]);
const scrollToTop = e => {
(0, _scrollTo.default)(0, {
getContainer: target || getDefaultTarget,
duration
});
onClick === null || onClick === void 0 ? void 0 : onClick(e);
};
const {
getPrefixCls
} = (0, _react.useContext)(_configProvider.ConfigContext);
const prefixCls = getPrefixCls(_FloatButton.floatButtonPrefixCls, customizePrefixCls);
const rootPrefixCls = getPrefixCls();
const groupShape = (0, _react.useContext)(_context2.default);
const mergedShape = groupShape || shape;
const contentProps = Object.assign({
prefixCls,
icon: mergedIcon,
type,
shape: mergedShape
}, restProps);
return /*#__PURE__*/_react.default.createElement(_rcMotion.default, {
visible: visible,
motionName: `${rootPrefixCls}-fade`
}, ({
className: motionClassName
}, setRef) => (/*#__PURE__*/_react.default.createElement(_FloatButton.default, Object.assign({
ref: (0, _ref.composeRef)(internalRef, setRef)
}, contentProps, {
onClick: scrollToTop,
className: (0, _classnames.default)(className, motionClassName)
}))));
});
if (process.env.NODE_ENV !== 'production') {
BackTop.displayName = 'BackTop';
}
var _default = exports.default = BackTop;

14
node_modules/antd/lib/float-button/FloatButton.d.ts generated vendored Normal file
View File

@@ -0,0 +1,14 @@
import React from 'react';
import type BackTop from './BackTop';
import type FloatButtonGroup from './FloatButtonGroup';
import type { FloatButtonElement, FloatButtonProps } from './interface';
import type PurePanel from './PurePanel';
export declare const floatButtonPrefixCls = "float-btn";
declare const InternalFloatButton: React.ForwardRefExoticComponent<FloatButtonProps & React.RefAttributes<FloatButtonElement>>;
type CompoundedComponent = typeof InternalFloatButton & {
Group: typeof FloatButtonGroup;
BackTop: typeof BackTop;
_InternalPanelDoNotUseOrYouWillBeFired: typeof PurePanel;
};
declare const FloatButton: CompoundedComponent;
export default FloatButton;

102
node_modules/antd/lib/float-button/FloatButton.js generated vendored Normal file
View File

@@ -0,0 +1,102 @@
"use strict";
"use client";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.floatButtonPrefixCls = exports.default = void 0;
var _react = _interopRequireWildcard(require("react"));
var _classnames = _interopRequireDefault(require("classnames"));
var _omit = _interopRequireDefault(require("rc-util/lib/omit"));
var _convertToTooltipProps = _interopRequireDefault(require("../_util/convertToTooltipProps"));
var _hooks = require("../_util/hooks");
var _warning = require("../_util/warning");
var _badge = _interopRequireDefault(require("../badge"));
var _configProvider = require("../config-provider");
var _useCSSVarCls = _interopRequireDefault(require("../config-provider/hooks/useCSSVarCls"));
var _tooltip = _interopRequireDefault(require("../tooltip"));
var _context = _interopRequireDefault(require("./context"));
var _FloatButtonContent = _interopRequireDefault(require("./FloatButtonContent"));
var _style = _interopRequireDefault(require("./style"));
var __rest = void 0 && (void 0).__rest || function (s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
}
return t;
};
const floatButtonPrefixCls = exports.floatButtonPrefixCls = 'float-btn';
const InternalFloatButton = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
const {
prefixCls: customizePrefixCls,
className,
rootClassName,
style,
type = 'default',
shape = 'circle',
icon,
description,
tooltip,
htmlType = 'button',
badge = {}
} = props,
restProps = __rest(props, ["prefixCls", "className", "rootClassName", "style", "type", "shape", "icon", "description", "tooltip", "htmlType", "badge"]);
const {
getPrefixCls,
direction
} = (0, _react.useContext)(_configProvider.ConfigContext);
const groupShape = (0, _react.useContext)(_context.default);
const prefixCls = getPrefixCls(floatButtonPrefixCls, customizePrefixCls);
const rootCls = (0, _useCSSVarCls.default)(prefixCls);
const [wrapCSSVar, hashId, cssVarCls] = (0, _style.default)(prefixCls, rootCls);
const mergedShape = groupShape || shape;
const classString = (0, _classnames.default)(hashId, cssVarCls, rootCls, prefixCls, className, rootClassName, `${prefixCls}-${type}`, `${prefixCls}-${mergedShape}`, {
[`${prefixCls}-rtl`]: direction === 'rtl'
});
// ============================ zIndex ============================
const [zIndex] = (0, _hooks.useZIndex)('FloatButton', style === null || style === void 0 ? void 0 : style.zIndex);
const mergedStyle = Object.assign(Object.assign({}, style), {
zIndex
});
// 虽然在 ts 中已经 omit 过了,但是为了防止多余的属性被透传进来,这里再 omit 一遍,以防万一
const badgeProps = (0, _omit.default)(badge, ['title', 'children', 'status', 'text']);
let buttonNode = /*#__PURE__*/_react.default.createElement("div", {
className: `${prefixCls}-body`
}, /*#__PURE__*/_react.default.createElement(_FloatButtonContent.default, {
prefixCls: prefixCls,
description: description,
icon: icon
}));
if ('badge' in props) {
buttonNode = /*#__PURE__*/_react.default.createElement(_badge.default, Object.assign({}, badgeProps), buttonNode);
}
// ============================ Tooltip ============================
const tooltipProps = (0, _convertToTooltipProps.default)(tooltip);
if (tooltipProps) {
buttonNode = /*#__PURE__*/_react.default.createElement(_tooltip.default, Object.assign({}, tooltipProps), buttonNode);
}
if (process.env.NODE_ENV !== 'production') {
const warning = (0, _warning.devUseWarning)('FloatButton');
process.env.NODE_ENV !== "production" ? warning(!(mergedShape === 'circle' && description), 'usage', 'supported only when `shape` is `square`. Due to narrow space for text, short sentence is recommended.') : void 0;
}
return wrapCSSVar(props.href ? (/*#__PURE__*/_react.default.createElement("a", Object.assign({
ref: ref
}, restProps, {
className: classString,
style: mergedStyle
}), buttonNode)) : (/*#__PURE__*/_react.default.createElement("button", Object.assign({
ref: ref
}, restProps, {
className: classString,
style: mergedStyle,
type: htmlType
}), buttonNode)));
});
const FloatButton = InternalFloatButton;
if (process.env.NODE_ENV !== 'production') {
FloatButton.displayName = 'FloatButton';
}
var _default = exports.default = FloatButton;

View File

@@ -0,0 +1,4 @@
import React from 'react';
import type { FloatButtonContentProps } from './interface';
declare const _default: React.NamedExoticComponent<FloatButtonContentProps>;
export default _default;

View File

@@ -0,0 +1,40 @@
"use strict";
"use client";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = _interopRequireWildcard(require("react"));
var _FileTextOutlined = _interopRequireDefault(require("@ant-design/icons/FileTextOutlined"));
var _classnames = _interopRequireDefault(require("classnames"));
var __rest = void 0 && (void 0).__rest || function (s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
}
return t;
};
const FloatButtonContent = props => {
const {
icon,
description,
prefixCls,
className
} = props,
rest = __rest(props, ["icon", "description", "prefixCls", "className"]);
const defaultElement = /*#__PURE__*/_react.default.createElement("div", {
className: `${prefixCls}-icon`
}, /*#__PURE__*/_react.default.createElement(_FileTextOutlined.default, null));
return /*#__PURE__*/_react.default.createElement("div", Object.assign({}, rest, {
className: (0, _classnames.default)(className, `${prefixCls}-content`)
}), icon || description ? (/*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, icon && /*#__PURE__*/_react.default.createElement("div", {
className: `${prefixCls}-icon`
}, icon), description && /*#__PURE__*/_react.default.createElement("div", {
className: `${prefixCls}-description`
}, description))) : defaultElement);
};
var _default = exports.default = /*#__PURE__*/(0, _react.memo)(FloatButtonContent);

View File

@@ -0,0 +1,4 @@
import React from 'react';
import type { FloatButtonGroupProps } from './interface';
declare const FloatButtonGroup: React.FC<Readonly<FloatButtonGroupProps>>;
export default FloatButtonGroup;

155
node_modules/antd/lib/float-button/FloatButtonGroup.js generated vendored Normal file
View File

@@ -0,0 +1,155 @@
"use strict";
"use client";
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = _interopRequireDefault(require("react"));
var _CloseOutlined = _interopRequireDefault(require("@ant-design/icons/CloseOutlined"));
var _FileTextOutlined = _interopRequireDefault(require("@ant-design/icons/FileTextOutlined"));
var _classnames = _interopRequireDefault(require("classnames"));
var _rcMotion = _interopRequireDefault(require("rc-motion"));
var _useEvent = _interopRequireDefault(require("rc-util/lib/hooks/useEvent"));
var _useMergedState = _interopRequireDefault(require("rc-util/lib/hooks/useMergedState"));
var _hooks = require("../_util/hooks");
var _warning = require("../_util/warning");
var _context = require("../config-provider/context");
var _useCSSVarCls = _interopRequireDefault(require("../config-provider/hooks/useCSSVarCls"));
var _context2 = require("./context");
var _FloatButton = _interopRequireWildcard(require("./FloatButton"));
var _style = _interopRequireDefault(require("./style"));
var __rest = void 0 && (void 0).__rest || function (s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
}
return t;
};
const FloatButtonGroup = props => {
var _a;
const {
prefixCls: customizePrefixCls,
className,
style,
shape = 'circle',
type = 'default',
placement = 'top',
icon = /*#__PURE__*/_react.default.createElement(_FileTextOutlined.default, null),
closeIcon,
description,
trigger,
children,
onOpenChange,
open: customOpen,
onClick: onTriggerButtonClick
} = props,
floatButtonProps = __rest(props, ["prefixCls", "className", "style", "shape", "type", "placement", "icon", "closeIcon", "description", "trigger", "children", "onOpenChange", "open", "onClick"]);
const {
direction,
getPrefixCls,
closeIcon: contextCloseIcon
} = (0, _context.useComponentConfig)('floatButtonGroup');
const mergedCloseIcon = (_a = closeIcon !== null && closeIcon !== void 0 ? closeIcon : contextCloseIcon) !== null && _a !== void 0 ? _a : /*#__PURE__*/_react.default.createElement(_CloseOutlined.default, null);
const prefixCls = getPrefixCls(_FloatButton.floatButtonPrefixCls, customizePrefixCls);
const rootCls = (0, _useCSSVarCls.default)(prefixCls);
const [wrapCSSVar, hashId, cssVarCls] = (0, _style.default)(prefixCls, rootCls);
const groupPrefixCls = `${prefixCls}-group`;
const isMenuMode = trigger && ['click', 'hover'].includes(trigger);
const isValidPlacement = placement && ['top', 'left', 'right', 'bottom'].includes(placement);
const groupCls = (0, _classnames.default)(groupPrefixCls, hashId, cssVarCls, rootCls, className, {
[`${groupPrefixCls}-rtl`]: direction === 'rtl',
[`${groupPrefixCls}-${shape}`]: shape,
[`${groupPrefixCls}-${shape}-shadow`]: !isMenuMode,
[`${groupPrefixCls}-${placement}`]: isMenuMode && isValidPlacement // 只有菜单模式才支持弹出方向
});
// ============================ zIndex ============================
const [zIndex] = (0, _hooks.useZIndex)('FloatButton', style === null || style === void 0 ? void 0 : style.zIndex);
const mergedStyle = Object.assign(Object.assign({}, style), {
zIndex
});
const wrapperCls = (0, _classnames.default)(hashId, `${groupPrefixCls}-wrap`);
const [open, setOpen] = (0, _useMergedState.default)(false, {
value: customOpen
});
const floatButtonGroupRef = _react.default.useRef(null);
// ========================== Open ==========================
const hoverTrigger = trigger === 'hover';
const clickTrigger = trigger === 'click';
const triggerOpen = (0, _useEvent.default)(nextOpen => {
if (open !== nextOpen) {
setOpen(nextOpen);
onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(nextOpen);
}
});
// ===================== Trigger: Hover =====================
const onMouseEnter = () => {
if (hoverTrigger) {
triggerOpen(true);
}
};
const onMouseLeave = () => {
if (hoverTrigger) {
triggerOpen(false);
}
};
// ===================== Trigger: Click =====================
const onInternalTriggerButtonClick = e => {
if (clickTrigger) {
triggerOpen(!open);
}
onTriggerButtonClick === null || onTriggerButtonClick === void 0 ? void 0 : onTriggerButtonClick(e);
};
_react.default.useEffect(() => {
if (clickTrigger) {
const onDocClick = e => {
var _a;
// Skip if click on the group
if ((_a = floatButtonGroupRef.current) === null || _a === void 0 ? void 0 : _a.contains(e.target)) {
return;
}
triggerOpen(false);
};
document.addEventListener('click', onDocClick, {
capture: true
});
return () => document.removeEventListener('click', onDocClick, {
capture: true
});
}
}, [clickTrigger]);
// ======================== Warning =========================
if (process.env.NODE_ENV !== 'production') {
const warning = (0, _warning.devUseWarning)('FloatButton.Group');
process.env.NODE_ENV !== "production" ? warning(!('open' in props) || !!trigger, 'usage', '`open` need to be used together with `trigger`') : void 0;
}
// ========================= Render =========================
return wrapCSSVar(/*#__PURE__*/_react.default.createElement(_context2.FloatButtonGroupProvider, {
value: shape
}, /*#__PURE__*/_react.default.createElement("div", {
ref: floatButtonGroupRef,
className: groupCls,
style: mergedStyle,
// Hover trigger
onMouseEnter: onMouseEnter,
onMouseLeave: onMouseLeave
}, isMenuMode ? (/*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_rcMotion.default, {
visible: open,
motionName: `${groupPrefixCls}-wrap`
}, ({
className: motionClassName
}) => (/*#__PURE__*/_react.default.createElement("div", {
className: (0, _classnames.default)(motionClassName, wrapperCls)
}, children))), /*#__PURE__*/_react.default.createElement(_FloatButton.default, Object.assign({
type: type,
icon: open ? mergedCloseIcon : icon,
description: description,
"aria-label": props['aria-label'],
className: `${groupPrefixCls}-trigger`,
onClick: onInternalTriggerButtonClick
}, floatButtonProps)))) : children)));
};
var _default = exports.default = FloatButtonGroup;

12
node_modules/antd/lib/float-button/PurePanel.d.ts generated vendored Normal file
View File

@@ -0,0 +1,12 @@
import * as React from 'react';
import type { FloatButtonGroupProps, FloatButtonProps } from './interface';
export interface PureFloatButtonProps extends Omit<FloatButtonProps, 'target'> {
backTop?: boolean;
}
export interface PurePanelProps extends PureFloatButtonProps, Omit<FloatButtonGroupProps, 'children'> {
/** Convert to FloatGroup when configured */
items?: PureFloatButtonProps[];
}
/** @private Internal Component. Do not use in your production. */
declare const PurePanel: React.FC<PurePanelProps>;
export default PurePanel;

61
node_modules/antd/lib/float-button/PurePanel.js generated vendored Normal file
View File

@@ -0,0 +1,61 @@
"use strict";
"use client";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var React = _interopRequireWildcard(require("react"));
var _classnames = _interopRequireDefault(require("classnames"));
var _configProvider = require("../config-provider");
var _BackTop = _interopRequireDefault(require("./BackTop"));
var _FloatButton = _interopRequireWildcard(require("./FloatButton"));
var _FloatButtonGroup = _interopRequireDefault(require("./FloatButtonGroup"));
var __rest = void 0 && (void 0).__rest || function (s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
}
return t;
};
/* eslint-disable react/no-array-index-key */
const PureFloatButton = _a => {
var {
backTop
} = _a,
props = __rest(_a, ["backTop"]);
return backTop ? /*#__PURE__*/React.createElement(_BackTop.default, Object.assign({}, props, {
visibilityHeight: 0
})) : /*#__PURE__*/React.createElement(_FloatButton.default, Object.assign({}, props));
};
/** @private Internal Component. Do not use in your production. */
const PurePanel = _a => {
var {
className,
items
} = _a,
props = __rest(_a, ["className", "items"]);
const {
prefixCls: customizePrefixCls
} = props;
const {
getPrefixCls
} = React.useContext(_configProvider.ConfigContext);
const prefixCls = getPrefixCls(_FloatButton.floatButtonPrefixCls, customizePrefixCls);
const pureCls = `${prefixCls}-pure`;
if (items) {
return /*#__PURE__*/React.createElement(_FloatButtonGroup.default, Object.assign({
className: (0, _classnames.default)(className, pureCls)
}, props), items.map((item, index) => (/*#__PURE__*/React.createElement(PureFloatButton, Object.assign({
key: index
}, item)))));
}
return /*#__PURE__*/React.createElement(PureFloatButton, Object.assign({
className: (0, _classnames.default)(className, pureCls)
}, props));
};
var _default = exports.default = PurePanel;

5
node_modules/antd/lib/float-button/context.d.ts generated vendored Normal file
View File

@@ -0,0 +1,5 @@
import React from 'react';
import type { FloatButtonShape } from './interface';
declare const FloatButtonGroupContext: React.Context<FloatButtonShape | undefined>;
export declare const FloatButtonGroupProvider: React.Provider<FloatButtonShape | undefined>;
export default FloatButtonGroupContext;

14
node_modules/antd/lib/float-button/context.js generated vendored Normal file
View File

@@ -0,0 +1,14 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.FloatButtonGroupProvider = void 0;
var _react = _interopRequireDefault(require("react"));
const FloatButtonGroupContext = /*#__PURE__*/_react.default.createContext(undefined);
const {
Provider: FloatButtonGroupProvider
} = FloatButtonGroupContext;
exports.FloatButtonGroupProvider = FloatButtonGroupProvider;
var _default = exports.default = FloatButtonGroupContext;

2
node_modules/antd/lib/float-button/index.d.ts generated vendored Normal file
View File

@@ -0,0 +1,2 @@
import FloatButton from './FloatButton';
export default FloatButton;

16
node_modules/antd/lib/float-button/index.js generated vendored Normal file
View File

@@ -0,0 +1,16 @@
"use strict";
"use client";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _BackTop = _interopRequireDefault(require("./BackTop"));
var _FloatButton = _interopRequireDefault(require("./FloatButton"));
var _FloatButtonGroup = _interopRequireDefault(require("./FloatButtonGroup"));
var _PurePanel = _interopRequireDefault(require("./PurePanel"));
_FloatButton.default.BackTop = _BackTop.default;
_FloatButton.default.Group = _FloatButtonGroup.default;
_FloatButton.default._InternalPanelDoNotUseOrYouWillBeFired = _PurePanel.default;
var _default = exports.default = _FloatButton.default;

58
node_modules/antd/lib/float-button/interface.d.ts generated vendored Normal file
View File

@@ -0,0 +1,58 @@
import type React from 'react';
import type { BadgeProps } from '../badge';
import type { ButtonHTMLType } from '../button';
import type { TooltipProps } from '../tooltip';
export type FloatButtonElement = HTMLAnchorElement & HTMLButtonElement;
export interface FloatButtonRef {
nativeElement: FloatButtonElement | null;
}
export type FloatButtonType = 'default' | 'primary';
export type FloatButtonShape = 'circle' | 'square';
export type FloatButtonGroupTrigger = 'click' | 'hover';
export type FloatButtonBadgeProps = Omit<BadgeProps, 'status' | 'text' | 'title' | 'children'>;
export interface FloatButtonProps extends React.DOMAttributes<FloatButtonElement> {
prefixCls?: string;
className?: string;
rootClassName?: string;
style?: React.CSSProperties;
icon?: React.ReactNode;
description?: React.ReactNode;
type?: FloatButtonType;
shape?: FloatButtonShape;
tooltip?: React.ReactNode | TooltipProps;
href?: string;
target?: React.HTMLAttributeAnchorTarget;
badge?: FloatButtonBadgeProps;
/**
* @since 5.21.0
* @default button
*/
htmlType?: ButtonHTMLType;
'aria-label'?: React.HtmlHTMLAttributes<HTMLElement>['aria-label'];
disabled?: boolean;
}
export interface FloatButtonContentProps extends React.DOMAttributes<HTMLDivElement> {
className?: string;
icon?: FloatButtonProps['icon'];
description?: FloatButtonProps['description'];
prefixCls: FloatButtonProps['prefixCls'];
}
export interface FloatButtonGroupProps extends FloatButtonProps {
children: React.ReactNode;
trigger?: FloatButtonGroupTrigger;
open?: boolean;
closeIcon?: React.ReactNode;
placement?: 'top' | 'left' | 'right' | 'bottom';
onOpenChange?: (open: boolean) => void;
}
export interface BackTopProps extends Omit<FloatButtonProps, 'target'> {
visibilityHeight?: number;
onClick?: React.MouseEventHandler<FloatButtonElement>;
target?: () => HTMLElement | Window | Document;
prefixCls?: string;
children?: React.ReactNode;
className?: string;
rootClassName?: string;
style?: React.CSSProperties;
duration?: number;
}

5
node_modules/antd/lib/float-button/interface.js generated vendored Normal file
View File

@@ -0,0 +1,5 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});

68
node_modules/antd/lib/float-button/style/index.d.ts generated vendored Normal file
View File

@@ -0,0 +1,68 @@
import type { FullToken, GetDefaultToken } from '../../theme/internal';
/** Component only token. Which will handle additional calculation of alias token */
export interface ComponentToken {
}
/**
* @desc FloatButton 组件的 Token
* @descEN Token for FloatButton component
*/
export type FloatButtonToken = FullToken<'FloatButton'> & {
/**
* @desc FloatButton 颜色
* @descEN Color of FloatButton
*/
floatButtonColor: string;
/**
* @desc FloatButton 背景颜色
* @descEN Background color of FloatButton
*/
floatButtonBackgroundColor: string;
/**
* @desc FloatButton 悬停背景颜色
* @descEN Hover background color of FloatButton
*/
floatButtonHoverBackgroundColor: string;
/**
* @desc FloatButton 字体大小
* @descEN Font size of FloatButton
*/
floatButtonFontSize: number;
/**
* @desc FloatButton 尺寸
* @descEN Size of FloatButton
*/
floatButtonSize: number;
/**
* @desc FloatButton 图标尺寸
* @descEN Icon size of FloatButton
*/
floatButtonIconSize: number | string;
/**
* @desc FloatButton 主体尺寸
* @descEN Body size of FloatButton
*/
floatButtonBodySize: number | string;
/**
* @desc FloatButton 主体内间距
* @descEN Body padding of FloatButton
*/
floatButtonBodyPadding: number;
/**
* @desc 徽标偏移量
* @descEN Offset of badge
*/
badgeOffset: number | string;
/**
* @desc FloatButton 底部内边距
* @descEN Bottom inset of FloatButton
*/
floatButtonInsetBlockEnd: number;
/**
* @desc FloatButton 右侧内边距
* @descEN Right inset of FloatButton
*/
floatButtonInsetInlineEnd: number;
};
export declare const prepareComponentToken: GetDefaultToken<'FloatButton'>;
declare const _default: (prefixCls: string, rootCls?: string) => readonly [(node: React.ReactElement) => React.ReactElement, string, string];
export default _default;

405
node_modules/antd/lib/float-button/style/index.js generated vendored Normal file
View File

@@ -0,0 +1,405 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.prepareComponentToken = exports.default = void 0;
var _cssinjs = require("@ant-design/cssinjs");
var _style = require("../../style");
var _fade = require("../../style/motion/fade");
var _internal = require("../../theme/internal");
var _util = _interopRequireDefault(require("../util"));
var _keyframes = _interopRequireDefault(require("./keyframes"));
// ============================== Group ==============================
const floatButtonGroupStyle = token => {
const {
antCls,
componentCls,
floatButtonSize,
margin,
borderRadiusLG,
borderRadiusSM,
badgeOffset,
floatButtonBodyPadding,
zIndexPopupBase,
calc
} = token;
const groupPrefixCls = `${componentCls}-group`;
return {
[groupPrefixCls]: Object.assign(Object.assign({}, (0, _style.resetComponent)(token)), {
zIndex: zIndexPopupBase,
display: 'flex',
flexDirection: 'column',
alignItems: 'center',
justifyContent: 'center',
border: 'none',
position: 'fixed',
height: 'auto',
boxShadow: 'none',
minWidth: floatButtonSize,
minHeight: floatButtonSize,
insetInlineEnd: token.floatButtonInsetInlineEnd,
bottom: token.floatButtonInsetBlockEnd,
borderRadius: borderRadiusLG,
[`${groupPrefixCls}-wrap`]: {
zIndex: -1,
display: 'flex',
justifyContent: 'center',
alignItems: 'center',
position: 'absolute'
},
[`&${groupPrefixCls}-rtl`]: {
direction: 'rtl'
},
[componentCls]: {
position: 'static'
}
}),
[`${groupPrefixCls}-top > ${groupPrefixCls}-wrap`]: {
flexDirection: 'column',
top: 'auto',
bottom: calc(floatButtonSize).add(margin).equal(),
'&::after': {
content: '""',
position: 'absolute',
width: '100%',
height: margin,
bottom: calc(margin).mul(-1).equal()
}
},
[`${groupPrefixCls}-bottom > ${groupPrefixCls}-wrap`]: {
flexDirection: 'column',
top: calc(floatButtonSize).add(margin).equal(),
bottom: 'auto',
'&::after': {
content: '""',
position: 'absolute',
width: '100%',
height: margin,
top: calc(margin).mul(-1).equal()
}
},
[`${groupPrefixCls}-right > ${groupPrefixCls}-wrap`]: {
flexDirection: 'row',
left: {
_skip_check_: true,
value: calc(floatButtonSize).add(margin).equal()
},
right: {
_skip_check_: true,
value: 'auto'
},
'&::after': {
content: '""',
position: 'absolute',
width: margin,
height: '100%',
left: {
_skip_check_: true,
value: calc(margin).mul(-1).equal()
}
}
},
[`${groupPrefixCls}-left > ${groupPrefixCls}-wrap`]: {
flexDirection: 'row',
left: {
_skip_check_: true,
value: 'auto'
},
right: {
_skip_check_: true,
value: calc(floatButtonSize).add(margin).equal()
},
'&::after': {
content: '""',
position: 'absolute',
width: margin,
height: '100%',
right: {
_skip_check_: true,
value: calc(margin).mul(-1).equal()
}
}
},
[`${groupPrefixCls}-circle`]: {
gap: margin,
[`${groupPrefixCls}-wrap`]: {
gap: margin
}
},
[`${groupPrefixCls}-square`]: {
[`${componentCls}-square`]: {
padding: 0,
borderRadius: 0,
[`&${groupPrefixCls}-trigger`]: {
borderRadius: borderRadiusLG
},
'&:first-child': {
borderStartStartRadius: borderRadiusLG,
borderStartEndRadius: borderRadiusLG
},
'&:last-child': {
borderEndStartRadius: borderRadiusLG,
borderEndEndRadius: borderRadiusLG
},
'&:not(:last-child)': {
borderBottom: `${(0, _cssinjs.unit)(token.lineWidth)} ${token.lineType} ${token.colorSplit}`
},
[`${antCls}-badge`]: {
[`${antCls}-badge-count`]: {
top: calc(calc(floatButtonBodyPadding).add(badgeOffset)).mul(-1).equal(),
insetInlineEnd: calc(calc(floatButtonBodyPadding).add(badgeOffset)).mul(-1).equal()
}
}
},
[`${groupPrefixCls}-wrap`]: {
borderRadius: borderRadiusLG,
boxShadow: token.boxShadowSecondary,
[`${componentCls}-square`]: {
boxShadow: 'none',
borderRadius: 0,
padding: floatButtonBodyPadding,
[`${componentCls}-body`]: {
width: token.floatButtonBodySize,
height: token.floatButtonBodySize,
borderRadius: borderRadiusSM
}
}
}
},
[`${groupPrefixCls}-top > ${groupPrefixCls}-wrap, ${groupPrefixCls}-bottom > ${groupPrefixCls}-wrap`]: {
[`> ${componentCls}-square`]: {
'&:first-child': {
borderStartStartRadius: borderRadiusLG,
borderStartEndRadius: borderRadiusLG
},
'&:last-child': {
borderEndStartRadius: borderRadiusLG,
borderEndEndRadius: borderRadiusLG
},
'&:not(:last-child)': {
borderBottom: `${(0, _cssinjs.unit)(token.lineWidth)} ${token.lineType} ${token.colorSplit}`
}
}
},
[`${groupPrefixCls}-left > ${groupPrefixCls}-wrap, ${groupPrefixCls}-right > ${groupPrefixCls}-wrap`]: {
[`> ${componentCls}-square`]: {
'&:first-child': {
borderStartStartRadius: borderRadiusLG,
borderEndStartRadius: borderRadiusLG
},
'&:last-child': {
borderStartEndRadius: borderRadiusLG,
borderEndEndRadius: borderRadiusLG
},
'&:not(:last-child)': {
borderBottom: 'none',
borderInlineEnd: `${(0, _cssinjs.unit)(token.lineWidth)} ${token.lineType} ${token.colorSplit}`
}
}
},
[`${groupPrefixCls}-circle-shadow`]: {
boxShadow: 'none'
},
[`${groupPrefixCls}-square-shadow`]: {
boxShadow: token.boxShadowSecondary,
[`${componentCls}-square`]: {
boxShadow: 'none',
padding: floatButtonBodyPadding,
[`${componentCls}-body`]: {
width: token.floatButtonBodySize,
height: token.floatButtonBodySize,
borderRadius: borderRadiusSM
}
}
}
};
};
// ============================== Shared ==============================
const sharedFloatButtonStyle = token => {
const {
antCls,
componentCls,
floatButtonBodyPadding,
floatButtonIconSize,
floatButtonSize,
borderRadiusLG,
badgeOffset,
dotOffsetInSquare,
dotOffsetInCircle,
zIndexPopupBase,
calc
} = token;
return {
[componentCls]: Object.assign(Object.assign({}, (0, _style.resetComponent)(token)), {
border: 'none',
position: 'fixed',
cursor: 'pointer',
zIndex: zIndexPopupBase,
// Do not remove the 'display: block' here.
// Deleting it will cause marginBottom to become ineffective.
// Ref: https://github.com/ant-design/ant-design/issues/44700
display: 'block',
width: floatButtonSize,
height: floatButtonSize,
insetInlineEnd: token.floatButtonInsetInlineEnd,
bottom: token.floatButtonInsetBlockEnd,
boxShadow: token.boxShadowSecondary,
// Pure Panel
'&-pure': {
position: 'relative',
inset: 'auto'
},
'&:empty': {
display: 'none'
},
[`${antCls}-badge`]: {
width: '100%',
height: '100%',
[`${antCls}-badge-count`]: {
transform: 'translate(0, 0)',
transformOrigin: 'center',
top: calc(badgeOffset).mul(-1).equal(),
insetInlineEnd: calc(badgeOffset).mul(-1).equal()
}
},
[`${componentCls}-body`]: {
width: '100%',
height: '100%',
display: 'flex',
justifyContent: 'center',
alignItems: 'center',
transition: `all ${token.motionDurationMid}`,
[`${componentCls}-content`]: {
overflow: 'hidden',
textAlign: 'center',
minHeight: floatButtonSize,
display: 'flex',
flexDirection: 'column',
justifyContent: 'center',
alignItems: 'center',
padding: `${(0, _cssinjs.unit)(calc(floatButtonBodyPadding).div(2).equal())} ${(0, _cssinjs.unit)(floatButtonBodyPadding)}`,
[`${componentCls}-icon`]: {
textAlign: 'center',
margin: 'auto',
width: floatButtonIconSize,
fontSize: floatButtonIconSize,
lineHeight: 1
}
}
}
}),
[`${componentCls}-rtl`]: {
direction: 'rtl'
},
[`${componentCls}-circle`]: {
height: floatButtonSize,
borderRadius: '50%',
[`${antCls}-badge`]: {
[`${antCls}-badge-dot`]: {
top: dotOffsetInCircle,
insetInlineEnd: dotOffsetInCircle
}
},
[`${componentCls}-body`]: {
borderRadius: '50%'
}
},
[`${componentCls}-square`]: {
height: 'auto',
minHeight: floatButtonSize,
borderRadius: borderRadiusLG,
[`${antCls}-badge`]: {
[`${antCls}-badge-dot`]: {
top: dotOffsetInSquare,
insetInlineEnd: dotOffsetInSquare
}
},
[`${componentCls}-body`]: {
height: 'auto',
borderRadius: borderRadiusLG
}
},
[`${componentCls}-default`]: {
backgroundColor: token.floatButtonBackgroundColor,
transition: `background-color ${token.motionDurationMid}`,
[`${componentCls}-body`]: {
backgroundColor: token.floatButtonBackgroundColor,
transition: `background-color ${token.motionDurationMid}`,
'&:hover': {
backgroundColor: token.colorFillContent
},
[`${componentCls}-content`]: {
[`${componentCls}-icon`]: {
color: token.colorText
},
[`${componentCls}-description`]: {
display: 'flex',
alignItems: 'center',
lineHeight: (0, _cssinjs.unit)(token.fontSizeLG),
color: token.colorText,
fontSize: token.fontSizeSM
}
}
}
},
[`${componentCls}-primary`]: {
backgroundColor: token.colorPrimary,
[`${componentCls}-body`]: {
backgroundColor: token.colorPrimary,
transition: `background-color ${token.motionDurationMid}`,
'&:hover': {
backgroundColor: token.colorPrimaryHover
},
[`${componentCls}-content`]: {
[`${componentCls}-icon`]: {
color: token.colorTextLightSolid
},
[`${componentCls}-description`]: {
display: 'flex',
alignItems: 'center',
lineHeight: (0, _cssinjs.unit)(token.fontSizeLG),
color: token.colorTextLightSolid,
fontSize: token.fontSizeSM
}
}
}
}
};
};
// ============================== Export ==============================
const prepareComponentToken = token => ({
dotOffsetInCircle: (0, _util.default)(token.controlHeightLG / 2),
dotOffsetInSquare: (0, _util.default)(token.borderRadiusLG)
});
exports.prepareComponentToken = prepareComponentToken;
var _default = exports.default = (0, _internal.genStyleHooks)('FloatButton', token => {
const {
colorTextLightSolid,
colorBgElevated,
controlHeightLG,
marginXXL,
marginLG,
fontSize,
fontSizeIcon,
controlItemBgHover,
paddingXXS,
calc
} = token;
const floatButtonToken = (0, _internal.mergeToken)(token, {
floatButtonBackgroundColor: colorBgElevated,
floatButtonColor: colorTextLightSolid,
floatButtonHoverBackgroundColor: controlItemBgHover,
floatButtonFontSize: fontSize,
floatButtonIconSize: calc(fontSizeIcon).mul(1.5).equal(),
floatButtonSize: controlHeightLG,
floatButtonInsetBlockEnd: marginXXL,
floatButtonInsetInlineEnd: marginLG,
floatButtonBodySize: calc(controlHeightLG).sub(calc(paddingXXS).mul(2)).equal(),
// 这里的 paddingXXS 是简写,完整逻辑是 (controlHeightLG - (controlHeightLG - paddingXXS * 2)) / 2,
floatButtonBodyPadding: paddingXXS,
badgeOffset: calc(paddingXXS).mul(1.5).equal()
});
return [floatButtonGroupStyle(floatButtonToken), sharedFloatButtonStyle(floatButtonToken), (0, _fade.initFadeMotion)(token), (0, _keyframes.default)(floatButtonToken)];
}, prepareComponentToken);

View File

@@ -0,0 +1,7 @@
import type { FloatButtonToken } from '.';
declare const floatButtonGroupMotion: (token: FloatButtonToken) => {
[x: string]: {
[x: string]: import("@ant-design/cssinjs").CSSObject;
};
}[];
export default floatButtonGroupMotion;

134
node_modules/antd/lib/float-button/style/keyframes.js generated vendored Normal file
View File

@@ -0,0 +1,134 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _cssinjs = require("@ant-design/cssinjs");
var _motion = require("../../style/motion/motion");
const floatButtonGroupMotion = token => {
const {
componentCls,
floatButtonSize,
motionDurationSlow,
motionEaseInOutCirc,
calc
} = token;
const moveTopIn = new _cssinjs.Keyframes('antFloatButtonMoveTopIn', {
'0%': {
transform: `translate3d(0, ${(0, _cssinjs.unit)(floatButtonSize)}, 0)`,
transformOrigin: '0 0',
opacity: 0
},
'100%': {
transform: 'translate3d(0, 0, 0)',
transformOrigin: '0 0',
opacity: 1
}
});
const moveTopOut = new _cssinjs.Keyframes('antFloatButtonMoveTopOut', {
'0%': {
transform: 'translate3d(0, 0, 0)',
transformOrigin: '0 0',
opacity: 1
},
'100%': {
transform: `translate3d(0, ${(0, _cssinjs.unit)(floatButtonSize)}, 0)`,
transformOrigin: '0 0',
opacity: 0
}
});
const moveRightIn = new _cssinjs.Keyframes('antFloatButtonMoveRightIn', {
'0%': {
transform: `translate3d(${(0, _cssinjs.unit)(calc(floatButtonSize).mul(-1).equal())}, 0, 0)`,
transformOrigin: '0 0',
opacity: 0
},
'100%': {
transform: 'translate3d(0, 0, 0)',
transformOrigin: '0 0',
opacity: 1
}
});
const moveRightOut = new _cssinjs.Keyframes('antFloatButtonMoveRightOut', {
'0%': {
transform: 'translate3d(0, 0, 0)',
transformOrigin: '0 0',
opacity: 1
},
'100%': {
transform: `translate3d(${(0, _cssinjs.unit)(calc(floatButtonSize).mul(-1).equal())}, 0, 0)`,
transformOrigin: '0 0',
opacity: 0
}
});
const moveBottomIn = new _cssinjs.Keyframes('antFloatButtonMoveBottomIn', {
'0%': {
transform: `translate3d(0, ${(0, _cssinjs.unit)(calc(floatButtonSize).mul(-1).equal())}, 0)`,
transformOrigin: '0 0',
opacity: 0
},
'100%': {
transform: 'translate3d(0, 0, 0)',
transformOrigin: '0 0',
opacity: 1
}
});
const moveBottomOut = new _cssinjs.Keyframes('antFloatButtonMoveBottomOut', {
'0%': {
transform: 'translate3d(0, 0, 0)',
transformOrigin: '0 0',
opacity: 1
},
'100%': {
transform: `translate3d(0, ${(0, _cssinjs.unit)(calc(floatButtonSize).mul(-1).equal())}, 0)`,
transformOrigin: '0 0',
opacity: 0
}
});
const moveLeftIn = new _cssinjs.Keyframes('antFloatButtonMoveLeftIn', {
'0%': {
transform: `translate3d(${(0, _cssinjs.unit)(floatButtonSize)}, 0, 0)`,
transformOrigin: '0 0',
opacity: 0
},
'100%': {
transform: 'translate3d(0, 0, 0)',
transformOrigin: '0 0',
opacity: 1
}
});
const moveLeftOut = new _cssinjs.Keyframes('antFloatButtonMoveLeftOut', {
'0%': {
transform: 'translate3d(0, 0, 0)',
transformOrigin: '0 0',
opacity: 1
},
'100%': {
transform: `translate3d(${(0, _cssinjs.unit)(floatButtonSize)}, 0, 0)`,
transformOrigin: '0 0',
opacity: 0
}
});
const groupPrefixCls = `${componentCls}-group`;
return [{
[groupPrefixCls]: {
[`&${groupPrefixCls}-top ${groupPrefixCls}-wrap`]: (0, _motion.initMotion)(`${groupPrefixCls}-wrap`, moveTopIn, moveTopOut, motionDurationSlow, true),
[`&${groupPrefixCls}-bottom ${groupPrefixCls}-wrap`]: (0, _motion.initMotion)(`${groupPrefixCls}-wrap`, moveBottomIn, moveBottomOut, motionDurationSlow, true),
[`&${groupPrefixCls}-left ${groupPrefixCls}-wrap`]: (0, _motion.initMotion)(`${groupPrefixCls}-wrap`, moveLeftIn, moveLeftOut, motionDurationSlow, true),
[`&${groupPrefixCls}-right ${groupPrefixCls}-wrap`]: (0, _motion.initMotion)(`${groupPrefixCls}-wrap`, moveRightIn, moveRightOut, motionDurationSlow, true)
}
}, {
[`${groupPrefixCls}-wrap`]: {
[`&${groupPrefixCls}-wrap-enter, &${groupPrefixCls}-wrap-appear`]: {
opacity: 0,
animationTimingFunction: motionEaseInOutCirc
},
[`&${groupPrefixCls}-wrap-leave`]: {
opacity: 1,
animationTimingFunction: motionEaseInOutCirc
}
}
}];
};
var _default = exports.default = floatButtonGroupMotion;

2
node_modules/antd/lib/float-button/util.d.ts generated vendored Normal file
View File

@@ -0,0 +1,2 @@
declare const getOffset: (radius: number) => number;
export default getOffset;

15
node_modules/antd/lib/float-button/util.js generated vendored Normal file
View File

@@ -0,0 +1,15 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
const getOffset = radius => {
if (radius === 0) {
return 0;
}
// 如果要考虑通用性,这里应该用三角函数 Math.sin(45)
// 但是这个场景比较特殊,始终是等腰直角三角形,所以直接用 Math.sqrt() 开方即可
return radius - Math.sqrt(Math.pow(radius, 2) / 2);
};
var _default = exports.default = getOffset;