@tiny-codes/react-easy 1.1.2 → 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 +24 -0
- package/es/components/BreakLines/index.d.ts +13 -19
- package/es/components/BreakLines/index.js +2 -3
- package/es/components/BreakLines/index.js.map +1 -1
- package/es/components/ConfigProvider/context.d.ts +20 -26
- package/es/components/ConfigProvider/context.js.map +1 -1
- package/es/components/ConfigProvider/index.d.ts +5 -7
- package/es/components/ConfigProvider/index.js +2 -3
- package/es/components/ConfigProvider/index.js.map +1 -1
- package/es/components/ConfirmAction/index.d.ts +66 -89
- package/es/components/ConfirmAction/index.js +27 -18
- 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/DeleteConfirmAction/index.d.ts +2 -3
- package/es/components/DeleteConfirmAction/index.js +8 -12
- package/es/components/DeleteConfirmAction/index.js.map +1 -1
- package/es/components/EditableText/form.d.ts +150 -0
- package/es/components/EditableText/form.js +359 -0
- package/es/components/EditableText/form.js.map +1 -0
- package/es/components/EditableText/index.d.ts +160 -0
- package/es/components/EditableText/index.js +222 -0
- package/es/components/EditableText/index.js.map +1 -0
- package/es/components/EditableText/style/index.d.ts +3 -0
- package/es/components/EditableText/style/index.js +76 -0
- package/es/components/EditableText/style/index.js.map +1 -0
- package/es/components/FloatDrawer/index.d.ts +89 -86
- package/es/components/FloatDrawer/index.js +43 -20
- package/es/components/FloatDrawer/index.js.map +1 -1
- package/es/components/FloatDrawer/style/index.js +42 -21
- package/es/components/FloatDrawer/style/index.js.map +1 -1
- package/es/components/Loading/index.d.ts +9 -14
- package/es/components/Loading/index.js +7 -6
- package/es/components/Loading/index.js.map +1 -1
- package/es/components/Loading/style/index.js +1 -1
- package/es/components/Loading/style/index.js.map +1 -1
- package/es/components/ModalAction/index.d.ts +98 -139
- package/es/components/ModalAction/index.js +25 -37
- package/es/components/ModalAction/index.js.map +1 -1
- package/es/components/OverflowTags/index.d.ts +30 -8
- package/es/components/OverflowTags/index.js +26 -7
- package/es/components/OverflowTags/index.js.map +1 -1
- package/es/components/OverflowTags/style/index.js +1 -1
- package/es/components/OverflowTags/style/index.js.map +1 -1
- package/es/components/index.d.ts +4 -0
- package/es/components/index.js +2 -0
- package/es/components/index.js.map +1 -1
- package/es/hooks/useRefFunction.d.ts +4 -5
- package/es/hooks/useRefFunction.js +6 -7
- package/es/hooks/useRefFunction.js.map +1 -1
- package/es/hooks/useRefValue.d.ts +2 -3
- package/es/hooks/useRefValue.js +2 -3
- package/es/hooks/useRefValue.js.map +1 -1
- package/es/hooks/useT.js +1 -2
- package/es/hooks/useT.js.map +1 -1
- package/es/hooks/useValidator.d.ts +2 -3
- package/es/hooks/useValidator.js +2 -3
- package/es/hooks/useValidator.js.map +1 -1
- package/es/hooks/useValidatorBuilder.d.ts +41 -61
- package/es/hooks/useValidatorBuilder.js +4 -6
- package/es/hooks/useValidatorBuilder.js.map +1 -1
- package/es/hooks/useValidators.d.ts +62 -83
- package/es/hooks/useValidators.js +3 -4
- package/es/hooks/useValidators.js.map +1 -1
- package/es/locales/index.d.ts +15 -0
- package/es/locales/langs/en-US.d.ts +5 -0
- package/es/locales/langs/en-US.js +5 -0
- package/es/locales/langs/en-US.js.map +1 -1
- package/es/locales/langs/zh-CN.d.ts +5 -0
- package/es/locales/langs/zh-CN.js +5 -0
- package/es/locales/langs/zh-CN.js.map +1 -1
- package/lib/components/BreakLines/index.d.ts +13 -19
- package/lib/components/BreakLines/index.js.map +2 -2
- package/lib/components/ConfigProvider/context.d.ts +20 -26
- package/lib/components/ConfigProvider/context.js.map +2 -2
- package/lib/components/ConfigProvider/index.d.ts +5 -7
- package/lib/components/ConfigProvider/index.js.map +2 -2
- package/lib/components/ConfirmAction/index.d.ts +66 -89
- 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/DeleteConfirmAction/index.d.ts +2 -3
- package/lib/components/DeleteConfirmAction/index.js.map +2 -2
- package/lib/components/EditableText/form.d.ts +150 -0
- package/lib/components/EditableText/form.js +253 -0
- package/lib/components/EditableText/form.js.map +7 -0
- package/lib/components/EditableText/index.d.ts +160 -0
- package/lib/components/EditableText/index.js +181 -0
- package/lib/components/EditableText/index.js.map +7 -0
- package/lib/components/EditableText/style/index.d.ts +3 -0
- package/lib/components/EditableText/style/index.js +118 -0
- package/lib/components/EditableText/style/index.js.map +7 -0
- package/lib/components/FloatDrawer/index.d.ts +89 -86
- package/lib/components/FloatDrawer/index.js +64 -39
- package/lib/components/FloatDrawer/index.js.map +2 -2
- package/lib/components/FloatDrawer/style/index.js +60 -23
- package/lib/components/FloatDrawer/style/index.js.map +2 -2
- package/lib/components/Loading/index.d.ts +9 -14
- package/lib/components/Loading/index.js +13 -4
- package/lib/components/Loading/index.js.map +2 -2
- package/lib/components/Loading/style/index.js +1 -1
- package/lib/components/Loading/style/index.js.map +2 -2
- package/lib/components/ModalAction/index.d.ts +98 -139
- package/lib/components/ModalAction/index.js.map +2 -2
- package/lib/components/OverflowTags/index.d.ts +30 -8
- package/lib/components/OverflowTags/index.js +7 -5
- package/lib/components/OverflowTags/index.js.map +2 -2
- package/lib/components/OverflowTags/style/index.js +1 -1
- package/lib/components/OverflowTags/style/index.js.map +2 -2
- package/lib/components/index.d.ts +4 -0
- package/lib/components/index.js +6 -0
- package/lib/components/index.js.map +2 -2
- package/lib/hooks/useRefFunction.d.ts +4 -5
- package/lib/hooks/useRefFunction.js.map +2 -2
- package/lib/hooks/useRefValue.d.ts +2 -3
- package/lib/hooks/useRefValue.js.map +2 -2
- package/lib/hooks/useT.js.map +2 -2
- package/lib/hooks/useValidator.d.ts +2 -3
- package/lib/hooks/useValidator.js.map +2 -2
- package/lib/hooks/useValidatorBuilder.d.ts +41 -61
- package/lib/hooks/useValidatorBuilder.js.map +2 -2
- package/lib/hooks/useValidators.d.ts +62 -83
- package/lib/hooks/useValidators.js.map +2 -2
- package/lib/locales/index.d.ts +15 -0
- package/lib/locales/langs/en-US.d.ts +5 -0
- package/lib/locales/langs/en-US.js +5 -0
- package/lib/locales/langs/en-US.js.map +2 -2
- package/lib/locales/langs/zh-CN.d.ts +5 -0
- package/lib/locales/langs/zh-CN.js +5 -0
- package/lib/locales/langs/zh-CN.js.map +2 -2
- package/package.json +3 -2
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import type { CSSProperties, ReactNode } from 'react';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import type { EllipsisConfig } from 'antd/es/typography/Base';
|
|
4
|
+
import type { LinkProps } from 'antd/es/typography/Link';
|
|
5
|
+
import type { ParagraphProps } from 'antd/es/typography/Paragraph';
|
|
6
|
+
import type { TextProps } from 'antd/es/typography/Text';
|
|
7
|
+
import type { TitleProps } from 'antd/es/typography/Title';
|
|
8
|
+
import { type EditableFormProps, type RenderInputInterface } from './form';
|
|
9
|
+
declare const getEllipsisConfig: (content: ReactNode | undefined) => EllipsisConfig;
|
|
10
|
+
export interface EditableTextProps<V = string, TT extends 'Text' | 'Paragraph' | 'Title' | 'Link' = 'Text', IT extends 'Input' | 'TextArea' | RenderInputInterface = 'Input'> extends Omit<EditableFormProps<V, IT>, 'block'> {
|
|
11
|
+
prefixCls?: string;
|
|
12
|
+
/**
|
|
13
|
+
* - **EN:** Custom read-only display text, replacing `value` display
|
|
14
|
+
* - **CN:** 自定义只读显示文本,替代`value`显示
|
|
15
|
+
*
|
|
16
|
+
* @default true
|
|
17
|
+
*/
|
|
18
|
+
displayText?: ReactNode | ((value: V | undefined) => ReactNode);
|
|
19
|
+
/**
|
|
20
|
+
* - **EN:** Another way to customize read-only display text, with higher priority than
|
|
21
|
+
* `displayText`. This method does not support text truncation.
|
|
22
|
+
* - **CN:** 另外一种方式自定义只读显示文本,优先级高于`displayText`,这种方式无文本省略效果
|
|
23
|
+
*/
|
|
24
|
+
children?: ReactNode;
|
|
25
|
+
/**
|
|
26
|
+
* - **EN:** Whether to allow editing. If set to `false`, the edit button will not be displayed.
|
|
27
|
+
* - **CN:** 是否允许编辑,如果设置为`false`,则不显示编辑按钮
|
|
28
|
+
*
|
|
29
|
+
* @default true
|
|
30
|
+
*/
|
|
31
|
+
editable?: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* - **EN:** Whether to open edit mode.
|
|
34
|
+
* - **CN:** 是否打开编辑模式
|
|
35
|
+
*
|
|
36
|
+
* @default false
|
|
37
|
+
*/
|
|
38
|
+
editing?: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* - **EN:** Whether to display as a block-level element, with width 100%
|
|
41
|
+
* - **CN:** 是否显示为块级元素,宽度100%
|
|
42
|
+
*
|
|
43
|
+
* @default false
|
|
44
|
+
*/
|
|
45
|
+
block?: boolean | {
|
|
46
|
+
/**
|
|
47
|
+
* - **EN:** Whether to display as a block-level element in view mode, with width 100%
|
|
48
|
+
* - **CN:** 只读模式是否显示为块级元素,宽度100%
|
|
49
|
+
*
|
|
50
|
+
* @default false
|
|
51
|
+
*/
|
|
52
|
+
view?: boolean;
|
|
53
|
+
/**
|
|
54
|
+
* - **EN:** Whether to display as a block-level element in edit mode, with width 100%
|
|
55
|
+
* - **CN:** 编辑模式是否显示为块级元素,宽度100%
|
|
56
|
+
*
|
|
57
|
+
* @default false
|
|
58
|
+
*/
|
|
59
|
+
editing?: boolean;
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* - **EN:** Component container class name.
|
|
63
|
+
* - **CN:** 组件容器类名
|
|
64
|
+
*/
|
|
65
|
+
className?: string;
|
|
66
|
+
/**
|
|
67
|
+
* - **EN:** Component container style.
|
|
68
|
+
* - **CN:** 组件容器样式
|
|
69
|
+
*/
|
|
70
|
+
style?: CSSProperties;
|
|
71
|
+
/**
|
|
72
|
+
* - **EN:** Semantic class names.
|
|
73
|
+
* - **CN:** 语义化类名
|
|
74
|
+
*/
|
|
75
|
+
classNames?: {
|
|
76
|
+
/**
|
|
77
|
+
* - **EN:** Read-only text class name
|
|
78
|
+
* - **CN:** 只读文本类名
|
|
79
|
+
*/
|
|
80
|
+
text?: string;
|
|
81
|
+
/**
|
|
82
|
+
* - **EN:** Edit button class name
|
|
83
|
+
* - **CN:** 编辑按钮类名
|
|
84
|
+
*/
|
|
85
|
+
editIcon?: string;
|
|
86
|
+
} & EditableFormProps<V, IT>['classNames'];
|
|
87
|
+
/**
|
|
88
|
+
* - **EN:** After saving with `onOk`, the modified value is passed out through `onChange`
|
|
89
|
+
* - **CN:** 在`onOk`保存后,通过`onChange`把修改后的值传递出去
|
|
90
|
+
*/
|
|
91
|
+
onChange?: (value: V | undefined) => void;
|
|
92
|
+
/**
|
|
93
|
+
* - **EN:** Event triggered when the editing state changes
|
|
94
|
+
* - **CN:** 编辑状态改变事件
|
|
95
|
+
*/
|
|
96
|
+
onEditingChange?: (editing: boolean) => void;
|
|
97
|
+
/**
|
|
98
|
+
* - **EN:** Whether to display as a block-level element, with width 100%
|
|
99
|
+
* - **CN:** 语义化样式
|
|
100
|
+
*/
|
|
101
|
+
styles?: {
|
|
102
|
+
/**
|
|
103
|
+
* - **EN:** Read-only text class name
|
|
104
|
+
* - **CN:** 只读文本类名
|
|
105
|
+
*/
|
|
106
|
+
text?: CSSProperties;
|
|
107
|
+
/**
|
|
108
|
+
* - **EN:** Edit button style
|
|
109
|
+
* - **CN:** 编辑按钮样式
|
|
110
|
+
*/
|
|
111
|
+
editIcon?: CSSProperties;
|
|
112
|
+
} & EditableFormProps<V, IT>['styles'];
|
|
113
|
+
/**
|
|
114
|
+
* - **EN:** Custom component type for rendering the text
|
|
115
|
+
* - **CN:** 自定义设置渲染文本组件的组件类型
|
|
116
|
+
*
|
|
117
|
+
* @default 'Text'
|
|
118
|
+
*/
|
|
119
|
+
textComp?: TT;
|
|
120
|
+
/**
|
|
121
|
+
* - **EN:** Text component props
|
|
122
|
+
* - **CN:** 文本组件属性
|
|
123
|
+
*/
|
|
124
|
+
textProps?: TT extends 'Text' ? TextProps : TT extends 'Paragraph' ? ParagraphProps : TT extends 'Title' ? TitleProps : TT extends 'Link' ? LinkProps : never;
|
|
125
|
+
/**
|
|
126
|
+
* - **EN:** Custom edit icon
|
|
127
|
+
* - **CN:** 自定义编辑图标
|
|
128
|
+
*/
|
|
129
|
+
editIcon?: ReactNode;
|
|
130
|
+
/**
|
|
131
|
+
* **EN:** Edit button vertical alignment
|
|
132
|
+
*
|
|
133
|
+
* **CN:** 编辑按钮垂直对齐方式
|
|
134
|
+
*
|
|
135
|
+
* - `start` - align to the top | 顶部对齐
|
|
136
|
+
* - `center` - align to the center | 居中对齐
|
|
137
|
+
* - `end` - align to the bottom | 底部对齐
|
|
138
|
+
* - `baseline` - align to the text baseline, useful when the text has line height set |
|
|
139
|
+
* 与文本基线对齐,在文本设置了行高时会非常有用
|
|
140
|
+
*
|
|
141
|
+
* @default 'center'
|
|
142
|
+
*/
|
|
143
|
+
editIconAlign?: CSSProperties['alignItems'];
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* - **EN:** Editable text component, providing a read-only display and an edit mode.
|
|
147
|
+
* - **CN:** 可编辑文本组件,提供只读显示和编辑模式。
|
|
148
|
+
*
|
|
149
|
+
* @example
|
|
150
|
+
* <EditableText value="Editable Text" onOk={(value) => console.log('Saved value:', value)} />;
|
|
151
|
+
*/
|
|
152
|
+
declare const EditableText: {
|
|
153
|
+
<V, TT extends "Text" | "Paragraph" | "Title" | "Link", IT extends "Input" | RenderInputInterface | "TextArea">(props: EditableTextProps<V, TT, IT>): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
154
|
+
getEllipsisConfig: (content: ReactNode | undefined) => EllipsisConfig;
|
|
155
|
+
};
|
|
156
|
+
type EditableTextInterface = typeof EditableText & {
|
|
157
|
+
getEllipsisConfig: typeof getEllipsisConfig;
|
|
158
|
+
};
|
|
159
|
+
declare const _default: EditableTextInterface;
|
|
160
|
+
export default _default;
|
|
@@ -0,0 +1,222 @@
|
|
|
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
|
+
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; }
|
|
3
|
+
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; }
|
|
4
|
+
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; }
|
|
5
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
6
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
7
|
+
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
|
|
8
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
9
|
+
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
10
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
11
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
12
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
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
|
+
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
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
16
|
+
import React, { useContext, useEffect, useMemo, useState } from 'react';
|
|
17
|
+
import { ConfigProvider, Flex, Typography } from 'antd';
|
|
18
|
+
import names from 'classnames';
|
|
19
|
+
import { EditOutlined } from '@ant-design/icons';
|
|
20
|
+
import useT from "../../hooks/useT";
|
|
21
|
+
import EditableTextForm from "./form";
|
|
22
|
+
import useStyle from "./style";
|
|
23
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
24
|
+
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
25
|
+
var getEllipsisConfig = function getEllipsisConfig(content) {
|
|
26
|
+
return {
|
|
27
|
+
tooltip: {
|
|
28
|
+
title: content,
|
|
29
|
+
overlayStyle: {
|
|
30
|
+
maxWidth: 500
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* - **EN:** Editable text component, providing a read-only display and an edit mode.
|
|
37
|
+
* - **CN:** 可编辑文本组件,提供只读显示和编辑模式。
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* <EditableText value="Editable Text" onOk={(value) => console.log('Saved value:', value)} />;
|
|
41
|
+
*/
|
|
42
|
+
var EditableText = function EditableText(props) {
|
|
43
|
+
var _textProps$style, _textProps$ellipsis;
|
|
44
|
+
var prefixClsInProps = props.prefixCls,
|
|
45
|
+
valueInProps = props.value,
|
|
46
|
+
displayTextInProps = props.displayText,
|
|
47
|
+
_props$editable = props.editable,
|
|
48
|
+
editable = _props$editable === void 0 ? true : _props$editable,
|
|
49
|
+
_props$editing = props.editing,
|
|
50
|
+
editing = _props$editing === void 0 ? false : _props$editing,
|
|
51
|
+
_props$className = props.className,
|
|
52
|
+
className = _props$className === void 0 ? '' : _props$className,
|
|
53
|
+
_props$style = props.style,
|
|
54
|
+
style = _props$style === void 0 ? {} : _props$style,
|
|
55
|
+
classNames = props.classNames,
|
|
56
|
+
styleNames = props.styles,
|
|
57
|
+
blockInProps = props.block,
|
|
58
|
+
_props$textComp = props.textComp,
|
|
59
|
+
textComp = _props$textComp === void 0 ? 'Text' : _props$textComp,
|
|
60
|
+
textProps = props.textProps,
|
|
61
|
+
editIcon = props.editIcon,
|
|
62
|
+
_props$editIconAlign = props.editIconAlign,
|
|
63
|
+
editIconAlign = _props$editIconAlign === void 0 ? 'center' : _props$editIconAlign,
|
|
64
|
+
children = props.children,
|
|
65
|
+
formProps = props.formProps,
|
|
66
|
+
formItemProps = props.formItemProps,
|
|
67
|
+
inputCompInProps = props.inputComp,
|
|
68
|
+
inputProps = props.inputProps,
|
|
69
|
+
required = props.required,
|
|
70
|
+
actionAlign = props.actionAlign,
|
|
71
|
+
submitProps = props.submitProps,
|
|
72
|
+
cancelProps = props.cancelProps,
|
|
73
|
+
onOk = props.onOk,
|
|
74
|
+
onCancel = props.onCancel,
|
|
75
|
+
onChange = props.onChange,
|
|
76
|
+
onEditingChange = props.onEditingChange;
|
|
77
|
+
var _useContext = useContext(ConfigProvider.ConfigContext),
|
|
78
|
+
getPrefixCls = _useContext.getPrefixCls;
|
|
79
|
+
var prefixCls = getPrefixCls('easy-editable-text', prefixClsInProps);
|
|
80
|
+
var _useStyle = useStyle(prefixCls),
|
|
81
|
+
_useStyle2 = _slicedToArray(_useStyle, 3),
|
|
82
|
+
wrapCSSVar = _useStyle2[0],
|
|
83
|
+
hashId = _useStyle2[1],
|
|
84
|
+
cssVarCls = _useStyle2[2];
|
|
85
|
+
var t = useT();
|
|
86
|
+
var _useState = useState(editing),
|
|
87
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
88
|
+
isEditing = _useState2[0],
|
|
89
|
+
setIsEditing = _useState2[1];
|
|
90
|
+
var TypographyComponent = Typography[textComp];
|
|
91
|
+
var _useState3 = useState(valueInProps),
|
|
92
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
93
|
+
value = _useState4[0],
|
|
94
|
+
setValue = _useState4[1];
|
|
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
|
+
var editableRef = React.useRef(editable);
|
|
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]);
|
|
106
|
+
|
|
107
|
+
// value受控
|
|
108
|
+
useEffect(function () {
|
|
109
|
+
setValue(valueInProps);
|
|
110
|
+
}, [valueInProps]);
|
|
111
|
+
// editing受控
|
|
112
|
+
useEffect(function () {
|
|
113
|
+
if (editableRef.current) {
|
|
114
|
+
setIsEditing(editing);
|
|
115
|
+
}
|
|
116
|
+
}, [editing]);
|
|
117
|
+
|
|
118
|
+
// 编辑状态改变
|
|
119
|
+
var handleEditingChange = function handleEditingChange(editing) {
|
|
120
|
+
setIsEditing(editing);
|
|
121
|
+
onEditingChange === null || onEditingChange === void 0 || onEditingChange(editing);
|
|
122
|
+
};
|
|
123
|
+
// 提交编辑
|
|
124
|
+
var handleOk = /*#__PURE__*/function () {
|
|
125
|
+
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(val) {
|
|
126
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
127
|
+
while (1) switch (_context.prev = _context.next) {
|
|
128
|
+
case 0:
|
|
129
|
+
_context.prev = 0;
|
|
130
|
+
_context.next = 3;
|
|
131
|
+
return onOk === null || onOk === void 0 ? void 0 : onOk(val);
|
|
132
|
+
case 3:
|
|
133
|
+
onChange === null || onChange === void 0 || onChange(val);
|
|
134
|
+
setValue(val);
|
|
135
|
+
handleEditingChange(false);
|
|
136
|
+
_context.next = 11;
|
|
137
|
+
break;
|
|
138
|
+
case 8:
|
|
139
|
+
_context.prev = 8;
|
|
140
|
+
_context.t0 = _context["catch"](0);
|
|
141
|
+
console.error(_context.t0);
|
|
142
|
+
case 11:
|
|
143
|
+
case "end":
|
|
144
|
+
return _context.stop();
|
|
145
|
+
}
|
|
146
|
+
}, _callee, null, [[0, 8]]);
|
|
147
|
+
}));
|
|
148
|
+
return function handleOk(_x) {
|
|
149
|
+
return _ref.apply(this, arguments);
|
|
150
|
+
};
|
|
151
|
+
}();
|
|
152
|
+
// 取消编辑
|
|
153
|
+
var handleCancel = /*#__PURE__*/function () {
|
|
154
|
+
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
|
|
155
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
156
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
157
|
+
case 0:
|
|
158
|
+
handleEditingChange(false);
|
|
159
|
+
_context2.next = 3;
|
|
160
|
+
return onCancel === null || onCancel === void 0 ? void 0 : onCancel();
|
|
161
|
+
case 3:
|
|
162
|
+
case "end":
|
|
163
|
+
return _context2.stop();
|
|
164
|
+
}
|
|
165
|
+
}, _callee2);
|
|
166
|
+
}));
|
|
167
|
+
return function handleCancel() {
|
|
168
|
+
return _ref2.apply(this, arguments);
|
|
169
|
+
};
|
|
170
|
+
}();
|
|
171
|
+
return wrapCSSVar( /*#__PURE__*/_jsx("div", {
|
|
172
|
+
className: names(prefixCls, hashId, cssVarCls, className),
|
|
173
|
+
style: style,
|
|
174
|
+
children: isEditing ? /*#__PURE__*/_jsx("div", {
|
|
175
|
+
className: "".concat(prefixCls, "-edit-mode"),
|
|
176
|
+
children: /*#__PURE__*/_jsx(EditableTextForm, {
|
|
177
|
+
prefixCls: prefixCls,
|
|
178
|
+
value: value,
|
|
179
|
+
required: required,
|
|
180
|
+
formProps: formProps,
|
|
181
|
+
formItemProps: formItemProps,
|
|
182
|
+
inputComp: inputComp,
|
|
183
|
+
inputProps: inputProps,
|
|
184
|
+
block: editingBlock,
|
|
185
|
+
classNames: classNames,
|
|
186
|
+
styles: styleNames,
|
|
187
|
+
actionAlign: actionAlign,
|
|
188
|
+
submitProps: submitProps,
|
|
189
|
+
cancelProps: cancelProps,
|
|
190
|
+
onOk: handleOk,
|
|
191
|
+
onCancel: handleCancel
|
|
192
|
+
})
|
|
193
|
+
}) : /*#__PURE__*/_jsxs(Flex, {
|
|
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)),
|
|
195
|
+
align: editIconAlign,
|
|
196
|
+
children: [/*#__PURE__*/_jsx("div", {
|
|
197
|
+
className: "".concat(prefixCls, "-text-content"),
|
|
198
|
+
children: children !== null && children !== void 0 ? children : /*#__PURE__*/_jsx(TypographyComponent
|
|
199
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
200
|
+
, _objectSpread(_objectSpread({}, textProps), {}, {
|
|
201
|
+
className: names(classNames === null || classNames === void 0 ? void 0 : classNames.text, classNames === null || classNames === void 0 ? void 0 : classNames.text, textProps === null || textProps === void 0 ? void 0 : textProps.className),
|
|
202
|
+
style: _objectSpread({
|
|
203
|
+
marginBottom: textComp === 'Title' ? 0 : undefined
|
|
204
|
+
}, (_textProps$style = textProps === null || textProps === void 0 ? void 0 : textProps.style) !== null && _textProps$style !== void 0 ? _textProps$style : styleNames === null || styleNames === void 0 ? void 0 : styleNames.text),
|
|
205
|
+
ellipsis: (_textProps$ellipsis = textProps === null || textProps === void 0 ? void 0 : textProps.ellipsis) !== null && _textProps$ellipsis !== void 0 ? _textProps$ellipsis : getEllipsisConfig(displayText),
|
|
206
|
+
children: displayText
|
|
207
|
+
}))
|
|
208
|
+
}), editable && /*#__PURE__*/_jsx("div", {
|
|
209
|
+
className: names("".concat(prefixCls, "-edit-icon"), classNames === null || classNames === void 0 ? void 0 : classNames.editIcon),
|
|
210
|
+
style: styleNames === null || styleNames === void 0 ? void 0 : styleNames.editIcon,
|
|
211
|
+
title: t('components.EditableText.edit'),
|
|
212
|
+
onClick: function onClick() {
|
|
213
|
+
return handleEditingChange(true);
|
|
214
|
+
},
|
|
215
|
+
children: editIcon !== null && editIcon !== void 0 ? editIcon : /*#__PURE__*/_jsx(EditOutlined, {})
|
|
216
|
+
})]
|
|
217
|
+
})
|
|
218
|
+
}));
|
|
219
|
+
};
|
|
220
|
+
EditableText.getEllipsisConfig = getEllipsisConfig;
|
|
221
|
+
export default EditableText;
|
|
222
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +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","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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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
declare const _default: (prefixCls: string, rootCls?: string | undefined) => readonly [(node: import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>) => import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>, string, string];
|
|
3
|
+
export default _default;
|
|
@@ -0,0 +1,76 @@
|
|
|
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
|
+
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; }
|
|
3
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
4
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
5
|
+
import { genStyleHooks } from 'antd/es/theme/internal';
|
|
6
|
+
var genStyle = function genStyle(token) {
|
|
7
|
+
var componentCls = token.componentCls,
|
|
8
|
+
antCls = token.antCls,
|
|
9
|
+
iconCls = token.iconCls;
|
|
10
|
+
return _defineProperty({}, componentCls, _defineProperty(_defineProperty({
|
|
11
|
+
width: '100%',
|
|
12
|
+
lineHeight: 1
|
|
13
|
+
}, "".concat(componentCls, "-view-mode"), _defineProperty(_defineProperty({
|
|
14
|
+
display: 'inline-flex',
|
|
15
|
+
width: 'auto',
|
|
16
|
+
maxWidth: '100%',
|
|
17
|
+
columnGap: 8,
|
|
18
|
+
'&-block': {
|
|
19
|
+
display: 'flex'
|
|
20
|
+
}
|
|
21
|
+
}, "".concat(componentCls, "-text-content"), {
|
|
22
|
+
flex: 'auto',
|
|
23
|
+
minWidth: 0
|
|
24
|
+
}), "".concat(componentCls, "-edit-icon"), {
|
|
25
|
+
display: 'inline-flex',
|
|
26
|
+
alignItems: 'center',
|
|
27
|
+
flex: 'none',
|
|
28
|
+
color: token.colorTextSecondary,
|
|
29
|
+
fontSize: token.fontSize,
|
|
30
|
+
// lineHeight: token.lineHeight,
|
|
31
|
+
// height: token.fontSize * token.lineHeight, // The height of the button should match the line height of the text, so that when the button is at the bottom, it aligns with the text baseline
|
|
32
|
+
cursor: 'pointer',
|
|
33
|
+
'&:hover': {
|
|
34
|
+
color: token.colorPrimary
|
|
35
|
+
}
|
|
36
|
+
})), "".concat(componentCls, "-edit-mode"), _defineProperty({
|
|
37
|
+
width: '100%'
|
|
38
|
+
}, "".concat(componentCls, "-form"), _defineProperty({
|
|
39
|
+
display: 'flex'
|
|
40
|
+
}, "".concat(antCls, "-form"), _defineProperty(_defineProperty({
|
|
41
|
+
display: 'flex',
|
|
42
|
+
flexWrap: 'nowrap',
|
|
43
|
+
width: '100%'
|
|
44
|
+
}, "".concat(antCls, "-form-item"), _defineProperty(_defineProperty(_defineProperty({}, "&".concat(antCls, "-form-item-block"), {
|
|
45
|
+
flex: 1
|
|
46
|
+
}), "input".concat(antCls, "-input"), {
|
|
47
|
+
minWidth: 100,
|
|
48
|
+
transition: 'all 0.2s, width 0s'
|
|
49
|
+
}), "textarea".concat(antCls, "-input"), {
|
|
50
|
+
minWidth: 100,
|
|
51
|
+
transition: 'all 0.2s, width 0s'
|
|
52
|
+
})), "".concat(componentCls, "-form-btns"), _defineProperty({
|
|
53
|
+
flex: 'none',
|
|
54
|
+
lineHeight: 0
|
|
55
|
+
}, "".concat(componentCls, "-form-btn"), _defineProperty(_defineProperty(_defineProperty({
|
|
56
|
+
width: 20,
|
|
57
|
+
height: 20,
|
|
58
|
+
padding: 0,
|
|
59
|
+
fontSize: 20,
|
|
60
|
+
lineHeight: 1
|
|
61
|
+
}, iconCls, {
|
|
62
|
+
fontSize: 20
|
|
63
|
+
}), "&".concat(componentCls, "-form-btn-save:not(:disabled)"), {
|
|
64
|
+
color: token.colorSuccess,
|
|
65
|
+
'&:hover': {
|
|
66
|
+
color: token.colorSuccessActive
|
|
67
|
+
}
|
|
68
|
+
}), "&".concat(componentCls, "-form-btn-close:not(:disabled)"), {
|
|
69
|
+
color: token.colorError,
|
|
70
|
+
'&:hover': {
|
|
71
|
+
color: token.colorErrorActive
|
|
72
|
+
}
|
|
73
|
+
})))))));
|
|
74
|
+
};
|
|
75
|
+
export default genStyleHooks('EasyEditableText', genStyle);
|
|
76
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["genStyleHooks","genStyle","token","componentCls","antCls","iconCls","_defineProperty","width","lineHeight","concat","display","maxWidth","columnGap","flex","minWidth","alignItems","color","colorTextSecondary","fontSize","cursor","colorPrimary","flexWrap","transition","height","padding","colorSuccess","colorSuccessActive","colorError","colorErrorActive"],"sources":["../../../../src/components/EditableText/style/index.ts"],"sourcesContent":["import { genStyleHooks } from 'antd/es/theme/internal';\nimport type { AliasToken, GenerateStyle } from 'antd/es/theme/internal';\nimport type { CSSObject } from '@ant-design/cssinjs';\nimport type { FullToken } from '@ant-design/cssinjs-utils';\n\ntype EditableTextToken = FullToken<{ ''?: object }, AliasToken, ''>;\n\nconst genStyle: GenerateStyle<EditableTextToken> = (token): CSSObject => {\n const { componentCls, antCls, iconCls } = token;\n return {\n [componentCls]: {\n width: '100%',\n lineHeight: 1,\n\n [`${componentCls}-view-mode`]: {\n display: 'inline-flex',\n width: 'auto',\n maxWidth: '100%',\n columnGap: 8,\n '&-block': {\n display: 'flex',\n },\n\n [`${componentCls}-text-content`]: {\n flex: 'auto',\n minWidth: 0,\n },\n\n [`${componentCls}-edit-icon`]: {\n display: 'inline-flex',\n alignItems: 'center',\n flex: 'none',\n color: token.colorTextSecondary,\n fontSize: token.fontSize,\n // lineHeight: token.lineHeight,\n // height: token.fontSize * token.lineHeight, // The height of the button should match the line height of the text, so that when the button is at the bottom, it aligns with the text baseline\n cursor: 'pointer',\n '&:hover': {\n color: token.colorPrimary,\n },\n },\n // '&.${componentCls}-has-children': {\n // '.edit-icon': {\n // lineHeight: 0,\n // height: 'auto', // When custom children are used, the height of the edit button should adapt automatically, rather than being set according to the Typography line height\n // },\n // },\n },\n\n [`${componentCls}-edit-mode`]: {\n width: '100%',\n\n [`${componentCls}-form`]: {\n display: 'flex',\n [`${antCls}-form`]: {\n display: 'flex',\n flexWrap: 'nowrap',\n width: '100%',\n\n [`${antCls}-form-item`]: {\n [`&${antCls}-form-item-block`]: {\n flex: 1,\n },\n [`input${antCls}-input`]: {\n minWidth: 100,\n transition: 'all 0.2s, width 0s',\n },\n [`textarea${antCls}-input`]: {\n minWidth: 100,\n transition: 'all 0.2s, width 0s',\n },\n },\n [`${componentCls}-form-btns`]: {\n flex: 'none',\n lineHeight: 0,\n\n [`${componentCls}-form-btn`]: {\n width: 20,\n height: 20,\n padding: 0,\n fontSize: 20,\n lineHeight: 1,\n\n [iconCls]: {\n fontSize: 20,\n },\n\n [`&${componentCls}-form-btn-save:not(:disabled)`]: {\n color: token.colorSuccess,\n\n '&:hover': {\n color: token.colorSuccessActive,\n },\n },\n\n [`&${componentCls}-form-btn-close:not(:disabled)`]: {\n color: token.colorError,\n\n '&:hover': {\n color: token.colorErrorActive,\n },\n },\n },\n },\n },\n },\n },\n },\n };\n};\n\nexport default genStyleHooks('EasyEditableText' as never, genStyle);\n"],"mappings":";;;;AAAA,SAASA,aAAa,QAAQ,wBAAwB;AAOtD,IAAMC,QAA0C,GAAG,SAA7CA,QAA0CA,CAAIC,KAAK,EAAgB;EACvE,IAAQC,YAAY,GAAsBD,KAAK,CAAvCC,YAAY;IAAEC,MAAM,GAAcF,KAAK,CAAzBE,MAAM;IAAEC,OAAO,GAAKH,KAAK,CAAjBG,OAAO;EACrC,OAAAC,eAAA,KACGH,YAAY,EAAAG,eAAA,CAAAA,eAAA;IACXC,KAAK,EAAE,MAAM;IACbC,UAAU,EAAE;EAAC,MAAAC,MAAA,CAETN,YAAY,iBAAAG,eAAA,CAAAA,eAAA;IACdI,OAAO,EAAE,aAAa;IACtBH,KAAK,EAAE,MAAM;IACbI,QAAQ,EAAE,MAAM;IAChBC,SAAS,EAAE,CAAC;IACZ,SAAS,EAAE;MACTF,OAAO,EAAE;IACX;EAAC,MAAAD,MAAA,CAEGN,YAAY,oBAAkB;IAChCU,IAAI,EAAE,MAAM;IACZC,QAAQ,EAAE;EACZ,CAAC,MAAAL,MAAA,CAEGN,YAAY,iBAAe;IAC7BO,OAAO,EAAE,aAAa;IACtBK,UAAU,EAAE,QAAQ;IACpBF,IAAI,EAAE,MAAM;IACZG,KAAK,EAAEd,KAAK,CAACe,kBAAkB;IAC/BC,QAAQ,EAAEhB,KAAK,CAACgB,QAAQ;IACxB;IACA;IACAC,MAAM,EAAE,SAAS;IACjB,SAAS,EAAE;MACTH,KAAK,EAAEd,KAAK,CAACkB;IACf;EACF,CAAC,OAAAX,MAAA,CASCN,YAAY,iBAAAG,eAAA;IACdC,KAAK,EAAE;EAAM,MAAAE,MAAA,CAETN,YAAY,YAAAG,eAAA;IACdI,OAAO,EAAE;EAAM,MAAAD,MAAA,CACXL,MAAM,YAAAE,eAAA,CAAAA,eAAA;IACRI,OAAO,EAAE,MAAM;IACfW,QAAQ,EAAE,QAAQ;IAClBd,KAAK,EAAE;EAAM,MAAAE,MAAA,CAETL,MAAM,iBAAAE,eAAA,CAAAA,eAAA,CAAAA,eAAA,SAAAG,MAAA,CACHL,MAAM,uBAAqB;IAC9BS,IAAI,EAAE;EACR,CAAC,WAAAJ,MAAA,CACQL,MAAM,aAAW;IACxBU,QAAQ,EAAE,GAAG;IACbQ,UAAU,EAAE;EACd,CAAC,cAAAb,MAAA,CACWL,MAAM,aAAW;IAC3BU,QAAQ,EAAE,GAAG;IACbQ,UAAU,EAAE;EACd,CAAC,OAAAb,MAAA,CAECN,YAAY,iBAAAG,eAAA;IACdO,IAAI,EAAE,MAAM;IACZL,UAAU,EAAE;EAAC,MAAAC,MAAA,CAETN,YAAY,gBAAAG,eAAA,CAAAA,eAAA,CAAAA,eAAA;IACdC,KAAK,EAAE,EAAE;IACTgB,MAAM,EAAE,EAAE;IACVC,OAAO,EAAE,CAAC;IACVN,QAAQ,EAAE,EAAE;IACZV,UAAU,EAAE;EAAC,GAEZH,OAAO,EAAG;IACTa,QAAQ,EAAE;EACZ,CAAC,OAAAT,MAAA,CAEIN,YAAY,oCAAkC;IACjDa,KAAK,EAAEd,KAAK,CAACuB,YAAY;IAEzB,SAAS,EAAE;MACTT,KAAK,EAAEd,KAAK,CAACwB;IACf;EACF,CAAC,OAAAjB,MAAA,CAEIN,YAAY,qCAAmC;IAClDa,KAAK,EAAEd,KAAK,CAACyB,UAAU;IAEvB,SAAS,EAAE;MACTX,KAAK,EAAEd,KAAK,CAAC0B;IACf;EACF,CAAC;AAQjB,CAAC;AAED,eAAe5B,aAAa,CAAC,kBAAkB,EAAWC,QAAQ,CAAC"}
|