@tiny-codes/react-easy 1.1.3 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -0
- package/es/components/ConfirmAction/index.d.ts +8 -0
- package/es/components/ConfirmAction/index.js +15 -0
- package/es/components/ConfirmAction/index.js.map +1 -1
- package/es/components/ContextMenu/index.d.ts +42 -0
- package/es/components/ContextMenu/index.js +188 -0
- package/es/components/ContextMenu/index.js.map +1 -0
- package/es/components/ContextMenu/style/index.d.ts +3 -0
- package/es/components/ContextMenu/style/index.js +25 -0
- package/es/components/ContextMenu/style/index.js.map +1 -0
- package/es/components/EditableText/form.d.ts +12 -6
- package/es/components/EditableText/form.js +106 -56
- package/es/components/EditableText/form.js.map +1 -1
- package/es/components/EditableText/index.d.ts +31 -9
- package/es/components/EditableText/index.js +13 -7
- package/es/components/EditableText/index.js.map +1 -1
- package/es/components/Loading/index.d.ts +2 -2
- package/es/components/Loading/index.js +5 -5
- package/es/components/Loading/index.js.map +1 -1
- package/es/components/index.d.ts +2 -0
- package/es/components/index.js +1 -0
- package/es/components/index.js.map +1 -1
- package/lib/components/ConfirmAction/index.d.ts +8 -0
- package/lib/components/ConfirmAction/index.js +9 -0
- package/lib/components/ConfirmAction/index.js.map +2 -2
- package/lib/components/ContextMenu/index.d.ts +42 -0
- package/lib/components/ContextMenu/index.js +190 -0
- package/lib/components/ContextMenu/index.js.map +7 -0
- package/lib/components/ContextMenu/style/index.d.ts +3 -0
- package/lib/components/ContextMenu/style/index.js +48 -0
- package/lib/components/ContextMenu/style/index.js.map +7 -0
- package/lib/components/EditableText/form.d.ts +12 -6
- package/lib/components/EditableText/form.js +69 -39
- package/lib/components/EditableText/form.js.map +2 -2
- package/lib/components/EditableText/index.d.ts +31 -9
- package/lib/components/EditableText/index.js +12 -5
- package/lib/components/EditableText/index.js.map +2 -2
- package/lib/components/Loading/index.d.ts +2 -2
- package/lib/components/Loading/index.js +4 -4
- package/lib/components/Loading/index.js.map +2 -2
- package/lib/components/index.d.ts +2 -0
- package/lib/components/index.js +3 -0
- package/lib/components/index.js.map +2 -2
- package/package.json +3 -2
|
@@ -13,7 +13,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
13
13
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
14
14
|
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
15
15
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
16
|
-
import React, { useContext, useEffect, useState } from 'react';
|
|
16
|
+
import React, { useContext, useEffect, useMemo, useState } from 'react';
|
|
17
17
|
import { ConfigProvider, Flex, Typography } from 'antd';
|
|
18
18
|
import names from 'classnames';
|
|
19
19
|
import { EditOutlined } from '@ant-design/icons';
|
|
@@ -42,8 +42,7 @@ var getEllipsisConfig = function getEllipsisConfig(content) {
|
|
|
42
42
|
var EditableText = function EditableText(props) {
|
|
43
43
|
var _textProps$style, _textProps$ellipsis;
|
|
44
44
|
var prefixClsInProps = props.prefixCls,
|
|
45
|
-
|
|
46
|
-
valueInProps = _props$value === void 0 ? '' : _props$value,
|
|
45
|
+
valueInProps = props.value,
|
|
47
46
|
displayTextInProps = props.displayText,
|
|
48
47
|
_props$editable = props.editable,
|
|
49
48
|
editable = _props$editable === void 0 ? true : _props$editable,
|
|
@@ -55,7 +54,7 @@ var EditableText = function EditableText(props) {
|
|
|
55
54
|
style = _props$style === void 0 ? {} : _props$style,
|
|
56
55
|
classNames = props.classNames,
|
|
57
56
|
styleNames = props.styles,
|
|
58
|
-
|
|
57
|
+
blockInProps = props.block,
|
|
59
58
|
_props$textComp = props.textComp,
|
|
60
59
|
textComp = _props$textComp === void 0 ? 'Text' : _props$textComp,
|
|
61
60
|
textProps = props.textProps,
|
|
@@ -93,10 +92,17 @@ var EditableText = function EditableText(props) {
|
|
|
93
92
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
94
93
|
value = _useState4[0],
|
|
95
94
|
setValue = _useState4[1];
|
|
96
|
-
var displayText = displayTextInProps !== null && displayTextInProps !== void 0 ? displayTextInProps : value;
|
|
97
95
|
var inputComp = inputCompInProps !== null && inputCompInProps !== void 0 ? inputCompInProps : textComp === 'Paragraph' ? 'TextArea' : 'Input';
|
|
96
|
+
var viewBlock = typeof blockInProps === 'boolean' ? blockInProps : blockInProps === null || blockInProps === void 0 ? void 0 : blockInProps.view;
|
|
97
|
+
var editingBlock = typeof blockInProps === 'boolean' ? blockInProps : blockInProps === null || blockInProps === void 0 ? void 0 : blockInProps.editing;
|
|
98
98
|
var editableRef = React.useRef(editable);
|
|
99
99
|
editableRef.current = editable;
|
|
100
|
+
var displayText = useMemo(function () {
|
|
101
|
+
if (typeof displayTextInProps === 'function') {
|
|
102
|
+
return displayTextInProps(value);
|
|
103
|
+
}
|
|
104
|
+
return displayTextInProps !== null && displayTextInProps !== void 0 ? displayTextInProps : value === null || value === void 0 ? void 0 : value.toString();
|
|
105
|
+
}, [displayTextInProps, value]);
|
|
100
106
|
|
|
101
107
|
// value受控
|
|
102
108
|
useEffect(function () {
|
|
@@ -175,7 +181,7 @@ var EditableText = function EditableText(props) {
|
|
|
175
181
|
formItemProps: formItemProps,
|
|
176
182
|
inputComp: inputComp,
|
|
177
183
|
inputProps: inputProps,
|
|
178
|
-
block:
|
|
184
|
+
block: editingBlock,
|
|
179
185
|
classNames: classNames,
|
|
180
186
|
styles: styleNames,
|
|
181
187
|
actionAlign: actionAlign,
|
|
@@ -185,7 +191,7 @@ var EditableText = function EditableText(props) {
|
|
|
185
191
|
onCancel: handleCancel
|
|
186
192
|
})
|
|
187
193
|
}) : /*#__PURE__*/_jsxs(Flex, {
|
|
188
|
-
className: names("".concat(prefixCls, "-view-mode"), _defineProperty(_defineProperty(_defineProperty({}, "".concat(prefixCls, "-single-line"), textComp !== 'Paragraph'), "".concat(prefixCls, "-has-children"), !!children), "".concat(prefixCls, "-view-mode-block"),
|
|
194
|
+
className: names("".concat(prefixCls, "-view-mode"), _defineProperty(_defineProperty(_defineProperty({}, "".concat(prefixCls, "-single-line"), textComp !== 'Paragraph'), "".concat(prefixCls, "-has-children"), !!children), "".concat(prefixCls, "-view-mode-block"), viewBlock)),
|
|
189
195
|
align: editIconAlign,
|
|
190
196
|
children: [/*#__PURE__*/_jsx("div", {
|
|
191
197
|
className: "".concat(prefixCls, "-text-content"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","_catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","minLen","_arrayLikeToArray","toString","Array","from","test","len","arr2","isArray","React","useContext","useEffect","useState","ConfigProvider","Flex","Typography","names","EditOutlined","useT","EditableTextForm","useStyle","jsx","_jsx","jsxs","_jsxs","getEllipsisConfig","content","tooltip","title","overlayStyle","maxWidth","EditableText","props","_textProps$style","_textProps$ellipsis","prefixClsInProps","prefixCls","_props$value","valueInProps","displayTextInProps","displayText","_props$editable","editable","_props$editing","editing","_props$className","className","_props$style","style","classNames","styleNames","styles","block","_props$textComp","textComp","textProps","editIcon","_props$editIconAlign","editIconAlign","children","formProps","formItemProps","inputCompInProps","inputComp","inputProps","required","actionAlign","submitProps","cancelProps","onOk","onCancel","onChange","onEditingChange","_useContext","ConfigContext","getPrefixCls","_useStyle","_useStyle2","wrapCSSVar","hashId","cssVarCls","_useState","_useState2","isEditing","setIsEditing","TypographyComponent","_useState3","_useState4","setValue","editableRef","useRef","current","handleEditingChange","handleOk","_ref","_callee","val","_callee$","_context","t0","console","_x","handleCancel","_ref2","_callee2","_callee2$","_context2","concat","_defineProperty","align","_objectSpread","text","marginBottom","ellipsis","onClick"],"sources":["../../../src/components/EditableText/index.tsx"],"sourcesContent":["import type { CSSProperties, ReactNode } from 'react';\nimport React, { useContext, useEffect, useState } from 'react';\nimport { ConfigProvider, Flex, Typography } from 'antd';\nimport type { EllipsisConfig } from 'antd/es/typography/Base';\nimport type { LinkProps } from 'antd/es/typography/Link';\nimport type { ParagraphProps } from 'antd/es/typography/Paragraph';\nimport type { TextProps } from 'antd/es/typography/Text';\nimport type { TitleProps } from 'antd/es/typography/Title';\nimport names from 'classnames';\nimport { EditOutlined } from '@ant-design/icons';\nimport useT from '../../hooks/useT';\nimport EditableTextForm, { type EditableFormProps } from './form';\nimport useStyle from './style';\n\nconst getEllipsisConfig = (content: string | undefined): EllipsisConfig => ({\n tooltip: {\n title: content,\n overlayStyle: { maxWidth: 500 },\n },\n});\n\nexport interface EditableTextProps<\n TT extends 'Text' | 'Paragraph' | 'Title' | 'Link' = 'Text',\n IT extends 'Input' | 'TextArea' = 'Input',\n> extends EditableFormProps<IT> {\n prefixCls?: string;\n /**\n * - **EN:** Custom read-only display text, replacing `value` display\n * - **CN:** 自定义只读显示文本,替代`value`显示\n *\n * @default true\n */\n displayText?: string;\n /**\n * - **EN:** Another way to customize read-only display text, with higher priority than\n * `displayText`. This method does not support text truncation.\n * - **CN:** 另外一种方式自定义只读显示文本,优先级高于`displayText`,这种方式无文本省略效果\n */\n children?: ReactNode;\n /**\n * - **EN:** Whether to allow editing. If set to `false`, the edit button will not be displayed.\n * - **CN:** 是否允许编辑,如果设置为`false`,则不显示编辑按钮\n *\n * @default true\n */\n editable?: boolean;\n /**\n * - **EN:** Whether to open edit mode.\n * - **CN:** 是否打开编辑模式\n *\n * @default false\n */\n editing?: boolean;\n /**\n * - **EN:** Component container class name.\n * - **CN:** 组件容器类名\n */\n className?: string;\n /**\n * - **EN:** Component container style.\n * - **CN:** 组件容器样式\n */\n style?: CSSProperties;\n /**\n * - **EN:** Semantic class names.\n * - **CN:** 语义化类名\n */\n classNames?: {\n /**\n * - **EN:** Read-only text class name\n * - **CN:** 只读文本类名\n */\n text?: string;\n /**\n * - **EN:** Edit button class name\n * - **CN:** 编辑按钮类名\n */\n editIcon?: string;\n } & EditableFormProps<IT>['classNames'];\n /**\n * - **EN:** After saving with `onOk`, the modified value is passed out through `onChange`\n * - **CN:** 在`onOk`保存后,通过`onChange`把修改后的值传递出去\n */\n onChange?: (value: string) => void;\n /**\n * - **EN:** Event triggered when the editing state changes\n * - **CN:** 编辑状态改变事件\n */\n onEditingChange?: (editing: boolean) => void;\n /**\n * - **EN:** Whether to display as a block-level element, with width 100%\n * - **CN:** 语义化样式\n */\n styles?: {\n /**\n * - **EN:** Read-only text class name\n * - **CN:** 只读文本类名\n */\n text?: CSSProperties;\n /**\n * - **EN:** Edit button style\n * - **CN:** 编辑按钮样式\n */\n editIcon?: CSSProperties;\n } & EditableFormProps<IT>['styles'];\n\n /**\n * - **EN:** Custom component type for rendering the text\n * - **CN:** 自定义设置渲染文本组件的组件类型\n *\n * @default 'Text'\n */\n textComp?: TT;\n /**\n * - **EN:** Text component props\n * - **CN:** 文本组件属性\n */\n textProps?: TT extends 'Text'\n ? TextProps\n : TT extends 'Paragraph'\n ? ParagraphProps\n : TT extends 'Title'\n ? TitleProps\n : TT extends 'Link'\n ? LinkProps\n : never;\n /**\n * - **EN:** Custom edit icon\n * - **CN:** 自定义编辑图标\n */\n editIcon?: ReactNode;\n /**\n * **EN:** Edit button vertical alignment\n *\n * **CN:** 编辑按钮垂直对齐方式\n *\n * - `start` - align to the top | 顶部对齐\n * - `center` - align to the center | 居中对齐\n * - `end` - align to the bottom | 底部对齐\n * - `baseline` - align to the text baseline, useful when the text has line height set |\n * 与文本基线对齐,在文本设置了行高时会非常有用\n *\n * @default 'center'\n */\n editIconAlign?: CSSProperties['alignItems'];\n}\n\n/**\n * - **EN:** Editable text component, providing a read-only display and an edit mode.\n * - **CN:** 可编辑文本组件,提供只读显示和编辑模式。\n *\n * @example\n * <EditableText value=\"Editable Text\" onOk={(value) => console.log('Saved value:', value)} />;\n */\nconst EditableText = <TT extends 'Text' | 'Paragraph' | 'Title' | 'Link', IT extends 'Input' | 'TextArea'>(\n props: EditableTextProps<TT, IT>\n) => {\n const {\n prefixCls: prefixClsInProps,\n value: valueInProps = '',\n displayText: displayTextInProps,\n editable = true,\n editing = false,\n className = '',\n style = {},\n classNames,\n styles: styleNames,\n block,\n textComp = 'Text',\n textProps,\n editIcon,\n editIconAlign = 'center',\n children,\n formProps,\n formItemProps,\n inputComp: inputCompInProps,\n inputProps,\n required,\n actionAlign,\n submitProps,\n cancelProps,\n onOk,\n onCancel,\n onChange,\n onEditingChange,\n } = props;\n\n const { getPrefixCls } = useContext(ConfigProvider.ConfigContext);\n const prefixCls = getPrefixCls('easy-editable-text', prefixClsInProps);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n const t = useT();\n const [isEditing, setIsEditing] = useState<boolean>(editing);\n const TypographyComponent = Typography[textComp];\n const [value, setValue] = useState(valueInProps);\n const displayText = displayTextInProps ?? value;\n const inputComp = inputCompInProps ?? (textComp === 'Paragraph' ? 'TextArea' : 'Input');\n const editableRef = React.useRef(editable);\n editableRef.current = editable;\n\n // value受控\n useEffect(() => {\n setValue(valueInProps);\n }, [valueInProps]);\n // editing受控\n useEffect(() => {\n if (editableRef.current) {\n setIsEditing(editing);\n }\n }, [editing]);\n\n // 编辑状态改变\n const handleEditingChange = (editing: boolean) => {\n setIsEditing(editing);\n onEditingChange?.(editing);\n };\n // 提交编辑\n const handleOk = async (val: string) => {\n try {\n await onOk?.(val);\n onChange?.(val);\n setValue(val);\n handleEditingChange(false);\n } catch (error) {\n console.error(error);\n }\n };\n // 取消编辑\n const handleCancel = async () => {\n handleEditingChange(false);\n await onCancel?.();\n };\n\n return wrapCSSVar(\n <div className={names(prefixCls, hashId, cssVarCls, className)} style={style}>\n {isEditing ? (\n <div className={`${prefixCls}-edit-mode`}>\n <EditableTextForm\n prefixCls={prefixCls}\n value={value}\n required={required}\n formProps={formProps}\n formItemProps={formItemProps}\n inputComp={inputComp}\n inputProps={inputProps}\n block={block}\n classNames={classNames}\n styles={styleNames}\n actionAlign={actionAlign}\n submitProps={submitProps}\n cancelProps={cancelProps}\n onOk={handleOk}\n onCancel={handleCancel}\n />\n </div>\n ) : (\n <Flex\n className={names(`${prefixCls}-view-mode`, {\n [`${prefixCls}-single-line`]: textComp !== 'Paragraph',\n [`${prefixCls}-has-children`]: !!children,\n [`${prefixCls}-view-mode-block`]: block,\n })}\n align={editIconAlign}\n >\n <div className={`${prefixCls}-text-content`}>\n {children ?? (\n <TypographyComponent\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n {...(textProps as any)}\n className={names(classNames?.text, classNames?.text, textProps?.className)}\n style={{\n marginBottom: textComp === 'Title' ? 0 : undefined, // 去掉标题组件的默认下边距\n ...(textProps?.style ?? styleNames?.text),\n }}\n ellipsis={textProps?.ellipsis ?? getEllipsisConfig(displayText)}\n >\n {displayText}\n </TypographyComponent>\n )}\n </div>\n {/* 编辑按钮 */}\n {editable && (\n <div\n className={names(`${prefixCls}-edit-icon`, classNames?.editIcon)}\n style={styleNames?.editIcon}\n title={t('components.EditableText.edit')}\n onClick={() => handleEditingChange(true)}\n >\n {editIcon ?? <EditOutlined />}\n </div>\n )}\n </Flex>\n )}\n </div>\n );\n};\n\ntype EditableTextInterface = typeof EditableText & {\n getEllipsisConfig: typeof getEllipsisConfig;\n};\n\nEditableText.getEllipsisConfig = getEllipsisConfig;\n\nexport default EditableText as EditableTextInterface;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","_catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","minLen","_arrayLikeToArray","toString","Array","from","test","len","arr2","isArray","React","useContext","useEffect","useMemo","useState","ConfigProvider","Flex","Typography","names","EditOutlined","useT","EditableTextForm","useStyle","jsx","_jsx","jsxs","_jsxs","getEllipsisConfig","content","tooltip","title","overlayStyle","maxWidth","EditableText","props","_textProps$style","_textProps$ellipsis","prefixClsInProps","prefixCls","valueInProps","displayTextInProps","displayText","_props$editable","editable","_props$editing","editing","_props$className","className","_props$style","style","classNames","styleNames","styles","blockInProps","block","_props$textComp","textComp","textProps","editIcon","_props$editIconAlign","editIconAlign","children","formProps","formItemProps","inputCompInProps","inputComp","inputProps","required","actionAlign","submitProps","cancelProps","onOk","onCancel","onChange","onEditingChange","_useContext","ConfigContext","getPrefixCls","_useStyle","_useStyle2","wrapCSSVar","hashId","cssVarCls","_useState","_useState2","isEditing","setIsEditing","TypographyComponent","_useState3","_useState4","setValue","viewBlock","view","editingBlock","editableRef","useRef","current","handleEditingChange","handleOk","_ref","_callee","val","_callee$","_context","t0","console","_x","handleCancel","_ref2","_callee2","_callee2$","_context2","concat","_defineProperty","align","_objectSpread","text","marginBottom","ellipsis","onClick"],"sources":["../../../src/components/EditableText/index.tsx"],"sourcesContent":["import type { CSSProperties, ReactNode } from 'react';\nimport React, { useContext, useEffect, useMemo, useState } from 'react';\nimport { ConfigProvider, Flex, Typography } from 'antd';\nimport type { EllipsisConfig } from 'antd/es/typography/Base';\nimport type { LinkProps } from 'antd/es/typography/Link';\nimport type { ParagraphProps } from 'antd/es/typography/Paragraph';\nimport type { TextProps } from 'antd/es/typography/Text';\nimport type { TitleProps } from 'antd/es/typography/Title';\nimport names from 'classnames';\nimport { EditOutlined } from '@ant-design/icons';\nimport useT from '../../hooks/useT';\nimport EditableTextForm, { type EditableFormProps, type RenderInputInterface } from './form';\nimport useStyle from './style';\n\nconst getEllipsisConfig = (content: ReactNode | undefined): EllipsisConfig => ({\n tooltip: {\n title: content,\n overlayStyle: { maxWidth: 500 },\n },\n});\n\nexport interface EditableTextProps<\n V = string,\n TT extends 'Text' | 'Paragraph' | 'Title' | 'Link' = 'Text',\n IT extends 'Input' | 'TextArea' | RenderInputInterface = 'Input',\n> extends Omit<EditableFormProps<V, IT>, 'block'> {\n prefixCls?: string;\n /**\n * - **EN:** Custom read-only display text, replacing `value` display\n * - **CN:** 自定义只读显示文本,替代`value`显示\n *\n * @default true\n */\n displayText?: ReactNode | ((value: V | undefined) => ReactNode);\n /**\n * - **EN:** Another way to customize read-only display text, with higher priority than\n * `displayText`. This method does not support text truncation.\n * - **CN:** 另外一种方式自定义只读显示文本,优先级高于`displayText`,这种方式无文本省略效果\n */\n children?: ReactNode;\n /**\n * - **EN:** Whether to allow editing. If set to `false`, the edit button will not be displayed.\n * - **CN:** 是否允许编辑,如果设置为`false`,则不显示编辑按钮\n *\n * @default true\n */\n editable?: boolean;\n /**\n * - **EN:** Whether to open edit mode.\n * - **CN:** 是否打开编辑模式\n *\n * @default false\n */\n editing?: boolean;\n /**\n * - **EN:** Whether to display as a block-level element, with width 100%\n * - **CN:** 是否显示为块级元素,宽度100%\n *\n * @default false\n */\n block?:\n | boolean\n | {\n /**\n * - **EN:** Whether to display as a block-level element in view mode, with width 100%\n * - **CN:** 只读模式是否显示为块级元素,宽度100%\n *\n * @default false\n */\n view?: boolean;\n /**\n * - **EN:** Whether to display as a block-level element in edit mode, with width 100%\n * - **CN:** 编辑模式是否显示为块级元素,宽度100%\n *\n * @default false\n */\n editing?: boolean;\n };\n /**\n * - **EN:** Component container class name.\n * - **CN:** 组件容器类名\n */\n className?: string;\n /**\n * - **EN:** Component container style.\n * - **CN:** 组件容器样式\n */\n style?: CSSProperties;\n /**\n * - **EN:** Semantic class names.\n * - **CN:** 语义化类名\n */\n classNames?: {\n /**\n * - **EN:** Read-only text class name\n * - **CN:** 只读文本类名\n */\n text?: string;\n /**\n * - **EN:** Edit button class name\n * - **CN:** 编辑按钮类名\n */\n editIcon?: string;\n } & EditableFormProps<V, IT>['classNames'];\n /**\n * - **EN:** After saving with `onOk`, the modified value is passed out through `onChange`\n * - **CN:** 在`onOk`保存后,通过`onChange`把修改后的值传递出去\n */\n onChange?: (value: V | undefined) => void;\n /**\n * - **EN:** Event triggered when the editing state changes\n * - **CN:** 编辑状态改变事件\n */\n onEditingChange?: (editing: boolean) => void;\n /**\n * - **EN:** Whether to display as a block-level element, with width 100%\n * - **CN:** 语义化样式\n */\n styles?: {\n /**\n * - **EN:** Read-only text class name\n * - **CN:** 只读文本类名\n */\n text?: CSSProperties;\n /**\n * - **EN:** Edit button style\n * - **CN:** 编辑按钮样式\n */\n editIcon?: CSSProperties;\n } & EditableFormProps<V, IT>['styles'];\n\n /**\n * - **EN:** Custom component type for rendering the text\n * - **CN:** 自定义设置渲染文本组件的组件类型\n *\n * @default 'Text'\n */\n textComp?: TT;\n /**\n * - **EN:** Text component props\n * - **CN:** 文本组件属性\n */\n textProps?: TT extends 'Text'\n ? TextProps\n : TT extends 'Paragraph'\n ? ParagraphProps\n : TT extends 'Title'\n ? TitleProps\n : TT extends 'Link'\n ? LinkProps\n : never;\n /**\n * - **EN:** Custom edit icon\n * - **CN:** 自定义编辑图标\n */\n editIcon?: ReactNode;\n /**\n * **EN:** Edit button vertical alignment\n *\n * **CN:** 编辑按钮垂直对齐方式\n *\n * - `start` - align to the top | 顶部对齐\n * - `center` - align to the center | 居中对齐\n * - `end` - align to the bottom | 底部对齐\n * - `baseline` - align to the text baseline, useful when the text has line height set |\n * 与文本基线对齐,在文本设置了行高时会非常有用\n *\n * @default 'center'\n */\n editIconAlign?: CSSProperties['alignItems'];\n}\n\n/**\n * - **EN:** Editable text component, providing a read-only display and an edit mode.\n * - **CN:** 可编辑文本组件,提供只读显示和编辑模式。\n *\n * @example\n * <EditableText value=\"Editable Text\" onOk={(value) => console.log('Saved value:', value)} />;\n */\nconst EditableText = <\n V,\n TT extends 'Text' | 'Paragraph' | 'Title' | 'Link',\n IT extends 'Input' | 'TextArea' | RenderInputInterface,\n>(\n props: EditableTextProps<V, TT, IT>\n) => {\n const {\n prefixCls: prefixClsInProps,\n value: valueInProps,\n displayText: displayTextInProps,\n editable = true,\n editing = false,\n className = '',\n style = {},\n classNames,\n styles: styleNames,\n block: blockInProps,\n textComp = 'Text',\n textProps,\n editIcon,\n editIconAlign = 'center',\n children,\n formProps,\n formItemProps,\n inputComp: inputCompInProps,\n inputProps,\n required,\n actionAlign,\n submitProps,\n cancelProps,\n onOk,\n onCancel,\n onChange,\n onEditingChange,\n } = props;\n\n const { getPrefixCls } = useContext(ConfigProvider.ConfigContext);\n const prefixCls = getPrefixCls('easy-editable-text', prefixClsInProps);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n const t = useT();\n const [isEditing, setIsEditing] = useState<boolean>(editing);\n const TypographyComponent = Typography[textComp];\n const [value, setValue] = useState(valueInProps);\n const inputComp = inputCompInProps ?? (textComp === 'Paragraph' ? 'TextArea' : 'Input');\n const viewBlock = typeof blockInProps === 'boolean' ? blockInProps : blockInProps?.view;\n const editingBlock = typeof blockInProps === 'boolean' ? blockInProps : blockInProps?.editing;\n const editableRef = React.useRef(editable);\n editableRef.current = editable;\n const displayText = useMemo(() => {\n if (typeof displayTextInProps === 'function') {\n return displayTextInProps(value);\n }\n return displayTextInProps ?? value?.toString();\n }, [displayTextInProps, value]);\n\n // value受控\n useEffect(() => {\n setValue(valueInProps);\n }, [valueInProps]);\n // editing受控\n useEffect(() => {\n if (editableRef.current) {\n setIsEditing(editing);\n }\n }, [editing]);\n\n // 编辑状态改变\n const handleEditingChange = (editing: boolean) => {\n setIsEditing(editing);\n onEditingChange?.(editing);\n };\n // 提交编辑\n const handleOk = async (val: V | undefined) => {\n try {\n await onOk?.(val);\n onChange?.(val);\n setValue(val);\n handleEditingChange(false);\n } catch (error) {\n console.error(error);\n }\n };\n // 取消编辑\n const handleCancel = async () => {\n handleEditingChange(false);\n await onCancel?.();\n };\n\n return wrapCSSVar(\n <div className={names(prefixCls, hashId, cssVarCls, className)} style={style}>\n {isEditing ? (\n <div className={`${prefixCls}-edit-mode`}>\n <EditableTextForm\n prefixCls={prefixCls}\n value={value}\n required={required}\n formProps={formProps}\n formItemProps={formItemProps}\n inputComp={inputComp}\n inputProps={inputProps}\n block={editingBlock}\n classNames={classNames}\n styles={styleNames}\n actionAlign={actionAlign}\n submitProps={submitProps}\n cancelProps={cancelProps}\n onOk={handleOk}\n onCancel={handleCancel}\n />\n </div>\n ) : (\n <Flex\n className={names(`${prefixCls}-view-mode`, {\n [`${prefixCls}-single-line`]: textComp !== 'Paragraph',\n [`${prefixCls}-has-children`]: !!children,\n [`${prefixCls}-view-mode-block`]: viewBlock,\n })}\n align={editIconAlign}\n >\n <div className={`${prefixCls}-text-content`}>\n {children ?? (\n <TypographyComponent\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n {...(textProps as any)}\n className={names(classNames?.text, classNames?.text, textProps?.className)}\n style={{\n marginBottom: textComp === 'Title' ? 0 : undefined, // 去掉标题组件的默认下边距\n ...(textProps?.style ?? styleNames?.text),\n }}\n ellipsis={textProps?.ellipsis ?? getEllipsisConfig(displayText)}\n >\n {displayText}\n </TypographyComponent>\n )}\n </div>\n {/* 编辑按钮 */}\n {editable && (\n <div\n className={names(`${prefixCls}-edit-icon`, classNames?.editIcon)}\n style={styleNames?.editIcon}\n title={t('components.EditableText.edit')}\n onClick={() => handleEditingChange(true)}\n >\n {editIcon ?? <EditOutlined />}\n </div>\n )}\n </Flex>\n )}\n </div>\n );\n};\n\ntype EditableTextInterface = typeof EditableText & {\n getEllipsisConfig: typeof getEllipsisConfig;\n};\n\nEditableText.getEllipsisConfig = getEllipsisConfig;\n\nexport default EditableText as EditableTextInterface;\n"],"mappings":"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"}
|
|
@@ -19,12 +19,12 @@ export type LoadingProps = SpinProps & {
|
|
|
19
19
|
* animation
|
|
20
20
|
* - **CN:** 在独立使用时,设置动画遮罩父容器的样式类名
|
|
21
21
|
*/
|
|
22
|
-
|
|
22
|
+
rootClassName?: string;
|
|
23
23
|
/**
|
|
24
24
|
* - **EN:** When used independently, set the style for the mask parent container of the animation
|
|
25
25
|
* - **CN:** 在独立使用时,设置动画遮罩父容器的样式
|
|
26
26
|
*/
|
|
27
|
-
|
|
27
|
+
rootStyle?: CSSProperties;
|
|
28
28
|
};
|
|
29
29
|
/**
|
|
30
30
|
* **EN:** Page loading animation component, providing two usage methods:
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
-
var _excluded = ["prefixCls", "
|
|
2
|
+
var _excluded = ["prefixCls", "mode", "rootClassName", "rootStyle", "children", "spinning", "className"];
|
|
3
3
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
4
4
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
5
5
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
@@ -56,10 +56,10 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
56
56
|
*/
|
|
57
57
|
var Loading = function Loading(props) {
|
|
58
58
|
var prefixClsInProps = props.prefixCls,
|
|
59
|
-
maskClassName = props.maskClassName,
|
|
60
|
-
maskStyle = props.maskStyle,
|
|
61
59
|
_props$mode = props.mode,
|
|
62
60
|
mode = _props$mode === void 0 ? 'flex' : _props$mode,
|
|
61
|
+
rootClassName = props.rootClassName,
|
|
62
|
+
rootStyle = props.rootStyle,
|
|
63
63
|
children = props.children,
|
|
64
64
|
_props$spinning = props.spinning,
|
|
65
65
|
spinning = _props$spinning === void 0 ? true : _props$spinning,
|
|
@@ -85,8 +85,8 @@ var Loading = function Loading(props) {
|
|
|
85
85
|
// Show the loading animation in a wrapper that fills the parent container and centers the animation,
|
|
86
86
|
// and hides the entire component when the animation is off.
|
|
87
87
|
spinning && wrapCSSVar( /*#__PURE__*/_jsx("div", {
|
|
88
|
-
className: classNames(hashId, cssVarCls, prefixCls,
|
|
89
|
-
style:
|
|
88
|
+
className: classNames(hashId, cssVarCls, prefixCls, rootClassName, mode === 'absolute' ? "".concat(prefixCls, "-absolute") : "".concat(prefixCls, "-flex")),
|
|
89
|
+
style: rootStyle,
|
|
90
90
|
children: /*#__PURE__*/_jsx(Spin, _objectSpread({
|
|
91
91
|
className: className,
|
|
92
92
|
spinning: spinning
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useContext","ConfigProvider","Spin","classNames","useStyle","jsx","_jsx","Loading","props","prefixClsInProps","prefixCls","
|
|
1
|
+
{"version":3,"names":["useContext","ConfigProvider","Spin","classNames","useStyle","jsx","_jsx","Loading","props","prefixClsInProps","prefixCls","_props$mode","mode","rootClassName","rootStyle","children","_props$spinning","spinning","className","spinProps","_objectWithoutProperties","_excluded","_useContext","ConfigContext","getPrefixCls","_useStyle","_useStyle2","_slicedToArray","wrapCSSVar","hashId","cssVarCls","_objectSpread","concat","style"],"sources":["../../../src/components/Loading/index.tsx"],"sourcesContent":["import { type CSSProperties, type FC, useContext } from 'react';\nimport type { SpinProps } from 'antd';\nimport { ConfigProvider, Spin } from 'antd';\nimport classNames from 'classnames';\nimport useStyle from './style';\n\nexport type LoadingProps = SpinProps & {\n /**\n * - **EN:** When used independently, the positioning method of the animation:\n * - **absolute** - Uses absolute positioning, and the animation will automatically center itself\n * within the parent container.\n * - **flex** - Uses flexbox layout, and the animation will automatically fill the parent container\n * and center itself.\n * - **CN:** 独立使用时,动画的定位方式:\n * - **absolute** - 使用绝对定位,动画会自动居中显示在父容器中。\n * - **flex** - 使用弹性布局,动画会自动填充父容器并居中显示。\n *\n * @default `flex`\n */\n mode?: 'absolute' | 'flex';\n /**\n * - **EN:** When used independently, set the class name for the mask parent container of the\n * animation\n * - **CN:** 在独立使用时,设置动画遮罩父容器的样式类名\n */\n rootClassName?: string;\n /**\n * - **EN:** When used independently, set the style for the mask parent container of the animation\n * - **CN:** 在独立使用时,设置动画遮罩父容器的样式\n */\n rootStyle?: CSSProperties;\n};\n\n/**\n * **EN:** Page loading animation component, providing two usage methods:\n *\n * - **Spin** - When the component wraps children, it wraps the `Spin` component around the children\n * to provide animation effects.\n * - **Independent** - Directly render a loading animation that automatically fills the parent\n * container and is centered.\n *\n * **CN:** 页面加载动画组件,提供两种使用方式:\n *\n * - **Spin** - 组件包裹children时,在children外层包裹 `Spin` 组件,提供动画效果。\n * - **独立使用** - 直接渲染一个加载动画,自动撑满父容器,且显示在居中位置。\n *\n * @example\n * 1. Spin surrounding children\n *\n * ```tsx\n * <PageLoading spinning={loading}>\n * <div>This is content</div>\n * </PageLoading>;\n * ```\n *\n * 2. Independent usage (inline layout)\n *\n * ```tsx\n * <PageLoading />;\n * ```\n *\n * 3. Centered display within container (absolute layout)\n *\n * ```tsx\n * <div className=\"container\" style={{ position: 'relative' }}>\n * <PageLoading absolute />\n * </div>;\n * ```\n */\nconst Loading: FC<LoadingProps> = (props) => {\n const {\n prefixCls: prefixClsInProps,\n mode = 'flex',\n rootClassName,\n rootStyle,\n children,\n spinning = true,\n className,\n ...spinProps\n } = props;\n\n const { getPrefixCls } = useContext(ConfigProvider.ConfigContext);\n const prefixCls = getPrefixCls('easy-loading', prefixClsInProps);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n\n return children\n ? // Use spin to wrap children when children is provided,\n // and control the animation display with the spinning prop.\n wrapCSSVar(\n <Spin className={classNames(hashId, cssVarCls, prefixCls, className)} spinning={spinning} {...spinProps}>\n {children}\n </Spin>\n )\n : // Show the loading animation in a wrapper that fills the parent container and centers the animation,\n // and hides the entire component when the animation is off.\n spinning &&\n wrapCSSVar(\n <div\n className={classNames(\n hashId,\n cssVarCls,\n prefixCls,\n rootClassName,\n mode === 'absolute' ? `${prefixCls}-absolute` : `${prefixCls}-flex`\n )}\n style={rootStyle}\n >\n <Spin className={className} spinning={spinning} {...spinProps} />\n </div>\n );\n};\n\nexport default Loading;\n"],"mappings":";;;;;;;;;;;;;;;AAAA,SAAsCA,UAAU,QAAQ,OAAO;AAE/D,SAASC,cAAc,EAAEC,IAAI,QAAQ,MAAM;AAC3C,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,QAAQ;AAAgB,SAAAC,GAAA,IAAAC,IAAA;AA6B/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMC,OAAyB,GAAG,SAA5BA,OAAyBA,CAAIC,KAAK,EAAK;EAC3C,IACaC,gBAAgB,GAQzBD,KAAK,CARPE,SAAS;IAAAC,WAAA,GAQPH,KAAK,CAPPI,IAAI;IAAJA,IAAI,GAAAD,WAAA,cAAG,MAAM,GAAAA,WAAA;IACbE,aAAa,GAMXL,KAAK,CANPK,aAAa;IACbC,SAAS,GAKPN,KAAK,CALPM,SAAS;IACTC,QAAQ,GAINP,KAAK,CAJPO,QAAQ;IAAAC,eAAA,GAINR,KAAK,CAHPS,QAAQ;IAARA,QAAQ,GAAAD,eAAA,cAAG,IAAI,GAAAA,eAAA;IACfE,SAAS,GAEPV,KAAK,CAFPU,SAAS;IACNC,SAAS,GAAAC,wBAAA,CACVZ,KAAK,EAAAa,SAAA;EAET,IAAAC,WAAA,GAAyBtB,UAAU,CAACC,cAAc,CAACsB,aAAa,CAAC;IAAzDC,YAAY,GAAAF,WAAA,CAAZE,YAAY;EACpB,IAAMd,SAAS,GAAGc,YAAY,CAAC,cAAc,EAAEf,gBAAgB,CAAC;EAChE,IAAAgB,SAAA,GAAwCrB,QAAQ,CAACM,SAAS,CAAC;IAAAgB,UAAA,GAAAC,cAAA,CAAAF,SAAA;IAApDG,UAAU,GAAAF,UAAA;IAAEG,MAAM,GAAAH,UAAA;IAAEI,SAAS,GAAAJ,UAAA;EAEpC,OAAOX,QAAQ;EACX;EACA;EACAa,UAAU,eACRtB,IAAA,CAACJ,IAAI,EAAA6B,aAAA,CAAAA,aAAA;IAACb,SAAS,EAAEf,UAAU,CAAC0B,MAAM,EAAEC,SAAS,EAAEpB,SAAS,EAAEQ,SAAS,CAAE;IAACD,QAAQ,EAAEA;EAAS,GAAKE,SAAS;IAAAJ,QAAA,EACpGA;EAAQ,EACL,CACR,CAAC;EACD;EACA;EACAE,QAAQ,IACNW,UAAU,eACRtB,IAAA;IACEY,SAAS,EAAEf,UAAU,CACnB0B,MAAM,EACNC,SAAS,EACTpB,SAAS,EACTG,aAAa,EACbD,IAAI,KAAK,UAAU,MAAAoB,MAAA,CAAMtB,SAAS,oBAAAsB,MAAA,CAAiBtB,SAAS,UAC9D,CAAE;IACFuB,KAAK,EAAEnB,SAAU;IAAAC,QAAA,eAEjBT,IAAA,CAACJ,IAAI,EAAA6B,aAAA;MAACb,SAAS,EAAEA,SAAU;MAACD,QAAQ,EAAEA;IAAS,GAAKE,SAAS,CAAG;EAAC,CAC9D,CACP,CAAC;AACT,CAAC;AAED,eAAeZ,OAAO"}
|
package/es/components/index.d.ts
CHANGED
|
@@ -7,6 +7,8 @@ export { default as ReactEasyContext } from './ConfigProvider/context';
|
|
|
7
7
|
export type { ConfirmActionProps, ConfirmActionTrigger, ConfirmActionRef } from './ConfirmAction';
|
|
8
8
|
export { withDefaultConfirmActionProps } from './ConfirmAction';
|
|
9
9
|
export { default as ConfirmAction } from './ConfirmAction';
|
|
10
|
+
export type { ContextMenuProps, ContextMenuItem, ContextMenuSeparator, ContextMenuSubmenu, ContextMenuRef, } from './ContextMenu';
|
|
11
|
+
export { default as ContextMenu } from './ContextMenu';
|
|
10
12
|
export { default as DeleteConfirmAction } from './DeleteConfirmAction';
|
|
11
13
|
export type { EditableTextProps } from './EditableText';
|
|
12
14
|
export { default as EditableText } from './EditableText';
|
package/es/components/index.js
CHANGED
|
@@ -3,6 +3,7 @@ export { default as ConfigProvider } from "./ConfigProvider";
|
|
|
3
3
|
export { default as ReactEasyContext } from "./ConfigProvider/context";
|
|
4
4
|
export { withDefaultConfirmActionProps } from "./ConfirmAction";
|
|
5
5
|
export { default as ConfirmAction } from "./ConfirmAction";
|
|
6
|
+
export { default as ContextMenu } from "./ContextMenu";
|
|
6
7
|
|
|
7
8
|
// export * from './DeleteConfirmAction';
|
|
8
9
|
export { default as DeleteConfirmAction } from "./DeleteConfirmAction";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["default","BreakLines","ConfigProvider","ReactEasyContext","withDefaultConfirmActionProps","ConfirmAction","DeleteConfirmAction","EditableText","FloatDrawer","Loading","withDefaultModalActionProps","withModalAction","ModalAction","OverflowTags"],"sources":["../../src/components/index.tsx"],"sourcesContent":["export type { BreakLinesProps } from './BreakLines';\nexport { default as BreakLines } from './BreakLines';\n\nexport type { ConfigProviderProps } from './ConfigProvider';\nexport { default as ConfigProvider } from './ConfigProvider';\nexport type { ReactEasyContextProps } from './ConfigProvider/context';\nexport { default as ReactEasyContext } from './ConfigProvider/context';\n\nexport type { ConfirmActionProps, ConfirmActionTrigger, ConfirmActionRef } from './ConfirmAction';\nexport { withDefaultConfirmActionProps } from './ConfirmAction';\nexport { default as ConfirmAction } from './ConfirmAction';\n\n// export * from './DeleteConfirmAction';\nexport { default as DeleteConfirmAction } from './DeleteConfirmAction';\n\nexport type { EditableTextProps } from './EditableText';\nexport { default as EditableText } from './EditableText';\n\nexport type { FloatDrawerProps } from './FloatDrawer';\nexport { default as FloatDrawer } from './FloatDrawer';\n\nexport type { LoadingProps } from './Loading';\nexport { default as Loading } from './Loading';\n\nexport type { ModalActionProps, FormCompPropsConstraint, ModalActionTrigger, ModalActionRef } from './ModalAction';\nexport { withDefaultModalActionProps, withModalAction } from './ModalAction';\nexport { default as ModalAction } from './ModalAction';\n\nexport type { OverflowTagsProps } from './OverflowTags';\nexport { default as OverflowTags } from './OverflowTags';\n"],"mappings":"AACA,SAASA,OAAO,IAAIC,UAAU;AAG9B,SAASD,OAAO,IAAIE,cAAc;AAElC,SAASF,OAAO,IAAIG,gBAAgB;AAGpC,SAASC,6BAA6B;AACtC,SAASJ,OAAO,IAAIK,aAAa
|
|
1
|
+
{"version":3,"names":["default","BreakLines","ConfigProvider","ReactEasyContext","withDefaultConfirmActionProps","ConfirmAction","ContextMenu","DeleteConfirmAction","EditableText","FloatDrawer","Loading","withDefaultModalActionProps","withModalAction","ModalAction","OverflowTags"],"sources":["../../src/components/index.tsx"],"sourcesContent":["export type { BreakLinesProps } from './BreakLines';\nexport { default as BreakLines } from './BreakLines';\n\nexport type { ConfigProviderProps } from './ConfigProvider';\nexport { default as ConfigProvider } from './ConfigProvider';\nexport type { ReactEasyContextProps } from './ConfigProvider/context';\nexport { default as ReactEasyContext } from './ConfigProvider/context';\n\nexport type { ConfirmActionProps, ConfirmActionTrigger, ConfirmActionRef } from './ConfirmAction';\nexport { withDefaultConfirmActionProps } from './ConfirmAction';\nexport { default as ConfirmAction } from './ConfirmAction';\n\nexport type {\n ContextMenuProps,\n ContextMenuItem,\n ContextMenuSeparator,\n ContextMenuSubmenu,\n ContextMenuRef,\n} from './ContextMenu';\nexport { default as ContextMenu } from './ContextMenu';\n\n// export * from './DeleteConfirmAction';\nexport { default as DeleteConfirmAction } from './DeleteConfirmAction';\n\nexport type { EditableTextProps } from './EditableText';\nexport { default as EditableText } from './EditableText';\n\nexport type { FloatDrawerProps } from './FloatDrawer';\nexport { default as FloatDrawer } from './FloatDrawer';\n\nexport type { LoadingProps } from './Loading';\nexport { default as Loading } from './Loading';\n\nexport type { ModalActionProps, FormCompPropsConstraint, ModalActionTrigger, ModalActionRef } from './ModalAction';\nexport { withDefaultModalActionProps, withModalAction } from './ModalAction';\nexport { default as ModalAction } from './ModalAction';\n\nexport type { OverflowTagsProps } from './OverflowTags';\nexport { default as OverflowTags } from './OverflowTags';\n"],"mappings":"AACA,SAASA,OAAO,IAAIC,UAAU;AAG9B,SAASD,OAAO,IAAIE,cAAc;AAElC,SAASF,OAAO,IAAIG,gBAAgB;AAGpC,SAASC,6BAA6B;AACtC,SAASJ,OAAO,IAAIK,aAAa;AASjC,SAASL,OAAO,IAAIM,WAAW;;AAE/B;AACA,SAASN,OAAO,IAAIO,mBAAmB;AAGvC,SAASP,OAAO,IAAIQ,YAAY;AAGhC,SAASR,OAAO,IAAIS,WAAW;AAG/B,SAAST,OAAO,IAAIU,OAAO;AAG3B,SAASC,2BAA2B,EAAEC,eAAe;AACrD,SAASZ,OAAO,IAAIa,WAAW;AAG/B,SAASb,OAAO,IAAIc,YAAY"}
|
|
@@ -168,4 +168,12 @@ export type ConfirmActionWithStatic = GenericConfirmActionInterface & {
|
|
|
168
168
|
* - **CN:** 带触发器的确认框组件
|
|
169
169
|
*/
|
|
170
170
|
declare const ConfirmAction: ConfirmActionWithStatic;
|
|
171
|
+
/**
|
|
172
|
+
* - **EN:** Generate a confirm box component with custom trigger and default props
|
|
173
|
+
* - **CN:** 基于自定义触发器和默认属性生成一个确认弹框组件
|
|
174
|
+
*
|
|
175
|
+
* @param actionComponent Custom trigger component | 自定义触发器组件
|
|
176
|
+
* @param defaultProps Default properties of the confirm box | 确认弹框的默认属性
|
|
177
|
+
*/
|
|
178
|
+
export declare function withConfirmAction<TP extends object, E extends keyof TP>(actionComponent: ComponentType<TP>, defaultProps?: Partial<ConfirmActionProps<TP, E>> | (() => Partial<ConfirmActionProps<TP, E>>)): ComponentType<Omit<ConfirmActionProps<TP, E>, "triggerComponent"> & RefAttributes<ConfirmActionRef>>;
|
|
171
179
|
export default ConfirmAction;
|
|
@@ -31,6 +31,7 @@ var ConfirmAction_exports = {};
|
|
|
31
31
|
__export(ConfirmAction_exports, {
|
|
32
32
|
default: () => ConfirmAction_default,
|
|
33
33
|
genRenderer: () => genRenderer,
|
|
34
|
+
withConfirmAction: () => withConfirmAction,
|
|
34
35
|
withDefaultConfirmActionProps: () => withDefaultConfirmActionProps
|
|
35
36
|
});
|
|
36
37
|
module.exports = __toCommonJS(ConfirmAction_exports);
|
|
@@ -228,10 +229,18 @@ ConfirmAction.Link = withDefaultConfirmActionProps(forwarded, {
|
|
|
228
229
|
style: { whiteSpace: "nowrap" }
|
|
229
230
|
}
|
|
230
231
|
});
|
|
232
|
+
function withConfirmAction(actionComponent, defaultProps) {
|
|
233
|
+
const withTrigger = withDefaultConfirmActionProps(forwarded, {
|
|
234
|
+
triggerComponent: actionComponent,
|
|
235
|
+
...typeof defaultProps === "function" ? defaultProps() : defaultProps
|
|
236
|
+
});
|
|
237
|
+
return withTrigger;
|
|
238
|
+
}
|
|
231
239
|
var ConfirmAction_default = ConfirmAction;
|
|
232
240
|
// Annotate the CommonJS export names for ESM import in node:
|
|
233
241
|
0 && (module.exports = {
|
|
234
242
|
genRenderer,
|
|
243
|
+
withConfirmAction,
|
|
235
244
|
withDefaultConfirmActionProps
|
|
236
245
|
});
|
|
237
246
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/ConfirmAction/index.tsx"],
|
|
4
|
-
"sourcesContent": ["import type { ComponentType, ForwardedRef, PropsWithoutRef, ReactElement, ReactNode, RefAttributes } from 'react';\nimport { forwardRef, useContext, useImperativeHandle, useRef, useState } from 'react';\nimport type { ButtonProps, ModalFuncProps, SwitchProps } from 'antd';\nimport { App, Button, Modal, Switch, Typography } from 'antd';\nimport type { ModalFunc } from 'antd/es/modal/confirm';\nimport type confirm from 'antd/es/modal/confirm';\nimport useToken from 'antd/es/theme/useToken';\nimport type { LinkProps } from 'antd/es/typography/Link';\nimport type { TextProps } from 'antd/es/typography/Text';\nimport useContextValidator from '../../hooks/useContextValidator';\nimport useLocalizedText from '../../hooks/useLocalizedText';\nimport useRefFunction from '../../hooks/useRefFunction';\nimport ReactEasyContext from '../ConfigProvider/context';\n\nexport type ConfirmActionProps<TP extends object, E extends keyof TP> = Omit<ModalFuncProps, 'onOk'> &\n ConfirmActionTrigger<TP, E> & {\n /**\n * - **EN:** Whether to display in red danger mode, which will automatically affect the color of\n * the title, icon, and confirm button. Default is `false`, for DeleteConfirmAction, the\n * defaults is `true`.\n * - You can explicitly set `titleColor`, `iconColor`, and `okButtonProps.type` to override\n * - **CN:** 是否显示为红色危险模式,会自动影响标题、图标和确认按钮的颜色。默认`false`,DeleteConfirmAction组件的默认值为`true`。\n * - 可以显式设置`titleColor`、`iconColor`和`okButtonProps.type`来覆盖\n */\n danger?: boolean;\n /**\n * - **EN:** The color of confirm box title, default is `warning`\n * - **CN:** 弹框标题颜色,默认`warning`\n */\n titleColor?: TextProps['type'] | 'primary';\n /**\n * - **EN:** The color of confirm box content\n * - **CN:** 弹框内容文本颜色\n */\n contentColor?: TextProps['type'] | 'primary';\n /**\n * - **EN:** The color of confirm box title icon, default is the same as `titleColor`\n * - **CN:** 弹框标题图标颜色,默认与`titleColor`相同\n */\n iconColor?: TextProps['type'] | 'primary';\n /**\n * - **EN:** Callback when click confirm button\n * - **CN:** 点击确认按钮的回调\n */\n // @ts-expect-error: because TP[E] should be casted to function type\n onOk?: (...args: Parameters<TP[E]>) => unknown | Promise<unknown>;\n /**\n * - **EN:** Callback after confirm event, won't trigger if failed, the argument is the return\n * value of `onOk`\n * - **CN:** 确认事件完成后的回调,失败时不会触发,参数为`onOk`的返回值\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n afterOk?: (data?: any) => void;\n };\n\nexport interface ConfirmActionTrigger<TP extends object, E extends keyof TP> {\n /**\n * - **EN:** Trigger component, trigger to show confirm box\n * - **CN:** 触发器组件,触发显示确认弹框\n */\n triggerComponent?: ComponentType<TP>;\n /**\n * - **EN:** Props of trigger component\n * - **CN:** 触发器组件的Props属性\n */\n triggerProps?: TP;\n /**\n * - **EN:** The event name that triggers the dialog\n * - **CN:** 触发弹窗的事件名称\n * - `Button`: 'onClick'\n * - `Switch`: 'onChange'\n * - `Link`: 'onClick'\n */\n triggerEvent?: E;\n /**\n * - **EN:** Custom trigger content\n * - **CN:** 自定义触发器内容\n */\n children?: ReactNode;\n}\nexport type ConfirmActionRef = ReturnType<typeof confirm> & {\n /**\n * - **EN:** Show confirm box\n * - **CN:** 显示确认弹框\n */\n show: (props?: Parameters<ModalFunc>[0]) => ReturnType<ModalFunc>;\n};\n\n/**\n * - **EN:** Generate a confirm box component\n * - **CN:** 生成一个确认弹框组件\n *\n * @param defaultProps Default props | 默认属性\n *\n * @returns Component render method | 组件render方法\n */\nexport const genRenderer = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n defaultProps: Partial<ConfirmActionProps<any, never>> & { confirmType: 'normal' | 'delete' }\n) => {\n const Render = <TP extends object, E extends keyof TP>(\n props: ConfirmActionProps<TP, E>,\n ref: ForwardedRef<ConfirmActionRef>\n ) => {\n const { confirmType, ...restDefaults } = defaultProps;\n const mergedProps: ConfirmActionProps<TP, E> = {\n ...restDefaults,\n ...props,\n okButtonProps: {\n ...restDefaults.okButtonProps,\n ...props.okButtonProps,\n },\n cancelButtonProps: {\n ...restDefaults.cancelButtonProps,\n ...props.cancelButtonProps,\n },\n bodyProps: {\n ...restDefaults.bodyProps,\n ...props.bodyProps,\n },\n maskProps: {\n ...restDefaults.maskProps,\n ...props.maskProps,\n },\n wrapProps: {\n ...restDefaults.wrapProps,\n ...props.wrapProps,\n },\n triggerProps: {\n ...restDefaults.triggerProps,\n ...props.triggerProps,\n style: {\n ...restDefaults.triggerProps?.style,\n ...(props.triggerProps && 'style' in props.triggerProps && typeof props.triggerProps.style === 'object'\n ? props.triggerProps.style\n : {}),\n },\n } as TP,\n };\n const context = useContext(ReactEasyContext);\n const defaultTitle = useLocalizedText(\n confirmType === 'delete' ? context.defaultDeletionConfirmTitle : context.defaultConfirmTitle\n );\n const defaultContent = useLocalizedText(\n confirmType === 'delete' ? context.defaultDeletionConfirmContent : context.defaultConfirmContent\n );\n const {\n triggerComponent: Trigger = Button,\n triggerEvent = 'onClick' as E,\n triggerProps,\n danger,\n title = defaultTitle,\n content = defaultContent,\n titleColor,\n contentColor,\n icon,\n iconColor,\n okButtonProps,\n cancelButtonProps,\n onOk,\n afterOk,\n children,\n ...restProps\n } = mergedProps;\n\n useContextValidator();\n\n const app = App.useApp();\n // @ts-expect-error: because app may return a stub object when App is not used\n const modal = app.modal?.confirm ? app.modal : Modal;\n const { localize } = useContext(ReactEasyContext);\n const [, token] = useToken();\n const [confirmApi, setConfirmApi] = useState<ReturnType<typeof confirm>>();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const triggerEventArgsRef = useRef<any[]>(undefined);\n\n const fallbackColor = danger ? 'danger' : undefined;\n // Text with color\n const coloredText = (text: ReactNode, color?: TextProps['type'] | 'primary') => {\n const textContent = typeof text === 'string' ? (localize?.(text) ?? text) : text;\n if (!color) {\n return textContent;\n }\n if (color === 'primary') {\n return <Typography.Text style={{ color: token.colorPrimary }}>{textContent}</Typography.Text>;\n }\n return textContent ? <Typography.Text type={color}>{textContent}</Typography.Text> : undefined;\n };\n\n // Show confirm box\n const showConfirm: ConfirmActionRef['show'] = useRefFunction(() => {\n const okProps: ButtonProps = {\n ...(danger ? { type: 'primary', danger: true } : {}),\n ...(okButtonProps ?? {}),\n };\n const cancelProps: ButtonProps = {\n ...(cancelButtonProps ?? {}),\n };\n const api = modal.confirm({\n title: coloredText(title, titleColor ?? fallbackColor ?? 'warning'),\n content: coloredText(content, contentColor),\n icon: coloredText(icon, iconColor ?? fallbackColor ?? 'warning'),\n autoFocusButton: null,\n okButtonProps: okProps,\n cancelButtonProps: cancelProps,\n onOk: async () => {\n try {\n api.update({\n closable: true,\n okButtonProps: {\n loading: true,\n ...okProps,\n },\n cancelButtonProps: {\n disabled: true,\n ...cancelProps,\n },\n });\n const result = await onOk?.(...((triggerEventArgsRef.current ?? []) as Parameters<typeof onOk>));\n afterOk?.(result);\n } finally {\n api.update({\n closable: false,\n okButtonProps: {\n loading: false,\n ...okProps,\n },\n cancelButtonProps: {\n disabled: false,\n ...cancelProps,\n },\n });\n }\n },\n ...restProps,\n });\n setConfirmApi(api);\n return api;\n });\n\n // Output ref\n useImperativeHandle(ref, () => ({ show: showConfirm, ...confirmApi! }), [showConfirm, confirmApi]);\n\n // Render trigger component\n return (\n <Trigger\n {...triggerProps}\n // Trigger event\n {...((triggerEvent\n ? {\n [triggerEvent]: (...args: any[]) => {\n triggerEventArgsRef.current = args;\n const api = showConfirm();\n if (triggerProps && typeof triggerProps[triggerEvent] === 'function') {\n (triggerProps[triggerEvent] as (...args: any[]) => void)(...args, { api });\n }\n },\n }\n : {}) as TP)}\n >\n {(triggerProps as { children?: ReactNode }).children ?? children}\n </Trigger>\n );\n };\n Render.displayName = 'ConfirmAction';\n return Render;\n};\n\n/**\n * - **EN:** Add default properties to the ConfirmAction component\n * - **CN:** 给ConfirmAction组件添加默认属性\n *\n * @param WrappedComponent ConfirmAction component | ConfirmAction组件\n * @param defaultProps Default properties | 默认属性\n */\nexport const withDefaultConfirmActionProps = <TP extends object, E extends keyof TP>(\n WrappedComponent: ComponentType<PropsWithoutRef<ConfirmActionProps<TP, E>> & RefAttributes<ConfirmActionRef>>,\n defaultProps?: Partial<ConfirmActionProps<TP, E>>\n) => {\n const WithDefaultProps = forwardRef<ConfirmActionRef, ConfirmActionProps<TP, E>>((props, ref) => {\n const mergedProps: ConfirmActionProps<TP, E> = {\n ...defaultProps,\n ...props,\n triggerProps: {\n ...defaultProps?.triggerProps,\n ...props.triggerProps,\n } as TP,\n };\n return <WrappedComponent ref={ref} {...mergedProps} />;\n });\n WithDefaultProps.displayName = 'ForwardedRef(WithDefaultProps)';\n return WithDefaultProps;\n};\n\nconst renderConfirmAction = genRenderer({\n confirmType: 'normal',\n});\nconst forwarded = forwardRef(renderConfirmAction);\nforwarded.displayName = 'ForwardedRef(ConfirmAction)';\n\n/**\n * - **EN:** Interface of generic type component\n * - **CN:** 泛型组件的接口\n */\nexport type GenericConfirmActionInterface = <TP extends object, E extends keyof TP>(\n props: PropsWithoutRef<TypedConfirmActionProps<TP, E>> & RefAttributes<ConfirmActionRef>\n) => ReactElement;\n\n/**\n * - **EN:** Interface of specific type component\n * - **CN:** 具体类型组件的接口\n */\nexport type TypedConfirmActionInterface<TP extends object, E extends keyof TP> = ComponentType<\n PropsWithoutRef<TypedConfirmActionProps<TP, E>> & RefAttributes<ConfirmActionRef>\n>;\n\n/**\n * - **EN:** Props definition of specific type component\n * - **CN:** 具体类型组件的Props定义\n */\ntype TypedConfirmActionProps<TP extends object, E extends keyof TP> = Omit<\n ConfirmActionProps<TP, E>,\n 'triggerComponent' | 'triggerEvent'\n>;\nexport type ConfirmActionWithStatic = GenericConfirmActionInterface & {\n /**\n * - **EN:** Confirm box with button trigger\n * - **CN:** 按钮类型的确认框\n */\n Button: TypedConfirmActionInterface<ButtonProps, 'onClick'>;\n /**\n * - **EN:** Confirm box with switch trigger\n * - **CN:** 开关类型的确认框\n */\n Switch: TypedConfirmActionInterface<SwitchProps, 'onChange'>;\n /**\n * - **EN:** Confirm box with link trigger\n * - **CN:** 链接类型的确认框\n */\n Link: TypedConfirmActionInterface<LinkProps, 'onClick'>;\n};\n\n/**\n * - **EN:** Confirm box component with trigger\n * - **CN:** 带触发器的确认框组件\n */\nconst ConfirmAction = forwarded as unknown as ConfirmActionWithStatic;\n// Type of button\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nConfirmAction.Button = withDefaultConfirmActionProps<ButtonProps, 'onClick'>(forwarded as any, {\n triggerComponent: Button,\n triggerEvent: 'onClick',\n triggerProps: {},\n});\n// Type of switch\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nConfirmAction.Switch = withDefaultConfirmActionProps<SwitchProps, 'onChange'>(forwarded as any, {\n triggerComponent: Switch,\n triggerEvent: 'onChange',\n triggerProps: {},\n});\n// Type of link\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nConfirmAction.Link = withDefaultConfirmActionProps<LinkProps, 'onClick'>(forwarded as any, {\n triggerComponent: Typography.Link,\n triggerEvent: 'onClick',\n triggerProps: {\n style: { whiteSpace: 'nowrap' },\n },\n});\n\nexport default ConfirmAction;\n"],
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["import type { ComponentType, ForwardedRef, PropsWithoutRef, ReactElement, ReactNode, RefAttributes } from 'react';\nimport { forwardRef, useContext, useImperativeHandle, useRef, useState } from 'react';\nimport type { ButtonProps, ModalFuncProps, SwitchProps } from 'antd';\nimport { App, Button, Modal, Switch, Typography } from 'antd';\nimport type { ModalFunc } from 'antd/es/modal/confirm';\nimport type confirm from 'antd/es/modal/confirm';\nimport useToken from 'antd/es/theme/useToken';\nimport type { LinkProps } from 'antd/es/typography/Link';\nimport type { TextProps } from 'antd/es/typography/Text';\nimport useContextValidator from '../../hooks/useContextValidator';\nimport useLocalizedText from '../../hooks/useLocalizedText';\nimport useRefFunction from '../../hooks/useRefFunction';\nimport ReactEasyContext from '../ConfigProvider/context';\n\nexport type ConfirmActionProps<TP extends object, E extends keyof TP> = Omit<ModalFuncProps, 'onOk'> &\n ConfirmActionTrigger<TP, E> & {\n /**\n * - **EN:** Whether to display in red danger mode, which will automatically affect the color of\n * the title, icon, and confirm button. Default is `false`, for DeleteConfirmAction, the\n * defaults is `true`.\n * - You can explicitly set `titleColor`, `iconColor`, and `okButtonProps.type` to override\n * - **CN:** 是否显示为红色危险模式,会自动影响标题、图标和确认按钮的颜色。默认`false`,DeleteConfirmAction组件的默认值为`true`。\n * - 可以显式设置`titleColor`、`iconColor`和`okButtonProps.type`来覆盖\n */\n danger?: boolean;\n /**\n * - **EN:** The color of confirm box title, default is `warning`\n * - **CN:** 弹框标题颜色,默认`warning`\n */\n titleColor?: TextProps['type'] | 'primary';\n /**\n * - **EN:** The color of confirm box content\n * - **CN:** 弹框内容文本颜色\n */\n contentColor?: TextProps['type'] | 'primary';\n /**\n * - **EN:** The color of confirm box title icon, default is the same as `titleColor`\n * - **CN:** 弹框标题图标颜色,默认与`titleColor`相同\n */\n iconColor?: TextProps['type'] | 'primary';\n /**\n * - **EN:** Callback when click confirm button\n * - **CN:** 点击确认按钮的回调\n */\n // @ts-expect-error: because TP[E] should be casted to function type\n onOk?: (...args: Parameters<TP[E]>) => unknown | Promise<unknown>;\n /**\n * - **EN:** Callback after confirm event, won't trigger if failed, the argument is the return\n * value of `onOk`\n * - **CN:** 确认事件完成后的回调,失败时不会触发,参数为`onOk`的返回值\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n afterOk?: (data?: any) => void;\n };\n\nexport interface ConfirmActionTrigger<TP extends object, E extends keyof TP> {\n /**\n * - **EN:** Trigger component, trigger to show confirm box\n * - **CN:** 触发器组件,触发显示确认弹框\n */\n triggerComponent?: ComponentType<TP>;\n /**\n * - **EN:** Props of trigger component\n * - **CN:** 触发器组件的Props属性\n */\n triggerProps?: TP;\n /**\n * - **EN:** The event name that triggers the dialog\n * - **CN:** 触发弹窗的事件名称\n * - `Button`: 'onClick'\n * - `Switch`: 'onChange'\n * - `Link`: 'onClick'\n */\n triggerEvent?: E;\n /**\n * - **EN:** Custom trigger content\n * - **CN:** 自定义触发器内容\n */\n children?: ReactNode;\n}\nexport type ConfirmActionRef = ReturnType<typeof confirm> & {\n /**\n * - **EN:** Show confirm box\n * - **CN:** 显示确认弹框\n */\n show: (props?: Parameters<ModalFunc>[0]) => ReturnType<ModalFunc>;\n};\n\n/**\n * - **EN:** Generate a confirm box component\n * - **CN:** 生成一个确认弹框组件\n *\n * @param defaultProps Default props | 默认属性\n *\n * @returns Component render method | 组件render方法\n */\nexport const genRenderer = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n defaultProps: Partial<ConfirmActionProps<any, never>> & { confirmType: 'normal' | 'delete' }\n) => {\n const Render = <TP extends object, E extends keyof TP>(\n props: ConfirmActionProps<TP, E>,\n ref: ForwardedRef<ConfirmActionRef>\n ) => {\n const { confirmType, ...restDefaults } = defaultProps;\n const mergedProps: ConfirmActionProps<TP, E> = {\n ...restDefaults,\n ...props,\n okButtonProps: {\n ...restDefaults.okButtonProps,\n ...props.okButtonProps,\n },\n cancelButtonProps: {\n ...restDefaults.cancelButtonProps,\n ...props.cancelButtonProps,\n },\n bodyProps: {\n ...restDefaults.bodyProps,\n ...props.bodyProps,\n },\n maskProps: {\n ...restDefaults.maskProps,\n ...props.maskProps,\n },\n wrapProps: {\n ...restDefaults.wrapProps,\n ...props.wrapProps,\n },\n triggerProps: {\n ...restDefaults.triggerProps,\n ...props.triggerProps,\n style: {\n ...restDefaults.triggerProps?.style,\n ...(props.triggerProps && 'style' in props.triggerProps && typeof props.triggerProps.style === 'object'\n ? props.triggerProps.style\n : {}),\n },\n } as TP,\n };\n const context = useContext(ReactEasyContext);\n const defaultTitle = useLocalizedText(\n confirmType === 'delete' ? context.defaultDeletionConfirmTitle : context.defaultConfirmTitle\n );\n const defaultContent = useLocalizedText(\n confirmType === 'delete' ? context.defaultDeletionConfirmContent : context.defaultConfirmContent\n );\n const {\n triggerComponent: Trigger = Button,\n triggerEvent = 'onClick' as E,\n triggerProps,\n danger,\n title = defaultTitle,\n content = defaultContent,\n titleColor,\n contentColor,\n icon,\n iconColor,\n okButtonProps,\n cancelButtonProps,\n onOk,\n afterOk,\n children,\n ...restProps\n } = mergedProps;\n\n useContextValidator();\n\n const app = App.useApp();\n // @ts-expect-error: because app may return a stub object when App is not used\n const modal = app.modal?.confirm ? app.modal : Modal;\n const { localize } = useContext(ReactEasyContext);\n const [, token] = useToken();\n const [confirmApi, setConfirmApi] = useState<ReturnType<typeof confirm>>();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const triggerEventArgsRef = useRef<any[]>(undefined);\n\n const fallbackColor = danger ? 'danger' : undefined;\n // Text with color\n const coloredText = (text: ReactNode, color?: TextProps['type'] | 'primary') => {\n const textContent = typeof text === 'string' ? (localize?.(text) ?? text) : text;\n if (!color) {\n return textContent;\n }\n if (color === 'primary') {\n return <Typography.Text style={{ color: token.colorPrimary }}>{textContent}</Typography.Text>;\n }\n return textContent ? <Typography.Text type={color}>{textContent}</Typography.Text> : undefined;\n };\n\n // Show confirm box\n const showConfirm: ConfirmActionRef['show'] = useRefFunction(() => {\n const okProps: ButtonProps = {\n ...(danger ? { type: 'primary', danger: true } : {}),\n ...(okButtonProps ?? {}),\n };\n const cancelProps: ButtonProps = {\n ...(cancelButtonProps ?? {}),\n };\n const api = modal.confirm({\n title: coloredText(title, titleColor ?? fallbackColor ?? 'warning'),\n content: coloredText(content, contentColor),\n icon: coloredText(icon, iconColor ?? fallbackColor ?? 'warning'),\n autoFocusButton: null,\n okButtonProps: okProps,\n cancelButtonProps: cancelProps,\n onOk: async () => {\n try {\n api.update({\n closable: true,\n okButtonProps: {\n loading: true,\n ...okProps,\n },\n cancelButtonProps: {\n disabled: true,\n ...cancelProps,\n },\n });\n const result = await onOk?.(...((triggerEventArgsRef.current ?? []) as Parameters<typeof onOk>));\n afterOk?.(result);\n } finally {\n api.update({\n closable: false,\n okButtonProps: {\n loading: false,\n ...okProps,\n },\n cancelButtonProps: {\n disabled: false,\n ...cancelProps,\n },\n });\n }\n },\n ...restProps,\n });\n setConfirmApi(api);\n return api;\n });\n\n // Output ref\n useImperativeHandle(ref, () => ({ show: showConfirm, ...confirmApi! }), [showConfirm, confirmApi]);\n\n // Render trigger component\n return (\n <Trigger\n {...triggerProps}\n // Trigger event\n {...((triggerEvent\n ? {\n [triggerEvent]: (...args: any[]) => {\n triggerEventArgsRef.current = args;\n const api = showConfirm();\n if (triggerProps && typeof triggerProps[triggerEvent] === 'function') {\n (triggerProps[triggerEvent] as (...args: any[]) => void)(...args, { api });\n }\n },\n }\n : {}) as TP)}\n >\n {(triggerProps as { children?: ReactNode }).children ?? children}\n </Trigger>\n );\n };\n Render.displayName = 'ConfirmAction';\n return Render;\n};\n\n/**\n * - **EN:** Add default properties to the ConfirmAction component\n * - **CN:** 给ConfirmAction组件添加默认属性\n *\n * @param WrappedComponent ConfirmAction component | ConfirmAction组件\n * @param defaultProps Default properties | 默认属性\n */\nexport const withDefaultConfirmActionProps = <TP extends object, E extends keyof TP>(\n WrappedComponent: ComponentType<PropsWithoutRef<ConfirmActionProps<TP, E>> & RefAttributes<ConfirmActionRef>>,\n defaultProps?: Partial<ConfirmActionProps<TP, E>>\n) => {\n const WithDefaultProps = forwardRef<ConfirmActionRef, ConfirmActionProps<TP, E>>((props, ref) => {\n const mergedProps: ConfirmActionProps<TP, E> = {\n ...defaultProps,\n ...props,\n triggerProps: {\n ...defaultProps?.triggerProps,\n ...props.triggerProps,\n } as TP,\n };\n return <WrappedComponent ref={ref} {...mergedProps} />;\n });\n WithDefaultProps.displayName = 'ForwardedRef(WithDefaultProps)';\n return WithDefaultProps;\n};\n\nconst renderConfirmAction = genRenderer({\n confirmType: 'normal',\n});\nconst forwarded = forwardRef(renderConfirmAction);\nforwarded.displayName = 'ForwardedRef(ConfirmAction)';\n\n/**\n * - **EN:** Interface of generic type component\n * - **CN:** 泛型组件的接口\n */\nexport type GenericConfirmActionInterface = <TP extends object, E extends keyof TP>(\n props: PropsWithoutRef<TypedConfirmActionProps<TP, E>> & RefAttributes<ConfirmActionRef>\n) => ReactElement;\n\n/**\n * - **EN:** Interface of specific type component\n * - **CN:** 具体类型组件的接口\n */\nexport type TypedConfirmActionInterface<TP extends object, E extends keyof TP> = ComponentType<\n PropsWithoutRef<TypedConfirmActionProps<TP, E>> & RefAttributes<ConfirmActionRef>\n>;\n\n/**\n * - **EN:** Props definition of specific type component\n * - **CN:** 具体类型组件的Props定义\n */\ntype TypedConfirmActionProps<TP extends object, E extends keyof TP> = Omit<\n ConfirmActionProps<TP, E>,\n 'triggerComponent' | 'triggerEvent'\n>;\nexport type ConfirmActionWithStatic = GenericConfirmActionInterface & {\n /**\n * - **EN:** Confirm box with button trigger\n * - **CN:** 按钮类型的确认框\n */\n Button: TypedConfirmActionInterface<ButtonProps, 'onClick'>;\n /**\n * - **EN:** Confirm box with switch trigger\n * - **CN:** 开关类型的确认框\n */\n Switch: TypedConfirmActionInterface<SwitchProps, 'onChange'>;\n /**\n * - **EN:** Confirm box with link trigger\n * - **CN:** 链接类型的确认框\n */\n Link: TypedConfirmActionInterface<LinkProps, 'onClick'>;\n};\n\n/**\n * - **EN:** Confirm box component with trigger\n * - **CN:** 带触发器的确认框组件\n */\nconst ConfirmAction = forwarded as unknown as ConfirmActionWithStatic;\n// Type of button\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nConfirmAction.Button = withDefaultConfirmActionProps<ButtonProps, 'onClick'>(forwarded as any, {\n triggerComponent: Button,\n triggerEvent: 'onClick',\n triggerProps: {},\n});\n// Type of switch\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nConfirmAction.Switch = withDefaultConfirmActionProps<SwitchProps, 'onChange'>(forwarded as any, {\n triggerComponent: Switch,\n triggerEvent: 'onChange',\n triggerProps: {},\n});\n// Type of link\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nConfirmAction.Link = withDefaultConfirmActionProps<LinkProps, 'onClick'>(forwarded as any, {\n triggerComponent: Typography.Link,\n triggerEvent: 'onClick',\n triggerProps: {\n style: { whiteSpace: 'nowrap' },\n },\n});\n\n// todo: 实现hoc\n/**\n * - **EN:** Generate a confirm box component with custom trigger and default props\n * - **CN:** 基于自定义触发器和默认属性生成一个确认弹框组件\n *\n * @param actionComponent Custom trigger component | 自定义触发器组件\n * @param defaultProps Default properties of the confirm box | 确认弹框的默认属性\n */\nexport function withConfirmAction<TP extends object, E extends keyof TP>(\n actionComponent: ComponentType<TP>,\n defaultProps?: Partial<ConfirmActionProps<TP, E>> | (() => Partial<ConfirmActionProps<TP, E>>)\n) {\n const withTrigger = withDefaultConfirmActionProps(forwarded as unknown as TypedConfirmActionInterface<TP, E>, {\n triggerComponent: actionComponent,\n ...(typeof defaultProps === 'function' ? defaultProps() : defaultProps),\n }) as unknown as ComponentType<Omit<ConfirmActionProps<TP, E>, 'triggerComponent'> & RefAttributes<ConfirmActionRef>>;\n return withTrigger;\n}\n\nexport default ConfirmAction;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["ReactEasyContext", "useLocalizedText", "useContextValidator", "useToken", "useRefFunction"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { CSSProperties, ReactNode } from 'react';
|
|
2
|
+
import type { ItemProps, MenuProps, SeparatorProps, SubMenuProps } from 'react-contexify';
|
|
3
|
+
import 'react-contexify/dist/ReactContexify.css';
|
|
4
|
+
export interface ContextMenuProps extends MenuProps {
|
|
5
|
+
/**
|
|
6
|
+
* - **EN:** Menu items to be displayed
|
|
7
|
+
* - **CN:** 要显示的菜单项
|
|
8
|
+
*/
|
|
9
|
+
items: (ContextMenuItem | ContextMenuSeparator | ContextMenuSubmenu)[] | undefined;
|
|
10
|
+
/**
|
|
11
|
+
* - **EN:** Trigger methods to show the menu, default is `['contextMenu']`
|
|
12
|
+
* - **CN:** 触发显示菜单的方式,默认是 `['contextMenu']`
|
|
13
|
+
*/
|
|
14
|
+
trigger?: ('click' | 'doubleClick' | 'hover' | 'contextMenu')[];
|
|
15
|
+
triggerProps?: {
|
|
16
|
+
className?: string;
|
|
17
|
+
style?: CSSProperties;
|
|
18
|
+
};
|
|
19
|
+
prefixCls?: string;
|
|
20
|
+
}
|
|
21
|
+
declare const ContextMenu: import("react").ForwardRefExoticComponent<ContextMenuProps & import("react").RefAttributes<ContextMenuRef>>;
|
|
22
|
+
export interface ContextMenuRef {
|
|
23
|
+
show: (event: React.MouseEvent<HTMLElement>) => void;
|
|
24
|
+
hideAll: () => void;
|
|
25
|
+
}
|
|
26
|
+
export interface ContextMenuItem extends Omit<ItemProps, 'children' | 'keyMatcher'> {
|
|
27
|
+
key: string;
|
|
28
|
+
className?: string;
|
|
29
|
+
icon?: ReactNode;
|
|
30
|
+
label?: ReactNode;
|
|
31
|
+
shortcutKey?: Partial<Pick<KeyboardEvent, 'ctrlKey' | 'altKey' | 'shiftKey' | 'metaKey' | 'key'>> | ItemProps['keyMatcher'];
|
|
32
|
+
children?: ReactNode;
|
|
33
|
+
}
|
|
34
|
+
export interface ContextMenuSeparator extends SeparatorProps {
|
|
35
|
+
type: 'separator';
|
|
36
|
+
}
|
|
37
|
+
export interface ContextMenuSubmenu extends SubMenuProps {
|
|
38
|
+
key: string;
|
|
39
|
+
type: 'submenu';
|
|
40
|
+
items: (ContextMenuItem | ContextMenuSeparator | ContextMenuSubmenu)[];
|
|
41
|
+
}
|
|
42
|
+
export default ContextMenu;
|