You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1638 lines
55 KiB
1638 lines
55 KiB
(self["webpackChunk"] = self["webpackChunk"] || []).push([[53877],{
|
|
|
|
/***/ 61731:
|
|
/*!******************************************************************************************************!*\
|
|
!*** ./node_modules/_@ant-design_icons@5.2.6@@ant-design/icons/es/icons/CopyOutlined.js + 1 modules ***!
|
|
\******************************************************************************************************/
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
|
|
// EXPORTS
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
Z: function() { return /* binding */ icons_CopyOutlined; }
|
|
});
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/esm/extends.js
|
|
var esm_extends = __webpack_require__(26508);
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
|
|
var _react_17_0_2_react = __webpack_require__(59301);
|
|
;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons-svg@4.3.1@@ant-design/icons-svg/es/asn/CopyOutlined.js
|
|
// This icon file is generated automatically.
|
|
var CopyOutlined = { "icon": { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z" } }] }, "name": "copy", "theme": "outlined" };
|
|
/* harmony default export */ var asn_CopyOutlined = (CopyOutlined);
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.2.6@@ant-design/icons/es/components/AntdIcon.js + 3 modules
|
|
var AntdIcon = __webpack_require__(91851);
|
|
;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons@5.2.6@@ant-design/icons/es/icons/CopyOutlined.js
|
|
|
|
// GENERATE BY ./scripts/generate.ts
|
|
// DON NOT EDIT IT MANUALLY
|
|
|
|
|
|
|
|
|
|
var CopyOutlined_CopyOutlined = function CopyOutlined(props, ref) {
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(AntdIcon/* default */.Z, (0,esm_extends/* default */.Z)({}, props, {
|
|
ref: ref,
|
|
icon: asn_CopyOutlined
|
|
}));
|
|
};
|
|
if (false) {}
|
|
/* harmony default export */ var icons_CopyOutlined = (/*#__PURE__*/_react_17_0_2_react.forwardRef(CopyOutlined_CopyOutlined));
|
|
|
|
/***/ }),
|
|
|
|
/***/ 53877:
|
|
/*!***************************************************************************!*\
|
|
!*** ./node_modules/_antd@5.9.0@antd/es/typography/index.js + 18 modules ***!
|
|
\***************************************************************************/
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
|
|
// EXPORTS
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
Z: function() { return /* binding */ typography; }
|
|
});
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
|
|
var _react_17_0_2_react = __webpack_require__(59301);
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.2.6@@ant-design/icons/es/icons/CheckOutlined.js + 1 modules
|
|
var CheckOutlined = __webpack_require__(75769);
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.2.6@@ant-design/icons/es/icons/CopyOutlined.js + 1 modules
|
|
var CopyOutlined = __webpack_require__(61731);
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/esm/extends.js
|
|
var esm_extends = __webpack_require__(26508);
|
|
;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons-svg@4.3.1@@ant-design/icons-svg/es/asn/EditOutlined.js
|
|
// This icon file is generated automatically.
|
|
var EditOutlined = { "icon": { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z" } }] }, "name": "edit", "theme": "outlined" };
|
|
/* harmony default export */ var asn_EditOutlined = (EditOutlined);
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.2.6@@ant-design/icons/es/components/AntdIcon.js + 3 modules
|
|
var AntdIcon = __webpack_require__(91851);
|
|
;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons@5.2.6@@ant-design/icons/es/icons/EditOutlined.js
|
|
|
|
// GENERATE BY ./scripts/generate.ts
|
|
// DON NOT EDIT IT MANUALLY
|
|
|
|
|
|
|
|
|
|
var EditOutlined_EditOutlined = function EditOutlined(props, ref) {
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(AntdIcon/* default */.Z, (0,esm_extends/* default */.Z)({}, props, {
|
|
ref: ref,
|
|
icon: asn_EditOutlined
|
|
}));
|
|
};
|
|
if (false) {}
|
|
/* harmony default export */ var icons_EditOutlined = (/*#__PURE__*/_react_17_0_2_react.forwardRef(EditOutlined_EditOutlined));
|
|
// EXTERNAL MODULE: ./node_modules/_classnames@2.3.2@classnames/index.js
|
|
var _classnames_2_3_2_classnames = __webpack_require__(12124);
|
|
var _classnames_2_3_2_classnames_default = /*#__PURE__*/__webpack_require__.n(_classnames_2_3_2_classnames);
|
|
// EXTERNAL MODULE: ./node_modules/_copy-to-clipboard@3.3.3@copy-to-clipboard/index.js
|
|
var _copy_to_clipboard_3_3_3_copy_to_clipboard = __webpack_require__(25769);
|
|
var _copy_to_clipboard_3_3_3_copy_to_clipboard_default = /*#__PURE__*/__webpack_require__.n(_copy_to_clipboard_3_3_3_copy_to_clipboard);
|
|
// EXTERNAL MODULE: ./node_modules/_rc-resize-observer@1.4.0@rc-resize-observer/es/index.js + 4 modules
|
|
var es = __webpack_require__(28647);
|
|
// EXTERNAL MODULE: ./node_modules/_rc-util@5.38.1@rc-util/es/Children/toArray.js
|
|
var toArray = __webpack_require__(45659);
|
|
// EXTERNAL MODULE: ./node_modules/_rc-util@5.38.1@rc-util/es/hooks/useLayoutEffect.js
|
|
var useLayoutEffect = __webpack_require__(70658);
|
|
// EXTERNAL MODULE: ./node_modules/_rc-util@5.38.1@rc-util/es/hooks/useMergedState.js
|
|
var useMergedState = __webpack_require__(84381);
|
|
// EXTERNAL MODULE: ./node_modules/_rc-util@5.38.1@rc-util/es/omit.js
|
|
var omit = __webpack_require__(99468);
|
|
// EXTERNAL MODULE: ./node_modules/_rc-util@5.38.1@rc-util/es/ref.js
|
|
var es_ref = __webpack_require__(88831);
|
|
// EXTERNAL MODULE: ./node_modules/_rc-util@5.38.1@rc-util/es/Dom/styleChecker.js
|
|
var styleChecker = __webpack_require__(30034);
|
|
// EXTERNAL MODULE: ./node_modules/_rc-util@5.38.1@rc-util/es/KeyCode.js
|
|
var KeyCode = __webpack_require__(84821);
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/_util/transButton.js
|
|
"use client";
|
|
|
|
var __rest = undefined && undefined.__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;
|
|
};
|
|
/**
|
|
* Wrap of sub component which need use as Button capacity (like Icon component).
|
|
*
|
|
* This helps accessibility reader to tread as a interactive button to operation.
|
|
*/
|
|
|
|
|
|
const inlineStyle = {
|
|
border: 0,
|
|
background: 'transparent',
|
|
padding: 0,
|
|
lineHeight: 'inherit',
|
|
display: 'inline-block'
|
|
};
|
|
const TransButton = /*#__PURE__*/_react_17_0_2_react.forwardRef((props, ref) => {
|
|
const onKeyDown = event => {
|
|
const {
|
|
keyCode
|
|
} = event;
|
|
if (keyCode === KeyCode/* default */.Z.ENTER) {
|
|
event.preventDefault();
|
|
}
|
|
};
|
|
const onKeyUp = event => {
|
|
const {
|
|
keyCode
|
|
} = event;
|
|
const {
|
|
onClick
|
|
} = props;
|
|
if (keyCode === KeyCode/* default */.Z.ENTER && onClick) {
|
|
onClick();
|
|
}
|
|
};
|
|
const {
|
|
style,
|
|
noStyle,
|
|
disabled
|
|
} = props,
|
|
restProps = __rest(props, ["style", "noStyle", "disabled"]);
|
|
let mergedStyle = {};
|
|
if (!noStyle) {
|
|
mergedStyle = Object.assign({}, inlineStyle);
|
|
}
|
|
if (disabled) {
|
|
mergedStyle.pointerEvents = 'none';
|
|
}
|
|
mergedStyle = Object.assign(Object.assign({}, mergedStyle), style);
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement("div", Object.assign({
|
|
role: "button",
|
|
tabIndex: 0,
|
|
ref: ref
|
|
}, restProps, {
|
|
onKeyDown: onKeyDown,
|
|
onKeyUp: onKeyUp,
|
|
style: mergedStyle
|
|
}));
|
|
});
|
|
/* harmony default export */ var transButton = (TransButton);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/config-provider/context.js
|
|
var context = __webpack_require__(36355);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/locale/useLocale.js
|
|
var useLocale = __webpack_require__(9763);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/tooltip/index.js + 3 modules
|
|
var es_tooltip = __webpack_require__(6848);
|
|
;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons-svg@4.3.1@@ant-design/icons-svg/es/asn/EnterOutlined.js
|
|
// This icon file is generated automatically.
|
|
var EnterOutlined = { "icon": { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M864 170h-60c-4.4 0-8 3.6-8 8v518H310v-73c0-6.7-7.8-10.5-13-6.3l-141.9 112a8 8 0 000 12.6l141.9 112c5.3 4.2 13 .4 13-6.3v-75h498c35.3 0 64-28.7 64-64V178c0-4.4-3.6-8-8-8z" } }] }, "name": "enter", "theme": "outlined" };
|
|
/* harmony default export */ var asn_EnterOutlined = (EnterOutlined);
|
|
|
|
;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons@5.2.6@@ant-design/icons/es/icons/EnterOutlined.js
|
|
|
|
// GENERATE BY ./scripts/generate.ts
|
|
// DON NOT EDIT IT MANUALLY
|
|
|
|
|
|
|
|
|
|
var EnterOutlined_EnterOutlined = function EnterOutlined(props, ref) {
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(AntdIcon/* default */.Z, (0,esm_extends/* default */.Z)({}, props, {
|
|
ref: ref,
|
|
icon: asn_EnterOutlined
|
|
}));
|
|
};
|
|
if (false) {}
|
|
/* harmony default export */ var icons_EnterOutlined = (/*#__PURE__*/_react_17_0_2_react.forwardRef(EnterOutlined_EnterOutlined));
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/_util/reactNode.js
|
|
var reactNode = __webpack_require__(92343);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/input/TextArea.js
|
|
var TextArea = __webpack_require__(1643);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/style/operationUnit.js
|
|
var operationUnit = __webpack_require__(15969);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/theme/util/genComponentStyleHook.js
|
|
var genComponentStyleHook = __webpack_require__(83116);
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_colors@7.0.0@@ant-design/colors/es/index.js + 1 modules
|
|
var colors_es = __webpack_require__(23442);
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/typography/style/mixins.js
|
|
/*
|
|
.typography-title(@fontSize; @fontWeight; @lineHeight; @headingColor; @headingMarginBottom;) {
|
|
margin-bottom: @headingMarginBottom;
|
|
color: @headingColor;
|
|
font-weight: @fontWeight;
|
|
fontSize: @fontSize;
|
|
line-height: @lineHeight;
|
|
}
|
|
*/
|
|
|
|
|
|
// eslint-disable-next-line import/prefer-default-export
|
|
const getTitleStyle = (fontSize, lineHeight, color, token) => {
|
|
const {
|
|
titleMarginBottom,
|
|
fontWeightStrong
|
|
} = token;
|
|
return {
|
|
marginBottom: titleMarginBottom,
|
|
color,
|
|
fontWeight: fontWeightStrong,
|
|
fontSize,
|
|
lineHeight
|
|
};
|
|
};
|
|
// eslint-disable-next-line import/prefer-default-export
|
|
const getTitleStyles = token => {
|
|
const headings = [1, 2, 3, 4, 5];
|
|
const styles = {};
|
|
headings.forEach(headingLevel => {
|
|
styles[`
|
|
h${headingLevel}&,
|
|
div&-h${headingLevel},
|
|
div&-h${headingLevel} > textarea,
|
|
h${headingLevel}
|
|
`] = getTitleStyle(token[`fontSizeHeading${headingLevel}`], token[`lineHeightHeading${headingLevel}`], token.colorTextHeading, token);
|
|
});
|
|
return styles;
|
|
};
|
|
const getLinkStyles = token => {
|
|
const {
|
|
componentCls
|
|
} = token;
|
|
return {
|
|
'a&, a': Object.assign(Object.assign({}, (0,operationUnit/* operationUnit */.N)(token)), {
|
|
textDecoration: token.linkDecoration,
|
|
'&:active, &:hover': {
|
|
textDecoration: token.linkHoverDecoration
|
|
},
|
|
[`&[disabled], &${componentCls}-disabled`]: {
|
|
color: token.colorTextDisabled,
|
|
cursor: 'not-allowed',
|
|
'&:active, &:hover': {
|
|
color: token.colorTextDisabled
|
|
},
|
|
'&:active': {
|
|
pointerEvents: 'none'
|
|
}
|
|
}
|
|
})
|
|
};
|
|
};
|
|
const getResetStyles = token => ({
|
|
code: {
|
|
margin: '0 0.2em',
|
|
paddingInline: '0.4em',
|
|
paddingBlock: '0.2em 0.1em',
|
|
fontSize: '85%',
|
|
fontFamily: token.fontFamilyCode,
|
|
background: 'rgba(150, 150, 150, 0.1)',
|
|
border: '1px solid rgba(100, 100, 100, 0.2)',
|
|
borderRadius: 3
|
|
},
|
|
kbd: {
|
|
margin: '0 0.2em',
|
|
paddingInline: '0.4em',
|
|
paddingBlock: '0.15em 0.1em',
|
|
fontSize: '90%',
|
|
fontFamily: token.fontFamilyCode,
|
|
background: 'rgba(150, 150, 150, 0.06)',
|
|
border: '1px solid rgba(100, 100, 100, 0.2)',
|
|
borderBottomWidth: 2,
|
|
borderRadius: 3
|
|
},
|
|
mark: {
|
|
padding: 0,
|
|
// FIXME hardcode in v4
|
|
backgroundColor: colors_es.gold[2]
|
|
},
|
|
'u, ins': {
|
|
textDecoration: 'underline',
|
|
textDecorationSkipInk: 'auto'
|
|
},
|
|
's, del': {
|
|
textDecoration: 'line-through'
|
|
},
|
|
strong: {
|
|
fontWeight: 600
|
|
},
|
|
// list
|
|
'ul, ol': {
|
|
marginInline: 0,
|
|
marginBlock: '0 1em',
|
|
padding: 0,
|
|
li: {
|
|
marginInline: '20px 0',
|
|
marginBlock: 0,
|
|
paddingInline: '4px 0',
|
|
paddingBlock: 0
|
|
}
|
|
},
|
|
ul: {
|
|
listStyleType: 'circle',
|
|
ul: {
|
|
listStyleType: 'disc'
|
|
}
|
|
},
|
|
ol: {
|
|
listStyleType: 'decimal'
|
|
},
|
|
// pre & block
|
|
'pre, blockquote': {
|
|
margin: '1em 0'
|
|
},
|
|
pre: {
|
|
padding: '0.4em 0.6em',
|
|
whiteSpace: 'pre-wrap',
|
|
wordWrap: 'break-word',
|
|
background: 'rgba(150, 150, 150, 0.1)',
|
|
border: '1px solid rgba(100, 100, 100, 0.2)',
|
|
borderRadius: 3,
|
|
fontFamily: token.fontFamilyCode,
|
|
// Compatible for marked
|
|
code: {
|
|
display: 'inline',
|
|
margin: 0,
|
|
padding: 0,
|
|
fontSize: 'inherit',
|
|
fontFamily: 'inherit',
|
|
background: 'transparent',
|
|
border: 0
|
|
}
|
|
},
|
|
blockquote: {
|
|
paddingInline: '0.6em 0',
|
|
paddingBlock: 0,
|
|
borderInlineStart: '4px solid rgba(100, 100, 100, 0.2)',
|
|
opacity: 0.85
|
|
}
|
|
});
|
|
const getEditableStyles = token => {
|
|
const {
|
|
componentCls,
|
|
paddingSM
|
|
} = token;
|
|
const inputShift = paddingSM;
|
|
return {
|
|
'&-edit-content': {
|
|
position: 'relative',
|
|
'div&': {
|
|
insetInlineStart: -token.paddingSM,
|
|
marginTop: -inputShift,
|
|
marginBottom: `calc(1em - ${inputShift}px)`
|
|
},
|
|
[`${componentCls}-edit-content-confirm`]: {
|
|
position: 'absolute',
|
|
insetInlineEnd: token.marginXS + 2,
|
|
insetBlockEnd: token.marginXS,
|
|
color: token.colorTextDescription,
|
|
// default style
|
|
fontWeight: 'normal',
|
|
fontSize: token.fontSize,
|
|
fontStyle: 'normal',
|
|
pointerEvents: 'none'
|
|
},
|
|
textarea: {
|
|
margin: '0!important',
|
|
// Fix Editable Textarea flash in Firefox
|
|
MozTransition: 'none',
|
|
height: '1em'
|
|
}
|
|
}
|
|
};
|
|
};
|
|
const getCopyableStyles = token => ({
|
|
'&-copy-success': {
|
|
[`
|
|
&,
|
|
&:hover,
|
|
&:focus`]: {
|
|
color: token.colorSuccess
|
|
}
|
|
}
|
|
});
|
|
const getEllipsisStyles = () => ({
|
|
[`
|
|
a&-ellipsis,
|
|
span&-ellipsis
|
|
`]: {
|
|
display: 'inline-block',
|
|
maxWidth: '100%'
|
|
},
|
|
'&-single-line': {
|
|
whiteSpace: 'nowrap'
|
|
},
|
|
'&-ellipsis-single-line': {
|
|
overflow: 'hidden',
|
|
textOverflow: 'ellipsis',
|
|
// https://blog.csdn.net/iefreer/article/details/50421025
|
|
'a&, span&': {
|
|
verticalAlign: 'bottom'
|
|
}
|
|
},
|
|
'&-ellipsis-multiple-line': {
|
|
display: '-webkit-box',
|
|
overflow: 'hidden',
|
|
WebkitLineClamp: 3,
|
|
WebkitBoxOrient: 'vertical'
|
|
}
|
|
});
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/typography/style/index.js
|
|
|
|
|
|
|
|
const genTypographyStyle = token => {
|
|
const {
|
|
componentCls,
|
|
titleMarginTop
|
|
} = token;
|
|
return {
|
|
[componentCls]: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({
|
|
color: token.colorText,
|
|
wordBreak: 'break-word',
|
|
lineHeight: token.lineHeight,
|
|
[`&${componentCls}-secondary`]: {
|
|
color: token.colorTextDescription
|
|
},
|
|
[`&${componentCls}-success`]: {
|
|
color: token.colorSuccess
|
|
},
|
|
[`&${componentCls}-warning`]: {
|
|
color: token.colorWarning
|
|
},
|
|
[`&${componentCls}-danger`]: {
|
|
color: token.colorError,
|
|
'a&:active, a&:focus': {
|
|
color: token.colorErrorActive
|
|
},
|
|
'a&:hover': {
|
|
color: token.colorErrorHover
|
|
}
|
|
},
|
|
[`&${componentCls}-disabled`]: {
|
|
color: token.colorTextDisabled,
|
|
cursor: 'not-allowed',
|
|
userSelect: 'none'
|
|
},
|
|
[`
|
|
div&,
|
|
p
|
|
`]: {
|
|
marginBottom: '1em'
|
|
}
|
|
}, getTitleStyles(token)), {
|
|
[`
|
|
& + h1${componentCls},
|
|
& + h2${componentCls},
|
|
& + h3${componentCls},
|
|
& + h4${componentCls},
|
|
& + h5${componentCls}
|
|
`]: {
|
|
marginTop: titleMarginTop
|
|
},
|
|
[`
|
|
div,
|
|
ul,
|
|
li,
|
|
p,
|
|
h1,
|
|
h2,
|
|
h3,
|
|
h4,
|
|
h5`]: {
|
|
[`
|
|
+ h1,
|
|
+ h2,
|
|
+ h3,
|
|
+ h4,
|
|
+ h5
|
|
`]: {
|
|
marginTop: titleMarginTop
|
|
}
|
|
}
|
|
}), getResetStyles(token)), getLinkStyles(token)), {
|
|
// Operation
|
|
[`
|
|
${componentCls}-expand,
|
|
${componentCls}-edit,
|
|
${componentCls}-copy
|
|
`]: Object.assign(Object.assign({}, (0,operationUnit/* operationUnit */.N)(token)), {
|
|
marginInlineStart: token.marginXXS
|
|
})
|
|
}), getEditableStyles(token)), getCopyableStyles(token)), getEllipsisStyles()), {
|
|
'&-rtl': {
|
|
direction: 'rtl'
|
|
}
|
|
})
|
|
};
|
|
};
|
|
// ============================== Export ==============================
|
|
/* harmony default export */ var typography_style = ((0,genComponentStyleHook/* default */.Z)('Typography', token => [genTypographyStyle(token)], () => ({
|
|
titleMarginTop: '1.2em',
|
|
titleMarginBottom: '0.5em'
|
|
})));
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/typography/Editable.js
|
|
"use client";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const Editable = props => {
|
|
const {
|
|
prefixCls,
|
|
'aria-label': ariaLabel,
|
|
className,
|
|
style,
|
|
direction,
|
|
maxLength,
|
|
autoSize = true,
|
|
value,
|
|
onSave,
|
|
onCancel,
|
|
onEnd,
|
|
component,
|
|
enterIcon = /*#__PURE__*/_react_17_0_2_react.createElement(icons_EnterOutlined, null)
|
|
} = props;
|
|
const ref = _react_17_0_2_react.useRef(null);
|
|
const inComposition = _react_17_0_2_react.useRef(false);
|
|
const lastKeyCode = _react_17_0_2_react.useRef();
|
|
const [current, setCurrent] = _react_17_0_2_react.useState(value);
|
|
_react_17_0_2_react.useEffect(() => {
|
|
setCurrent(value);
|
|
}, [value]);
|
|
_react_17_0_2_react.useEffect(() => {
|
|
if (ref.current && ref.current.resizableTextArea) {
|
|
const {
|
|
textArea
|
|
} = ref.current.resizableTextArea;
|
|
textArea.focus();
|
|
const {
|
|
length
|
|
} = textArea.value;
|
|
textArea.setSelectionRange(length, length);
|
|
}
|
|
}, []);
|
|
const onChange = _ref => {
|
|
let {
|
|
target
|
|
} = _ref;
|
|
setCurrent(target.value.replace(/[\n\r]/g, ''));
|
|
};
|
|
const onCompositionStart = () => {
|
|
inComposition.current = true;
|
|
};
|
|
const onCompositionEnd = () => {
|
|
inComposition.current = false;
|
|
};
|
|
const onKeyDown = _ref2 => {
|
|
let {
|
|
keyCode
|
|
} = _ref2;
|
|
// We don't record keyCode when IME is using
|
|
if (inComposition.current) return;
|
|
lastKeyCode.current = keyCode;
|
|
};
|
|
const confirmChange = () => {
|
|
onSave(current.trim());
|
|
};
|
|
const onKeyUp = _ref3 => {
|
|
let {
|
|
keyCode,
|
|
ctrlKey,
|
|
altKey,
|
|
metaKey,
|
|
shiftKey
|
|
} = _ref3;
|
|
// Check if it's a real key
|
|
if (lastKeyCode.current === keyCode && !inComposition.current && !ctrlKey && !altKey && !metaKey && !shiftKey) {
|
|
if (keyCode === KeyCode/* default */.Z.ENTER) {
|
|
confirmChange();
|
|
onEnd === null || onEnd === void 0 ? void 0 : onEnd();
|
|
} else if (keyCode === KeyCode/* default */.Z.ESC) {
|
|
onCancel();
|
|
}
|
|
}
|
|
};
|
|
const onBlur = () => {
|
|
confirmChange();
|
|
};
|
|
const textClassName = component ? `${prefixCls}-${component}` : '';
|
|
const [wrapSSR, hashId] = typography_style(prefixCls);
|
|
const textAreaClassName = _classnames_2_3_2_classnames_default()(prefixCls, `${prefixCls}-edit-content`, {
|
|
[`${prefixCls}-rtl`]: direction === 'rtl'
|
|
}, className, textClassName, hashId);
|
|
return wrapSSR( /*#__PURE__*/_react_17_0_2_react.createElement("div", {
|
|
className: textAreaClassName,
|
|
style: style
|
|
}, /*#__PURE__*/_react_17_0_2_react.createElement(TextArea/* default */.Z, {
|
|
ref: ref,
|
|
maxLength: maxLength,
|
|
value: current,
|
|
onChange: onChange,
|
|
onKeyDown: onKeyDown,
|
|
onKeyUp: onKeyUp,
|
|
onCompositionStart: onCompositionStart,
|
|
onCompositionEnd: onCompositionEnd,
|
|
onBlur: onBlur,
|
|
"aria-label": ariaLabel,
|
|
rows: 1,
|
|
autoSize: autoSize
|
|
}), enterIcon !== null ? (0,reactNode/* cloneElement */.Tm)(enterIcon, {
|
|
className: `${prefixCls}-edit-content-confirm`
|
|
}) : null));
|
|
};
|
|
/* harmony default export */ var typography_Editable = (Editable);
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/typography/Typography.js
|
|
"use client";
|
|
|
|
var Typography_rest = undefined && undefined.__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 Typography = /*#__PURE__*/_react_17_0_2_react.forwardRef((props, ref) => {
|
|
const {
|
|
prefixCls: customizePrefixCls,
|
|
component: Component = 'article',
|
|
className,
|
|
rootClassName,
|
|
setContentRef,
|
|
children,
|
|
direction: typographyDirection,
|
|
style
|
|
} = props,
|
|
restProps = Typography_rest(props, ["prefixCls", "component", "className", "rootClassName", "setContentRef", "children", "direction", "style"]);
|
|
const {
|
|
getPrefixCls,
|
|
direction: contextDirection,
|
|
typography
|
|
} = _react_17_0_2_react.useContext(context/* ConfigContext */.E_);
|
|
const direction = typographyDirection !== null && typographyDirection !== void 0 ? typographyDirection : contextDirection;
|
|
let mergedRef = ref;
|
|
if (setContentRef) {
|
|
false ? 0 : void 0;
|
|
mergedRef = (0,es_ref/* composeRef */.sQ)(ref, setContentRef);
|
|
}
|
|
const prefixCls = getPrefixCls('typography', customizePrefixCls);
|
|
// Style
|
|
const [wrapSSR, hashId] = typography_style(prefixCls);
|
|
const componentClassName = _classnames_2_3_2_classnames_default()(prefixCls, typography === null || typography === void 0 ? void 0 : typography.className, {
|
|
[`${prefixCls}-rtl`]: direction === 'rtl'
|
|
}, className, rootClassName, hashId);
|
|
const mergedStyle = Object.assign(Object.assign({}, typography === null || typography === void 0 ? void 0 : typography.style), style);
|
|
return wrapSSR(
|
|
/*#__PURE__*/
|
|
// @ts-expect-error: Expression produces a union type that is too complex to represent.
|
|
_react_17_0_2_react.createElement(Component, Object.assign({
|
|
className: componentClassName,
|
|
style: mergedStyle,
|
|
ref: mergedRef
|
|
}, restProps), children));
|
|
});
|
|
if (false) {}
|
|
// es default export should use const instead of let
|
|
/* harmony default export */ var typography_Typography = (Typography);
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/typography/hooks/useMergedConfig.js
|
|
|
|
function useMergedConfig(propConfig, templateConfig) {
|
|
return _react_17_0_2_react.useMemo(() => {
|
|
const support = !!propConfig;
|
|
return [support, Object.assign(Object.assign({}, templateConfig), support && typeof propConfig === 'object' ? propConfig : null)];
|
|
}, [propConfig]);
|
|
}
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/typography/hooks/useUpdatedEffect.js
|
|
|
|
/** Similar with `useEffect` but only trigger after mounted */
|
|
const useUpdatedEffect = (callback, conditions) => {
|
|
const mountRef = _react_17_0_2_react.useRef(false);
|
|
_react_17_0_2_react.useEffect(() => {
|
|
if (mountRef.current) {
|
|
callback();
|
|
} else {
|
|
mountRef.current = true;
|
|
}
|
|
}, conditions);
|
|
};
|
|
/* harmony default export */ var hooks_useUpdatedEffect = (useUpdatedEffect);
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/typography/Base/Ellipsis.js
|
|
"use client";
|
|
|
|
|
|
|
|
|
|
function cuttable(node) {
|
|
const type = typeof node;
|
|
return type === 'string' || type === 'number';
|
|
}
|
|
function getNodesLen(nodeList) {
|
|
let totalLen = 0;
|
|
nodeList.forEach(node => {
|
|
if (cuttable(node)) {
|
|
totalLen += String(node).length;
|
|
} else {
|
|
totalLen += 1;
|
|
}
|
|
});
|
|
return totalLen;
|
|
}
|
|
function sliceNodes(nodeList, len) {
|
|
let currLen = 0;
|
|
const currentNodeList = [];
|
|
for (let i = 0; i < nodeList.length; i += 1) {
|
|
// Match to return
|
|
if (currLen === len) {
|
|
return currentNodeList;
|
|
}
|
|
const node = nodeList[i];
|
|
const canCut = cuttable(node);
|
|
const nodeLen = canCut ? String(node).length : 1;
|
|
const nextLen = currLen + nodeLen;
|
|
// Exceed but current not which means we need cut this
|
|
// This will not happen on validate ReactElement
|
|
if (nextLen > len) {
|
|
const restLen = len - currLen;
|
|
currentNodeList.push(String(node).slice(0, restLen));
|
|
return currentNodeList;
|
|
}
|
|
currentNodeList.push(node);
|
|
currLen = nextLen;
|
|
}
|
|
return nodeList;
|
|
}
|
|
const NONE = 0;
|
|
const PREPARE = 1;
|
|
const WALKING = 2;
|
|
const DONE_WITH_ELLIPSIS = 3;
|
|
const DONE_WITHOUT_ELLIPSIS = 4;
|
|
const Ellipsis = _ref => {
|
|
let {
|
|
enabledMeasure,
|
|
children,
|
|
text,
|
|
width,
|
|
fontSize,
|
|
rows,
|
|
onEllipsis
|
|
} = _ref;
|
|
const [[startLen, midLen, endLen], setCutLength] = _react_17_0_2_react.useState([0, 0, 0]);
|
|
// record last done with ellipsis width
|
|
const [lastLen, setLastLen] = _react_17_0_2_react.useState(0);
|
|
const [walkingState, setWalkingState] = _react_17_0_2_react.useState(NONE);
|
|
const [singleRowHeight, setSingleRowHeight] = _react_17_0_2_react.useState(0);
|
|
const singleRowRef = _react_17_0_2_react.useRef(null);
|
|
const midRowRef = _react_17_0_2_react.useRef(null);
|
|
const nodeList = _react_17_0_2_react.useMemo(() => (0,toArray/* default */.Z)(text), [text]);
|
|
const totalLen = _react_17_0_2_react.useMemo(() => getNodesLen(nodeList), [nodeList]);
|
|
const mergedChildren = _react_17_0_2_react.useMemo(() => {
|
|
if (!enabledMeasure || walkingState !== DONE_WITH_ELLIPSIS) {
|
|
// if has lastLen, use it as temporary width to avoid lots of text to squeeze space.
|
|
if (lastLen && walkingState !== DONE_WITHOUT_ELLIPSIS && enabledMeasure) return children(sliceNodes(nodeList, lastLen), lastLen < totalLen);
|
|
return children(nodeList, false);
|
|
}
|
|
return children(sliceNodes(nodeList, midLen), midLen < totalLen);
|
|
}, [enabledMeasure, walkingState, children, nodeList, midLen, totalLen]);
|
|
// ======================== Walk ========================
|
|
(0,useLayoutEffect/* default */.Z)(() => {
|
|
if (enabledMeasure && width && fontSize && totalLen) {
|
|
setWalkingState(PREPARE);
|
|
setCutLength([0, Math.ceil(totalLen / 2), totalLen]);
|
|
}
|
|
}, [enabledMeasure, width, fontSize, text, totalLen, rows]);
|
|
(0,useLayoutEffect/* default */.Z)(() => {
|
|
var _a;
|
|
if (walkingState === PREPARE) {
|
|
setSingleRowHeight(((_a = singleRowRef.current) === null || _a === void 0 ? void 0 : _a.offsetHeight) || 0);
|
|
}
|
|
}, [walkingState]);
|
|
(0,useLayoutEffect/* default */.Z)(() => {
|
|
var _a, _b;
|
|
if (singleRowHeight) {
|
|
if (walkingState === PREPARE) {
|
|
// Ignore if position is enough
|
|
const midHeight = ((_a = midRowRef.current) === null || _a === void 0 ? void 0 : _a.offsetHeight) || 0;
|
|
const maxHeight = rows * singleRowHeight;
|
|
if (midHeight <= maxHeight) {
|
|
setWalkingState(DONE_WITHOUT_ELLIPSIS);
|
|
onEllipsis(false);
|
|
} else {
|
|
setWalkingState(WALKING);
|
|
}
|
|
} else if (walkingState === WALKING) {
|
|
if (startLen !== endLen) {
|
|
const midHeight = ((_b = midRowRef.current) === null || _b === void 0 ? void 0 : _b.offsetHeight) || 0;
|
|
const maxHeight = rows * singleRowHeight;
|
|
let nextStartLen = startLen;
|
|
let nextEndLen = endLen;
|
|
// We reach the last round
|
|
if (startLen === endLen - 1) {
|
|
nextEndLen = startLen;
|
|
} else if (midHeight <= maxHeight) {
|
|
nextStartLen = midLen;
|
|
} else {
|
|
nextEndLen = midLen;
|
|
}
|
|
const nextMidLen = Math.ceil((nextStartLen + nextEndLen) / 2);
|
|
setCutLength([nextStartLen, nextMidLen, nextEndLen]);
|
|
} else {
|
|
setWalkingState(DONE_WITH_ELLIPSIS);
|
|
setLastLen(midLen);
|
|
onEllipsis(true);
|
|
}
|
|
}
|
|
}
|
|
}, [walkingState, startLen, endLen, rows, singleRowHeight]);
|
|
// ======================= Render =======================
|
|
const measureStyle = {
|
|
width,
|
|
whiteSpace: 'normal',
|
|
margin: 0,
|
|
padding: 0
|
|
};
|
|
const renderMeasure = (content, ref, style) => /*#__PURE__*/_react_17_0_2_react.createElement("span", {
|
|
"aria-hidden": true,
|
|
ref: ref,
|
|
style: Object.assign({
|
|
position: 'fixed',
|
|
display: 'block',
|
|
left: 0,
|
|
top: 0,
|
|
zIndex: -9999,
|
|
visibility: 'hidden',
|
|
pointerEvents: 'none',
|
|
fontSize: Math.floor(fontSize / 2) * 2
|
|
}, style)
|
|
}, content);
|
|
const renderMeasureSlice = (len, ref) => {
|
|
const sliceNodeList = sliceNodes(nodeList, len);
|
|
return renderMeasure(children(sliceNodeList, true), ref, measureStyle);
|
|
};
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(_react_17_0_2_react.Fragment, null, mergedChildren, enabledMeasure && walkingState !== DONE_WITH_ELLIPSIS && walkingState !== DONE_WITHOUT_ELLIPSIS && /*#__PURE__*/_react_17_0_2_react.createElement(_react_17_0_2_react.Fragment, null, renderMeasure('lg', singleRowRef, {
|
|
wordBreak: 'keep-all',
|
|
whiteSpace: 'nowrap'
|
|
}), walkingState === PREPARE ? renderMeasure(children(nodeList, false), midRowRef, measureStyle) : renderMeasureSlice(midLen, midRowRef)));
|
|
};
|
|
if (false) {}
|
|
/* harmony default export */ var Base_Ellipsis = (Ellipsis);
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/typography/Base/EllipsisTooltip.js
|
|
"use client";
|
|
|
|
|
|
|
|
const EllipsisTooltip = _ref => {
|
|
let {
|
|
enabledEllipsis,
|
|
isEllipsis,
|
|
children,
|
|
tooltipProps
|
|
} = _ref;
|
|
if (!(tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.title) || !enabledEllipsis) {
|
|
return children;
|
|
}
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(es_tooltip/* default */.Z, Object.assign({
|
|
open: isEllipsis ? undefined : false
|
|
}, tooltipProps), children);
|
|
};
|
|
if (false) {}
|
|
/* harmony default export */ var Base_EllipsisTooltip = (EllipsisTooltip);
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/typography/Base/index.js
|
|
"use client";
|
|
|
|
var Base_rest = undefined && undefined.__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;
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function wrapperDecorations(_ref, content) {
|
|
let {
|
|
mark,
|
|
code,
|
|
underline,
|
|
delete: del,
|
|
strong,
|
|
keyboard,
|
|
italic
|
|
} = _ref;
|
|
let currentContent = content;
|
|
function wrap(tag, needed) {
|
|
if (!needed) {
|
|
return;
|
|
}
|
|
currentContent = /*#__PURE__*/_react_17_0_2_react.createElement(tag, {}, currentContent);
|
|
}
|
|
wrap('strong', strong);
|
|
wrap('u', underline);
|
|
wrap('del', del);
|
|
wrap('code', code);
|
|
wrap('mark', mark);
|
|
wrap('kbd', keyboard);
|
|
wrap('i', italic);
|
|
return currentContent;
|
|
}
|
|
function getNode(dom, defaultNode, needDom) {
|
|
if (dom === true || dom === undefined) {
|
|
return defaultNode;
|
|
}
|
|
return dom || needDom && defaultNode;
|
|
}
|
|
function toList(val) {
|
|
if (val === false) {
|
|
return [false, false];
|
|
}
|
|
return Array.isArray(val) ? val : [val];
|
|
}
|
|
const ELLIPSIS_STR = '...';
|
|
const Base = /*#__PURE__*/_react_17_0_2_react.forwardRef((props, ref) => {
|
|
var _a, _b, _c;
|
|
const {
|
|
prefixCls: customizePrefixCls,
|
|
className,
|
|
style,
|
|
type,
|
|
disabled,
|
|
children,
|
|
ellipsis,
|
|
editable,
|
|
copyable,
|
|
component,
|
|
title
|
|
} = props,
|
|
restProps = Base_rest(props, ["prefixCls", "className", "style", "type", "disabled", "children", "ellipsis", "editable", "copyable", "component", "title"]);
|
|
const {
|
|
getPrefixCls,
|
|
direction
|
|
} = _react_17_0_2_react.useContext(context/* ConfigContext */.E_);
|
|
const [textLocale] = (0,useLocale/* default */.Z)('Text');
|
|
const typographyRef = _react_17_0_2_react.useRef(null);
|
|
const editIconRef = _react_17_0_2_react.useRef(null);
|
|
// ============================ MISC ============================
|
|
const prefixCls = getPrefixCls('typography', customizePrefixCls);
|
|
const textProps = (0,omit/* default */.Z)(restProps, ['mark', 'code', 'delete', 'underline', 'strong', 'keyboard', 'italic']);
|
|
// ========================== Editable ==========================
|
|
const [enableEdit, editConfig] = useMergedConfig(editable);
|
|
const [editing, setEditing] = (0,useMergedState/* default */.Z)(false, {
|
|
value: editConfig.editing
|
|
});
|
|
const {
|
|
triggerType = ['icon']
|
|
} = editConfig;
|
|
const triggerEdit = edit => {
|
|
var _a;
|
|
if (edit) {
|
|
(_a = editConfig.onStart) === null || _a === void 0 ? void 0 : _a.call(editConfig);
|
|
}
|
|
setEditing(edit);
|
|
};
|
|
// Focus edit icon when back
|
|
hooks_useUpdatedEffect(() => {
|
|
var _a;
|
|
if (!editing) {
|
|
(_a = editIconRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
}
|
|
}, [editing]);
|
|
const onEditClick = e => {
|
|
e === null || e === void 0 ? void 0 : e.preventDefault();
|
|
triggerEdit(true);
|
|
};
|
|
const onEditChange = value => {
|
|
var _a;
|
|
(_a = editConfig.onChange) === null || _a === void 0 ? void 0 : _a.call(editConfig, value);
|
|
triggerEdit(false);
|
|
};
|
|
const onEditCancel = () => {
|
|
var _a;
|
|
(_a = editConfig.onCancel) === null || _a === void 0 ? void 0 : _a.call(editConfig);
|
|
triggerEdit(false);
|
|
};
|
|
// ========================== Copyable ==========================
|
|
const [enableCopy, copyConfig] = useMergedConfig(copyable);
|
|
const [copied, setCopied] = _react_17_0_2_react.useState(false);
|
|
const copyIdRef = _react_17_0_2_react.useRef(null);
|
|
const copyOptions = {};
|
|
if (copyConfig.format) {
|
|
copyOptions.format = copyConfig.format;
|
|
}
|
|
const cleanCopyId = () => {
|
|
if (copyIdRef.current) {
|
|
clearTimeout(copyIdRef.current);
|
|
}
|
|
};
|
|
const onCopyClick = e => {
|
|
var _a;
|
|
e === null || e === void 0 ? void 0 : e.preventDefault();
|
|
e === null || e === void 0 ? void 0 : e.stopPropagation();
|
|
_copy_to_clipboard_3_3_3_copy_to_clipboard_default()(copyConfig.text || String(children) || '', copyOptions);
|
|
setCopied(true);
|
|
// Trigger tips update
|
|
cleanCopyId();
|
|
copyIdRef.current = setTimeout(() => {
|
|
setCopied(false);
|
|
}, 3000);
|
|
(_a = copyConfig.onCopy) === null || _a === void 0 ? void 0 : _a.call(copyConfig, e);
|
|
};
|
|
_react_17_0_2_react.useEffect(() => cleanCopyId, []);
|
|
// ========================== Ellipsis ==========================
|
|
const [isLineClampSupport, setIsLineClampSupport] = _react_17_0_2_react.useState(false);
|
|
const [isTextOverflowSupport, setIsTextOverflowSupport] = _react_17_0_2_react.useState(false);
|
|
const [expanded, setExpanded] = _react_17_0_2_react.useState(false);
|
|
const [isJsEllipsis, setIsJsEllipsis] = _react_17_0_2_react.useState(false);
|
|
const [isNativeEllipsis, setIsNativeEllipsis] = _react_17_0_2_react.useState(false);
|
|
const [isNativeVisible, setIsNativeVisible] = _react_17_0_2_react.useState(true);
|
|
const [enableEllipsis, ellipsisConfig] = useMergedConfig(ellipsis, {
|
|
expandable: false
|
|
});
|
|
const mergedEnableEllipsis = enableEllipsis && !expanded;
|
|
// Shared prop to reduce bundle size
|
|
const {
|
|
rows = 1
|
|
} = ellipsisConfig;
|
|
const needMeasureEllipsis = _react_17_0_2_react.useMemo(() =>
|
|
// Disable ellipsis
|
|
!mergedEnableEllipsis ||
|
|
// Provide suffix
|
|
ellipsisConfig.suffix !== undefined || ellipsisConfig.onEllipsis ||
|
|
// Can't use css ellipsis since we need to provide the place for button
|
|
ellipsisConfig.expandable || enableEdit || enableCopy, [mergedEnableEllipsis, ellipsisConfig, enableEdit, enableCopy]);
|
|
(0,useLayoutEffect/* default */.Z)(() => {
|
|
if (enableEllipsis && !needMeasureEllipsis) {
|
|
setIsLineClampSupport((0,styleChecker/* isStyleSupport */.G)('webkitLineClamp'));
|
|
setIsTextOverflowSupport((0,styleChecker/* isStyleSupport */.G)('textOverflow'));
|
|
}
|
|
}, [needMeasureEllipsis, enableEllipsis]);
|
|
const cssEllipsis = _react_17_0_2_react.useMemo(() => {
|
|
if (needMeasureEllipsis) {
|
|
return false;
|
|
}
|
|
if (rows === 1) {
|
|
return isTextOverflowSupport;
|
|
}
|
|
return isLineClampSupport;
|
|
}, [needMeasureEllipsis, isTextOverflowSupport, isLineClampSupport]);
|
|
const isMergedEllipsis = mergedEnableEllipsis && (cssEllipsis ? isNativeEllipsis : isJsEllipsis);
|
|
const cssTextOverflow = mergedEnableEllipsis && rows === 1 && cssEllipsis;
|
|
const cssLineClamp = mergedEnableEllipsis && rows > 1 && cssEllipsis;
|
|
// >>>>> Expand
|
|
const onExpandClick = e => {
|
|
var _a;
|
|
setExpanded(true);
|
|
(_a = ellipsisConfig.onExpand) === null || _a === void 0 ? void 0 : _a.call(ellipsisConfig, e);
|
|
};
|
|
const [ellipsisWidth, setEllipsisWidth] = _react_17_0_2_react.useState(0);
|
|
const [ellipsisFontSize, setEllipsisFontSize] = _react_17_0_2_react.useState(0);
|
|
const onResize = (_ref2, element) => {
|
|
let {
|
|
offsetWidth
|
|
} = _ref2;
|
|
var _a;
|
|
setEllipsisWidth(offsetWidth);
|
|
setEllipsisFontSize(parseInt((_a = window.getComputedStyle) === null || _a === void 0 ? void 0 : _a.call(window, element).fontSize, 10) || 0);
|
|
};
|
|
// >>>>> JS Ellipsis
|
|
const onJsEllipsis = jsEllipsis => {
|
|
var _a;
|
|
setIsJsEllipsis(jsEllipsis);
|
|
// Trigger if changed
|
|
if (isJsEllipsis !== jsEllipsis) {
|
|
(_a = ellipsisConfig.onEllipsis) === null || _a === void 0 ? void 0 : _a.call(ellipsisConfig, jsEllipsis);
|
|
}
|
|
};
|
|
// >>>>> Native ellipsis
|
|
_react_17_0_2_react.useEffect(() => {
|
|
const textEle = typographyRef.current;
|
|
if (enableEllipsis && cssEllipsis && textEle) {
|
|
const currentEllipsis = cssLineClamp ? textEle.offsetHeight < textEle.scrollHeight : textEle.offsetWidth < textEle.scrollWidth;
|
|
if (isNativeEllipsis !== currentEllipsis) {
|
|
setIsNativeEllipsis(currentEllipsis);
|
|
}
|
|
}
|
|
}, [enableEllipsis, cssEllipsis, children, cssLineClamp, isNativeVisible]);
|
|
// https://github.com/ant-design/ant-design/issues/36786
|
|
// Use IntersectionObserver to check if element is invisible
|
|
_react_17_0_2_react.useEffect(() => {
|
|
const textEle = typographyRef.current;
|
|
if (typeof IntersectionObserver === 'undefined' || !textEle || !cssEllipsis || !mergedEnableEllipsis) {
|
|
return;
|
|
}
|
|
/* eslint-disable-next-line compat/compat */
|
|
const observer = new IntersectionObserver(() => {
|
|
setIsNativeVisible(!!textEle.offsetParent);
|
|
});
|
|
observer.observe(textEle);
|
|
return () => {
|
|
observer.disconnect();
|
|
};
|
|
}, [cssEllipsis, mergedEnableEllipsis]);
|
|
// ========================== Tooltip ===========================
|
|
let tooltipProps = {};
|
|
if (ellipsisConfig.tooltip === true) {
|
|
tooltipProps = {
|
|
title: (_a = editConfig.text) !== null && _a !== void 0 ? _a : children
|
|
};
|
|
} else if ( /*#__PURE__*/_react_17_0_2_react.isValidElement(ellipsisConfig.tooltip)) {
|
|
tooltipProps = {
|
|
title: ellipsisConfig.tooltip
|
|
};
|
|
} else if (typeof ellipsisConfig.tooltip === 'object') {
|
|
tooltipProps = Object.assign({
|
|
title: (_b = editConfig.text) !== null && _b !== void 0 ? _b : children
|
|
}, ellipsisConfig.tooltip);
|
|
} else {
|
|
tooltipProps = {
|
|
title: ellipsisConfig.tooltip
|
|
};
|
|
}
|
|
const topAriaLabel = _react_17_0_2_react.useMemo(() => {
|
|
const isValid = val => ['string', 'number'].includes(typeof val);
|
|
if (!enableEllipsis || cssEllipsis) {
|
|
return undefined;
|
|
}
|
|
if (isValid(editConfig.text)) {
|
|
return editConfig.text;
|
|
}
|
|
if (isValid(children)) {
|
|
return children;
|
|
}
|
|
if (isValid(title)) {
|
|
return title;
|
|
}
|
|
if (isValid(tooltipProps.title)) {
|
|
return tooltipProps.title;
|
|
}
|
|
return undefined;
|
|
}, [enableEllipsis, cssEllipsis, title, tooltipProps.title, isMergedEllipsis]);
|
|
// =========================== Render ===========================
|
|
// >>>>>>>>>>> Editing input
|
|
if (editing) {
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(typography_Editable, {
|
|
value: (_c = editConfig.text) !== null && _c !== void 0 ? _c : typeof children === 'string' ? children : '',
|
|
onSave: onEditChange,
|
|
onCancel: onEditCancel,
|
|
onEnd: editConfig.onEnd,
|
|
prefixCls: prefixCls,
|
|
className: className,
|
|
style: style,
|
|
direction: direction,
|
|
component: component,
|
|
maxLength: editConfig.maxLength,
|
|
autoSize: editConfig.autoSize,
|
|
enterIcon: editConfig.enterIcon
|
|
});
|
|
}
|
|
// >>>>>>>>>>> Typography
|
|
// Expand
|
|
const renderExpand = () => {
|
|
const {
|
|
expandable,
|
|
symbol
|
|
} = ellipsisConfig;
|
|
if (!expandable) return null;
|
|
let expandContent;
|
|
if (symbol) {
|
|
expandContent = symbol;
|
|
} else {
|
|
expandContent = textLocale === null || textLocale === void 0 ? void 0 : textLocale.expand;
|
|
}
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement("a", {
|
|
key: "expand",
|
|
className: `${prefixCls}-expand`,
|
|
onClick: onExpandClick,
|
|
"aria-label": textLocale === null || textLocale === void 0 ? void 0 : textLocale.expand
|
|
}, expandContent);
|
|
};
|
|
// Edit
|
|
const renderEdit = () => {
|
|
if (!enableEdit) return;
|
|
const {
|
|
icon,
|
|
tooltip
|
|
} = editConfig;
|
|
const editTitle = (0,toArray/* default */.Z)(tooltip)[0] || (textLocale === null || textLocale === void 0 ? void 0 : textLocale.edit);
|
|
const ariaLabel = typeof editTitle === 'string' ? editTitle : '';
|
|
return triggerType.includes('icon') ? /*#__PURE__*/_react_17_0_2_react.createElement(es_tooltip/* default */.Z, {
|
|
key: "edit",
|
|
title: tooltip === false ? '' : editTitle
|
|
}, /*#__PURE__*/_react_17_0_2_react.createElement(transButton, {
|
|
ref: editIconRef,
|
|
className: `${prefixCls}-edit`,
|
|
onClick: onEditClick,
|
|
"aria-label": ariaLabel
|
|
}, icon || /*#__PURE__*/_react_17_0_2_react.createElement(icons_EditOutlined, {
|
|
role: "button"
|
|
}))) : null;
|
|
};
|
|
// Copy
|
|
const renderCopy = () => {
|
|
if (!enableCopy) return;
|
|
const {
|
|
tooltips,
|
|
icon
|
|
} = copyConfig;
|
|
const tooltipNodes = toList(tooltips);
|
|
const iconNodes = toList(icon);
|
|
const copyTitle = copied ? getNode(tooltipNodes[1], textLocale === null || textLocale === void 0 ? void 0 : textLocale.copied) : getNode(tooltipNodes[0], textLocale === null || textLocale === void 0 ? void 0 : textLocale.copy);
|
|
const systemStr = copied ? textLocale === null || textLocale === void 0 ? void 0 : textLocale.copied : textLocale === null || textLocale === void 0 ? void 0 : textLocale.copy;
|
|
const ariaLabel = typeof copyTitle === 'string' ? copyTitle : systemStr;
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(es_tooltip/* default */.Z, {
|
|
key: "copy",
|
|
title: copyTitle
|
|
}, /*#__PURE__*/_react_17_0_2_react.createElement(transButton, {
|
|
className: _classnames_2_3_2_classnames_default()(`${prefixCls}-copy`, copied && `${prefixCls}-copy-success`),
|
|
onClick: onCopyClick,
|
|
"aria-label": ariaLabel
|
|
}, copied ? getNode(iconNodes[1], /*#__PURE__*/_react_17_0_2_react.createElement(CheckOutlined/* default */.Z, null), true) : getNode(iconNodes[0], /*#__PURE__*/_react_17_0_2_react.createElement(CopyOutlined/* default */.Z, null), true)));
|
|
};
|
|
const renderOperations = renderExpanded => [renderExpanded && renderExpand(), renderEdit(), renderCopy()];
|
|
const renderEllipsis = needEllipsis => [needEllipsis && /*#__PURE__*/_react_17_0_2_react.createElement("span", {
|
|
"aria-hidden": true,
|
|
key: "ellipsis"
|
|
}, ELLIPSIS_STR), ellipsisConfig.suffix, renderOperations(needEllipsis)];
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(es/* default */.Z, {
|
|
onResize: onResize,
|
|
disabled: !mergedEnableEllipsis || cssEllipsis
|
|
}, resizeRef => /*#__PURE__*/_react_17_0_2_react.createElement(Base_EllipsisTooltip, {
|
|
tooltipProps: tooltipProps,
|
|
enabledEllipsis: mergedEnableEllipsis,
|
|
isEllipsis: isMergedEllipsis
|
|
}, /*#__PURE__*/_react_17_0_2_react.createElement(typography_Typography, Object.assign({
|
|
className: _classnames_2_3_2_classnames_default()({
|
|
[`${prefixCls}-${type}`]: type,
|
|
[`${prefixCls}-disabled`]: disabled,
|
|
[`${prefixCls}-ellipsis`]: enableEllipsis,
|
|
[`${prefixCls}-single-line`]: mergedEnableEllipsis && rows === 1,
|
|
[`${prefixCls}-ellipsis-single-line`]: cssTextOverflow,
|
|
[`${prefixCls}-ellipsis-multiple-line`]: cssLineClamp
|
|
}, className),
|
|
prefixCls: customizePrefixCls,
|
|
style: Object.assign(Object.assign({}, style), {
|
|
WebkitLineClamp: cssLineClamp ? rows : undefined
|
|
}),
|
|
component: component,
|
|
ref: (0,es_ref/* composeRef */.sQ)(resizeRef, typographyRef, ref),
|
|
direction: direction,
|
|
onClick: triggerType.includes('text') ? onEditClick : undefined,
|
|
"aria-label": topAriaLabel === null || topAriaLabel === void 0 ? void 0 : topAriaLabel.toString(),
|
|
title: title
|
|
}, textProps), /*#__PURE__*/_react_17_0_2_react.createElement(Base_Ellipsis, {
|
|
enabledMeasure: mergedEnableEllipsis && !cssEllipsis,
|
|
text: children,
|
|
rows: rows,
|
|
width: ellipsisWidth,
|
|
fontSize: ellipsisFontSize,
|
|
onEllipsis: onJsEllipsis
|
|
}, (node, needEllipsis) => {
|
|
let renderNode = node;
|
|
if (node.length && needEllipsis && topAriaLabel) {
|
|
renderNode = /*#__PURE__*/_react_17_0_2_react.createElement("span", {
|
|
key: "show-content",
|
|
"aria-hidden": true
|
|
}, renderNode);
|
|
}
|
|
const wrappedContext = wrapperDecorations(props, /*#__PURE__*/_react_17_0_2_react.createElement(_react_17_0_2_react.Fragment, null, renderNode, renderEllipsis(needEllipsis)));
|
|
return wrappedContext;
|
|
}))));
|
|
});
|
|
/* harmony default export */ var typography_Base = (Base);
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/typography/Link.js
|
|
"use client";
|
|
|
|
var Link_rest = undefined && undefined.__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 Link = /*#__PURE__*/_react_17_0_2_react.forwardRef((_a, ref) => {
|
|
var {
|
|
ellipsis,
|
|
rel
|
|
} = _a,
|
|
restProps = Link_rest(_a, ["ellipsis", "rel"]);
|
|
false ? 0 : void 0;
|
|
const mergedProps = Object.assign(Object.assign({}, restProps), {
|
|
rel: rel === undefined && restProps.target === '_blank' ? 'noopener noreferrer' : rel
|
|
});
|
|
// @ts-expect-error: https://github.com/ant-design/ant-design/issues/26622
|
|
delete mergedProps.navigate;
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(typography_Base, Object.assign({}, mergedProps, {
|
|
ref: ref,
|
|
ellipsis: !!ellipsis,
|
|
component: "a"
|
|
}));
|
|
});
|
|
/* harmony default export */ var typography_Link = (Link);
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/typography/Paragraph.js
|
|
"use client";
|
|
|
|
|
|
|
|
const Paragraph = /*#__PURE__*/_react_17_0_2_react.forwardRef((props, ref) => /*#__PURE__*/_react_17_0_2_react.createElement(typography_Base, Object.assign({
|
|
ref: ref
|
|
}, props, {
|
|
component: "div"
|
|
})));
|
|
/* harmony default export */ var typography_Paragraph = (Paragraph);
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/typography/Text.js
|
|
"use client";
|
|
|
|
var Text_rest = undefined && undefined.__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 Text = (_a, ref) => {
|
|
var {
|
|
ellipsis
|
|
} = _a,
|
|
restProps = Text_rest(_a, ["ellipsis"]);
|
|
const mergedEllipsis = _react_17_0_2_react.useMemo(() => {
|
|
if (ellipsis && typeof ellipsis === 'object') {
|
|
return (0,omit/* default */.Z)(ellipsis, ['expandable', 'rows']);
|
|
}
|
|
return ellipsis;
|
|
}, [ellipsis]);
|
|
false ? 0 : void 0;
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(typography_Base, Object.assign({
|
|
ref: ref
|
|
}, restProps, {
|
|
ellipsis: mergedEllipsis,
|
|
component: "span"
|
|
}));
|
|
};
|
|
/* harmony default export */ var typography_Text = (/*#__PURE__*/_react_17_0_2_react.forwardRef(Text));
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/typography/Title.js
|
|
"use client";
|
|
|
|
var Title_rest = undefined && undefined.__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 TITLE_ELE_LIST = [1, 2, 3, 4, 5];
|
|
const Title = /*#__PURE__*/_react_17_0_2_react.forwardRef((props, ref) => {
|
|
const {
|
|
level = 1
|
|
} = props,
|
|
restProps = Title_rest(props, ["level"]);
|
|
let component;
|
|
if (TITLE_ELE_LIST.includes(level)) {
|
|
component = `h${level}`;
|
|
} else {
|
|
false ? 0 : void 0;
|
|
component = 'h1';
|
|
}
|
|
return /*#__PURE__*/_react_17_0_2_react.createElement(typography_Base, Object.assign({
|
|
ref: ref
|
|
}, restProps, {
|
|
component: component
|
|
}));
|
|
});
|
|
/* harmony default export */ var typography_Title = (Title);
|
|
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/typography/index.js
|
|
"use client";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const es_typography_Typography = typography_Typography;
|
|
es_typography_Typography.Text = typography_Text;
|
|
es_typography_Typography.Link = typography_Link;
|
|
es_typography_Typography.Title = typography_Title;
|
|
es_typography_Typography.Paragraph = typography_Paragraph;
|
|
/* harmony default export */ var typography = (es_typography_Typography);
|
|
|
|
/***/ }),
|
|
|
|
/***/ 25769:
|
|
/*!**************************************************************************!*\
|
|
!*** ./node_modules/_copy-to-clipboard@3.3.3@copy-to-clipboard/index.js ***!
|
|
\**************************************************************************/
|
|
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
|
|
"use strict";
|
|
|
|
|
|
var deselectCurrent = __webpack_require__(/*! toggle-selection */ 98040);
|
|
|
|
var clipboardToIE11Formatting = {
|
|
"text/plain": "Text",
|
|
"text/html": "Url",
|
|
"default": "Text"
|
|
}
|
|
|
|
var defaultMessage = "Copy to clipboard: #{key}, Enter";
|
|
|
|
function format(message) {
|
|
var copyKey = (/mac os x/i.test(navigator.userAgent) ? "⌘" : "Ctrl") + "+C";
|
|
return message.replace(/#{\s*key\s*}/g, copyKey);
|
|
}
|
|
|
|
function copy(text, options) {
|
|
var debug,
|
|
message,
|
|
reselectPrevious,
|
|
range,
|
|
selection,
|
|
mark,
|
|
success = false;
|
|
if (!options) {
|
|
options = {};
|
|
}
|
|
debug = options.debug || false;
|
|
try {
|
|
reselectPrevious = deselectCurrent();
|
|
|
|
range = document.createRange();
|
|
selection = document.getSelection();
|
|
|
|
mark = document.createElement("span");
|
|
mark.textContent = text;
|
|
// avoid screen readers from reading out loud the text
|
|
mark.ariaHidden = "true"
|
|
// reset user styles for span element
|
|
mark.style.all = "unset";
|
|
// prevents scrolling to the end of the page
|
|
mark.style.position = "fixed";
|
|
mark.style.top = 0;
|
|
mark.style.clip = "rect(0, 0, 0, 0)";
|
|
// used to preserve spaces and line breaks
|
|
mark.style.whiteSpace = "pre";
|
|
// do not inherit user-select (it may be `none`)
|
|
mark.style.webkitUserSelect = "text";
|
|
mark.style.MozUserSelect = "text";
|
|
mark.style.msUserSelect = "text";
|
|
mark.style.userSelect = "text";
|
|
mark.addEventListener("copy", function(e) {
|
|
e.stopPropagation();
|
|
if (options.format) {
|
|
e.preventDefault();
|
|
if (typeof e.clipboardData === "undefined") { // IE 11
|
|
debug && console.warn("unable to use e.clipboardData");
|
|
debug && console.warn("trying IE specific stuff");
|
|
window.clipboardData.clearData();
|
|
var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting["default"]
|
|
window.clipboardData.setData(format, text);
|
|
} else { // all other browsers
|
|
e.clipboardData.clearData();
|
|
e.clipboardData.setData(options.format, text);
|
|
}
|
|
}
|
|
if (options.onCopy) {
|
|
e.preventDefault();
|
|
options.onCopy(e.clipboardData);
|
|
}
|
|
});
|
|
|
|
document.body.appendChild(mark);
|
|
|
|
range.selectNodeContents(mark);
|
|
selection.addRange(range);
|
|
|
|
var successful = document.execCommand("copy");
|
|
if (!successful) {
|
|
throw new Error("copy command was unsuccessful");
|
|
}
|
|
success = true;
|
|
} catch (err) {
|
|
debug && console.error("unable to copy using execCommand: ", err);
|
|
debug && console.warn("trying IE specific stuff");
|
|
try {
|
|
window.clipboardData.setData(options.format || "text", text);
|
|
options.onCopy && options.onCopy(window.clipboardData);
|
|
success = true;
|
|
} catch (err) {
|
|
debug && console.error("unable to copy using clipboardData: ", err);
|
|
debug && console.error("falling back to prompt");
|
|
message = format("message" in options ? options.message : defaultMessage);
|
|
window.prompt(message, text);
|
|
}
|
|
} finally {
|
|
if (selection) {
|
|
if (typeof selection.removeRange == "function") {
|
|
selection.removeRange(range);
|
|
} else {
|
|
selection.removeAllRanges();
|
|
}
|
|
}
|
|
|
|
if (mark) {
|
|
document.body.removeChild(mark);
|
|
}
|
|
reselectPrevious();
|
|
}
|
|
|
|
return success;
|
|
}
|
|
|
|
module.exports = copy;
|
|
|
|
|
|
/***/ }),
|
|
|
|
/***/ 98040:
|
|
/*!************************************************************************!*\
|
|
!*** ./node_modules/_toggle-selection@1.0.6@toggle-selection/index.js ***!
|
|
\************************************************************************/
|
|
/***/ (function(module) {
|
|
|
|
|
|
module.exports = function () {
|
|
var selection = document.getSelection();
|
|
if (!selection.rangeCount) {
|
|
return function () {};
|
|
}
|
|
var active = document.activeElement;
|
|
|
|
var ranges = [];
|
|
for (var i = 0; i < selection.rangeCount; i++) {
|
|
ranges.push(selection.getRangeAt(i));
|
|
}
|
|
|
|
switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML
|
|
case 'INPUT':
|
|
case 'TEXTAREA':
|
|
active.blur();
|
|
break;
|
|
|
|
default:
|
|
active = null;
|
|
break;
|
|
}
|
|
|
|
selection.removeAllRanges();
|
|
return function () {
|
|
selection.type === 'Caret' &&
|
|
selection.removeAllRanges();
|
|
|
|
if (!selection.rangeCount) {
|
|
ranges.forEach(function(range) {
|
|
selection.addRange(range);
|
|
});
|
|
}
|
|
|
|
active &&
|
|
active.focus();
|
|
};
|
|
};
|
|
|
|
|
|
/***/ })
|
|
|
|
}]); |