tntd 2.7.15 → 2.7.17

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.
Files changed (60) hide show
  1. package/es/handle/handle.js +102 -0
  2. package/es/handle/handle.js.map +1 -0
  3. package/es/mention/index.js +4 -0
  4. package/es/mention/index.js.map +1 -0
  5. package/es/modal/modal.js +6 -6
  6. package/es/modal/modal.js.map +1 -1
  7. package/es/steps/style/nav.less +1 -1
  8. package/es/table/table.js +31 -11
  9. package/es/table/table.js.map +1 -1
  10. package/es/tabs/tabs.js +3 -29
  11. package/es/tabs/tabs.js.map +1 -1
  12. package/es/tntd-form/TntdForm/components/Item.js +55 -0
  13. package/es/tntd-form/TntdForm/components/Item.js.map +1 -0
  14. package/es/tntd-form/TntdForm/components/ItemComp.js +186 -0
  15. package/es/tntd-form/TntdForm/components/ItemComp.js.map +1 -0
  16. package/es/tntd-form/TntdForm/components/List.js +102 -0
  17. package/es/tntd-form/TntdForm/components/List.js.map +1 -0
  18. package/es/tntd-form/TntdForm/index.js +55 -0
  19. package/es/tntd-form/TntdForm/index.js.map +1 -0
  20. package/es/tntd-form/TntdForm/interface.js +1 -0
  21. package/es/tntd-form/TntdForm/interface.js.map +1 -0
  22. package/es/tntd-form/TntdForm/store.js +2 -0
  23. package/es/tntd-form/TntdForm/store.js.map +1 -0
  24. package/es/tntd-form/TntdForm/utils.js +219 -0
  25. package/es/tntd-form/TntdForm/utils.js.map +1 -0
  26. package/es/utils/index.js +3 -3
  27. package/es/utils/index.js.map +1 -1
  28. package/es/utils/lang.js +1 -0
  29. package/es/utils/lang.js.map +1 -1
  30. package/lib/handle/handle.d.ts +3 -0
  31. package/lib/handle/handle.d.ts.map +1 -0
  32. package/lib/handle/handle.js +130 -0
  33. package/lib/handle/handle.js.map +1 -0
  34. package/lib/mention/index.js +25 -0
  35. package/lib/modal/modal.d.ts +11 -10
  36. package/lib/modal/modal.d.ts.map +1 -1
  37. package/lib/modal/modal.js +25 -14
  38. package/lib/modal/modal.js.map +1 -1
  39. package/lib/steps/style/nav.less +1 -1
  40. package/lib/table/table.d.ts +1 -1
  41. package/lib/table/table.d.ts.map +1 -1
  42. package/lib/table/table.js +31 -11
  43. package/lib/table/table.js.map +1 -1
  44. package/lib/tabs/tabs.d.ts.map +1 -1
  45. package/lib/tabs/tabs.js +3 -29
  46. package/lib/tabs/tabs.js.map +1 -1
  47. package/lib/tntd-form/TntdForm/components/Item.js +65 -0
  48. package/lib/tntd-form/TntdForm/components/ItemComp.js +215 -0
  49. package/lib/tntd-form/TntdForm/components/List.js +123 -0
  50. package/lib/tntd-form/TntdForm/index.js +72 -0
  51. package/lib/tntd-form/TntdForm/interface.js +5 -0
  52. package/lib/tntd-form/TntdForm/store.js +10 -0
  53. package/lib/tntd-form/TntdForm/utils.js +239 -0
  54. package/lib/utils/index.d.ts.map +1 -1
  55. package/lib/utils/index.js +3 -3
  56. package/lib/utils/index.js.map +1 -1
  57. package/lib/utils/lang.d.ts.map +1 -1
  58. package/lib/utils/lang.js +5 -1
  59. package/lib/utils/lang.js.map +1 -1
  60. package/package.json +1 -1
