@dtjoy/dt-design 1.0.2 → 1.0.4
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/esm/blockHeader/index.js +4 -4
- package/esm/blockHeader/style/index.less +1 -1
- package/esm/collapsible/index.js +1 -1
- package/esm/flex/index.js +1 -1
- package/esm/flex/utils.js +1 -1
- package/esm/formList/index.d.ts +77 -0
- package/esm/formList/index.js +141 -0
- package/esm/formList/style/index.d.ts +2 -0
- package/esm/formList/style/index.js +2 -0
- package/esm/formList/style/index.less +45 -0
- package/esm/index.d.ts +5 -3
- package/esm/index.js +6 -47
- package/esm/overflowList/index.d.ts +39 -0
- package/esm/overflowList/index.js +165 -0
- package/esm/overflowList/style/index.d.ts +2 -0
- package/esm/overflowList/style/index.js +2 -0
- package/esm/overflowList/style/index.less +9 -0
- package/esm/resizeObserver/index.d.ts +45 -0
- package/esm/resizeObserver/index.js +175 -0
- package/esm/splitter/SplitBar.js +1 -1
- package/esm/splitter/Splitter.js +11 -40
- package/esm/splitter/hooks/sizeUtil.js +20 -4
- package/esm/splitter/hooks/useSizes.js +2 -2
- package/esm/splitter/interface.d.ts +1 -0
- package/esm/statusTag/index.js +9 -9
- package/lib/blockHeader/index.js +5 -5
- package/lib/blockHeader/style/index.less +1 -1
- package/lib/collapsible/index.js +3 -3
- package/lib/flex/index.js +2 -2
- package/lib/flex/utils.js +3 -2
- package/lib/formList/index.d.ts +77 -0
- package/lib/formList/index.js +128 -0
- package/lib/formList/style/index.d.ts +2 -0
- package/lib/formList/style/index.js +4 -0
- package/lib/formList/style/index.less +45 -0
- package/lib/index.d.ts +5 -3
- package/lib/index.js +31 -5
- package/lib/overflowList/index.d.ts +39 -0
- package/lib/overflowList/index.js +143 -0
- package/lib/overflowList/style/index.d.ts +2 -0
- package/lib/overflowList/style/index.js +4 -0
- package/lib/overflowList/style/index.less +9 -0
- package/lib/resizeObserver/index.d.ts +45 -0
- package/lib/resizeObserver/index.js +136 -0
- package/lib/splitter/SplitBar.js +3 -3
- package/lib/splitter/Splitter.js +9 -39
- package/lib/splitter/hooks/sizeUtil.js +12 -0
- package/lib/splitter/hooks/useSizes.js +2 -2
- package/lib/splitter/interface.d.ts +1 -0
- package/lib/statusTag/index.js +9 -9
- package/package.json +133 -142
package/esm/blockHeader/index.js
CHANGED
|
@@ -12,7 +12,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
12
12
|
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
13
13
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
14
14
|
import React, { useState } from 'react';
|
|
15
|
-
import {
|
|
15
|
+
import { QuestionCircleOutlined, UpOutlined } from '@ant-design/icons';
|
|
16
16
|
import { Tooltip } from 'antd';
|
|
17
17
|
import { globalConfig } from 'antd/es/config-provider';
|
|
18
18
|
import classNames from 'classnames';
|
|
@@ -92,8 +92,8 @@ var BlockHeader = function BlockHeader(props) {
|
|
|
92
92
|
}, title), tooltipProps !== null && tooltipProps !== void 0 && tooltipProps.title ? /*#__PURE__*/React.createElement("div", {
|
|
93
93
|
className: "title__tooltip"
|
|
94
94
|
}, /*#__PURE__*/React.createElement(Tooltip, _extends({}, tooltipProps, {
|
|
95
|
-
className: classNames(tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.className
|
|
96
|
-
}), /*#__PURE__*/React.createElement(
|
|
95
|
+
className: classNames(tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.className)
|
|
96
|
+
}), /*#__PURE__*/React.createElement(QuestionCircleOutlined, null))) : null, description ? /*#__PURE__*/React.createElement("div", {
|
|
97
97
|
className: "title__description"
|
|
98
98
|
}, description) : null), addonAfter && /*#__PURE__*/React.createElement("div", {
|
|
99
99
|
className: "title__addon-after"
|
|
@@ -102,7 +102,7 @@ var BlockHeader = function BlockHeader(props) {
|
|
|
102
102
|
}, /*#__PURE__*/React.createElement("div", {
|
|
103
103
|
className: "collapse__text"
|
|
104
104
|
}, currentExpand ? '收起' : '展开'), /*#__PURE__*/React.createElement(UpOutlined, {
|
|
105
|
-
className: classNames('collapse__icon',
|
|
105
|
+
className: classNames('collapse__icon', {
|
|
106
106
|
'collapse__icon--up': currentExpand,
|
|
107
107
|
'collapse__icon--down': !currentExpand
|
|
108
108
|
})
|
package/esm/collapsible/index.js
CHANGED
|
@@ -18,7 +18,7 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
|
|
|
18
18
|
import React from 'react';
|
|
19
19
|
import { globalConfig } from 'antd/es/config-provider';
|
|
20
20
|
import classNames from 'classnames';
|
|
21
|
-
import { isEqual, pick } from 'lodash';
|
|
21
|
+
import { isEqual, pick } from 'lodash-es';
|
|
22
22
|
import "./style";
|
|
23
23
|
var Collapsible = /*#__PURE__*/function (_React$Component) {
|
|
24
24
|
_inherits(Collapsible, _React$Component);
|
package/esm/flex/index.js
CHANGED
|
@@ -16,7 +16,7 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
|
|
|
16
16
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
17
17
|
import React from 'react';
|
|
18
18
|
import { ConfigContext, globalConfig } from 'antd/es/config-provider';
|
|
19
|
-
import
|
|
19
|
+
import clsx from 'classnames';
|
|
20
20
|
import { omit } from 'lodash-es';
|
|
21
21
|
import "./style";
|
|
22
22
|
import { isPresetSize } from "../_util/gapSize";
|
package/esm/flex/utils.js
CHANGED
|
@@ -4,7 +4,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
4
4
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
5
5
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
6
6
|
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
7
|
-
import
|
|
7
|
+
import clsx from 'classnames';
|
|
8
8
|
export var flexWrapValues = ['wrap', 'nowrap', 'wrap-reverse'];
|
|
9
9
|
export var justifyContentValues = ['flex-start', 'flex-end', 'start', 'end', 'center', 'space-between', 'space-around', 'space-evenly', 'stretch', 'normal', 'left', 'right'];
|
|
10
10
|
export var alignItemsValues = ['center', 'start', 'end', 'flex-start', 'flex-end', 'self-start', 'self-end', 'baseline', 'normal', 'stretch'];
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import React, { ReactNode } from 'react';
|
|
2
|
+
import { type FormListFieldData, type TableProps } from 'antd';
|
|
3
|
+
import type { FormItemProps, FormListProps, RuleObject, RuleRender } from 'antd/lib/form';
|
|
4
|
+
import type { ColumnType as TableColumnType } from 'antd/lib/table';
|
|
5
|
+
import './style';
|
|
6
|
+
declare type NotNullRowSelection = NonNullable<TableProps<any>['rowSelection']>;
|
|
7
|
+
/**
|
|
8
|
+
* Override NamePath parameters type
|
|
9
|
+
*/
|
|
10
|
+
declare type OverrideParameters = (string | number)[];
|
|
11
|
+
declare type RcFormInstance = Parameters<RuleRender>[0];
|
|
12
|
+
declare type RawPanelRender = NonNullable<TableProps<any>['footer']>;
|
|
13
|
+
/**
|
|
14
|
+
* Override PanelRender type
|
|
15
|
+
*/
|
|
16
|
+
declare type PanelRenderFunc = (...args: Parameters<FormListProps['children']>) => ReturnType<RawPanelRender>;
|
|
17
|
+
/**
|
|
18
|
+
* Form.Table 组件类型
|
|
19
|
+
*/
|
|
20
|
+
export interface IFormTableProps
|
|
21
|
+
/**
|
|
22
|
+
* Support all FormListProps except children for which is re-defined in this component
|
|
23
|
+
* and prefixCls for which is not expected to be supported
|
|
24
|
+
*/
|
|
25
|
+
extends Pick<FormListProps, 'name' | 'rules' | 'initialValue'>,
|
|
26
|
+
/**
|
|
27
|
+
* Support all TableProps except
|
|
28
|
+
* - re-define columns and re-defined rowSelection
|
|
29
|
+
* - and pagination which is expect to be not supported in Form.Table
|
|
30
|
+
* - and className which is renamed to tableClassName
|
|
31
|
+
* - and rowKey, dataSource for which are defined and not allowed to be modified
|
|
32
|
+
* - and footer, title, summary for which are re-defined to pass form's operation
|
|
33
|
+
*/
|
|
34
|
+
Omit<TableProps<any>, 'columns' | 'rowSelection' | 'pagination' | 'className' | 'rowKey' | 'dataSource' | 'footer' | 'title' | 'summary'> {
|
|
35
|
+
/**
|
|
36
|
+
* 表格列的配置描述
|
|
37
|
+
*/
|
|
38
|
+
columns?: ColumnType[] | ((...args: Parameters<FormListProps['children']>) => ColumnType[]);
|
|
39
|
+
/**
|
|
40
|
+
* Table 的 className
|
|
41
|
+
*/
|
|
42
|
+
tableClassName?: TableProps<any>['className'];
|
|
43
|
+
/**
|
|
44
|
+
* 表格行是否可选择
|
|
45
|
+
*/
|
|
46
|
+
rowSelection?: Omit<NotNullRowSelection, 'getCheckboxProps'> & {
|
|
47
|
+
getCheckboxProps?: (field: FormListFieldData) => ReturnType<NonNullable<NotNullRowSelection['getCheckboxProps']>>;
|
|
48
|
+
};
|
|
49
|
+
title?: PanelRenderFunc;
|
|
50
|
+
footer?: PanelRenderFunc;
|
|
51
|
+
summary?: PanelRenderFunc;
|
|
52
|
+
}
|
|
53
|
+
export interface ColumnType
|
|
54
|
+
/**
|
|
55
|
+
* Support all FormItemProps, and re-defined `rules` and `dependencies`
|
|
56
|
+
*/
|
|
57
|
+
extends Omit<FormItemProps, 'rules' | 'dependencies' | 'prefixCls' | 'children'>,
|
|
58
|
+
/**
|
|
59
|
+
* Support all TableColumnType, and re-defined `render`
|
|
60
|
+
*/
|
|
61
|
+
Omit<TableColumnType<FormListFieldData>, 'render'> {
|
|
62
|
+
/**
|
|
63
|
+
* 设置依赖字段, 支持通过回调函数获取当前字段名
|
|
64
|
+
*/
|
|
65
|
+
dependencies?: ((namePath: OverrideParameters) => FormItemProps['dependencies']) | FormItemProps['dependencies'];
|
|
66
|
+
/**
|
|
67
|
+
* 校验规则,设置字段的校验逻辑,支持通过回调函数获取当前字段名
|
|
68
|
+
*/
|
|
69
|
+
rules?: (RuleObject | ((form: RcFormInstance, namePath: OverrideParameters) => RuleObject))[];
|
|
70
|
+
/**
|
|
71
|
+
* 渲染函数
|
|
72
|
+
* @param formInstance 只有在设置了 `dependencies` 的情况下才有该参数
|
|
73
|
+
*/
|
|
74
|
+
render?: (fieldData: FormListFieldData, namePath: OverrideParameters, formInstance?: RcFormInstance) => ReactNode;
|
|
75
|
+
}
|
|
76
|
+
export default function InternalTable({ name, rules, initialValue, ...tableProps }: IFormTableProps): React.JSX.Element;
|
|
77
|
+
export {};
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
var _excluded = ["name", "rules", "initialValue"],
|
|
2
|
+
_excluded2 = ["tableClassName", "columns", "title", "footer", "summary"],
|
|
3
|
+
_excluded3 = ["noStyle", "style", "className", "id", "hasFeedback", "validateStatus", "required", "hidden", "initialValue", "messageVariables", "tooltip", "dependencies", "rules", "validateFirst", "validateTrigger", "valuePropName", "render"];
|
|
4
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
5
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
6
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
7
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
8
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
9
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
10
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
11
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
12
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
13
|
+
import React, { useMemo } from 'react';
|
|
14
|
+
import { Utils } from '@dtinsight/dt-utils';
|
|
15
|
+
import { Form, Table } from 'antd';
|
|
16
|
+
import { globalConfig } from 'antd/es/config-provider';
|
|
17
|
+
import classnames from 'classnames';
|
|
18
|
+
import "./style";
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Override NamePath parameters type
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Override PanelRender type
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Form.Table 组件类型
|
|
30
|
+
*/
|
|
31
|
+
|
|
32
|
+
export default function InternalTable(_ref) {
|
|
33
|
+
var name = _ref.name,
|
|
34
|
+
rules = _ref.rules,
|
|
35
|
+
initialValue = _ref.initialValue,
|
|
36
|
+
tableProps = _objectWithoutProperties(_ref, _excluded);
|
|
37
|
+
var tableClassName = tableProps.tableClassName,
|
|
38
|
+
rawColumns = tableProps.columns,
|
|
39
|
+
title = tableProps.title,
|
|
40
|
+
footer = tableProps.footer,
|
|
41
|
+
summary = tableProps.summary,
|
|
42
|
+
restProps = _objectWithoutProperties(tableProps, _excluded2);
|
|
43
|
+
var prefixCls = globalConfig().getPrefixCls('form-list');
|
|
44
|
+
var formInstance = Form.useFormInstance();
|
|
45
|
+
var convertRawToTableCol = function convertRawToTableCol(raw) {
|
|
46
|
+
if (!(raw !== null && raw !== void 0 && raw.length)) return [];
|
|
47
|
+
return raw.map(function (_ref2) {
|
|
48
|
+
var noStyle = _ref2.noStyle,
|
|
49
|
+
style = _ref2.style,
|
|
50
|
+
className = _ref2.className,
|
|
51
|
+
id = _ref2.id,
|
|
52
|
+
hasFeedback = _ref2.hasFeedback,
|
|
53
|
+
validateStatus = _ref2.validateStatus,
|
|
54
|
+
required = _ref2.required,
|
|
55
|
+
hidden = _ref2.hidden,
|
|
56
|
+
initialValue = _ref2.initialValue,
|
|
57
|
+
messageVariables = _ref2.messageVariables,
|
|
58
|
+
tooltip = _ref2.tooltip,
|
|
59
|
+
dependencies = _ref2.dependencies,
|
|
60
|
+
rawRules = _ref2.rules,
|
|
61
|
+
validateFirst = _ref2.validateFirst,
|
|
62
|
+
validateTrigger = _ref2.validateTrigger,
|
|
63
|
+
valuePropName = _ref2.valuePropName,
|
|
64
|
+
_render = _ref2.render,
|
|
65
|
+
cols = _objectWithoutProperties(_ref2, _excluded3);
|
|
66
|
+
var formItemProps = {
|
|
67
|
+
noStyle: noStyle,
|
|
68
|
+
style: style,
|
|
69
|
+
className: className,
|
|
70
|
+
id: id,
|
|
71
|
+
hasFeedback: hasFeedback,
|
|
72
|
+
validateStatus: validateStatus,
|
|
73
|
+
required: required,
|
|
74
|
+
hidden: hidden,
|
|
75
|
+
initialValue: initialValue,
|
|
76
|
+
messageVariables: messageVariables,
|
|
77
|
+
validateFirst: validateFirst,
|
|
78
|
+
validateTrigger: validateTrigger,
|
|
79
|
+
tooltip: tooltip,
|
|
80
|
+
valuePropName: valuePropName
|
|
81
|
+
};
|
|
82
|
+
var isRequired = required || (rawRules === null || rawRules === void 0 ? void 0 : rawRules.some(function (rule) {
|
|
83
|
+
return _typeof(rule) === 'object' && rule.required;
|
|
84
|
+
}));
|
|
85
|
+
return _objectSpread(_objectSpread({}, cols), {}, {
|
|
86
|
+
title: /*#__PURE__*/React.createElement(React.Fragment, null, isRequired && /*#__PURE__*/React.createElement("span", {
|
|
87
|
+
className: "dtc-form__table__column--required"
|
|
88
|
+
}), cols.title),
|
|
89
|
+
render: function render(_, fieldData) {
|
|
90
|
+
var currentNamePath = [fieldData.name, cols.dataIndex].filter(Utils.checkExist).flat();
|
|
91
|
+
var rules = rawRules === null || rawRules === void 0 ? void 0 : rawRules.map(function (rule) {
|
|
92
|
+
return typeof rule === 'function' ? function (form) {
|
|
93
|
+
return rule(form, currentNamePath);
|
|
94
|
+
} : rule;
|
|
95
|
+
});
|
|
96
|
+
if (dependencies) {
|
|
97
|
+
return /*#__PURE__*/React.createElement(Form.Item, {
|
|
98
|
+
noStyle: true,
|
|
99
|
+
dependencies: typeof dependencies === 'function' ? dependencies(currentNamePath) : dependencies
|
|
100
|
+
}, function (formInstance) {
|
|
101
|
+
return /*#__PURE__*/React.createElement(Form.Item, _extends({
|
|
102
|
+
name: currentNamePath,
|
|
103
|
+
rules: rules
|
|
104
|
+
}, formItemProps), _render === null || _render === void 0 ? void 0 : _render(fieldData, currentNamePath, formInstance));
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
return /*#__PURE__*/React.createElement(Form.Item, _extends({
|
|
108
|
+
name: currentNamePath,
|
|
109
|
+
rules: rules
|
|
110
|
+
}, formItemProps), _render === null || _render === void 0 ? void 0 : _render(fieldData, currentNamePath, formInstance));
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
};
|
|
115
|
+
var columns = useMemo(function () {
|
|
116
|
+
if (typeof rawColumns === 'function') return rawColumns;
|
|
117
|
+
return convertRawToTableCol(rawColumns);
|
|
118
|
+
}, [rawColumns]);
|
|
119
|
+
return /*#__PURE__*/React.createElement(Form.List, {
|
|
120
|
+
name: name,
|
|
121
|
+
rules: rules,
|
|
122
|
+
initialValue: initialValue
|
|
123
|
+
}, function (fields, ope, meta) {
|
|
124
|
+
return /*#__PURE__*/React.createElement(Table, _extends({
|
|
125
|
+
className: classnames(prefixCls, tableClassName),
|
|
126
|
+
rowKey: "key",
|
|
127
|
+
dataSource: fields,
|
|
128
|
+
pagination: false,
|
|
129
|
+
columns: typeof columns === 'function' ? convertRawToTableCol(columns(fields, ope, meta)) : columns,
|
|
130
|
+
footer: footer ? function () {
|
|
131
|
+
return footer(fields, ope, meta);
|
|
132
|
+
} : undefined,
|
|
133
|
+
title: title ? function () {
|
|
134
|
+
return title(fields, ope, meta);
|
|
135
|
+
} : undefined,
|
|
136
|
+
summary: summary ? function () {
|
|
137
|
+
return summary(fields, ope, meta);
|
|
138
|
+
} : undefined
|
|
139
|
+
}, restProps));
|
|
140
|
+
});
|
|
141
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
@import '../../style/themes/index.less';
|
|
2
|
+
|
|
3
|
+
@form-list-prefix-cls: ~'@{ant-prefix}-form-list';
|
|
4
|
+
|
|
5
|
+
.@{form-list-prefix-cls} {
|
|
6
|
+
height: 100%;
|
|
7
|
+
|
|
8
|
+
&__column {
|
|
9
|
+
&--required {
|
|
10
|
+
&::before {
|
|
11
|
+
content: "*";
|
|
12
|
+
display: inline-block;
|
|
13
|
+
margin-inline-end: 4px;
|
|
14
|
+
font-size: 14px;
|
|
15
|
+
line-height: 1;
|
|
16
|
+
color: @error-color;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
vertical-align: -0.1em;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.ant-table,
|
|
24
|
+
.ant-table-container {
|
|
25
|
+
height: 100%;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.ant-form-item {
|
|
29
|
+
margin-bottom: 0;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
table colgroup > col.ant-table-selection-col {
|
|
33
|
+
width: 48px;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.ant-table-thead > tr > th.ant-table-selection-column {
|
|
37
|
+
padding: 0 16px;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.ant-table-tbody > tr > td.ant-table-selection-column {
|
|
41
|
+
padding: 0 16px;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
|
package/esm/index.d.ts
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import '@dtinsight/react-icons/dist/index.css';
|
|
2
1
|
export { default as BlockHeader } from './blockHeader';
|
|
3
2
|
export type { ButtonProps } from './button';
|
|
4
3
|
export { default as Button } from './button';
|
|
4
|
+
export { default as Collapsible } from './collapsible';
|
|
5
|
+
export { default as CollapsibleActionItems } from './collapsibleActionItems';
|
|
5
6
|
export { default as Flex } from './flex';
|
|
6
7
|
export type { FlexProps } from './flex/interface';
|
|
7
|
-
export { default as
|
|
8
|
+
export { default as FormList } from './formList';
|
|
9
|
+
export * from './formList';
|
|
10
|
+
export { default as OverflowList } from './overflowList';
|
|
8
11
|
export { default as Resize } from './resize';
|
|
9
12
|
export { default as Splitter } from './splitter';
|
|
10
13
|
export * from './splitter';
|
|
11
|
-
export { default as Collapsible } from './collapsible';
|
|
12
14
|
export { default as StatusTag } from './statusTag';
|
package/esm/index.js
CHANGED
|
@@ -1,53 +1,12 @@
|
|
|
1
|
-
import '@dtinsight/react-icons/dist/index.css';
|
|
2
1
|
export { default as BlockHeader } from "./blockHeader";
|
|
3
2
|
export { default as Button } from "./button";
|
|
4
|
-
export { default as
|
|
5
|
-
// export { default as Catalogue } from './catalogue';
|
|
6
|
-
// export { default as Chat } from './chat';
|
|
3
|
+
export { default as Collapsible } from "./collapsible";
|
|
7
4
|
export { default as CollapsibleActionItems } from "./collapsibleActionItems";
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
// export { default as Descriptions } from './descriptions';
|
|
13
|
-
// export { default as Drawer } from './drawer';
|
|
14
|
-
// export { default as Dropdown } from './dropdown';
|
|
15
|
-
// export { default as EllipsisText } from './ellipsisText';
|
|
16
|
-
// export { default as Empty } from './empty';
|
|
17
|
-
// export { default as ErrorBoundary } from './errorBoundary';
|
|
18
|
-
// export { default as LoadError } from './errorBoundary/loadError';
|
|
19
|
-
// export { default as FilterRules } from './filterRules';
|
|
20
|
-
// export { default as Flex } from './flex';
|
|
21
|
-
// export type { FlexProps } from './flex/interface';
|
|
22
|
-
// export { default as Float } from './float';
|
|
23
|
-
// export { default as Form } from './form';
|
|
24
|
-
// export { default as Fullscreen } from './fullscreen';
|
|
25
|
-
// export { default as GlobalLoading } from './globalLoading';
|
|
26
|
-
// export { default as Image } from './image';
|
|
27
|
-
// export { default as Input } from './input';
|
|
28
|
-
// export { default as KeyEventListener } from './keyEventListener';
|
|
29
|
-
// export { default as enUS } from './locale/en-US';
|
|
30
|
-
// export { default as useLocale } from './locale/useLocale';
|
|
31
|
-
// export { default as zhCN } from './locale/zh-CN';
|
|
32
|
-
// export { default as MarkdownRender } from './markdownRender';
|
|
33
|
-
// export { default as Modal } from './modal/modal';
|
|
34
|
-
// export { default as NotFound } from './notFound';
|
|
35
|
-
// export { default as ProgressBar } from './progressBar';
|
|
36
|
-
// export { default as ProgressLine } from './progressLine';
|
|
5
|
+
export { default as Flex } from "./flex";
|
|
6
|
+
export { default as FormList } from "./formList";
|
|
7
|
+
export * from "./formList";
|
|
8
|
+
export { default as OverflowList } from "./overflowList";
|
|
37
9
|
export { default as Resize } from "./resize";
|
|
38
10
|
export { default as Splitter } from "./splitter";
|
|
39
11
|
export * from "./splitter";
|
|
40
|
-
|
|
41
|
-
export { default as Collapsible } from "./collapsible";
|
|
42
|
-
export { default as StatusTag } from "./statusTag";
|
|
43
|
-
// export { default as Table } from './table';
|
|
44
|
-
// export { default as TinyTag } from './tinyTag';
|
|
45
|
-
// export { default as useCookieListener } from './useCookieListener';
|
|
46
|
-
// export { default as useDebounce } from './useDebounce';
|
|
47
|
-
// export { default as useIntersectionObserver } from './useIntersectionObserver';
|
|
48
|
-
// export { default as useList } from './useList';
|
|
49
|
-
// export { default as useMeasure } from './useMeasure';
|
|
50
|
-
// export { default as useMergeOption } from './useMergeOption';
|
|
51
|
-
// export { default as useModal } from './useModal';
|
|
52
|
-
// export { default as useTyping } from './useTyping';
|
|
53
|
-
// export { default as useWindowSwitchListener } from './useWindowSwitchListener';
|
|
12
|
+
export { default as StatusTag } from "./statusTag";
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import React, { Component, ReactElement, ReactNode } from 'react';
|
|
2
|
+
import './style';
|
|
3
|
+
export declare type OverflowItem<T = Record<string, any>> = T;
|
|
4
|
+
export interface OverflowListProps<T = Record<string, any>> {
|
|
5
|
+
items: OverflowItem<T>[];
|
|
6
|
+
visibleItemRenderer: (item: OverflowItem<T>, index: number) => ReactElement;
|
|
7
|
+
overflowRenderer: (overflowItems: OverflowItem<T>[]) => ReactNode | ReactNode[];
|
|
8
|
+
className?: string;
|
|
9
|
+
style?: React.CSSProperties;
|
|
10
|
+
renderMode?: 'collapse' | 'scroll';
|
|
11
|
+
collapseFrom?: 'start' | 'end';
|
|
12
|
+
minVisibleItems?: number;
|
|
13
|
+
onOverflow?: (overflowItems: OverflowItem<T>[]) => void;
|
|
14
|
+
}
|
|
15
|
+
interface OverflowListState {
|
|
16
|
+
visibleCount: number;
|
|
17
|
+
isMeasuring: boolean;
|
|
18
|
+
}
|
|
19
|
+
declare class OverflowList<T extends object> extends Component<OverflowListProps<T>, OverflowListState> {
|
|
20
|
+
static defaultProps: {
|
|
21
|
+
items: never[];
|
|
22
|
+
collapseFrom: string;
|
|
23
|
+
minVisibleItems: number;
|
|
24
|
+
renderMode: string;
|
|
25
|
+
};
|
|
26
|
+
static displayName: string;
|
|
27
|
+
private containerRef;
|
|
28
|
+
private overflowRef;
|
|
29
|
+
private itemRefs;
|
|
30
|
+
private prefixCls;
|
|
31
|
+
constructor(props: OverflowListProps<T>);
|
|
32
|
+
componentDidMount(): void;
|
|
33
|
+
componentUpdate(prevProps: OverflowListProps<T>): void;
|
|
34
|
+
private measureAndAdjust;
|
|
35
|
+
private getOverflowItems;
|
|
36
|
+
renderCollapse(): React.JSX.Element;
|
|
37
|
+
render(): React.JSX.Element;
|
|
38
|
+
}
|
|
39
|
+
export default OverflowList;
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
5
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
6
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
7
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
8
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
9
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
10
|
+
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
|
|
11
|
+
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
12
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
13
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
14
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
15
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
16
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
17
|
+
import React, { Component, createRef } from 'react';
|
|
18
|
+
import { globalConfig } from 'antd/es/config-provider';
|
|
19
|
+
import classNames from 'classnames';
|
|
20
|
+
import "./style";
|
|
21
|
+
import ReactResizeObserver from "../resizeObserver";
|
|
22
|
+
var OverflowList = /*#__PURE__*/function (_Component) {
|
|
23
|
+
_inherits(OverflowList, _Component);
|
|
24
|
+
var _super = _createSuper(OverflowList);
|
|
25
|
+
function OverflowList(props) {
|
|
26
|
+
var _this;
|
|
27
|
+
_classCallCheck(this, OverflowList);
|
|
28
|
+
_this = _super.call(this, props);
|
|
29
|
+
_defineProperty(_assertThisInitialized(_this), "containerRef", /*#__PURE__*/createRef());
|
|
30
|
+
_defineProperty(_assertThisInitialized(_this), "overflowRef", /*#__PURE__*/createRef());
|
|
31
|
+
_defineProperty(_assertThisInitialized(_this), "itemRefs", new Map());
|
|
32
|
+
_defineProperty(_assertThisInitialized(_this), "prefixCls", 'overflow-list');
|
|
33
|
+
_defineProperty(_assertThisInitialized(_this), "measureAndAdjust", function () {
|
|
34
|
+
var _this$overflowRef$cur, _this$overflowRef$cur2;
|
|
35
|
+
var container = _this.containerRef.current;
|
|
36
|
+
if (!container || _this.props.renderMode !== 'collapse') return;
|
|
37
|
+
var _this$props = _this.props,
|
|
38
|
+
items = _this$props.items,
|
|
39
|
+
minVisibleItems = _this$props.minVisibleItems,
|
|
40
|
+
collapseFrom = _this$props.collapseFrom,
|
|
41
|
+
onOverflow = _this$props.onOverflow;
|
|
42
|
+
var containerWidth = container.offsetWidth;
|
|
43
|
+
var overflowWidth = (_this$overflowRef$cur = (_this$overflowRef$cur2 = _this.overflowRef.current) === null || _this$overflowRef$cur2 === void 0 ? void 0 : _this$overflowRef$cur2.offsetWidth) !== null && _this$overflowRef$cur !== void 0 ? _this$overflowRef$cur : 0;
|
|
44
|
+
var totalWidth = 0;
|
|
45
|
+
var newVisibleCount = 0;
|
|
46
|
+
for (var i = 0; i < items.length; i++) {
|
|
47
|
+
var _this$itemRefs$get$ge, _this$itemRefs$get;
|
|
48
|
+
var _index = collapseFrom === 'end' ? i : items.length - 1 - i;
|
|
49
|
+
var itemWidth = (_this$itemRefs$get$ge = (_this$itemRefs$get = _this.itemRefs.get(_index)) === null || _this$itemRefs$get === void 0 ? void 0 : _this$itemRefs$get.getBoundingClientRect().width) !== null && _this$itemRefs$get$ge !== void 0 ? _this$itemRefs$get$ge : 0;
|
|
50
|
+
var isLast = i === items.length - 1;
|
|
51
|
+
var limit = isLast ? containerWidth : containerWidth - overflowWidth;
|
|
52
|
+
if (totalWidth + itemWidth <= limit || newVisibleCount < (minVisibleItems || 0)) {
|
|
53
|
+
totalWidth += itemWidth;
|
|
54
|
+
newVisibleCount++;
|
|
55
|
+
} else {
|
|
56
|
+
break;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
_this.setState({
|
|
60
|
+
visibleCount: newVisibleCount,
|
|
61
|
+
isMeasuring: false
|
|
62
|
+
}, function () {
|
|
63
|
+
if (onOverflow) {
|
|
64
|
+
onOverflow(_this.getOverflowItems(newVisibleCount));
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
_defineProperty(_assertThisInitialized(_this), "getOverflowItems", function (count) {
|
|
69
|
+
var _this$props2 = _this.props,
|
|
70
|
+
items = _this$props2.items,
|
|
71
|
+
collapseFrom = _this$props2.collapseFrom;
|
|
72
|
+
return collapseFrom === 'end' ? items.slice(count) : items.slice(0, items.length - count);
|
|
73
|
+
});
|
|
74
|
+
_this.prefixCls = globalConfig().getPrefixCls(_this.prefixCls);
|
|
75
|
+
_this.state = {
|
|
76
|
+
visibleCount: props.items.length,
|
|
77
|
+
isMeasuring: props.renderMode === 'collapse'
|
|
78
|
+
};
|
|
79
|
+
return _this;
|
|
80
|
+
}
|
|
81
|
+
_createClass(OverflowList, [{
|
|
82
|
+
key: "componentDidMount",
|
|
83
|
+
value: function componentDidMount() {
|
|
84
|
+
if (this.props.renderMode === 'collapse') {
|
|
85
|
+
this.measureAndAdjust();
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}, {
|
|
89
|
+
key: "componentUpdate",
|
|
90
|
+
value: function componentUpdate(prevProps) {
|
|
91
|
+
if (prevProps.items !== this.props.items || prevProps.renderMode !== this.props.renderMode) {
|
|
92
|
+
this.setState({
|
|
93
|
+
isMeasuring: true,
|
|
94
|
+
visibleCount: this.props.items.length
|
|
95
|
+
}, this.measureAndAdjust);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}, {
|
|
99
|
+
key: "renderCollapse",
|
|
100
|
+
value: function renderCollapse() {
|
|
101
|
+
var _this2 = this;
|
|
102
|
+
var _this$props3 = this.props,
|
|
103
|
+
items = _this$props3.items,
|
|
104
|
+
visibleItemRenderer = _this$props3.visibleItemRenderer,
|
|
105
|
+
overflowRenderer = _this$props3.overflowRenderer,
|
|
106
|
+
collapseFrom = _this$props3.collapseFrom,
|
|
107
|
+
style = _this$props3.style,
|
|
108
|
+
className = _this$props3.className;
|
|
109
|
+
var _this$state = this.state,
|
|
110
|
+
visibleCount = _this$state.visibleCount,
|
|
111
|
+
isMeasuring = _this$state.isMeasuring;
|
|
112
|
+
var overflowItems = this.getOverflowItems(visibleCount);
|
|
113
|
+
var hasOverflow = overflowItems.length > 0;
|
|
114
|
+
var containerStyle = _objectSpread({
|
|
115
|
+
maxWidth: '100%',
|
|
116
|
+
visibility: 'visible'
|
|
117
|
+
}, style);
|
|
118
|
+
var renderItems = function renderItems() {
|
|
119
|
+
return items.map(function (item, i) {
|
|
120
|
+
var isVisible = isMeasuring || (collapseFrom === 'end' ? i < visibleCount : i >= items.length - visibleCount);
|
|
121
|
+
if (!isVisible) return null;
|
|
122
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
123
|
+
key: i,
|
|
124
|
+
ref: function ref(el) {
|
|
125
|
+
if (el) _this2.itemRefs.set(i, el);else _this2.itemRefs.delete(i);
|
|
126
|
+
},
|
|
127
|
+
className: "".concat(_this2.prefixCls, "-item")
|
|
128
|
+
}, visibleItemRenderer(item, i));
|
|
129
|
+
});
|
|
130
|
+
};
|
|
131
|
+
var overflowNode = (hasOverflow || isMeasuring) && /*#__PURE__*/React.createElement("div", {
|
|
132
|
+
ref: this.overflowRef,
|
|
133
|
+
className: "".concat(this.prefixCls, "-overflow")
|
|
134
|
+
}, overflowRenderer(isMeasuring ? items : overflowItems));
|
|
135
|
+
return /*#__PURE__*/React.createElement(ReactResizeObserver, {
|
|
136
|
+
onResize: function onResize() {
|
|
137
|
+
return _this2.setState({
|
|
138
|
+
isMeasuring: true
|
|
139
|
+
}, _this2.measureAndAdjust);
|
|
140
|
+
}
|
|
141
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
142
|
+
ref: this.containerRef,
|
|
143
|
+
className: classNames(this.prefixCls, className),
|
|
144
|
+
style: containerStyle
|
|
145
|
+
}, collapseFrom === 'start' && overflowNode, renderItems(), collapseFrom === 'end' && overflowNode));
|
|
146
|
+
}
|
|
147
|
+
}, {
|
|
148
|
+
key: "render",
|
|
149
|
+
value: function render() {
|
|
150
|
+
return this.renderCollapse();
|
|
151
|
+
}
|
|
152
|
+
}]);
|
|
153
|
+
return OverflowList;
|
|
154
|
+
}(Component);
|
|
155
|
+
_defineProperty(OverflowList, "defaultProps", {
|
|
156
|
+
items: [],
|
|
157
|
+
collapseFrom: 'end',
|
|
158
|
+
minVisibleItems: 0,
|
|
159
|
+
renderMode: 'collapse'
|
|
160
|
+
});
|
|
161
|
+
_defineProperty(OverflowList, "displayName", void 0);
|
|
162
|
+
if (process.env.NODE_ENV === 'development') {
|
|
163
|
+
OverflowList.displayName = 'OverflowList';
|
|
164
|
+
}
|
|
165
|
+
export default OverflowList;
|