tntd 3.0.0-beta.16 → 3.0.0-beta.19

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 (121) hide show
  1. package/es/descriptions/descriptions.js +20 -16
  2. package/es/descriptions/descriptions.js.map +1 -1
  3. package/es/descriptions/descriptions.less +6 -2
  4. package/es/descriptions/style/index.less +1 -0
  5. package/es/drawer/drawer.js +9 -3
  6. package/es/drawer/drawer.js.map +1 -1
  7. package/es/handle-icon/index.js +11 -5
  8. package/es/handle-icon/index.js.map +1 -1
  9. package/es/handle-icon/index.less +7 -2
  10. package/es/page-container/index.js +1 -1
  11. package/es/page-container/index.js.map +1 -1
  12. package/es/page-loading/index.js +1 -1
  13. package/es/page-loading/index.js.map +1 -1
  14. package/es/query-form/Field/Checkbox.js +1 -1
  15. package/es/query-form/Field/Checkbox.js.map +1 -1
  16. package/es/query-form/Field/SelectInput.js +4 -22
  17. package/es/query-form/Field/SelectInput.js.map +1 -1
  18. package/es/query-form/Field/fieldsMap.js +2 -2
  19. package/es/query-form/Field/fieldsMap.js.map +1 -1
  20. package/es/query-form/Field/index.js +0 -1
  21. package/es/query-form/Field/index.js.map +1 -1
  22. package/es/query-form/index.js +332 -149
  23. package/es/query-form/index.js.map +1 -1
  24. package/es/query-form/index.less +60 -17
  25. package/es/query-form-backup/Field/Composition/FieldPopover.less +35 -0
  26. package/es/query-form-backup/Field/Composition/index.less +114 -0
  27. package/es/query-form-backup/index.less +90 -0
  28. package/es/table/expand.less +51 -0
  29. package/es/table/hooks/index.js +2 -1
  30. package/es/table/hooks/index.js.map +1 -1
  31. package/es/table/hooks/use-expand-fixed.js +76 -0
  32. package/es/table/hooks/use-expand-fixed.js.map +1 -0
  33. package/es/table/index.js +1 -0
  34. package/es/table/index.js.map +1 -1
  35. package/es/table/style/index.less +17 -31
  36. package/es/table/table.js +115 -14
  37. package/es/table/table.js.map +1 -1
  38. package/es/table/table.less +8 -19
  39. package/es/table/utils.js +11 -0
  40. package/es/table/utils.js.map +1 -1
  41. package/es/table-container/index.js +1 -1
  42. package/es/table-container/index.js.map +1 -1
  43. package/es/tabs-container/index.js +1 -1
  44. package/es/tabs-container/index.js.map +1 -1
  45. package/es/title/index.js +4 -3
  46. package/es/title/index.js.map +1 -1
  47. package/es/tntd-action/Action.js +57 -11
  48. package/es/tntd-action/Action.js.map +1 -1
  49. package/es/tntd-action/index.less +5 -3
  50. package/lib/descriptions/descriptions.d.ts.map +1 -1
  51. package/lib/descriptions/descriptions.js +23 -18
  52. package/lib/descriptions/descriptions.js.map +1 -1
  53. package/lib/descriptions/descriptions.less +6 -2
  54. package/lib/descriptions/style/index.less +1 -0
  55. package/lib/drawer/drawer.d.ts +2 -0
  56. package/lib/drawer/drawer.d.ts.map +1 -1
  57. package/lib/drawer/drawer.js +8 -2
  58. package/lib/drawer/drawer.js.map +1 -1
  59. package/lib/handle-icon/index.d.ts.map +1 -1
  60. package/lib/handle-icon/index.js +11 -4
  61. package/lib/handle-icon/index.js.map +1 -1
  62. package/lib/handle-icon/index.less +7 -2
  63. package/lib/page-container/index.js +1 -1
  64. package/lib/page-container/index.js.map +1 -1
  65. package/lib/page-loading/index.js +1 -1
  66. package/lib/page-loading/index.js.map +1 -1
  67. package/lib/query-form/Field/Checkbox.js +1 -1
  68. package/lib/query-form/Field/Checkbox.js.map +1 -1
  69. package/lib/query-form/Field/SelectInput.d.ts.map +1 -1
  70. package/lib/query-form/Field/SelectInput.js +3 -15
  71. package/lib/query-form/Field/SelectInput.js.map +1 -1
  72. package/lib/query-form/Field/fieldsMap.d.ts +3 -6
  73. package/lib/query-form/Field/fieldsMap.js +2 -2
  74. package/lib/query-form/Field/fieldsMap.js.map +1 -1
  75. package/lib/query-form/Field/index.d.ts.map +1 -1
  76. package/lib/query-form/Field/index.js +0 -1
  77. package/lib/query-form/Field/index.js.map +1 -1
  78. package/lib/query-form/index.d.ts +27 -15
  79. package/lib/query-form/index.d.ts.map +1 -1
  80. package/lib/query-form/index.js +356 -171
  81. package/lib/query-form/index.js.map +1 -1
  82. package/lib/query-form/index.less +60 -17
  83. package/lib/query-form-backup/Field/Composition/FieldPopover.less +35 -0
  84. package/lib/query-form-backup/Field/Composition/index.less +114 -0
  85. package/lib/query-form-backup/index.less +90 -0
  86. package/lib/table/expand.less +51 -0
  87. package/lib/table/hooks/index.d.ts +1 -0
  88. package/lib/table/hooks/index.d.ts.map +1 -1
  89. package/lib/table/hooks/index.js +11 -0
  90. package/lib/table/hooks/index.js.map +1 -1
  91. package/lib/table/hooks/use-expand-fixed.d.ts +4 -0
  92. package/lib/table/hooks/use-expand-fixed.d.ts.map +1 -0
  93. package/lib/table/hooks/use-expand-fixed.js +106 -0
  94. package/lib/table/hooks/use-expand-fixed.js.map +1 -0
  95. package/lib/table/index.d.ts +1 -0
  96. package/lib/table/index.d.ts.map +1 -1
  97. package/lib/table/index.js +1 -0
  98. package/lib/table/index.js.map +1 -1
  99. package/lib/table/style/index.less +17 -31
  100. package/lib/table/table.d.ts +4 -1
  101. package/lib/table/table.d.ts.map +1 -1
  102. package/lib/table/table.js +112 -11
  103. package/lib/table/table.js.map +1 -1
  104. package/lib/table/table.less +8 -19
  105. package/lib/table/utils.d.ts +1 -0
  106. package/lib/table/utils.d.ts.map +1 -1
  107. package/lib/table/utils.js +13 -0
  108. package/lib/table/utils.js.map +1 -1
  109. package/lib/table-container/index.d.ts.map +1 -1
  110. package/lib/table-container/index.js +1 -1
  111. package/lib/table-container/index.js.map +1 -1
  112. package/lib/tabs-container/index.js +1 -1
  113. package/lib/tabs-container/index.js.map +1 -1
  114. package/lib/title/index.d.ts +1 -0
  115. package/lib/title/index.d.ts.map +1 -1
  116. package/lib/title/index.js +3 -2
  117. package/lib/title/index.js.map +1 -1
  118. package/lib/tntd-action/Action.js +62 -12
  119. package/lib/tntd-action/Action.js.map +1 -1
  120. package/lib/tntd-action/index.less +5 -3
  121. package/package.json +3 -2