@@ -0,0 +1,102 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import React, { Fragment, useEffect, useState } from 'react';
13
+ import Icon from '../tntd-icon';
14
+ import Divider from '../divider';
15
+ import Dropdown from '../dropdown';
16
+ import Menu from '../menu';
17
+ const clsPrefix = 'tntd-more-menus';
18
+ export default (props) => {
19
+ const _a = props || {}, { children = [], type, num = 3, lang, divider = true, lessOneMoreFit, popConfirmHandle, isIconBtn, stopPropagation = true, localeCode, locale } = _a, rest = __rest(_a, ["children", "type", "num", "lang", "divider", "lessOneMoreFit", "popConfirmHandle", "isIconBtn", "stopPropagation", "localeCode", "locale"]);
20
+ // 非中文
21
+ let isCn = lang === 'cn';
22
+ if (!lang) {
23
+ isCn = localeCode === 'zh-cn';
24
+ }
25
+ const [newChildren, setNewChildren] = useState([]);
26
+ const [specialSceneDefaultShow, setSpecialSceneDefaultShow] = useState();
27
+ useEffect(() => {
28
+ var _a;
29
+ if (children) {
30
+ let curChildren = [];
31
+ if (Array.isArray(children)) {
32
+ curChildren = ((_a = [...children || []]) === null || _a === void 0 ? void 0 : _a.filter((item) => !!item)) || [];
33
+ }
34
+ else if (children) {
35
+ curChildren.push(children);
36
+ }
37
+ // 子元素大于1个,且不是 icon元素
38
+ const specialSceneDefaultShow = (curChildren === null || curChildren === void 0 ? void 0 : curChildren.length) > 1 && !isIconBtn;
39
+ if (specialSceneDefaultShow && (!isCn || popConfirmHandle)) {
40
+ curChildren === null || curChildren === void 0 ? void 0 : curChildren.forEach((v, i) => {
41
+ const { type, props } = v;
42
+ if ((type === null || type === void 0 ? void 0 : type.name) === 'Popconfirm' ||
43
+ (props.hasOwnProperty('onConfirm') && typeof (props === null || props === void 0 ? void 0 : props.onConfirm) === 'function')) {
44
+ let placement = {};
45
+ if (!isCn ||
46
+ (num &&
47
+ !isNaN(num) &&
48
+ i + 1 > num &&
49
+ !(lessOneMoreFit && curChildren.length - num === 1))) {
50
+ placement = {
51
+ placement: 'left',
52
+ };
53
+ }
54
+ curChildren[i] = React.cloneElement(v, Object.assign(Object.assign(Object.assign(Object.assign({ overlayStyle: { width: 180 } }, ((v === null || v === void 0 ? void 0 : v.props) || {})), { onClick: (e) => e.stopPropagation() }), placement), { trigger: 'hover', getPopupContainer: (trigger) => trigger.parentNode }));
55
+ }
56
+ });
57
+ }
58
+ setNewChildren(curChildren);
59
+ setSpecialSceneDefaultShow(specialSceneDefaultShow);
60
+ }
61
+ }, [children, isCn, isIconBtn, lessOneMoreFit, num, popConfirmHandle]);
62
+ let [preChildPart, lastChildPart] = [newChildren, null];
63
+ // 只有1个时不适配
64
+ if (lessOneMoreFit && newChildren.length - num === 1) {
65
+ preChildPart = newChildren;
66
+ }
67
+ else if (newChildren && num && !isNaN(num) && newChildren.length > num) {
68
+ preChildPart = newChildren.slice(0, num);
69
+ lastChildPart = newChildren.slice(num);
70
+ }
71
+ if (divider && preChildPart) {
72
+ const preChildLen = preChildPart.length;
73
+ preChildPart = preChildPart.map((dom, i) => (React.createElement(Fragment, { key: i },
74
+ dom,
75
+ !((i === preChildLen - 1 && !(lastChildPart === null || lastChildPart === void 0 ? void 0 : lastChildPart.length)) // 没有更多 且 是最后一个时 不显示 Divider
76
+ ) && React.createElement(Divider, { type: "vertical" }))));
77
+ }
78
+ const menu = (childArr) => (React.createElement(Menu, { className: "org-pop-opera-btn" }, childArr === null || childArr === void 0 ? void 0 : childArr.map((child, i) => (React.createElement(Menu.Item, { key: i }, child)))));
79
+ if (!isCn && specialSceneDefaultShow) {
80
+ return (React.createElement(Dropdown, { overlay: menu(newChildren || []), arrow: true, onClick: (e) => {
81
+ if (stopPropagation) {
82
+ e.stopPropagation();
83
+ }
84
+ } }, type === 'icon' ?
85
+ React.createElement(Icon, { type: "more" }) :
86
+ React.createElement("a", { className: "ant-dropdown-more" }, locale === null || locale === void 0 ? void 0 :
87
+ locale.more,
88
+ React.createElement("i", { className: `${clsPrefix}-dropdown-icon` },
89
+ React.createElement(Icon, { type: "down" })))));
90
+ }
91
+ return (React.createElement("div", Object.assign({ onClick: (e) => {
92
+ if (stopPropagation) {
93
+ e.stopPropagation();
94
+ }
95
+ } }, rest),
96
+ preChildPart,
97
+ !!(lastChildPart === null || lastChildPart === void 0 ? void 0 : lastChildPart.length) && (React.createElement(Dropdown, { overlay: menu(lastChildPart || []), arrow: true }, type === 'icon' ? (React.createElement(Icon, { type: "more" })) : (React.createElement("a", { className: "ant-dropdown-more" }, locale === null || locale === void 0 ? void 0 :
98
+ locale.more,
99
+ React.createElement("i", { className: `${clsPrefix}-dropdown-icon` },
100
+ React.createElement(Icon, { type: "down" }))))))));
101
+ };
102
+ //# sourceMappingURL=handle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handle.js","sourceRoot":"","sources":["../../src/handle/handle.js"],"names":[],"mappings":"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","sourcesContent":["import React, { Fragment, useEffect, useState } from 'react'\nimport Icon from '../tntd-icon'\nimport Divider from '../divider'\nimport Dropdown from '../dropdown'\nimport Menu from '../menu'\nconst clsPrefix = 'tntd-more-menus'\nexport default (props)=>{\n const {\n children = [],\n type,\n num = 3,\n lang,\n divider = true,\n lessOneMoreFit,\n popConfirmHandle,\n isIconBtn,\n stopPropagation=true,\n localeCode,\n locale,\n ...rest\n } = props || {}\n\n // 非中文\n let isCn = lang === 'cn'\n if (!lang) {\n isCn = localeCode === 'zh-cn'\n }\n\n const [newChildren, setNewChildren] = useState([]);\n const [specialSceneDefaultShow,setSpecialSceneDefaultShow] = useState()\n\n useEffect(()=>{\n if(children){\n let curChildren = []\n if (Array.isArray(children)) {\n curChildren = [...children||[]]?.filter((item) => !!item) || []\n } else if (children) {\n curChildren.push(children)\n }\n // 子元素大于1个,且不是 icon元素\n const specialSceneDefaultShow = curChildren?.length > 1 && !isIconBtn\n\n if (specialSceneDefaultShow && (!isCn || popConfirmHandle)) {\n curChildren?.forEach((v, i) => {\n const { type, props } = v\n if (\n type?.name === 'Popconfirm' ||\n (props.hasOwnProperty('onConfirm') && typeof props?.onConfirm === 'function')\n ) {\n let placement = {}\n if (\n !isCn ||\n (num &&\n !isNaN(num) &&\n i + 1 > num &&\n !(lessOneMoreFit && curChildren.length - num === 1))\n ) {\n placement = {\n placement: 'left',\n }\n }\n curChildren[i] = React.cloneElement(v, {\n overlayStyle: { width: 180 },\n ...(v?.props || {}),\n onClick: (e) => e.stopPropagation(),\n ...placement,\n trigger: 'hover',\n getPopupContainer: (trigger) => trigger.parentNode,\n })\n }\n })\n }\n\n setNewChildren(curChildren)\n setSpecialSceneDefaultShow(specialSceneDefaultShow);\n }\n },[children, isCn, isIconBtn, lessOneMoreFit, num, popConfirmHandle])\n\n\n let [preChildPart, lastChildPart] = [newChildren, null]\n\n // 只有1个时不适配\n if (lessOneMoreFit && newChildren.length - num === 1) {\n preChildPart = newChildren\n } else if (newChildren && num && !isNaN(num) && newChildren.length > num) {\n preChildPart = newChildren.slice(0, num)\n lastChildPart = newChildren.slice(num)\n }\n\n if (divider && preChildPart) {\n const preChildLen = preChildPart.length\n preChildPart = preChildPart.map((dom, i) => (\n <Fragment key={i}>\n {dom}\n {!(\n (i === preChildLen - 1 && !lastChildPart?.length) // 没有更多 且 是最后一个时 不显示 Divider\n ) && <Divider type=\"vertical\" />}\n </Fragment>\n ))\n }\n const menu = (childArr)=>(\n <Menu className=\"org-pop-opera-btn\">\n {\n childArr?.map(\n (child,i) => (\n <Menu.Item key={i}>\n {child}\n </Menu.Item>\n )\n )\n }\n </Menu>\n );\n\n\n if(!isCn && specialSceneDefaultShow ){\n return (\n <Dropdown overlay={menu(newChildren||[])} arrow onClick={(e)=>{\n if(stopPropagation){\n e.stopPropagation()\n }\n }}>\n {\n type === 'icon' ?\n <Icon type=\"more\" /> :\n <a className=\"ant-dropdown-more\">\n {locale?.more}\n <i className={`${clsPrefix}-dropdown-icon`}>\n <Icon type=\"down\" />\n </i>\n </a>\n }\n </Dropdown>\n );\n }\n\n return (\n <div\n onClick={(e) => {\n if(stopPropagation){\n e.stopPropagation()\n }\n }}\n {...rest}\n >\n {preChildPart}\n {!!lastChildPart?.length && (\n <Dropdown overlay={menu(lastChildPart || [])} arrow>\n {type === 'icon' ? (\n <Icon type=\"more\" />\n ) : (\n <a className=\"ant-dropdown-more\">\n {locale?.more}\n <i className={`${clsPrefix}-dropdown-icon`}>\n <Icon type=\"down\" />\n </i>\n </a>\n )}\n </Dropdown>\n )}\n </div>\n )\n}"]}
@@ -0,0 +1,4 @@
1
+ import Mention from 'antd/es/mention';
2
+ import 'antd/es/mention/style';
3
+ export * from 'antd/es/mention';
4
+ export default Mention;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mention/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,iBAAiB,CAAA;AAErC,OAAO,uBAAuB,CAAA;AAE9B,cAAc,iBAAiB,CAAA;AAE/B,eAAe,OAAO,CAAA","sourcesContent":["import Mention from 'antd/es/mention'\n\nimport 'antd/es/mention/style'\n\nexport * from 'antd/es/mention'\n\nexport default Mention\n"]}
package/es/modal/modal.js CHANGED
@@ -17,20 +17,20 @@ var __rest = (this && this.__rest) || function (s, e) {
17
17
  * @FilePath: /tntd/packages/tntd/src/modal/modal.tsx
18
18
  * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
19
19
  */
20
- import React from 'react';
20
+ import React, { forwardRef } from 'react';
21
21
  import 'antd/es/locale-provider/LocaleReceiver';
22
22
  import classNames from 'classnames';
23
23
  import { ConfigConsumer } from 'antd/es/config-provider';
24
24
  import { default as AntdModal } from 'antd/es/modal';
25
+ import { doUpperTitle } from '../utils';
25
26
  export * from 'antd/es/modal';
26
27
  export {} from 'antd/es/modal';
27
- export function Modal(_a) {
28
- var { className } = _a, rest = __rest(_a, ["className"]);
28
+ export const Modal = forwardRef((_a, ref) => {
29
+ var { title, className } = _a, rest = __rest(_a, ["title", "className"]);
29
30
  return (React.createElement(ConfigConsumer, null, ({ getPrefixCls }) => {
30
- const prefixCls = getPrefixCls('modal');
31
- return React.createElement(AntdModal, Object.assign({ className: classNames(prefixCls, 'tntd-modal', className) }, rest));
31
+ return (React.createElement(AntdModal, Object.assign({ className: classNames('tntd-modal', className) }, rest, { title: doUpperTitle(title), ref: ref })));
32
32
  }));
33
- }
33
+ });
34
34
  Modal.info = AntdModal.info;
35
35
  Modal.success = AntdModal.success;
36
36
  Modal.error = AntdModal.error;
@@ -1 +1 @@
1
- {"version":3,"file":"modal.js","sourceRoot":"","sources":["../../src/modal/modal.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAA2B,wCAAwC,CAAA;AAEnE,OAAO,UAAU,MAAM,YAAY,CAAA;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAExD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,eAAe,CAAA;AAEpD,cAAc,eAAe,CAAA;AAC7B,OAAO,EAAiD,MAAM,eAAe,CAAA;AAE7E,MAAM,UAAU,KAAK,CAAC,EAAsC;QAAtC,EAAE,SAAS,OAA2B,EAAtB,IAAI,cAApB,aAAsB,CAAF;IACxC,OAAO,CACL,oBAAC,cAAc,QACZ,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE;QACpB,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;QACvC,OAAO,oBAAC,SAAS,kBAAC,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,YAAY,EAAE,SAAS,CAAC,IAAM,IAAI,EAAI,CAAA;IAC3F,CAAC,CACc,CAClB,CAAA;AACH,CAAC;AAED,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAA;AAC3B,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAA;AACjC,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAA;AAC7B,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAA;AACjC,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAA;AAC3B,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAA;AACjC,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC,UAAU,CAAA","sourcesContent":["/*\n * @Author: 周泽飞 zefei.zhou@tongdun.net\n * @Date: 2023-03-08 17:45:01\n * @LastEditors: 周泽飞 zefei.zhou@tongdun.net\n * @LastEditTime: 2023-03-08 19:01:48\n * @FilePath: /tntd/packages/tntd/src/modal/modal.tsx\n * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE\n */\nimport React from 'react'\nimport LocaleReceiver from 'antd/es/locale-provider/LocaleReceiver'\nimport type { ModalProps as AntdModalProps } from 'antd/es/modal'\nimport classNames from 'classnames'\nimport { ConfigConsumer } from 'antd/es/config-provider'\n\nimport { default as AntdModal } from 'antd/es/modal'\n\nexport * from 'antd/es/modal'\nexport { ActionButtonProps, ModalProps, ModalFuncProps } from 'antd/es/modal'\n\nexport function Modal({ className, ...rest }: AntdModalProps): JSX.Element {\n return (\n <ConfigConsumer>\n {({ getPrefixCls }) => {\n const prefixCls = getPrefixCls('modal')\n return <AntdModal className={classNames(prefixCls, 'tntd-modal', className)} {...rest} />\n }}\n </ConfigConsumer>\n )\n}\n\nModal.info = AntdModal.info\nModal.success = AntdModal.success\nModal.error = AntdModal.error\nModal.warning = AntdModal.warning\nModal.warn = AntdModal.warn\nModal.confirm = AntdModal.confirm\nModal.destroyAll = AntdModal.destroyAll\n"]}
1
+ {"version":3,"file":"modal.js","sourceRoot":"","sources":["../../src/modal/modal.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AACzC,OAA2B,wCAAwC,CAAA;AAEnE,OAAO,UAAU,MAAM,YAAY,CAAA;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAExD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAEvC,cAAc,eAAe,CAAA;AAC7B,OAAO,EAAiD,MAAM,eAAe,CAAA;AAa7E,MAAM,CAAC,MAAM,KAAK,GAAG,UAAU,CAA4B,CAAC,EAA6B,EAAE,GAAG,EAAE,EAAE;QAAtC,EAAE,KAAK,EAAE,SAAS,OAAW,EAAN,IAAI,cAA3B,sBAA6B,CAAF;IACrF,OAAO,CACL,oBAAC,cAAc,QACZ,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE;QACpB,OAAO,CACL,oBAAC,SAAS,kBACR,SAAS,EAAE,UAAU,CAAC,YAAY,EAAE,SAAS,CAAC,IAC1C,IAAI,IACR,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,EAC1B,GAAG,EAAE,GAAG,IACR,CACH,CAAA;IACH,CAAC,CACc,CAClB,CAAA;AACH,CAAC,CAAmB,CAAA;AAEpB,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAA;AAC3B,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAA;AACjC,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAA;AAC7B,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAA;AACjC,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAA;AAC3B,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAA;AACjC,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC,UAAU,CAAA","sourcesContent":["/*\n * @Author: 周泽飞 zefei.zhou@tongdun.net\n * @Date: 2023-03-08 17:45:01\n * @LastEditors: 周泽飞 zefei.zhou@tongdun.net\n * @LastEditTime: 2023-03-08 19:01:48\n * @FilePath: /tntd/packages/tntd/src/modal/modal.tsx\n * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE\n */\nimport React, { forwardRef } from 'react'\nimport LocaleReceiver from 'antd/es/locale-provider/LocaleReceiver'\nimport type { ModalProps as AntdModalProps } from 'antd/es/modal'\nimport classNames from 'classnames'\nimport { ConfigConsumer } from 'antd/es/config-provider'\n\nimport { default as AntdModal } from 'antd/es/modal'\nimport { doUpperTitle } from '../utils'\n\nexport * from 'antd/es/modal'\nexport { ActionButtonProps, ModalProps, ModalFuncProps } from 'antd/es/modal'\n\ninterface ModalComponent\n extends React.ForwardRefExoticComponent<AntdModalProps & React.RefAttributes<AntdModal>> {\n info: typeof AntdModal.info\n success: typeof AntdModal.success\n error: typeof AntdModal.error\n warning: typeof AntdModal.warning\n warn: typeof AntdModal.warn\n confirm: typeof AntdModal.confirm\n destroyAll: typeof AntdModal.destroyAll\n}\n\nexport const Modal = forwardRef<AntdModal, AntdModalProps>(({ title, className, ...rest }, ref) => {\n return (\n <ConfigConsumer>\n {({ getPrefixCls }) => {\n return (\n <AntdModal\n className={classNames('tntd-modal', className)}\n {...rest}\n title={doUpperTitle(title)}\n ref={ref}\n />\n )\n }}\n </ConfigConsumer>\n )\n}) as ModalComponent\n\nModal.info = AntdModal.info\nModal.success = AntdModal.success\nModal.error = AntdModal.error\nModal.warning = AntdModal.warning\nModal.warn = AntdModal.warn\nModal.confirm = AntdModal.confirm\nModal.destroyAll = AntdModal.destroyAll\n"]}
@@ -68,7 +68,7 @@
68
68
  overflow: hidden;
69
69
  white-space: nowrap;
70
70
  text-overflow: ellipsis;
71
- line-height: 14px;
71
+ line-height: 1.5;
72
72
  font-size: 14px;
73
73
  font-weight: normal;
74
74
  color:@text-color;
package/es/table/table.js CHANGED
@@ -32,7 +32,11 @@ const sizeWidthMap = {
32
32
  const getDefaultPagination = (locale) => ({
33
33
  showTotal: (total) => React.createElement(TotalShower, { total: total, locale: locale }),
34
34
  });
35
- const titleHandle = (str, upperCaseIgnore) => {
35
+ const titleHandle = (str, upperCaseIgnore, isPrompt) => {
36
+ if (isPrompt) {
37
+ const lowerCaseWord = str.toLowerCase();
38
+ return lowerCaseWord.charAt(0).toUpperCase() + lowerCaseWord.slice(1);
39
+ }
36
40
  const words = str.split(' ');
37
41
  const capitalizedWords = words.map((word, i) => {
38
42
  const lowerCaseWord = word.toLowerCase();
@@ -51,7 +55,7 @@ const titleHandle = (str, upperCaseIgnore) => {
51
55
  return capitalizedWords.join(' ');
52
56
  };
53
57
  // 表头转换为首字母大写
54
- const titleCaseUpper = (str, upperCaseIgnore) => {
58
+ const titleCaseUpper = (str, upperCaseIgnore, isPrompt) => {
55
59
  if (!str) {
56
60
  return str;
57
61
  }
@@ -61,14 +65,28 @@ const titleCaseUpper = (str, upperCaseIgnore) => {
61
65
  const parWords = str.split('/');
62
66
  return parWords
63
67
  .map((str1) => {
64
- return titleHandle(str1, upperCaseIgnore);
68
+ return titleHandle(str1, upperCaseIgnore, isPrompt);
65
69
  })
66
70
  .join('/');
67
71
  }
68
- return titleHandle(str, upperCaseIgnore);
72
+ return titleHandle(str, upperCaseIgnore, isPrompt);
69
73
  }
70
74
  return str;
71
75
  };
76
+ // 判断是否是特殊的tooltip
77
+ const checkIsPrompt = (dom) => {
78
+ var _a;
79
+ console.log('dom', dom);
80
+ let isPrompt = false;
81
+ if (React.isValidElement(dom)) {
82
+ if ((dom === null || dom === void 0 ? void 0 : dom.type) && typeof (dom === null || dom === void 0 ? void 0 : dom.type) === 'function') {
83
+ if (['Tooltip', 'Popconfirm'].includes((_a = dom === null || dom === void 0 ? void 0 : dom.type) === null || _a === void 0 ? void 0 : _a.name)) {
84
+ isPrompt = true;
85
+ }
86
+ }
87
+ }
88
+ return isPrompt;
89
+ };
72
90
  export const Table = (_a) => {
73
91
  var { className, locale, bordered, size, storageKey, columns, children, shadowed = !bordered, striped = false, showCellBorders = false,
74
92
  // pagination,
@@ -86,32 +104,34 @@ export const Table = (_a) => {
86
104
  if (lang !== 'cn') {
87
105
  newColumns = displayColumns === null || displayColumns === void 0 ? void 0 : displayColumns.map((column) => {
88
106
  return Object.assign(Object.assign({}, column), { title: (options) => {
107
+ var _a;
89
108
  let title = column.title;
90
109
  if (typeof title === 'function') {
91
110
  title = title(options);
92
111
  }
93
112
  if (React.isValidElement(title)) {
94
- const renderChildren = (children) => {
113
+ const renderChildren = (children, isPrompt) => {
95
114
  if (React.isValidElement(children) || Array.isArray(children)) {
96
115
  return React.Children.map(children, (child) => {
97
116
  var _a;
98
117
  if (React.isValidElement(child)) {
99
118
  const childProps = (child.props || {});
100
119
  return React.cloneElement(child, Object.assign(Object.assign({}, childProps), { children: ((_a = childProps.children) === null || _a === void 0 ? void 0 : _a.length)
101
- ? renderChildren(childProps.children)
102
- : childProps.children, title: titleCaseUpper(childProps === null || childProps === void 0 ? void 0 : childProps.title, upperCaseIgnore) }));
120
+ ? renderChildren(childProps.children, checkIsPrompt(child))
121
+ : childProps.children, title: titleCaseUpper(childProps === null || childProps === void 0 ? void 0 : childProps.title, upperCaseIgnore, isPrompt) }));
103
122
  }
104
123
  else {
105
- return titleCaseUpper(child, upperCaseIgnore);
124
+ return titleCaseUpper(child, upperCaseIgnore, isPrompt);
106
125
  }
107
126
  });
108
127
  }
109
- return titleCaseUpper(children, upperCaseIgnore);
128
+ return titleCaseUpper(children, upperCaseIgnore, isPrompt);
110
129
  };
111
- return renderChildren(title.props.children);
130
+ const parentPrompt = checkIsPrompt(title);
131
+ return Object.assign(Object.assign({}, title), { props: Object.assign(Object.assign({}, ((title === null || title === void 0 ? void 0 : title.props) || {})), { title: titleCaseUpper((_a = title === null || title === void 0 ? void 0 : title.props) === null || _a === void 0 ? void 0 : _a.title, upperCaseIgnore, parentPrompt), children: renderChildren(title.props.children, parentPrompt) }) });
112
132
  }
113
133
  if (typeof title === 'string') {
114
- return titleCaseUpper(title, upperCaseIgnore);
134
+ return titleCaseUpper(title, upperCaseIgnore, false);
115
135
  }
116
136
  } });
117
137
  });
@@ -1 +1 @@
1
- {"version":3,"file":"table.js","sourceRoot":"","sources":["../../src/table/table.tsx"],"names":[],"mappings":"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","sourcesContent":["import { ConfigConsumer } from 'antd/es/config-provider'\nimport LocaleReceiver from 'antd/es/locale-provider/LocaleReceiver'\nimport type {\n TableProps as AntdTableProps,\n ColumnProps,\n TableStateFilters,\n SortOrder,\n} from 'antd/es/table'\nimport { default as AntdTable } from 'antd/es/table'\nimport Column from 'antd/es/table/Column'\nimport ColumnGroup from 'antd/es/table/ColumnGroup'\nimport classNames from 'classnames'\nimport React, { useMemo, useRef } from 'react'\nimport Ellipsis from '../ellipsis'\nimport { TableContext } from './context'\nimport { useColumnSetting } from './hooks'\nimport { normalizeColumns } from './utils'\nimport { TotalShower } from './total-shower'\nimport { getLanguage } from '../prev-locale'\nimport { articles, prepositions } from './constants'\n\nconst sizeWidthMap = {\n default: 40, //20\n middle: 20, //10\n small: 20, //10\n xs: 16, // 8\n}\n\nexport type TableProps<T> = Omit<AntdTableProps<T>, 'locale'> & {\n storageKey?: string\n enableToolbar?: boolean\n showCellBorders?: boolean\n striped?: boolean\n shadowed?: boolean\n locale?: AntdTableProps<T>['locale'] & {\n loadingDescription?: string\n emptyText?: string\n }\n refresh?(): void\n upperCaseIgnore?: string[]\n}\n\nconst getDefaultPagination = (locale: NonNullable<AntdTableProps<unknown>['locale']>) => ({\n showTotal: (total: number) => <TotalShower total={total} locale={locale} />,\n})\n\nconst titleHandle = (str: string, upperCaseIgnore: string[] | undefined): string => {\n const words: string[] = str.split(' ')\n const capitalizedWords: string[] = words.map((word: string, i: number) => {\n const lowerCaseWord: string = word.toLowerCase()\n let ignoreList = prepositions.concat(articles)\n if (upperCaseIgnore?.length) {\n ignoreList = ignoreList.concat(upperCaseIgnore)\n ignoreList = Array.from(new Set(ignoreList))\n }\n if (ignoreList.includes(lowerCaseWord) && i !== 0) {\n return lowerCaseWord\n } else {\n return word.charAt(0).toUpperCase() + word.slice(1)\n }\n })\n return capitalizedWords.join(' ')\n}\n\n// 表头转换为首字母大写\nconst titleCaseUpper = (str: string, upperCaseIgnore: string[] | undefined) => {\n if (!str) {\n return str\n }\n if (typeof str === 'string') {\n // 有斜杠根据斜杠划分\n if (str?.includes('/')) {\n const parWords: string[] = str.split('/')\n return parWords\n .map((str1) => {\n return titleHandle(str1, upperCaseIgnore)\n })\n .join('/')\n }\n return titleHandle(str, upperCaseIgnore)\n }\n return str\n}\n\nexport const Table = <T,>({\n className,\n locale,\n bordered,\n size,\n storageKey,\n columns,\n children,\n shadowed = !bordered,\n striped = false,\n showCellBorders = false,\n // pagination,\n enableToolbar = false,\n refresh,\n upperCaseIgnore,\n ...rest\n}: TableProps<T>) => {\n const tableContainer = useRef<HTMLDivElement>(null)\n // const [innerSize, setInnerSize] = useLocalStorage<TableProps<T>['size']>(\n // TABLE_SIZE_STORAGE_KEY,\n // 'default'\n // )\n const normalizedColumns = useMemo(\n () => columns || normalizeColumns<T>(children as React.ReactChildren),\n [children, columns]\n )\n const [displayColumns, columnSetting, setColumnSetting] = useColumnSetting(\n normalizedColumns,\n storageKey\n )\n\n const lang = getLanguage()\n let newColumns = displayColumns\n // 非中文做处理\n if (lang !== 'cn') {\n newColumns = displayColumns?.map((column) => {\n return {\n ...column,\n title: (options: {\n filters: TableStateFilters\n sortOrder?: SortOrder\n sortColumn?: ColumnProps<T> | null\n }) => {\n let title = column.title\n if (typeof title === 'function') {\n title = title(options)\n }\n if (React.isValidElement(title)) {\n const renderChildren = (children: [] | string): React.ReactNode => {\n if (React.isValidElement(children) || Array.isArray(children)) {\n return React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n const childProps = (child.props || {}) as any\n return React.cloneElement(child, {\n ...childProps,\n children: childProps.children?.length\n ? renderChildren(childProps.children)\n : childProps.children,\n title: titleCaseUpper(childProps?.title, upperCaseIgnore),\n })\n } else {\n return titleCaseUpper(child, upperCaseIgnore)\n }\n })\n }\n\n return titleCaseUpper(children, upperCaseIgnore)\n }\n return renderChildren(title.props.children)\n }\n if (typeof title === 'string') {\n return titleCaseUpper(title, upperCaseIgnore)\n }\n },\n }\n })\n newColumns = newColumns?.map((column) => {\n if (!(column.width && !String(column.width).includes('%'))) {\n return column\n } else {\n return {\n ...column,\n title: (options: {\n filters: TableStateFilters\n sortOrder?: SortOrder\n sortColumn?: ColumnProps<T> | null\n }) => {\n let title = column.title\n if (typeof title === 'function') {\n title = title(options)\n }\n\n let widthLimitObj = {}\n if (column.width && !String(column.width).includes('%')) {\n let width = column.width\n if (typeof width === 'string') {\n width = width.replace(/[^\\d]/g, ' ')\n }\n widthLimitObj = {\n widthLimit:\n Number(width) -\n Number(sizeWidthMap[size || 'default']) -\n (column.sorter ? 20 : 0),\n }\n }\n return (\n <Ellipsis\n {...widthLimitObj}\n placement={column?.placement || 'topLeft'}\n title={title}\n />\n )\n },\n }\n }\n })\n }\n\n /**\n * update the innerSize when props size changes\n */\n // useEffect(() => {\n // if (size) {\n // setInnerSize(size)\n // }\n // }, [setInnerSize, size])\n\n return (\n <TableContext.Provider\n value={{\n // size: innerSize,\n tableContainer,\n columnSetting,\n refresh,\n upperCaseIgnore,\n // setSize: setInnerSize,\n setColumnSetting,\n }}\n >\n <ConfigConsumer>\n {({ getPrefixCls }) => {\n const prefixCls = getPrefixCls('table')\n return (\n <div ref={tableContainer}>\n <LocaleReceiver componentName=\"Table\" defaultLocale={locale}>\n {(localeObject) => {\n // const locale = localeObject as Record<string, string>\n // const paginationConfig = pagination ? getDefaultPagination(locale) : pagination\n return (\n <AntdTable\n className={classNames(\n // prefixCls,\n 'tnt-table-wrapper',\n {\n [`${prefixCls}-borderless`]: !bordered,\n [`${prefixCls}-hide-cell-borders`]: !showCellBorders,\n [`${prefixCls}-size-small`]: size === 'small',\n [`${prefixCls}-size-middle`]: size === 'middle',\n [`${prefixCls}-size-middle`]: size === 'middle',\n [`${prefixCls}-striped`]: striped,\n [`${prefixCls}-shadowed`]: shadowed,\n },\n className\n )}\n locale={locale}\n bordered={bordered}\n size={size}\n columns={newColumns}\n {...rest}\n />\n )\n }}\n </LocaleReceiver>\n </div>\n )\n }}\n </ConfigConsumer>\n </TableContext.Provider>\n )\n}\n\nTable.Column = Column\nTable.ColumnGroup = ColumnGroup\nTable.displayName = 'Table'\nTable.titleCaseUpper = titleCaseUpper\n"]}
1
+ {"version":3,"file":"table.js","sourceRoot":"","sources":["../../src/table/table.tsx"],"names":[],"mappings":"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","sourcesContent":["import { ConfigConsumer } from 'antd/es/config-provider'\nimport LocaleReceiver from 'antd/es/locale-provider/LocaleReceiver'\nimport type {\n TableProps as AntdTableProps,\n ColumnProps,\n TableStateFilters,\n SortOrder,\n} from 'antd/es/table'\nimport { default as AntdTable } from 'antd/es/table'\nimport Column from 'antd/es/table/Column'\nimport ColumnGroup from 'antd/es/table/ColumnGroup'\nimport classNames from 'classnames'\nimport React, { useMemo, useRef } from 'react'\nimport Ellipsis from '../ellipsis'\nimport { TableContext } from './context'\nimport { useColumnSetting } from './hooks'\nimport { normalizeColumns } from './utils'\nimport { TotalShower } from './total-shower'\nimport { getLanguage } from '../prev-locale'\nimport { articles, prepositions } from './constants'\n\nconst sizeWidthMap = {\n default: 40, //20\n middle: 20, //10\n small: 20, //10\n xs: 16, // 8\n}\n\nexport type TableProps<T> = Omit<AntdTableProps<T>, 'locale'> & {\n storageKey?: string\n enableToolbar?: boolean\n showCellBorders?: boolean\n striped?: boolean\n shadowed?: boolean\n locale?: AntdTableProps<T>['locale'] & {\n loadingDescription?: string\n emptyText?: string\n }\n refresh?(): void\n upperCaseIgnore?: string[]\n}\n\nconst getDefaultPagination = (locale: NonNullable<AntdTableProps<unknown>['locale']>) => ({\n showTotal: (total: number) => <TotalShower total={total} locale={locale} />,\n})\n\nconst titleHandle = (\n str: string,\n upperCaseIgnore: string[] | undefined,\n isPrompt: boolean\n): string => {\n if (isPrompt) {\n const lowerCaseWord = str.toLowerCase()\n return lowerCaseWord.charAt(0).toUpperCase() + lowerCaseWord.slice(1)\n }\n const words: string[] = str.split(' ')\n const capitalizedWords: string[] = words.map((word: string, i: number) => {\n const lowerCaseWord: string = word.toLowerCase()\n let ignoreList = prepositions.concat(articles)\n if (upperCaseIgnore?.length) {\n ignoreList = ignoreList.concat(upperCaseIgnore)\n ignoreList = Array.from(new Set(ignoreList))\n }\n if (ignoreList.includes(lowerCaseWord) && i !== 0) {\n return lowerCaseWord\n } else {\n return word.charAt(0).toUpperCase() + word.slice(1)\n }\n })\n return capitalizedWords.join(' ')\n}\n\n// 表头转换为首字母大写\nconst titleCaseUpper = (str: string, upperCaseIgnore: string[] | undefined, isPrompt: boolean) => {\n if (!str) {\n return str\n }\n if (typeof str === 'string') {\n // 有斜杠根据斜杠划分\n if (str?.includes('/')) {\n const parWords: string[] = str.split('/')\n return parWords\n .map((str1) => {\n return titleHandle(str1, upperCaseIgnore, isPrompt)\n })\n .join('/')\n }\n return titleHandle(str, upperCaseIgnore, isPrompt)\n }\n return str\n}\n\n// 判断是否是特殊的tooltip\nconst checkIsPrompt = (dom: any): boolean => {\n console.log('dom', dom)\n let isPrompt: boolean = false\n if (React.isValidElement(dom)) {\n if (dom?.type && typeof dom?.type === 'function') {\n if (['Tooltip', 'Popconfirm'].includes(dom?.type?.name)) {\n isPrompt = true\n }\n }\n }\n return isPrompt\n}\n\nexport const Table = <T,>({\n className,\n locale,\n bordered,\n size,\n storageKey,\n columns,\n children,\n shadowed = !bordered,\n striped = false,\n showCellBorders = false,\n // pagination,\n enableToolbar = false,\n refresh,\n upperCaseIgnore,\n ...rest\n}: TableProps<T>) => {\n const tableContainer = useRef<HTMLDivElement>(null)\n // const [innerSize, setInnerSize] = useLocalStorage<TableProps<T>['size']>(\n // TABLE_SIZE_STORAGE_KEY,\n // 'default'\n // )\n const normalizedColumns = useMemo(\n () => columns || normalizeColumns<T>(children as React.ReactChildren),\n [children, columns]\n )\n const [displayColumns, columnSetting, setColumnSetting] = useColumnSetting(\n normalizedColumns,\n storageKey\n )\n\n const lang = getLanguage()\n let newColumns = displayColumns\n // 非中文做处理\n if (lang !== 'cn') {\n newColumns = displayColumns?.map((column) => {\n return {\n ...column,\n title: (options: {\n filters: TableStateFilters\n sortOrder?: SortOrder\n sortColumn?: ColumnProps<T> | null\n }) => {\n let title = column.title\n if (typeof title === 'function') {\n title = title(options)\n }\n if (React.isValidElement(title)) {\n const renderChildren = (children: [] | string, isPrompt: boolean): React.ReactNode => {\n if (React.isValidElement(children) || Array.isArray(children)) {\n return React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n const childProps = (child.props || {}) as any\n return React.cloneElement(child, {\n ...childProps,\n children: childProps.children?.length\n ? renderChildren(childProps.children, checkIsPrompt(child))\n : childProps.children,\n title: titleCaseUpper(childProps?.title, upperCaseIgnore, isPrompt),\n })\n } else {\n return titleCaseUpper(child, upperCaseIgnore, isPrompt)\n }\n })\n }\n\n return titleCaseUpper(children, upperCaseIgnore, isPrompt)\n }\n\n const parentPrompt = checkIsPrompt(title)\n return {\n ...title,\n props: {\n ...(title?.props || {}),\n title: titleCaseUpper(title?.props?.title, upperCaseIgnore, parentPrompt),\n children: renderChildren(title.props.children, parentPrompt),\n },\n }\n }\n if (typeof title === 'string') {\n return titleCaseUpper(title, upperCaseIgnore, false)\n }\n },\n }\n })\n newColumns = newColumns?.map((column) => {\n if (!(column.width && !String(column.width).includes('%'))) {\n return column\n } else {\n return {\n ...column,\n title: (options: {\n filters: TableStateFilters\n sortOrder?: SortOrder\n sortColumn?: ColumnProps<T> | null\n }) => {\n let title = column.title\n if (typeof title === 'function') {\n title = title(options)\n }\n\n let widthLimitObj = {}\n if (column.width && !String(column.width).includes('%')) {\n let width = column.width\n if (typeof width === 'string') {\n width = width.replace(/[^\\d]/g, ' ')\n }\n widthLimitObj = {\n widthLimit:\n Number(width) -\n Number(sizeWidthMap[size || 'default']) -\n (column.sorter ? 20 : 0),\n }\n }\n return (\n <Ellipsis\n {...widthLimitObj}\n placement={column?.placement || 'topLeft'}\n title={title}\n />\n )\n },\n }\n }\n })\n }\n\n /**\n * update the innerSize when props size changes\n */\n // useEffect(() => {\n // if (size) {\n // setInnerSize(size)\n // }\n // }, [setInnerSize, size])\n\n return (\n <TableContext.Provider\n value={{\n // size: innerSize,\n tableContainer,\n columnSetting,\n refresh,\n upperCaseIgnore,\n // setSize: setInnerSize,\n setColumnSetting,\n }}\n >\n <ConfigConsumer>\n {({ getPrefixCls }) => {\n const prefixCls = getPrefixCls('table')\n return (\n <div ref={tableContainer}>\n <LocaleReceiver componentName=\"Table\" defaultLocale={locale}>\n {(localeObject) => {\n // const locale = localeObject as Record<string, string>\n // const paginationConfig = pagination ? getDefaultPagination(locale) : pagination\n return (\n <AntdTable\n className={classNames(\n // prefixCls,\n 'tnt-table-wrapper',\n {\n [`${prefixCls}-borderless`]: !bordered,\n [`${prefixCls}-hide-cell-borders`]: !showCellBorders,\n [`${prefixCls}-size-small`]: size === 'small',\n [`${prefixCls}-size-middle`]: size === 'middle',\n [`${prefixCls}-size-middle`]: size === 'middle',\n [`${prefixCls}-striped`]: striped,\n [`${prefixCls}-shadowed`]: shadowed,\n },\n className\n )}\n locale={locale}\n bordered={bordered}\n size={size}\n columns={newColumns}\n {...rest}\n />\n )\n }}\n </LocaleReceiver>\n </div>\n )\n }}\n </ConfigConsumer>\n </TableContext.Provider>\n )\n}\n\nTable.Column = Column\nTable.ColumnGroup = ColumnGroup\nTable.displayName = 'Table'\nTable.titleCaseUpper = titleCaseUpper\n"]}
package/es/tabs/tabs.js CHANGED
@@ -20,45 +20,19 @@ var __rest = (this && this.__rest) || function (s, e) {
20
20
  import React, { forwardRef } from 'react';
21
21
  import { ConfigConsumer } from 'antd/es/config-provider';
22
22
  import { default as AntdTabs } from 'antd/es/tabs';
23
+ import { doUpperTitle } from '../utils';
23
24
  export * from 'antd/es/tabs';
24
25
  export const Tabs = forwardRef((_a, ref) => {
25
26
  var { children } = _a, rest = __rest(_a, ["children"]);
26
- const titleHandle = (tab) => {
27
- var _a, _b, _c, _d, _e, _f;
28
- if (!tab) {
29
- return tab;
30
- }
31
- if (typeof tab === 'string') {
32
- const words = tab.split(' ');
33
- const capitalizedWords = words.map((word) => {
34
- const lowerCaseWord = word === null || word === void 0 ? void 0 : word.toLowerCase();
35
- return lowerCaseWord.charAt(0).toUpperCase() + lowerCaseWord.slice(1);
36
- });
37
- tab = capitalizedWords.join(' ');
38
- }
39
- else {
40
- if (React.isValidElement(tab)) {
41
- if (((_a = tab === null || tab === void 0 ? void 0 : tab.props) === null || _a === void 0 ? void 0 : _a.children) && Array.isArray((_b = tab === null || tab === void 0 ? void 0 : tab.props) === null || _b === void 0 ? void 0 : _b.children)) {
42
- return Object.assign(Object.assign({}, tab), { props: Object.assign(Object.assign({}, tab.props), { children: (_d = (_c = tab === null || tab === void 0 ? void 0 : tab.props) === null || _c === void 0 ? void 0 : _c.children) === null || _d === void 0 ? void 0 : _d.map((subTab) => {
43
- return titleHandle(subTab);
44
- }) }) });
45
- }
46
- else if (typeof ((_e = tab === null || tab === void 0 ? void 0 : tab.props) === null || _e === void 0 ? void 0 : _e.children) === 'string') {
47
- tab = Object.assign(Object.assign({}, tab), { props: Object.assign(Object.assign({}, tab.props), { children: titleHandle((_f = tab === null || tab === void 0 ? void 0 : tab.props) === null || _f === void 0 ? void 0 : _f.children) }) });
48
- }
49
- }
50
- }
51
- return tab;
52
- };
53
27
  let newChildren = children;
54
28
  if (Array.isArray(newChildren)) {
55
29
  newChildren = newChildren === null || newChildren === void 0 ? void 0 : newChildren.map((child) => {
56
30
  var _a;
57
31
  if (React.isValidElement(child)) {
58
- return Object.assign(Object.assign({}, child), { props: Object.assign(Object.assign({}, child === null || child === void 0 ? void 0 : child.props), { tab: titleHandle((_a = child === null || child === void 0 ? void 0 : child.props) === null || _a === void 0 ? void 0 : _a.tab) }) });
32
+ return Object.assign(Object.assign({}, child), { props: Object.assign(Object.assign({}, child === null || child === void 0 ? void 0 : child.props), { tab: doUpperTitle((_a = child === null || child === void 0 ? void 0 : child.props) === null || _a === void 0 ? void 0 : _a.tab) }) });
59
33
  }
60
34
  if (typeof child === 'string') {
61
- return titleHandle(child);
35
+ return doUpperTitle(child);
62
36
  }
63
37
  return child;
64
38
  });
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.js","sourceRoot":"","sources":["../../src/tabs/tabs.tsx"],"names":[],"mappings":"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","sourcesContent":["/*\n * @Author: 周泽飞 zefei.zhou@tongdun.net\n * @Date: 2023-10-16 11:08:28\n * @LastEditors: 周泽飞 zefei.zhou@tongdun.net\n * @LastEditTime: 2023-10-16 16:24:53\n * @FilePath: /tntd/packages/tntd/src/tabs/tabs.tsx\n * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE\n */\nimport React, { forwardRef } from 'react'\nimport type { TabsProps as AntdTabsProps } from 'antd/es/tabs'\nimport { ConfigConsumer } from 'antd/es/config-provider'\nimport { default as AntdTabs } from 'antd/es/tabs'\n\nexport * from 'antd/es/tabs'\nexport interface TabsProps extends AntdTabsProps {\n children?: Array<React.ReactElement>\n}\n\ninterface TabsComponent\n extends React.ForwardRefExoticComponent<TabsProps & React.RefAttributes<AntdTabs>> {\n TabPane: typeof AntdTabs.TabPane\n}\n\nexport const Tabs = forwardRef<AntdTabs, TabsProps>(({ children, ...rest }, ref) => {\n const titleHandle = (tab: string | React.ReactNode): undefined | React.ReactNode => {\n if (!tab) {\n return tab\n }\n if (typeof tab === 'string') {\n const words: string[] = tab.split(' ')\n const capitalizedWords: string[] = words.map((word: string) => {\n const lowerCaseWord: string = word?.toLowerCase()\n return lowerCaseWord.charAt(0).toUpperCase() + lowerCaseWord.slice(1)\n })\n tab = capitalizedWords.join(' ')\n } else {\n if (React.isValidElement(tab)) {\n if (tab?.props?.children && Array.isArray(tab?.props?.children)) {\n return {\n ...tab,\n props: {\n ...tab.props,\n children: tab?.props?.children?.map((subTab: string | React.ReactNode) => {\n return titleHandle(subTab)\n }),\n },\n }\n } else if (typeof tab?.props?.children === 'string') {\n tab = {\n ...tab,\n props: {\n ...tab.props,\n children: titleHandle(tab?.props?.children),\n },\n }\n }\n }\n }\n return tab\n }\n\n let newChildren: string | React.ReactNode = children\n if (Array.isArray(newChildren)) {\n newChildren = newChildren?.map((child: string | React.ReactNode) => {\n if (React.isValidElement(child)) {\n return {\n ...child,\n props: {\n ...child?.props,\n tab: titleHandle(child?.props?.tab),\n },\n }\n }\n if (typeof child === 'string') {\n return titleHandle(child)\n }\n return child\n })\n }\n\n return (\n <ConfigConsumer>\n {({ getPrefixCls }) => {\n return <AntdTabs {...rest} children={newChildren} ref={ref} />\n }}\n </ConfigConsumer>\n )\n}) as TabsComponent\n\nTabs.TabPane = AntdTabs.TabPane\n"]}
1
+ {"version":3,"file":"tabs.js","sourceRoot":"","sources":["../../src/tabs/tabs.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,cAAc,cAAc,CAAA;AAU5B,MAAM,CAAC,MAAM,IAAI,GAAG,UAAU,CAAsB,CAAC,EAAqB,EAAE,GAAG,EAAE,EAAE;QAA9B,EAAE,QAAQ,OAAW,EAAN,IAAI,cAAnB,YAAqB,CAAF;IACtE,IAAI,WAAW,GAA6B,QAAQ,CAAA;IACpD,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;QAC9B,WAAW,GAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,GAAG,CAAC,CAAC,KAA+B,EAAE,EAAE;;YACjE,IAAI,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;gBAC/B,uCACK,KAAK,KACR,KAAK,kCACA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,KACf,GAAG,EAAE,YAAY,CAAC,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,0CAAE,GAAG,CAAC,OAEvC;aACF;YACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBAC7B,OAAO,YAAY,CAAC,KAAK,CAAC,CAAA;aAC3B;YACD,OAAO,KAAK,CAAA;QACd,CAAC,CAAC,CAAA;KACH;IAED,OAAO,CACL,oBAAC,cAAc,QACZ,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE;QACpB,OAAO,oBAAC,QAAQ,oBAAK,IAAI,IAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;IAChE,CAAC,CACc,CAClB,CAAA;AACH,CAAC,CAAkB,CAAA;AAEnB,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAA","sourcesContent":["/*\n * @Author: 周泽飞 zefei.zhou@tongdun.net\n * @Date: 2023-10-16 11:08:28\n * @LastEditors: 周泽飞 zefei.zhou@tongdun.net\n * @LastEditTime: 2023-10-16 16:24:53\n * @FilePath: /tntd/packages/tntd/src/tabs/tabs.tsx\n * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE\n */\nimport React, { forwardRef } from 'react'\nimport type { TabsProps as AntdTabsProps } from 'antd/es/tabs'\nimport { ConfigConsumer } from 'antd/es/config-provider'\nimport { default as AntdTabs } from 'antd/es/tabs'\nimport { doUpperTitle } from '../utils'\nexport * from 'antd/es/tabs'\nexport interface TabsProps extends AntdTabsProps {\n children?: Array<React.ReactElement>\n}\n\ninterface TabsComponent\n extends React.ForwardRefExoticComponent<TabsProps & React.RefAttributes<AntdTabs>> {\n TabPane: typeof AntdTabs.TabPane\n}\n\nexport const Tabs = forwardRef<AntdTabs, TabsProps>(({ children, ...rest }, ref) => {\n let newChildren: string | React.ReactNode = children\n if (Array.isArray(newChildren)) {\n newChildren = newChildren?.map((child: string | React.ReactNode) => {\n if (React.isValidElement(child)) {\n return {\n ...child,\n props: {\n ...child?.props,\n tab: doUpperTitle(child?.props?.tab),\n },\n }\n }\n if (typeof child === 'string') {\n return doUpperTitle(child)\n }\n return child\n })\n }\n\n return (\n <ConfigConsumer>\n {({ getPrefixCls }) => {\n return <AntdTabs {...rest} children={newChildren} ref={ref} />\n }}\n </ConfigConsumer>\n )\n}) as TabsComponent\n\nTabs.TabPane = AntdTabs.TabPane\n"]}
@@ -0,0 +1,55 @@
1
+ import _isEqual from "lodash/isEqual";
2
+ /*
3
+ * @Descripttion: TntdForm.Item
4
+ * @Author: 郑泳健
5
+ * @Date: 2023-02-22 23:25:24
6
+ * @LastEditors: 郑泳健
7
+ * @LastEditTime: 2023-04-06 17:46:57
8
+ */
9
+ import React, { memo, useRef, useContext, useEffect } from 'react';
10
+ import ItemComp from './ItemComp';
11
+ import { FormContext } from '../store';
12
+ import { getNames } from '../utils';
13
+ const Item = ({
14
+ name,
15
+ children,
16
+ style,
17
+ rules,
18
+ shouldUpdate,
19
+ initialValue,
20
+ dependencies
21
+ }) => {
22
+ const {
23
+ form,
24
+ initialValues,
25
+ updateRefs,
26
+ compsRefs
27
+ } = useContext(FormContext);
28
+ const ref = useRef();
29
+ useEffect(() => {
30
+ compsRefs.current[getNames(name).join('.')] = () => {
31
+ var _a, _b;
32
+ (_b = (_a = ref.current) === null || _a === void 0 ? void 0 : _a.onRefresh) === null || _b === void 0 ? void 0 : _b.call(_a);
33
+ };
34
+ }, [compsRefs, name]);
35
+ return React.createElement(ItemComp, Object.assign({}, {
36
+ form,
37
+ initialValues,
38
+ updateRefs,
39
+ compsRefs,
40
+ style,
41
+ rules,
42
+ name,
43
+ ref,
44
+ children,
45
+ initialValue,
46
+ shouldUpdate,
47
+ dependencies
48
+ }));
49
+ };
50
+ export default memo(Item, (nextProps, prevProps) => {
51
+ if (_isEqual(nextProps.name, prevProps.name) && !!prevProps.name) {
52
+ return true;
53
+ }
54
+ return false;
55
+ });
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Item.js","sourceRoot":"","sources":["../../../../src/tntd-form/TntdForm/components/Item.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAChC,OAAO,QAAQ,MAAM,YAAY,CAAA;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAEtC,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAEnC,MAAM,IAAI,GAAwB,CAAC,EACjC,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,YAAY,GACb,EAAE,EAAE;IACH,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,UAAU,CAAe,WAAW,CAAC,CAAA;IAC5F,MAAM,GAAG,GAAG,MAAM,EAAoB,CAAA;IAEtC,SAAS,CAAC,GAAG,EAAE;QACb,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE;;YACjD,MAAA,MAAA,GAAG,CAAC,OAAO,0CAAE,SAAS,kDAAI,CAAA;QAC5B,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAA;IAErB,OAAO,CACL,oBAAC,QAAQ,oBACH;QACF,IAAI;QACJ,aAAa;QACb,UAAU;QACV,SAAS;QACT,KAAK;QACL,KAAK;QACL,IAAI;QACJ,GAAG;QACH,QAAQ;QACR,YAAY;QACZ,YAAY;QACZ,YAAY;KACb,EACD,CACH,CAAA;AACH,CAAC,CAAA;AAED,eAAe,IAAI,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE;IACjD,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE;QAC/D,OAAO,IAAI,CAAA;KACZ;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAC,CAAA","sourcesContent":["/*\n * @Descripttion: TntdForm.Item\n * @Author: 郑泳健\n * @Date: 2023-02-22 23:25:24\n * @LastEditors: 郑泳健\n * @LastEditTime: 2023-04-06 17:46:57\n */\n\nimport React, { memo, useRef, useContext, useEffect } from 'react'\nimport { isEqual } from 'lodash'\nimport ItemComp from './ItemComp'\nimport { FormContext } from '../store'\nimport type { IFormItem, IFormContext, IChildrenCompFun } from '../interface'\nimport { getNames } from '../utils'\n\nconst Item: React.FC<IFormItem> = ({\n name,\n children,\n style,\n rules,\n shouldUpdate,\n initialValue,\n dependencies,\n}) => {\n const { form, initialValues, updateRefs, compsRefs } = useContext<IFormContext>(FormContext)\n const ref = useRef<IChildrenCompFun>()\n\n useEffect(() => {\n compsRefs.current[getNames(name).join('.')] = () => {\n ref.current?.onRefresh?.()\n }\n }, [compsRefs, name])\n\n return (\n <ItemComp\n {...{\n form,\n initialValues,\n updateRefs,\n compsRefs,\n style,\n rules,\n name,\n ref,\n children,\n initialValue,\n shouldUpdate,\n dependencies,\n }}\n />\n )\n}\n\nexport default memo(Item, (nextProps, prevProps) => {\n if (isEqual(nextProps.name, prevProps.name) && !!prevProps.name) {\n return true\n }\n return false\n})\n"]}