first commit
This commit is contained in:
4
frontend/node_modules/antd/lib/float-button/BackTop.d.ts
generated
vendored
Normal file
4
frontend/node_modules/antd/lib/float-button/BackTop.d.ts
generated
vendored
Normal 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
frontend/node_modules/antd/lib/float-button/BackTop.js
generated
vendored
Normal file
109
frontend/node_modules/antd/lib/float-button/BackTop.js
generated
vendored
Normal 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
frontend/node_modules/antd/lib/float-button/FloatButton.d.ts
generated
vendored
Normal file
14
frontend/node_modules/antd/lib/float-button/FloatButton.d.ts
generated
vendored
Normal 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
frontend/node_modules/antd/lib/float-button/FloatButton.js
generated
vendored
Normal file
102
frontend/node_modules/antd/lib/float-button/FloatButton.js
generated
vendored
Normal 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;
|
||||
4
frontend/node_modules/antd/lib/float-button/FloatButtonContent.d.ts
generated
vendored
Normal file
4
frontend/node_modules/antd/lib/float-button/FloatButtonContent.d.ts
generated
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
import React from 'react';
|
||||
import type { FloatButtonContentProps } from './interface';
|
||||
declare const _default: React.NamedExoticComponent<FloatButtonContentProps>;
|
||||
export default _default;
|
||||
40
frontend/node_modules/antd/lib/float-button/FloatButtonContent.js
generated
vendored
Normal file
40
frontend/node_modules/antd/lib/float-button/FloatButtonContent.js
generated
vendored
Normal 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);
|
||||
4
frontend/node_modules/antd/lib/float-button/FloatButtonGroup.d.ts
generated
vendored
Normal file
4
frontend/node_modules/antd/lib/float-button/FloatButtonGroup.d.ts
generated
vendored
Normal 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
frontend/node_modules/antd/lib/float-button/FloatButtonGroup.js
generated
vendored
Normal file
155
frontend/node_modules/antd/lib/float-button/FloatButtonGroup.js
generated
vendored
Normal 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
frontend/node_modules/antd/lib/float-button/PurePanel.d.ts
generated
vendored
Normal file
12
frontend/node_modules/antd/lib/float-button/PurePanel.d.ts
generated
vendored
Normal 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
frontend/node_modules/antd/lib/float-button/PurePanel.js
generated
vendored
Normal file
61
frontend/node_modules/antd/lib/float-button/PurePanel.js
generated
vendored
Normal 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
frontend/node_modules/antd/lib/float-button/context.d.ts
generated
vendored
Normal file
5
frontend/node_modules/antd/lib/float-button/context.d.ts
generated
vendored
Normal 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
frontend/node_modules/antd/lib/float-button/context.js
generated
vendored
Normal file
14
frontend/node_modules/antd/lib/float-button/context.js
generated
vendored
Normal 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
frontend/node_modules/antd/lib/float-button/index.d.ts
generated
vendored
Normal file
2
frontend/node_modules/antd/lib/float-button/index.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
import FloatButton from './FloatButton';
|
||||
export default FloatButton;
|
||||
16
frontend/node_modules/antd/lib/float-button/index.js
generated
vendored
Normal file
16
frontend/node_modules/antd/lib/float-button/index.js
generated
vendored
Normal 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
frontend/node_modules/antd/lib/float-button/interface.d.ts
generated
vendored
Normal file
58
frontend/node_modules/antd/lib/float-button/interface.d.ts
generated
vendored
Normal 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
frontend/node_modules/antd/lib/float-button/interface.js
generated
vendored
Normal file
5
frontend/node_modules/antd/lib/float-button/interface.js
generated
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
68
frontend/node_modules/antd/lib/float-button/style/index.d.ts
generated
vendored
Normal file
68
frontend/node_modules/antd/lib/float-button/style/index.d.ts
generated
vendored
Normal 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
frontend/node_modules/antd/lib/float-button/style/index.js
generated
vendored
Normal file
405
frontend/node_modules/antd/lib/float-button/style/index.js
generated
vendored
Normal 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);
|
||||
7
frontend/node_modules/antd/lib/float-button/style/keyframes.d.ts
generated
vendored
Normal file
7
frontend/node_modules/antd/lib/float-button/style/keyframes.d.ts
generated
vendored
Normal 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
frontend/node_modules/antd/lib/float-button/style/keyframes.js
generated
vendored
Normal file
134
frontend/node_modules/antd/lib/float-button/style/keyframes.js
generated
vendored
Normal 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
frontend/node_modules/antd/lib/float-button/util.d.ts
generated
vendored
Normal file
2
frontend/node_modules/antd/lib/float-button/util.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
declare const getOffset: (radius: number) => number;
|
||||
export default getOffset;
|
||||
15
frontend/node_modules/antd/lib/float-button/util.js
generated
vendored
Normal file
15
frontend/node_modules/antd/lib/float-button/util.js
generated
vendored
Normal 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;
|
||||
Reference in New Issue
Block a user