package/es/table/table.js CHANGED
@@ -10,6 +10,7 @@ var __rest = this && this.__rest || function (s, e) {
10
10
  };
11
11
  import { ConfigConsumer } from 'antd/es/config-provider';
12
12
  import LocaleReceiver from 'antd/es/locale-provider/LocaleReceiver';
13
+ import Icon from '../icon/index';
13
14
  import { default as AntdTable } from 'antd/es/table';
14
15
  import Column from 'antd/es/table/Column';
15
16
  import ColumnGroup from 'antd/es/table/ColumnGroup';
@@ -17,11 +18,12 @@ import classNames from 'classnames';
17
18
  import React, { useMemo, useRef } from 'react';
18
19
  import Ellipsis from '../ellipsis';
19
20
  import { TableContext } from './context';
20
- import { useColumnSetting } from './hooks';
21
+ import { useColumnSetting, useExpandFixed } from './hooks';
21
22
  import { normalizeColumns } from './utils';
22
23
  import { titleCaseUpper } from '../utils/lang';
23
24
  import { TotalShower } from './total-shower';
24
25
  import { getLanguage } from '../prev-locale';
26
+ import ResizeObserver from 'rc-resize-observer';
25
27
  const sizeWidthMap = {
26
28
  default: 40,
27
29
  middle: 20,
@@ -55,6 +57,7 @@ export const Table = _a => {
55
57
  storageKey,
56
58
  columns,
57
59
  children,
60
+ sticky = true,
58
61
  shadowed,
59
62
  striped = true,
60
63
  showCellBorders = false,
@@ -65,10 +68,16 @@ export const Table = _a => {
65
68
  unUpperConverted,
66
69
  // 强制不要转换
67
70
  unTooltip,
68
- rowClassName
71
+ onExpandedRowsChange,
72
+ expandedRowRender,
73
+ // expandedRowKeys = [],
74
+ onExpand,
75
+ rowClassName,
76
+ smallPadding
69
77
  } = _a,
70
- rest = __rest(_a, ["className", "locale", "bordered", "size", "storageKey", "columns", "children", "shadowed", "striped", "showCellBorders", "enableToolbar", "refresh", "upperCaseIgnore", "unUpperConverted", "unTooltip", "rowClassName"]);
78
+ rest = __rest(_a, ["className", "locale", "bordered", "size", "storageKey", "columns", "children", "sticky", "shadowed", "striped", "showCellBorders", "enableToolbar", "refresh", "upperCaseIgnore", "unUpperConverted", "unTooltip", "onExpandedRowsChange", "expandedRowRender", "onExpand", "rowClassName", "smallPadding"]);
71
79
  const tableContainer = useRef(null);
80
+ const tableContainerWidth = React.useRef(0);
72
81
  // const [innerSize, setInnerSize] = useLocalStorage<TableProps<T>['size']>(
73
82
  // TABLE_SIZE_STORAGE_KEY,
74
83
  // 'default'
@@ -79,7 +88,6 @@ export const Table = _a => {
79
88
  var _a;
80
89
  if (striped || rowClassName || ((_a = rest.rowSelection) === null || _a === void 0 ? void 0 : _a.getCheckboxProps)) {
81
90
  return (record, index) => {
82
- var _a;
83
91
  const back = [];
84
92
  if (rowClassName) {
85
93
  if (_isFunction(rowClassName)) {
@@ -91,12 +99,12 @@ export const Table = _a => {
91
99
  if (striped && index % 2 === 1) {
92
100
  back.push(`${prefixCls}-row-even`);
93
101
  }
94
- if ((_a = rest.rowSelection) === null || _a === void 0 ? void 0 : _a.getCheckboxProps) {
95
- const checkboxProps = rest.rowSelection.getCheckboxProps(record);
96
- if (checkboxProps && checkboxProps.disabled) {
97
- back.push(`${prefixCls}-row-disabled`);
98
- }
99
- }
102
+ // if (rest.rowSelection?.getCheckboxProps) {
103
+ // const checkboxProps: any = rest.rowSelection.getCheckboxProps(record)
104
+ // if (checkboxProps && checkboxProps.disabled) {
105
+ // back.push(`${prefixCls}-row-disabled`)
106
+ // }
107
+ // }
100
108
  return back.join(' ');
101
109
  };
102
110
  }
@@ -181,6 +189,91 @@ export const Table = _a => {
181
189
  // setInnerSize(size)
182
190
  // }
183
191
  // }, [setInnerSize, size])
192
+ /**
193
+ * expand 与 fix 兼容,expand悬浮
194
+ */
195
+ const [tableKey, trigger] = useExpandFixed();
196
+ // 自定义展开收起
197
+ const customExpandIcon = p => {
198
+ const {
199
+ expanded
200
+ } = p;
201
+ if (expanded) {
202
+ return React.createElement("span", {
203
+ style: {
204
+ marginLeft: !rest.rowSelection ? '0px' : undefined,
205
+ paddingLeft: !rest.rowSelection ? '0px' : undefined
206
+ },
207
+ className: "expand",
208
+ onClick: e => {
209
+ e.stopPropagation();
210
+ p === null || p === void 0 ? void 0 : p.onExpand(p.record, e);
211
+ if (onExpand) onExpand(p.expanded, p.record);
212
+ }
213
+ }, React.createElement(Icon, {
214
+ type: "minus-square"
215
+ }));
216
+ }
217
+ return React.createElement("span", {
218
+ style: {
219
+ marginLeft: !rest.rowSelection ? '0px' : undefined,
220
+ paddingLeft: !rest.rowSelection ? '0px' : undefined
221
+ },
222
+ className: "expand",
223
+ onClick: e => {
224
+ e.stopPropagation();
225
+ p === null || p === void 0 ? void 0 : p.onExpand(p.record, e);
226
+ if (onExpand) onExpand(p.expanded, p.record);
227
+ }
228
+ }, React.createElement(Icon, {
229
+ type: "plus-square"
230
+ }));
231
+ };
232
+ const expandIconColumnIndex = (rest === null || rest === void 0 ? void 0 : rest.rowSelection) ? 1 : rest.expandIconColumnIndex || 0; // 确定checkbox框位置
233
+ // 设置expandIcon的默认值
234
+ let expandIcon = rest.expandIcon;
235
+ if (expandedRowRender && !rest.expandIcon) {
236
+ expandIcon = props => customExpandIcon(Object.assign(Object.assign({}, props), {
237
+ needIndentSpaced: true
238
+ }));
239
+ } else if (!expandedRowRender) {
240
+ expandIcon = undefined;
241
+ }
242
+ // const [activeKeys, setActiveKeys] = React.useState<string[] | number[] | []>(
243
+ // expandedRowKeys.splice(0, 1) as string[] | number[] | []
244
+ // )
245
+ const stickyProps = useMemo(() => {
246
+ return {
247
+ onExpandedRowsChange: arg => {
248
+ const key = arg && arg[arg.length - 1];
249
+ if (onExpandedRowsChange) onExpandedRowsChange([Number(key)]);
250
+ // 触发MutationObserver监听
251
+ trigger(key);
252
+ },
253
+ expandedRowRender: expandedRowRender ? (record, index, indent, expanded) => {
254
+ const padding = 0;
255
+ return React.createElement("div", {
256
+ className: "ant-table-expanded-row-fixed",
257
+ style: {
258
+ width: tableContainerWidth.current + padding
259
+ }
260
+ }, expandedRowRender && expandedRowRender(record, index, indent, expanded));
261
+ } : undefined,
262
+ expandIconAsCell: true,
263
+ expandIconColumnIndex: expandIconColumnIndex,
264
+ expandIcon: expandIcon
265
+ // expandedRowKeys: activeKeys,
266
+ // onExpand: (expanded: boolean, record: any) => {
267
+ // const rowKeys: string[] | number[] = [findRowKey(record, rest.rowKey || 'key')] as
268
+ // | string[]
269
+ // | number[]
270
+ // setActiveKeys(expanded ? rowKeys : [])
271
+ // },
272
+ };
273
+ }, [expandedRowRender, expandIconColumnIndex, expandIcon,
274
+ // activeKeys,
275
+ // rest.rowKey,
276
+ onExpandedRowsChange, trigger]);
184
277
  return React.createElement(TableContext.Provider, {
185
278
  value: {
186
279
  // size: innerSize,
@@ -203,24 +296,32 @@ export const Table = _a => {
203
296
  }, localeObject => {
204
297
  // const locale = localeObject as Record<string, string>
205
298
  // const paginationConfig = pagination ? getDefaultPagination(locale) : pagination
206
- return React.createElement(AntdTable, Object.assign({
299
+ return React.createElement(ResizeObserver, {
300
+ onResize: ({
301
+ width
302
+ }) => {
303
+ tableContainerWidth.current = width;
304
+ }
305
+ }, React.createElement(AntdTable, Object.assign({
207
306
  className: classNames(
208
307
  // prefixCls,
209
- 'tnt-table-wrapper', {
308
+ 'tnt-table-wrapper', `${tableKey} collapse-panel`, {
210
309
  [`${prefixCls}-borderless`]: !bordered,
211
310
  [`${prefixCls}-hide-cell-borders`]: !showCellBorders,
212
311
  [`${prefixCls}-size-small`]: size === 'small',
213
312
  [`${prefixCls}-size-middle`]: size === 'middle',
214
313
  [`${prefixCls}-striped`]: striped,
215
314
  [`${prefixCls}-shadowed`]: shadowed,
216
- [`${prefixCls}-has-footer`]: rest.footer
315
+ [`${prefixCls}-has-footer`]: rest.footer,
316
+ [`${prefixCls}-sticky`]: sticky,
317
+ [`${prefixCls}-small-padding`]: smallPadding
217
318
  }, className),
218
319
  locale: locale,
219
320
  bordered: bordered,
220
321
  size: size,
221
322
  columns: newColumns,
222
323
  rowClassName: getRowClassName(prefixCls)
223
- }, rest));
324
+ }, rest, sticky ? stickyProps : {})));
224
325
  }));
225
326
  }));
226
327
  };
@@ -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, { useCallback, useMemo, useRef } from 'react'\nimport { isFunction, isString } from 'lodash'\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 rowClassName?: (record: T, index: number) => 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,\n striped = true,\n showCellBorders = false,\n // pagination,\n enableToolbar = false,\n refresh,\n upperCaseIgnore,\n unUpperConverted, // 强制不要转换\n unTooltip,\n rowClassName,\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 getRowClassName = (prefixCls: string) => {\n if (striped || rowClassName || rest.rowSelection?.getCheckboxProps) {\n return (record: T, index: number) => {\n const back = []\n if (rowClassName) {\n if (isFunction(rowClassName)) {\n back.push(rowClassName(record, index))\n } else if (isString(rowClassName)) {\n back.push(rowClassName)\n }\n }\n if (striped && index % 2 === 1) {\n back.push(`${prefixCls}-row-even`)\n }\n if (rest.rowSelection?.getCheckboxProps) {\n const checkboxProps: any = rest.rowSelection.getCheckboxProps(record)\n if (checkboxProps && checkboxProps.disabled) {\n back.push(`${prefixCls}-row-disabled`)\n }\n }\n return back.join(' ')\n }\n }\n return rowClassName\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}-striped`]: striped,\n [`${prefixCls}-shadowed`]: shadowed,\n [`${prefixCls}-has-footer`]: rest.footer,\n },\n className\n )}\n locale={locale}\n bordered={bordered}\n size={size}\n columns={newColumns}\n rowClassName={getRowClassName(prefixCls)}\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 ExpandIconProps,\n} from 'antd/es/table'\nimport Icon from '../icon/index'\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 { isFunction, isString } from 'lodash'\nimport Ellipsis from '../ellipsis'\nimport { TableContext } from './context'\nimport { useColumnSetting, useExpandFixed } from './hooks'\nimport type { keyType } from './hooks'\nimport { normalizeColumns } from './utils'\nimport { titleCaseUpper } from '../utils/lang'\nimport { TotalShower } from './total-shower'\nimport { getLanguage } from '../prev-locale'\nimport ResizeObserver from 'rc-resize-observer'\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 sticky?: boolean\n expandCard?: 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 smallPadding?: boolean // 缩小间距\n upperCaseIgnore?: string[]\n rowClassName?: (record: T, index: number) => 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 sticky = true,\n shadowed,\n striped = true,\n showCellBorders = false,\n // pagination,\n enableToolbar = false,\n refresh,\n upperCaseIgnore,\n unUpperConverted, // 强制不要转换\n unTooltip,\n onExpandedRowsChange,\n expandedRowRender,\n // expandedRowKeys = [],\n onExpand,\n rowClassName,\n smallPadding,\n ...rest\n}: TableProps<T>) => {\n const tableContainer = useRef<HTMLDivElement>(null)\n const tableContainerWidth = React.useRef(0)\n // const [innerSize, setInnerSize] = useLocalStorage<TableProps<T>['size']>(\n // TABLE_SIZE_STORAGE_KEY,\n // 'default'\n // )\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 getRowClassName = (prefixCls: string) => {\n if (striped || rowClassName || rest.rowSelection?.getCheckboxProps) {\n return (record: T, index: number) => {\n const back = []\n if (rowClassName) {\n if (isFunction(rowClassName)) {\n back.push(rowClassName(record, index))\n } else if (isString(rowClassName)) {\n back.push(rowClassName)\n }\n }\n if (striped && index % 2 === 1) {\n back.push(`${prefixCls}-row-even`)\n }\n // if (rest.rowSelection?.getCheckboxProps) {\n // const checkboxProps: any = rest.rowSelection.getCheckboxProps(record)\n // if (checkboxProps && checkboxProps.disabled) {\n // back.push(`${prefixCls}-row-disabled`)\n // }\n // }\n return back.join(' ')\n }\n }\n return rowClassName\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 /**\n * expand 与 fix 兼容,expand悬浮\n */\n const [tableKey, trigger] = useExpandFixed()\n // 自定义展开收起\n const customExpandIcon = (p: any) => {\n const { expanded } = p\n if (expanded) {\n return (\n <span\n style={{\n marginLeft: !rest.rowSelection ? '0px' : undefined,\n paddingLeft: !rest.rowSelection ? '0px' : undefined,\n }}\n className=\"expand\"\n onClick={(e) => {\n e.stopPropagation()\n p?.onExpand(p.record, e)\n if (onExpand) onExpand(p.expanded, p.record)\n }}\n >\n <Icon type=\"minus-square\" />\n </span>\n )\n }\n\n return (\n <span\n style={{\n marginLeft: !rest.rowSelection ? '0px' : undefined,\n paddingLeft: !rest.rowSelection ? '0px' : undefined,\n }}\n className=\"expand\"\n onClick={(e) => {\n e.stopPropagation()\n p?.onExpand(p.record, e)\n if (onExpand) onExpand(p.expanded, p.record)\n }}\n >\n <Icon type=\"plus-square\" />\n </span>\n )\n }\n const expandIconColumnIndex = rest?.rowSelection ? 1 : rest.expandIconColumnIndex || 0 // 确定checkbox框位置\n // 设置expandIcon的默认值\n let expandIcon: ((props: ExpandIconProps<T>) => React.ReactNode) | undefined = rest.expandIcon\n if (expandedRowRender && !rest.expandIcon) {\n expandIcon = (props: any) => customExpandIcon({ ...props, needIndentSpaced: true })\n } else if (!expandedRowRender) {\n expandIcon = undefined\n }\n // const [activeKeys, setActiveKeys] = React.useState<string[] | number[] | []>(\n // expandedRowKeys.splice(0, 1) as string[] | number[] | []\n // )\n const stickyProps = useMemo(() => {\n return {\n onExpandedRowsChange: (arg: string[] | number[]) => {\n const key: keyType = arg && arg[arg.length - 1]\n if (onExpandedRowsChange) onExpandedRowsChange([Number(key)])\n\n // 触发MutationObserver监听\n trigger(key as string)\n },\n expandedRowRender: expandedRowRender\n ? (record: T, index: number, indent: number, expanded: boolean) => {\n const padding = 0\n return (\n <div\n className=\"ant-table-expanded-row-fixed\"\n style={{ width: tableContainerWidth.current + padding }}\n >\n {expandedRowRender && expandedRowRender(record, index, indent, expanded)}\n </div>\n )\n }\n : undefined,\n expandIconAsCell: true,\n expandIconColumnIndex: expandIconColumnIndex,\n expandIcon: expandIcon,\n // expandedRowKeys: activeKeys,\n // onExpand: (expanded: boolean, record: any) => {\n // const rowKeys: string[] | number[] = [findRowKey(record, rest.rowKey || 'key')] as\n // | string[]\n // | number[]\n // setActiveKeys(expanded ? rowKeys : [])\n // },\n }\n }, [\n expandedRowRender,\n expandIconColumnIndex,\n expandIcon,\n // activeKeys,\n // rest.rowKey,\n onExpandedRowsChange,\n trigger,\n ])\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 <ResizeObserver\n onResize={({ width }) => {\n tableContainerWidth.current = width\n }}\n >\n <AntdTable\n className={classNames(\n // prefixCls,\n 'tnt-table-wrapper',\n `${tableKey} collapse-panel`,\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}-striped`]: striped,\n [`${prefixCls}-shadowed`]: shadowed,\n [`${prefixCls}-has-footer`]: rest.footer,\n [`${prefixCls}-sticky`]: sticky,\n [`${prefixCls}-small-padding`]: smallPadding,\n },\n className\n )}\n locale={locale}\n bordered={bordered}\n size={size}\n columns={newColumns}\n rowClassName={getRowClassName(prefixCls)}\n {...rest}\n {...(sticky ? stickyProps : {})}\n />\n </ResizeObserver>\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"]}
@@ -8,25 +8,9 @@
8
8
  background-color: @white;
9
9
  border-radius: @border-radius-base;
10
10
 
11
- .@{table-prefix-cls}-tbody > tr {
12
- &.@{table-prefix-cls}-row-disabled {
13
- &:hover,
14
- & {
15
- td {
16
- background-color: @table-disabled-row-bg;
17
- color: @table-disabled-row-text-color;
18
- }
19
- }
20
- }
21
- }
22
-
23
11
  &.@{table-prefix-cls}-borderless {
24
12
  .@{table-prefix-cls}-small {
25
13
  border: none;
26
-
27
- // > .ant-table-content .ant-table-row:last-child td {
28
- // border-bottom: @border-width-base @border-style-base @border-color-split;
29
- // }
30
14
  }
31
15
  }
32
16
 
@@ -34,11 +18,16 @@
34
18
  box-shadow: @table-borderless-shadow;
35
19
  }
36
20
 
21
+ &.@{table-prefix-cls}-small-padding{
22
+ .@{table-prefix-cls}-tbody > tr > td {
23
+ padding-top: 8px;
24
+ padding-bottom: 8px;
25
+ }
26
+ }
27
+
37
28
  &.@{table-prefix-cls}-striped {
38
29
  .@{table-prefix-cls}-tbody
39
- > .@{table-prefix-cls}-row-even:not(:hover):not(.@{table-prefix-cls}-row-selected):not(
40
- .@{table-prefix-cls}-row-disabled
41
- ):not(.@{table-prefix-cls}-row-hover)
30
+ > .@{table-prefix-cls}-row-even:not(:hover):not(.@{table-prefix-cls}-row-hover)
42
31
  > td {
43
32
  background: @bg-grey-first;
44
33
  }
package/es/table/utils.js CHANGED
@@ -16,4 +16,15 @@ export function normalizeColumns(elements) {
16
16
  columns.push(column);
17
17
  });
18
18
  return columns;
19
+ }
20
+ // 生成随机数,首位是字母
21
+ export function makeRandomCode(num = 10) {
22
+ const numArr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
23
+ const charArr = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'];
24
+ const arr = [...numArr, ...charArr];
25
+ let code = charArr[Math.floor(Math.random() * charArr.length)];
26
+ for (let i = 0; i < num - 1; i++) {
27
+ code += `${arr[Math.floor(Math.random() * arr.length)]}`;
28
+ }
29
+ return code;
19
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/table/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,MAAM,UAAU,gBAAgB,CAAI,QAA6B;IAC/D,MAAM,OAAO,GAAqB,EAAE,CAAA;IAEpC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE;QAC3C,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;YAClC,OAAM;SACP;QAED,MAAM,MAAM,qBACN,OAAO,CAAC,KAAwB,CACrC,CAAA;QAED,IAAI,OAAO,CAAC,GAAG,EAAE;YACf,MAAM,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAA;SACzB;QAED,8DAA8D;QAC9D,IAAI,OAAO,CAAC,IAAI,IAAK,OAAO,CAAC,IAAY,CAAC,wBAAwB,EAAE;YAClE,MAAM,CAAC,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC,QAAiB,CAAC,CAAA;SAC7D;QAED,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACtB,CAAC,CAAC,CAAA;IAEF,OAAO,OAAO,CAAA;AAChB,CAAC","sourcesContent":["import type { ColumnProps } from 'antd/es/table'\nimport React from 'react'\n\nexport function normalizeColumns<T>(elements: React.ReactChildren) {\n const columns: ColumnProps<T>[] = []\n\n React.Children.forEach(elements, (element) => {\n if (!React.isValidElement(element)) {\n return\n }\n\n const column = {\n ...(element.props as ColumnProps<T>),\n }\n\n if (element.key) {\n column.key = element.key\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (element.type && (element.type as any).__ANT_TABLE_COLUMN_GROUP) {\n column.children = normalizeColumns(column.children as never)\n }\n\n columns.push(column)\n })\n\n return columns\n}\n"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/table/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,MAAM,UAAU,gBAAgB,CAAI,QAA6B;IAC/D,MAAM,OAAO,GAAqB,EAAE,CAAA;IAEpC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE;QAC3C,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;YAClC,OAAM;SACP;QAED,MAAM,MAAM,qBACN,OAAO,CAAC,KAAwB,CACrC,CAAA;QAED,IAAI,OAAO,CAAC,GAAG,EAAE;YACf,MAAM,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAA;SACzB;QAED,8DAA8D;QAC9D,IAAI,OAAO,CAAC,IAAI,IAAK,OAAO,CAAC,IAAY,CAAC,wBAAwB,EAAE;YAClE,MAAM,CAAC,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC,QAAiB,CAAC,CAAA;SAC7D;QAED,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACtB,CAAC,CAAC,CAAA;IAEF,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,cAAc;AAEd,MAAM,UAAU,cAAc,CAAC,GAAG,GAAG,EAAE;IACrC,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAC7C,MAAM,OAAO,GAAG;QACd,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;KACJ,CAAA;IACD,MAAM,GAAG,GAAG,CAAC,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,CAAA;IACnC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;IAC9D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QAChC,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAA;KACzD;IACD,OAAO,IAAI,CAAA;AACb,CAAC","sourcesContent":["import type { ColumnProps } from 'antd/es/table'\nimport React from 'react'\n\nexport function normalizeColumns<T>(elements: React.ReactChildren) {\n const columns: ColumnProps<T>[] = []\n\n React.Children.forEach(elements, (element) => {\n if (!React.isValidElement(element)) {\n return\n }\n\n const column = {\n ...(element.props as ColumnProps<T>),\n }\n\n if (element.key) {\n column.key = element.key\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (element.type && (element.type as any).__ANT_TABLE_COLUMN_GROUP) {\n column.children = normalizeColumns(column.children as never)\n }\n\n columns.push(column)\n })\n\n return columns\n}\n\n// 生成随机数,首位是字母\n\nexport function makeRandomCode(num = 10) {\n const numArr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]\n const charArr = [\n 'a',\n 'b',\n 'c',\n 'd',\n 'e',\n 'f',\n 'g',\n 'h',\n 'i',\n 'j',\n 'k',\n 'l',\n 'm',\n 'n',\n 'o',\n 'p',\n 'q',\n 'r',\n 's',\n 't',\n 'u',\n 'v',\n 'w',\n 'x',\n 'y',\n 'z',\n ]\n const arr = [...numArr, ...charArr]\n let code = charArr[Math.floor(Math.random() * charArr.length)]\n for (let i = 0; i < num - 1; i++) {\n code += `${arr[Math.floor(Math.random() * arr.length)]}`\n }\n return code\n}\n"]}
@@ -6,7 +6,7 @@ export default ((WrappedComponent, options = {}) => {
6
6
  padding = true,
7
7
  className = ''
8
8
  } = options;
9
- const currentVersion = version || localStorage.getItem('app_version') || 'v2';
9
+ const currentVersion = version || 'v3';
10
10
  return props => React.createElement("div", {
11
11
  className: cn('tnt-table-v-container', 'tnt-current-' + currentVersion, className, {
12
12
  'tnt-table-v-container-hide-padding': !padding
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/table-container/index.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAA;AAE3B,OAAO,cAAc,CAAC;AAEtB,eAAe,CAAC,gBAAgB,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE;IAC9C,MAAM,EAAE,OAAO,EAAC,OAAO,GAAC,IAAI,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,OAAO,CAAA;IACxD,MAAM,cAAc,GAAG,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC;IAE9E,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CACd,6BAAK,SAAS,EAAE,EAAE,CAAC,uBAAuB,EAAE,cAAc,GAAG,cAAc,EAAE,SAAS,EAAE;YACpF,oCAAoC,EAAE,CAAC,OAAO;SAC/C,CAAC;QACA,oBAAC,gBAAgB,oBAAK,KAAK,EAAM,OAAO,EAAI,CAC1C,CACT,CAAC;AACN,CAAC,CAAC","sourcesContent":["import cn from 'classnames'\n\nimport './index.less';\n\nexport default (WrappedComponent, options = {}) => {\n const { version,padding=true, className = '' } = options\n const currentVersion = version || localStorage.getItem('app_version') || 'v2';\n\n return (props) => (\n <div className={cn('tnt-table-v-container', 'tnt-current-' + currentVersion, className, {\n 'tnt-table-v-container-hide-padding': !padding,\n })}>\n <WrappedComponent {...props} {...options} />\n </div>\n ); \n};\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/table-container/index.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAA;AAE3B,OAAO,cAAc,CAAA;AAErB,eAAe,CAAC,gBAAgB,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE;IAC9C,MAAM,EAAE,OAAO,EAAE,OAAO,GAAC,IAAI,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,OAAO,CAAA;IACzD,MAAM,cAAc,GAAG,OAAO,IAAI,IAAI,CAAC;IAEzC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAChB,6BACE,SAAS,EAAE,EAAE,CAAC,uBAAuB,EAAE,cAAc,GAAG,cAAc,EAAE,SAAS,EAAE;YACjF,oCAAoC,EAAE,CAAC,OAAO;SAC/C,CAAC;QAEF,oBAAC,gBAAgB,oBAAK,KAAK,EAAM,OAAO,EAAI,CACxC,CACP,CAAA;AACH,CAAC,CAAA","sourcesContent":["import cn from 'classnames'\n\nimport './index.less'\n\nexport default (WrappedComponent, options = {}) => {\n const { version, padding=true, className = '' } = options\n const currentVersion = version || 'v3';\n\n return (props) => (\n <div\n className={cn('tnt-table-v-container', 'tnt-current-' + currentVersion, className, {\n 'tnt-table-v-container-hide-padding': !padding,\n })}\n >\n <WrappedComponent {...props} {...options} />\n </div>\n )\n}\n"]}
@@ -6,7 +6,7 @@ export default ((WrappedComponent, options = {}) => {
6
6
  version,
7
7
  className = ''
8
8
  } = options;
9
- const currentVersion = version || localStorage.getItem('app_version') || 'v2';
9
+ const currentVersion = version || 'v3';
10
10
  return props => React.createElement("div", {
11
11
  className: cn('tnt-tabs-v-container', 'tnt-current-' + currentVersion, className)
12
12
  }, React.createElement(WrappedComponent, Object.assign({}, props, options)));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tabs-container/index.js"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,MAAM,YAAY,CAAA;AAE3B,OAAO,cAAc,CAAC;AAEtB,eAAe,CAAC,gBAAgB,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE;IAC9C,MAAM,EAAE,OAAO,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,OAAO,CAAA;IAC3C,MAAM,cAAc,GAAG,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC;IAE9E,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CACd,6BAAK,SAAS,EAAE,EAAE,CAAC,sBAAsB,EAAE,cAAc,GAAG,cAAc,EAAE,SAAS,CAAC;QAClF,oBAAC,gBAAgB,oBAAK,KAAK,EAAM,OAAO,EAAI,CAC1C,CACT,CAAC;AACN,CAAC,CAAC","sourcesContent":["import React from 'react'\nimport cn from 'classnames'\n\nimport './index.less';\n\nexport default (WrappedComponent, options = {}) => {\n const { version, className = '' } = options\n const currentVersion = version || localStorage.getItem('app_version') || 'v2';\n\n return (props) => (\n <div className={cn('tnt-tabs-v-container', 'tnt-current-' + currentVersion, className)}>\n <WrappedComponent {...props} {...options} />\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tabs-container/index.js"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,MAAM,YAAY,CAAA;AAE3B,OAAO,cAAc,CAAA;AAErB,eAAe,CAAC,gBAAgB,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE;IAC9C,MAAM,EAAE,OAAO,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,OAAO,CAAA;IAC3C,MAAM,cAAc,GAAG,OAAO,IAAI,IAAI,CAAC;IAEzC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAChB,6BAAK,SAAS,EAAE,EAAE,CAAC,sBAAsB,EAAE,cAAc,GAAG,cAAc,EAAE,SAAS,CAAC;QACpF,oBAAC,gBAAgB,oBAAK,KAAK,EAAM,OAAO,EAAI,CACxC,CACP,CAAA;AACH,CAAC,CAAA","sourcesContent":["import React from 'react'\nimport cn from 'classnames'\n\nimport './index.less'\n\nexport default (WrappedComponent, options = {}) => {\n const { version, className = '' } = options\n const currentVersion = version || 'v3';\n\n return (props) => (\n <div className={cn('tnt-tabs-v-container', 'tnt-current-' + currentVersion, className)}>\n <WrappedComponent {...props} {...options} />\n </div>\n )\n}\n"]}
package/es/title/index.js CHANGED
@@ -18,11 +18,12 @@ export default (props => {
18
18
  size = 'default',
19
19
  extra,
20
20
  number,
21
- simple
21
+ simple,
22
+ className
22
23
  } = _a,
23
- rest = __rest(_a, ["title", "subTitle", "size", "extra", "number", "simple"]);
24
+ rest = __rest(_a, ["title", "subTitle", "size", "extra", "number", "simple", "className"]);
24
25
  return React.createElement("div", Object.assign({
25
- className: cn('tntd-title', size, {
26
+ className: cn('tntd-title', className, size, {
26
27
  'has-number': number
27
28
  }, {
28
29
  'is-simple': simple
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/title/index.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAA6B,MAAM,OAAO,CAAA;AACjD,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,cAAc,CAAA;AAWrB,eAAe,CAAC,KAAiB,EAAE,EAAE;IACnC,MAAM,KAQF,KAAK,IAAI,EAAE,EART,EACJ,KAAK,GAAG,MAAM,EACd,QAAQ,EACR,IAAI,GAAG,SAAS,EAChB,KAAK,EACL,MAAM,EACN,MAAM,OAEO,EADV,IAAI,cAPH,0DAQL,CAAc,CAAA;IAEf,OAAO,CACL,2CACE,SAAS,EAAE,EAAE,CAAC,YAAY,EAAE,IAAI,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,IAChF,IAAI;QAER,6BAAK,SAAS,EAAC,iBAAiB;YAC7B,MAAM,IAAI,2BAAG,SAAS,EAAC,OAAO,IAAE,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAK;YACzE,gCAAK,YAAY,CAAC,KAAK,CAAC,CAAM;YAC9B,kCAAO,QAAQ,CAAQ,CACnB;QACL,KAAK,IAAI,6BAAK,SAAS,EAAC,kBAAkB,IAAE,KAAK,CAAO,CACrD,CACP,CAAA;AACH,CAAC,CAAA","sourcesContent":["import React, { FC, ComponentProps } from 'react'\nimport cn from 'classnames'\nimport { doUpperTitle } from '../utils'\nimport './index.less'\n\nexport interface TitleProps extends ComponentProps<'div'> {\n title?: string\n subTitle?: string\n size?: 'default' | 'small' | 'middle' | 'large'\n extra?: React.ReactNode\n number?: number\n simple?: boolean\n}\n\nexport default (props: TitleProps) => {\n const {\n title = '暂无标题',\n subTitle,\n size = 'default',\n extra,\n number,\n simple,\n ...rest\n } = props || {}\n\n return (\n <div\n className={cn('tntd-title', size, { 'has-number': number }, { 'is-simple': simple })}\n {...rest}\n >\n <div className=\"tntd-title-text\">\n {number && <i className=\"count\">{number <= 9 ? `0${number}` : number}</i>}\n <h3>{doUpperTitle(title)}</h3>\n <span>{subTitle}</span>\n </div>\n {extra && <div className=\"tntd-title-extra\">{extra}</div>}\n </div>\n )\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/title/index.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAA6B,MAAM,OAAO,CAAA;AACjD,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,cAAc,CAAA;AAYrB,eAAe,CAAC,KAAiB,EAAE,EAAE;IACnC,MAAM,KASF,KAAK,IAAI,EAAE,EATT,EACJ,KAAK,GAAG,MAAM,EACd,QAAQ,EACR,IAAI,GAAG,SAAS,EAChB,KAAK,EACL,MAAM,EACN,MAAM,EACN,SAAS,OAEI,EADV,IAAI,cARH,uEASL,CAAc,CAAA;IAEf,OAAO,CACL,2CACE,SAAS,EAAE,EAAE,CACX,YAAY,EACZ,SAAS,EACT,IAAI,EACJ,EAAE,YAAY,EAAE,MAAM,EAAE,EACxB,EAAE,WAAW,EAAE,MAAM,EAAE,CACxB,IACG,IAAI;QAER,6BAAK,SAAS,EAAC,iBAAiB;YAC7B,MAAM,IAAI,2BAAG,SAAS,EAAC,OAAO,IAAE,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAK;YACzE,gCAAK,YAAY,CAAC,KAAK,CAAC,CAAM;YAC9B,kCAAO,QAAQ,CAAQ,CACnB;QACL,KAAK,IAAI,6BAAK,SAAS,EAAC,kBAAkB,IAAE,KAAK,CAAO,CACrD,CACP,CAAA;AACH,CAAC,CAAA","sourcesContent":["import React, { FC, ComponentProps } from 'react'\nimport cn from 'classnames'\nimport { doUpperTitle } from '../utils'\nimport './index.less'\n\nexport interface TitleProps extends ComponentProps<'div'> {\n title?: string\n subTitle?: string\n className?: string\n size?: 'default' | 'small' | 'middle' | 'large'\n extra?: React.ReactNode\n number?: number\n simple?: boolean\n}\n\nexport default (props: TitleProps) => {\n const {\n title = '暂无标题',\n subTitle,\n size = 'default',\n extra,\n number,\n simple,\n className,\n ...rest\n } = props || {}\n\n return (\n <div\n className={cn(\n 'tntd-title',\n className,\n size,\n { 'has-number': number },\n { 'is-simple': simple }\n )}\n {...rest}\n >\n <div className=\"tntd-title-text\">\n {number && <i className=\"count\">{number <= 9 ? `0${number}` : number}</i>}\n <h3>{doUpperTitle(title)}</h3>\n <span>{subTitle}</span>\n </div>\n {extra && <div className=\"tntd-title-extra\">{extra}</div>}\n </div>\n )\n}\n"]}
@@ -26,9 +26,10 @@ export default function WarpAction(_a) {
26
26
  return React.createElement(LocaleReceiver, {
27
27
  componentName: "TntdAction"
28
28
  }, locale => {
29
- return React.createElement(Action, Object.assign({}, other, {
30
- locale: locale,
31
- getContainer: _getContainer
29
+ return React.createElement(Action, Object.assign({
30
+ getPopupContainer: _getContainer
31
+ }, other, {
32
+ locale: locale
32
33
  }));
33
34
  });
34
35
  });
@@ -37,28 +38,73 @@ function Action({
37
38
  title,
38
39
  hidden,
39
40
  data,
41
+ afterClose,
40
42
  locale,
41
43
  className,
42
- getContainer
44
+ width = 700,
45
+ getPopupContainer
43
46
  }) {
44
47
  const [visible, setVisible] = useState(false);
48
+ const [offset, setOffset] = useState({
49
+ left: 400,
50
+ bottom: 100,
51
+ width
52
+ });
45
53
  const ref = useRef();
54
+ const refDom = useRef();
46
55
  useEffect(() => {
47
- ref.current = getContainer();
48
- }, [getContainer]);
56
+ ref.current = getPopupContainer();
57
+ }, [getPopupContainer]);
49
58
  useEffect(() => {
50
- setVisible(data.length > 0);
51
- }, [data]);
59
+ const visible = data.length > 0;
60
+ if (visible && ref.current) {
61
+ const offset = ref.current.getBoundingClientRect();
62
+ setOffset({
63
+ left: offset.left + (offset.width - width) / 2,
64
+ bottom: 100,
65
+ width
66
+ });
67
+ }
68
+ setVisible(visible);
69
+ }, [data, width]);
70
+ const onMouseDown = e => {
71
+ const startX = e.clientX - offset.left;
72
+ const startY = e.clientY + offset.bottom;
73
+ const onmousemove = e => {
74
+ refDom.current.style.left = e.clientX - startX + 'px';
75
+ refDom.current.style.bottom = startY - e.clientY + 'px';
76
+ };
77
+ const onmouseup = e => {
78
+ setOffset(offset => Object.assign(Object.assign({}, offset), {
79
+ left: e.clientX - startX,
80
+ bottom: startY - e.clientY
81
+ }));
82
+ document.removeEventListener('mousemove', onmousemove);
83
+ document.removeEventListener('mouseup', onmouseup);
84
+ };
85
+ document.addEventListener('mousemove', onmousemove);
86
+ document.addEventListener('mouseup', onmouseup);
87
+ };
52
88
  if (ref.current && visible && !hidden) {
53
89
  return ReactDOM.createPortal(React.createElement("div", {
54
- className: classNames('tnt-action', className)
90
+ className: classNames('tnt-action', className),
91
+ style: offset,
92
+ onMouseDown: onMouseDown,
93
+ ref: refDom
55
94
  }, React.createElement("div", {
56
- className: "fr"
95
+ className: "fr",
96
+ onClick: e => {
97
+ e.stopPropagation();
98
+ }
57
99
  }, data), React.createElement(Button, {
58
100
  shape: "circle",
59
101
  icon: "close",
60
102
  type: "tertiary",
61
- onClick: () => setVisible(false)
103
+ onClick: e => {
104
+ e.stopPropagation();
105
+ setVisible(false);
106
+ afterClose && afterClose();
107
+ }
62
108
  }), React.createElement("span", {
63
109
  className: "tnt-action-text"
64
110
  }, title)), ref.current);
@@ -1 +1 @@
1
- {"version":3,"file":"Action.js","sourceRoot":"","sources":["../../src/tntd-action/Action.js"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAC1D,OAAO,QAAQ,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,cAAc,MAAM,wCAAwC,CAAA;AACnE,OAAO,UAAU,MAAM,YAAY,CAAA;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAElC,MAAM,mBAAmB,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAA;AAE/C,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAAgD;QAAhD,EAAE,YAAY,GAAG,mBAAmB,OAAY,EAAP,KAAK,cAA9C,gBAAgD,CAAF;IAC/E,OAAO,CACL,oBAAC,cAAc,QACZ,CAAC,EAAE,YAAY,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,EAAE,EAAE;QACjE,MAAM,aAAa,GAAG,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,YAAY,CAAA;QAE1F,OAAO,CACL,oBAAC,cAAc,IAAC,aAAa,EAAC,YAAY,IACvC,CAAC,MAAM,EAAE,EAAE;YACV,OAAO,oBAAC,MAAM,oBAAK,KAAK,IAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,IAAI,CAAA;QAC3E,CAAC,CACc,CAClB,CAAA;IACH,CAAC,CACc,CAClB,CAAA;AACH,CAAC;AAED,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE;IACtE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC7C,MAAM,GAAG,GAAG,MAAM,EAAE,CAAA;IAEpB,SAAS,CAAC,GAAG,EAAE;QACb,GAAG,CAAC,OAAO,GAAG,YAAY,EAAE,CAAA;IAC9B,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA;IAElB,SAAS,CAAC,GAAG,EAAE;QACb,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAC7B,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IAEV,IAAI,GAAG,CAAC,OAAO,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE;QACrC,OAAO,QAAQ,CAAC,YAAY,CAC1B,6BAAK,SAAS,EAAE,UAAU,CAAC,YAAY,EAAE,SAAS,CAAC;YACjD,6BAAK,SAAS,EAAC,IAAI,IAAE,IAAI,CAAO;YAChC,oBAAC,MAAM,IAAC,KAAK,EAAC,QAAQ,EAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAC,UAAU,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,GAAI;YACxF,8BAAM,SAAS,EAAC,iBAAiB,IAAE,KAAK,CAAQ,CAC5C,EACN,GAAG,CAAC,OAAO,CACZ,CAAA;KACF;IACD,OAAO,IAAI,CAAA;AACb,CAAC","sourcesContent":["import React, { useState, useEffect, useRef } from 'react'\nimport ReactDOM from 'react-dom'\nimport { ConfigConsumer } from 'antd/es/config-provider'\nimport LocaleReceiver from 'antd/es/locale-provider/LocaleReceiver'\nimport classNames from 'classnames'\nimport { Button } from '../button'\n\nconst defaultGetContainer = () => document.body\n\nexport default function WarpAction({ getContainer = defaultGetContainer, ...other }) {\n return (\n <ConfigConsumer>\n {({ getPrefixCls, getPopupContainer: getContextPopupContainer }) => {\n const _getContainer = getContainer === undefined ? getContextPopupContainer : getContainer\n\n return (\n <LocaleReceiver componentName=\"TntdAction\">\n {(locale) => {\n return <Action {...other} locale={locale} getContainer={_getContainer} />\n }}\n </LocaleReceiver>\n )\n }}\n </ConfigConsumer>\n )\n}\n\nfunction Action({ title, hidden, data, locale, className, getContainer }) {\n const [visible, setVisible] = useState(false)\n const ref = useRef()\n\n useEffect(() => {\n ref.current = getContainer()\n }, [getContainer])\n\n useEffect(() => {\n setVisible(data.length > 0)\n }, [data])\n\n if (ref.current && visible && !hidden) {\n return ReactDOM.createPortal(\n <div className={classNames('tnt-action', className)}>\n <div className=\"fr\">{data}</div>\n <Button shape=\"circle\" icon=\"close\" type=\"tertiary\" onClick={() => setVisible(false)} />\n <span className=\"tnt-action-text\">{title}</span>\n </div>,\n ref.current\n )\n }\n return null\n}\n"]}
1
+ {"version":3,"file":"Action.js","sourceRoot":"","sources":["../../src/tntd-action/Action.js"],"names":[],"mappings":"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","sourcesContent":["import React, { useState, useEffect, useRef } from 'react'\nimport ReactDOM from 'react-dom'\nimport { ConfigConsumer } from 'antd/es/config-provider'\nimport LocaleReceiver from 'antd/es/locale-provider/LocaleReceiver'\nimport classNames from 'classnames'\nimport { Button } from '../button'\n\nconst defaultGetContainer = () => document.body\n\nexport default function WarpAction({ getContainer = defaultGetContainer, ...other }) {\n return (\n <ConfigConsumer>\n {({ getPrefixCls, getPopupContainer: getContextPopupContainer }) => {\n const _getContainer = getContainer === undefined ? getContextPopupContainer : getContainer\n\n return (\n <LocaleReceiver componentName=\"TntdAction\">\n {(locale) => {\n return <Action getPopupContainer={_getContainer} {...other} locale={locale} />\n }}\n </LocaleReceiver>\n )\n }}\n </ConfigConsumer>\n )\n}\n\nfunction Action({\n title,\n hidden,\n data,\n afterClose,\n locale,\n className,\n width = 700,\n getPopupContainer,\n}) {\n const [visible, setVisible] = useState(false)\n const [offset, setOffset] = useState({ left: 400, bottom: 100, width })\n const ref = useRef()\n const refDom = useRef()\n\n useEffect(() => {\n ref.current = getPopupContainer()\n }, [getPopupContainer])\n\n useEffect(() => {\n const visible = data.length > 0\n if (visible && ref.current) {\n const offset = ref.current.getBoundingClientRect()\n setOffset({ left: offset.left + (offset.width - width) / 2, bottom: 100, width })\n }\n setVisible(visible)\n }, [data, width])\n\n const onMouseDown = (e) => {\n const startX = e.clientX - offset.left\n const startY = e.clientY + offset.bottom\n const onmousemove = (e) => {\n refDom.current.style.left = e.clientX - startX + 'px'\n refDom.current.style.bottom = startY - e.clientY + 'px'\n }\n const onmouseup = (e) => {\n setOffset((offset) => ({ ...offset, left: e.clientX - startX, bottom: startY - e.clientY }))\n document.removeEventListener('mousemove', onmousemove)\n document.removeEventListener('mouseup', onmouseup)\n }\n document.addEventListener('mousemove', onmousemove)\n document.addEventListener('mouseup', onmouseup)\n }\n\n if (ref.current && visible && !hidden) {\n return ReactDOM.createPortal(\n <div\n className={classNames('tnt-action', className)}\n style={offset}\n onMouseDown={onMouseDown}\n ref={refDom}\n >\n <div\n className=\"fr\"\n onClick={(e) => {\n e.stopPropagation()\n }}\n >\n {data}\n </div>\n <Button\n shape=\"circle\"\n icon=\"close\"\n type=\"tertiary\"\n onClick={(e) => {\n e.stopPropagation()\n setVisible(false)\n afterClose && afterClose()\n }}\n />\n <span className=\"tnt-action-text\">{title}</span>\n </div>,\n ref.current\n )\n }\n return null\n}\n"]}
@@ -1,16 +1,18 @@
1
1
  .tnt-action {
2
2
  position: fixed;
3
- bottom: 100px;
4
- width: @tnt-action-width;
5
- left: calc(50vw - @tnt-action-width / 2);
3
+ // bottom: 100px;
4
+ // width: @tnt-action-width;
5
+ // left: calc(50vw - @tnt-action-width / 2);
6
6
  padding: 10px 16px;
7
7
  background-color: @text-color;
8
8
  border-radius: @border-radius-base;
9
9
  z-index: 200;
10
+ cursor: grab;
10
11
  &-text {
11
12
  color: @white;
12
13
  margin-left: 20px;
13
14
  font-size: 14px;
15
+ user-select: none;
14
16
  .num {
15
17
  display: inline-block;
16
18
  width: 16px;
@@ -1 +1 @@
1
- {"version":3,"file":"descriptions.d.ts","sourceRoot":"","sources":["../../src/descriptions/descriptions.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAqB,MAAM,OAAO,CAAA;AACzC,OAAO,KAAK,EAAE,iBAAiB,IAAI,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AACtF,OAAO,KAAK,EAAE,qBAAqB,IAAI,yBAAyB,EAAE,MAAM,sBAAsB,CAAA;AAI9F,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAMlE,cAAc,sBAAsB,CAAA;AAEpC,MAAM,WAAW,iBAAkB,SAAQ,qBAAqB;IAC9D,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,eAAe,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,MAAM,WAAW,qBAAsB,SAAQ,yBAAyB;IACtE,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC9B;AAED,OAAO,CAAC,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAA;AAC/D,UAAU,qBACR,SAAQ,KAAK,CAAC,yBAAyB,CACrC,iBAAiB,GAAG,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAC1D;IACD,IAAI,EAAE,OAAO,gBAAgB,CAAA;CAC9B;AAED,eAAO,MAAM,YAAY,uBA2IC,CAAA"}
1
+ {"version":3,"file":"descriptions.d.ts","sourceRoot":"","sources":["../../src/descriptions/descriptions.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAqB,MAAM,OAAO,CAAA;AACzC,OAAO,KAAK,EAAE,iBAAiB,IAAI,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AACtF,OAAO,KAAK,EAAE,qBAAqB,IAAI,yBAAyB,EAAE,MAAM,sBAAsB,CAAA;AAI9F,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAMlE,cAAc,sBAAsB,CAAA;AAEpC,MAAM,WAAW,iBAAkB,SAAQ,qBAAqB;IAC9D,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,eAAe,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,MAAM,WAAW,qBAAsB,SAAQ,yBAAyB;IACtE,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC9B;AAED,OAAO,CAAC,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAA;AAC/D,UAAU,qBACR,SAAQ,KAAK,CAAC,yBAAyB,CACrC,iBAAiB,GAAG,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAC1D;IACD,IAAI,EAAE,OAAO,gBAAgB,CAAA;CAC9B;AAED,eAAO,MAAM,YAAY,uBAsJC,CAAA"}