tntd 2.7.26 → 2.7.28
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/es/button/button.js +5 -17
- package/es/button/button.js.map +1 -1
- package/es/handle/index.js +4 -29
- package/es/handle/index.js.map +1 -1
- package/es/modal/modal.js +2 -2
- package/es/modal/modal.js.map +1 -1
- package/es/prev-locale.js +1 -1
- package/es/prev-locale.js.map +1 -1
- package/es/table/constants.js +0 -53
- package/es/table/constants.js.map +1 -1
- package/es/table/table.js +19 -60
- package/es/table/table.js.map +1 -1
- package/es/utils/lang.js +8 -8
- package/es/utils/lang.js.map +1 -1
- package/lib/button/button.d.ts +5 -1
- package/lib/button/button.d.ts.map +1 -1
- package/lib/button/button.js +5 -17
- package/lib/button/button.js.map +1 -1
- package/lib/handle/index.d.ts.map +1 -1
- package/lib/handle/index.js +4 -29
- package/lib/handle/index.js.map +1 -1
- package/lib/modal/modal.d.ts +5 -1
- package/lib/modal/modal.d.ts.map +1 -1
- package/lib/modal/modal.js +2 -2
- package/lib/modal/modal.js.map +1 -1
- package/lib/prev-locale.d.ts +1 -1
- package/lib/prev-locale.d.ts.map +1 -1
- package/lib/prev-locale.js +1 -1
- package/lib/prev-locale.js.map +1 -1
- package/lib/segmented/index.d.ts +1 -1
- package/lib/svg-components/illustration-403.d.ts +1 -1
- package/lib/svg-components/illustration-404.d.ts +1 -1
- package/lib/svg-components/illustration-500.d.ts +1 -1
- package/lib/svg-components/illustration-empty.d.ts +1 -1
- package/lib/svg-components/illustration-failure.d.ts +1 -1
- package/lib/svg-components/illustration-no-access.d.ts +1 -1
- package/lib/svg-components/illustration-no-chart.d.ts +1 -1
- package/lib/svg-components/illustration-no-result.d.ts +1 -1
- package/lib/svg-components/illustration-offline.d.ts +1 -1
- package/lib/svg-components/illustration-success.d.ts +1 -1
- package/lib/table/assets/image-loading-background.d.ts +1 -1
- package/lib/table/assets/image-loading.d.ts +1 -1
- package/lib/table/constants.d.ts +0 -2
- package/lib/table/constants.d.ts.map +1 -1
- package/lib/table/constants.js +1 -54
- package/lib/table/constants.js.map +1 -1
- package/lib/table/table.d.ts +1 -1
- package/lib/table/table.d.ts.map +1 -1
- package/lib/table/table.js +20 -61
- package/lib/table/table.js.map +1 -1
- package/lib/utils/lang.d.ts +5 -1
- package/lib/utils/lang.d.ts.map +1 -1
- package/lib/utils/lang.js +14 -12
- package/lib/utils/lang.js.map +1 -1
- package/package.json +1 -1
package/lib/table/table.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../src/table/table.tsx"],"names":[],"mappings":";AAEA,OAAO,KAAK,EACV,UAAU,IAAI,cAAc,EAI7B,MAAM,eAAe,CAAA;AAEtB,OAAO,MAAM,MAAM,sBAAsB,CAAA;AACzC,OAAO,WAAW,MAAM,2BAA2B,CAAA;AAkBnD,oBAAY,UAAU,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG;QACrC,kBAAkB,CAAC,EAAE,MAAM,CAAA;QAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB,CAAA;IACD,OAAO,CAAC,IAAI,IAAI,CAAA;IAChB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;CAC3B,CAAA;
|
|
1
|
+
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../src/table/table.tsx"],"names":[],"mappings":";AAEA,OAAO,KAAK,EACV,UAAU,IAAI,cAAc,EAI7B,MAAM,eAAe,CAAA;AAEtB,OAAO,MAAM,MAAM,sBAAsB,CAAA;AACzC,OAAO,WAAW,MAAM,2BAA2B,CAAA;AAkBnD,oBAAY,UAAU,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG;QACrC,kBAAkB,CAAC,EAAE,MAAM,CAAA;QAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB,CAAA;IACD,OAAO,CAAC,IAAI,IAAI,CAAA;IAChB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;CAC3B,CAAA;AAmBD,eAAO,MAAM,KAAK;;;;;;CA4LjB,CAAA"}
|
package/lib/table/table.js
CHANGED
|
@@ -49,9 +49,9 @@ const ellipsis_1 = __importDefault(require("../ellipsis"));
|
|
|
49
49
|
const context_1 = require("./context");
|
|
50
50
|
const hooks_1 = require("./hooks");
|
|
51
51
|
const utils_1 = require("./utils");
|
|
52
|
+
const lang_1 = require("../utils/lang");
|
|
52
53
|
const total_shower_1 = require("./total-shower");
|
|
53
54
|
const prev_locale_1 = require("../prev-locale");
|
|
54
|
-
const constants_1 = require("./constants");
|
|
55
55
|
const sizeWidthMap = {
|
|
56
56
|
default: 40,
|
|
57
57
|
middle: 20,
|
|
@@ -61,60 +61,18 @@ const sizeWidthMap = {
|
|
|
61
61
|
const getDefaultPagination = (locale) => ({
|
|
62
62
|
showTotal: (total) => react_1.default.createElement(total_shower_1.TotalShower, { total: total, locale: locale }),
|
|
63
63
|
});
|
|
64
|
-
const titleHandle = (str, upperCaseIgnore, isPrompt) => {
|
|
65
|
-
if (isPrompt) {
|
|
66
|
-
const lowerCaseWord = str.toLowerCase();
|
|
67
|
-
return lowerCaseWord.charAt(0).toUpperCase() + lowerCaseWord.slice(1);
|
|
68
|
-
}
|
|
69
|
-
const words = str.split(' ');
|
|
70
|
-
const capitalizedWords = words.map((word, i) => {
|
|
71
|
-
const lowerCaseWord = word.toLowerCase();
|
|
72
|
-
let ignoreList = constants_1.prepositions.concat(constants_1.articles);
|
|
73
|
-
if (upperCaseIgnore === null || upperCaseIgnore === void 0 ? void 0 : upperCaseIgnore.length) {
|
|
74
|
-
ignoreList = ignoreList.concat(upperCaseIgnore);
|
|
75
|
-
ignoreList = Array.from(new Set(ignoreList));
|
|
76
|
-
}
|
|
77
|
-
if (ignoreList.includes(lowerCaseWord) && i !== 0) {
|
|
78
|
-
return lowerCaseWord;
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
return word.charAt(0).toUpperCase() + word.slice(1);
|
|
82
|
-
}
|
|
83
|
-
});
|
|
84
|
-
return capitalizedWords.join(' ');
|
|
85
|
-
};
|
|
86
|
-
// 表头转换为首字母大写
|
|
87
|
-
const titleCaseUpper = (str, upperCaseIgnore, isPrompt) => {
|
|
88
|
-
if (!str) {
|
|
89
|
-
return str;
|
|
90
|
-
}
|
|
91
|
-
if (typeof str === 'string') {
|
|
92
|
-
// 有斜杠根据斜杠划分
|
|
93
|
-
if (str === null || str === void 0 ? void 0 : str.includes('/')) {
|
|
94
|
-
const parWords = str.split('/');
|
|
95
|
-
return parWords
|
|
96
|
-
.map((str1) => {
|
|
97
|
-
return titleHandle(str1, upperCaseIgnore, isPrompt);
|
|
98
|
-
})
|
|
99
|
-
.join('/');
|
|
100
|
-
}
|
|
101
|
-
return titleHandle(str, upperCaseIgnore, isPrompt);
|
|
102
|
-
}
|
|
103
|
-
return str;
|
|
104
|
-
};
|
|
105
64
|
// 判断是否是特殊的tooltip
|
|
106
|
-
const checkIsPrompt = (dom) => {
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
};
|
|
65
|
+
// const checkIsPrompt = (dom: any): boolean => {
|
|
66
|
+
// let isPrompt: boolean = false
|
|
67
|
+
// if (React.isValidElement(dom)) {
|
|
68
|
+
// if (dom?.type && typeof dom?.type === 'function') {
|
|
69
|
+
// if (['Tooltip', 'Popconfirm'].includes(dom?.type?.name)) {
|
|
70
|
+
// isPrompt = true
|
|
71
|
+
// }
|
|
72
|
+
// }
|
|
73
|
+
// }
|
|
74
|
+
// return isPrompt
|
|
75
|
+
// }
|
|
118
76
|
const Table = (_a) => {
|
|
119
77
|
var { className, locale, bordered, size, storageKey, columns, children, shadowed = !bordered, striped = false, showCellBorders = false,
|
|
120
78
|
// pagination,
|
|
@@ -140,26 +98,27 @@ const Table = (_a) => {
|
|
|
140
98
|
}
|
|
141
99
|
if (react_1.default.isValidElement(title)) {
|
|
142
100
|
const renderChildren = (children) => {
|
|
101
|
+
var _a;
|
|
143
102
|
if (react_1.default.isValidElement(children) || Array.isArray(children)) {
|
|
144
|
-
return react_1.default.Children.map(children, (child) => {
|
|
103
|
+
return (_a = react_1.default === null || react_1.default === void 0 ? void 0 : react_1.default.Children) === null || _a === void 0 ? void 0 : _a.map(children, (child) => {
|
|
145
104
|
var _a;
|
|
146
105
|
if (react_1.default.isValidElement(child)) {
|
|
147
106
|
const childProps = (child.props || {});
|
|
148
107
|
return react_1.default.cloneElement(child, Object.assign(Object.assign({}, childProps), { children: ((_a = childProps.children) === null || _a === void 0 ? void 0 : _a.length)
|
|
149
108
|
? renderChildren(childProps.children)
|
|
150
|
-
: childProps.children, title: titleCaseUpper(childProps === null || childProps === void 0 ? void 0 : childProps.title, upperCaseIgnore
|
|
109
|
+
: childProps.children, title: (0, lang_1.titleCaseUpper)(childProps === null || childProps === void 0 ? void 0 : childProps.title, upperCaseIgnore) }));
|
|
151
110
|
}
|
|
152
111
|
else {
|
|
153
|
-
return titleCaseUpper(child, upperCaseIgnore
|
|
112
|
+
return (0, lang_1.titleCaseUpper)(child, upperCaseIgnore);
|
|
154
113
|
}
|
|
155
114
|
});
|
|
156
115
|
}
|
|
157
|
-
return titleCaseUpper(children, upperCaseIgnore
|
|
116
|
+
return (0, lang_1.titleCaseUpper)(children, upperCaseIgnore);
|
|
158
117
|
};
|
|
159
118
|
return renderChildren(title.props.children);
|
|
160
119
|
}
|
|
161
120
|
if (typeof title === 'string') {
|
|
162
|
-
return titleCaseUpper(title, upperCaseIgnore
|
|
121
|
+
return (0, lang_1.titleCaseUpper)(title, upperCaseIgnore);
|
|
163
122
|
}
|
|
164
123
|
} });
|
|
165
124
|
});
|
|
@@ -179,7 +138,7 @@ const Table = (_a) => {
|
|
|
179
138
|
if (column.width && !String(column.width).includes('%')) {
|
|
180
139
|
let width = column.width;
|
|
181
140
|
if (typeof width === 'string') {
|
|
182
|
-
width = width.replace(/[^\d]/g, ' ');
|
|
141
|
+
width = width === null || width === void 0 ? void 0 : width.replace(/[^\d]/g, ' ');
|
|
183
142
|
}
|
|
184
143
|
widthLimitObj = {
|
|
185
144
|
widthLimit: Number(width) -
|
|
@@ -234,5 +193,5 @@ exports.Table = Table;
|
|
|
234
193
|
exports.Table.Column = Column_1.default;
|
|
235
194
|
exports.Table.ColumnGroup = ColumnGroup_1.default;
|
|
236
195
|
exports.Table.displayName = 'Table';
|
|
237
|
-
exports.Table.titleCaseUpper = titleCaseUpper;
|
|
196
|
+
exports.Table.titleCaseUpper = lang_1.titleCaseUpper;
|
|
238
197
|
//# sourceMappingURL=table.js.map
|
package/lib/table/table.js.map
CHANGED
|
@@ -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 unUpperConverted?: boolean // 不要转换表头\n unTooltip?: boolean // 不要tooltip\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 | undefined\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 = (\n str: string,\n upperCaseIgnore: string[] | undefined,\n isPrompt: boolean | undefined\n) => {\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 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 unUpperConverted, // 强制不要转换\n unTooltip,\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 if (!unUpperConverted) {\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, true),\n })\n } else {\n return titleCaseUpper(child, upperCaseIgnore, false)\n }\n })\n }\n\n return titleCaseUpper(children, upperCaseIgnore, false)\n }\n\n return renderChildren(title.props.children)\n }\n if (typeof title === 'string') {\n return titleCaseUpper(title, upperCaseIgnore, false)\n }\n },\n }\n })\n }\n if (!unTooltip) {\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 /**\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 { titleCaseUpper } from '../utils/lang'\nimport { TotalShower } from './total-shower'\nimport { getLanguage } from '../prev-locale'\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 unUpperConverted?: boolean // 不要转换表头\n unTooltip?: boolean // 不要tooltip\n upperCaseIgnore?: string[]\n}\n\nconst getDefaultPagination = (locale: NonNullable<AntdTableProps<unknown>['locale']>) => ({\n showTotal: (total: number) => <TotalShower total={total} locale={locale} />,\n})\n\n// 判断是否是特殊的tooltip\n// const checkIsPrompt = (dom: any): boolean => {\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 unUpperConverted, // 强制不要转换\n unTooltip,\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 if (!unUpperConverted) {\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\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\n return renderChildren(title.props.children)\n }\n\n if (typeof title === 'string') {\n return titleCaseUpper(title, upperCaseIgnore)\n }\n },\n }\n })\n }\n if (!unTooltip) {\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 /**\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/lib/utils/lang.d.ts
CHANGED
|
@@ -1,2 +1,6 @@
|
|
|
1
|
-
export
|
|
1
|
+
export const prepositions: string[];
|
|
2
|
+
export const articles: string[];
|
|
3
|
+
export function titleHandle(str: any, upperCaseIgnore?: any[]): any;
|
|
4
|
+
export function titleCaseUpper(str: any, upperCaseIgnore?: any[]): any;
|
|
5
|
+
export function doUpperTitle(label: any, upperCaseIgnore?: any[]): any;
|
|
2
6
|
//# sourceMappingURL=lang.d.ts.map
|
package/lib/utils/lang.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lang.d.ts","sourceRoot":"","sources":["../../src/utils/lang.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lang.d.ts","sourceRoot":"","sources":["../../src/utils/lang.js"],"names":[],"mappings":"AAGA,oCAoDC;AAED,gCAA0C;AAEnC,oEAgBN;AAGM,uEAiBN;AAEM,uEAiCN"}
|
package/lib/utils/lang.js
CHANGED
|
@@ -3,10 +3,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.doUpperTitle = void 0;
|
|
6
|
+
exports.doUpperTitle = exports.titleCaseUpper = exports.titleHandle = exports.articles = exports.prepositions = void 0;
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
8
8
|
const prev_locale_1 = require("../prev-locale");
|
|
9
|
-
|
|
9
|
+
exports.prepositions = [
|
|
10
10
|
'about',
|
|
11
11
|
'above',
|
|
12
12
|
'across',
|
|
@@ -59,12 +59,12 @@ const prepositions = [
|
|
|
59
59
|
'without',
|
|
60
60
|
'or'
|
|
61
61
|
];
|
|
62
|
-
|
|
63
|
-
const titleHandle = (str, upperCaseIgnore) => {
|
|
62
|
+
exports.articles = ['the', 'a', 'an'];
|
|
63
|
+
const titleHandle = (str, upperCaseIgnore = []) => {
|
|
64
64
|
const words = str.split(' ');
|
|
65
65
|
const capitalizedWords = words.map((word, i) => {
|
|
66
66
|
const lowerCaseWord = word.toLowerCase();
|
|
67
|
-
let ignoreList = prepositions.concat(articles);
|
|
67
|
+
let ignoreList = exports.prepositions.concat(exports.articles);
|
|
68
68
|
if (upperCaseIgnore === null || upperCaseIgnore === void 0 ? void 0 : upperCaseIgnore.length) {
|
|
69
69
|
ignoreList = ignoreList.concat(upperCaseIgnore);
|
|
70
70
|
ignoreList = Array.from(new Set(ignoreList));
|
|
@@ -78,8 +78,9 @@ const titleHandle = (str, upperCaseIgnore) => {
|
|
|
78
78
|
});
|
|
79
79
|
return capitalizedWords.join(' ');
|
|
80
80
|
};
|
|
81
|
+
exports.titleHandle = titleHandle;
|
|
81
82
|
// 表头转换为首字母大写
|
|
82
|
-
const titleCaseUpper = (str, upperCaseIgnore) => {
|
|
83
|
+
const titleCaseUpper = (str, upperCaseIgnore = []) => {
|
|
83
84
|
if (!str) {
|
|
84
85
|
return str;
|
|
85
86
|
}
|
|
@@ -89,15 +90,16 @@ const titleCaseUpper = (str, upperCaseIgnore) => {
|
|
|
89
90
|
const parWords = str.split('/');
|
|
90
91
|
return parWords
|
|
91
92
|
.map((str1) => {
|
|
92
|
-
return titleHandle(str1, upperCaseIgnore);
|
|
93
|
+
return (0, exports.titleHandle)(str1, upperCaseIgnore);
|
|
93
94
|
})
|
|
94
95
|
.join('/');
|
|
95
96
|
}
|
|
96
|
-
return titleHandle(str, upperCaseIgnore);
|
|
97
|
+
return (0, exports.titleHandle)(str, upperCaseIgnore);
|
|
97
98
|
}
|
|
98
99
|
return str;
|
|
99
100
|
};
|
|
100
|
-
|
|
101
|
+
exports.titleCaseUpper = titleCaseUpper;
|
|
102
|
+
const doUpperTitle = (label, upperCaseIgnore = []) => {
|
|
101
103
|
var _a, _b, _c, _d, _e, _f;
|
|
102
104
|
if ((0, prev_locale_1.getLanguage)() === 'cn') {
|
|
103
105
|
return label;
|
|
@@ -106,17 +108,17 @@ const doUpperTitle = (label) => {
|
|
|
106
108
|
return label;
|
|
107
109
|
}
|
|
108
110
|
if (typeof label === 'string') {
|
|
109
|
-
return titleCaseUpper(label);
|
|
111
|
+
return (0, exports.titleCaseUpper)(label, upperCaseIgnore);
|
|
110
112
|
}
|
|
111
113
|
else {
|
|
112
114
|
if (react_1.default.isValidElement(label)) {
|
|
113
115
|
if (((_a = label === null || label === void 0 ? void 0 : label.props) === null || _a === void 0 ? void 0 : _a.children) && Array.isArray((_b = label === null || label === void 0 ? void 0 : label.props) === null || _b === void 0 ? void 0 : _b.children)) {
|
|
114
116
|
return Object.assign(Object.assign({}, label), { props: Object.assign(Object.assign({}, label.props), { children: (_d = (_c = label === null || label === void 0 ? void 0 : label.props) === null || _c === void 0 ? void 0 : _c.children) === null || _d === void 0 ? void 0 : _d.map((subLabel) => {
|
|
115
|
-
return titleCaseUpper(subLabel);
|
|
117
|
+
return (0, exports.titleCaseUpper)(subLabel, upperCaseIgnore);
|
|
116
118
|
}) }) });
|
|
117
119
|
}
|
|
118
120
|
else if (typeof ((_e = label === null || label === void 0 ? void 0 : label.props) === null || _e === void 0 ? void 0 : _e.children) === 'string') {
|
|
119
|
-
label = Object.assign(Object.assign({}, label), { props: Object.assign(Object.assign({}, label.props), { children: titleCaseUpper((_f = label === null || label === void 0 ? void 0 : label.props) === null || _f === void 0 ? void 0 : _f.children) }) });
|
|
121
|
+
label = Object.assign(Object.assign({}, label), { props: Object.assign(Object.assign({}, label.props), { children: (0, exports.titleCaseUpper)((_f = label === null || label === void 0 ? void 0 : label.props) === null || _f === void 0 ? void 0 : _f.children, upperCaseIgnore) }) });
|
|
120
122
|
}
|
|
121
123
|
}
|
|
122
124
|
}
|
package/lib/utils/lang.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lang.js","sourceRoot":"","sources":["../../src/utils/lang.js"],"names":[],"mappings":";;;;;;AAAA,kDAAyB;AACzB,gDAA4C;
|
|
1
|
+
{"version":3,"file":"lang.js","sourceRoot":"","sources":["../../src/utils/lang.js"],"names":[],"mappings":"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","sourcesContent":["import React from 'react'\nimport { getLanguage } from '../prev-locale'\n\nexport const prepositions = [\n 'about',\n 'above',\n 'across',\n 'after',\n 'against',\n 'along',\n 'among',\n 'around',\n 'as',\n 'at',\n 'before',\n 'behind',\n 'below',\n 'beneath',\n 'beside',\n 'between',\n 'beyond',\n 'by',\n 'down',\n 'during',\n 'except',\n 'for',\n 'from',\n 'in',\n 'inside',\n 'into',\n 'like',\n 'near',\n 'of',\n 'off',\n 'on',\n 'onto',\n 'out',\n 'outside',\n 'over',\n 'past',\n 'round',\n 'since',\n 'through',\n 'throughout',\n 'to',\n 'toward',\n 'under',\n 'underneath',\n 'until',\n 'up',\n 'upon',\n 'with',\n 'within',\n 'without',\n 'or'\n]\n\nexport const articles = ['the', 'a', 'an']\n\nexport const titleHandle = (str, upperCaseIgnore=[]) => {\n const words = str.split(' ')\n const capitalizedWords = words.map((word, i) => {\n const lowerCaseWord = 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// 表头转换为首字母大写\nexport const titleCaseUpper = (str, upperCaseIgnore=[]) => {\n if (!str) {\n return str\n }\n if (typeof str === 'string') {\n // 有斜杠根据斜杠划分\n if (str?.includes('/')) {\n const parWords = 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 doUpperTitle = (label, upperCaseIgnore=[]) => {\n if (getLanguage() === 'cn') {\n return label\n }\n if (!label) {\n return label\n }\n if (typeof label === 'string') {\n return titleCaseUpper(label, upperCaseIgnore);\n } else {\n if (React.isValidElement(label)) {\n if (label?.props?.children && Array.isArray(label?.props?.children)) {\n return {\n ...label,\n props: {\n ...label.props,\n children: label?.props?.children?.map((subLabel) => {\n return titleCaseUpper(subLabel, upperCaseIgnore)\n }),\n },\n }\n } else if (typeof label?.props?.children === 'string') {\n label = {\n ...label,\n props: {\n ...label.props,\n children: titleCaseUpper(label?.props?.children, upperCaseIgnore),\n },\n }\n }\n }\n }\n return label\n};\n"]}
|