@dtjoy/dt-design 1.0.1 → 1.0.3
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/_util/gapSize.d.ts +3 -0
- package/esm/_util/gapSize.js +10 -0
- package/esm/_util/hooks/index.d.ts +1 -0
- package/esm/_util/hooks/index.js +1 -0
- package/esm/_util/hooks/useOrientation.d.ts +2 -0
- package/esm/_util/hooks/useOrientation.js +19 -0
- package/esm/_util/isNonNullable.d.ts +2 -0
- package/esm/_util/isNonNullable.js +4 -0
- package/esm/_util/type.d.ts +2 -1
- package/esm/blockHeader/index.js +12 -11
- package/esm/blockHeader/style/index.d.ts +1 -1
- package/esm/blockHeader/style/index.js +1 -1
- package/esm/blockHeader/style/index.less +9 -8
- package/esm/button/style/index.less +60 -46
- package/esm/button/style/mixin.less +47 -0
- package/esm/collapsible/index.d.ts +97 -0
- package/esm/collapsible/index.js +234 -0
- package/esm/collapsible/style/index.d.ts +1 -0
- package/esm/collapsible/style/index.js +1 -0
- package/esm/collapsible/style/index.less +24 -0
- package/esm/collapsibleActionItems/index.d.ts +24 -0
- package/esm/collapsibleActionItems/index.js +74 -0
- package/esm/collapsibleActionItems/style/index.d.ts +2 -0
- package/esm/collapsibleActionItems/style/index.js +2 -0
- package/esm/collapsibleActionItems/style/index.less +7 -0
- package/esm/flex/index.d.ts +7 -0
- package/esm/flex/index.js +62 -0
- package/esm/flex/interface.d.ts +16 -0
- package/esm/flex/interface.js +1 -0
- package/esm/flex/style/index.d.ts +2 -0
- package/esm/flex/style/index.js +2 -0
- package/esm/flex/style/index.less +77 -0
- package/esm/flex/utils.d.ts +7 -0
- package/esm/flex/utils.js +33 -0
- package/esm/index.d.ts +10 -1
- package/esm/index.js +8 -6
- 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/resize/index.d.ts +8 -0
- package/esm/resize/index.js +29 -0
- package/esm/resizeObserver/index.d.ts +45 -0
- package/esm/resizeObserver/index.js +175 -0
- package/esm/splitter/Panel.d.ts +7 -0
- package/esm/splitter/Panel.js +38 -0
- package/esm/splitter/SplitBar.d.ts +24 -0
- package/esm/splitter/SplitBar.js +185 -0
- package/esm/splitter/Splitter.d.ts +5 -0
- package/esm/splitter/Splitter.js +197 -0
- package/esm/splitter/hooks/sizeUtil.d.ts +3 -0
- package/esm/splitter/hooks/sizeUtil.js +63 -0
- package/esm/splitter/hooks/useItems.d.ts +14 -0
- package/esm/splitter/hooks/useItems.js +44 -0
- package/esm/splitter/hooks/useResizable.d.ts +10 -0
- package/esm/splitter/hooks/useResizable.js +73 -0
- package/esm/splitter/hooks/useResize.d.ts +6 -0
- package/esm/splitter/hooks/useResize.js +158 -0
- package/esm/splitter/hooks/useSizes.d.ts +4 -0
- package/esm/splitter/hooks/useSizes.js +80 -0
- package/esm/splitter/index.d.ts +8 -0
- package/esm/splitter/index.js +5 -0
- package/esm/splitter/interface.d.ts +68 -0
- package/esm/splitter/interface.js +1 -0
- package/esm/splitter/style/index.d.ts +2 -0
- package/esm/splitter/style/index.js +2 -0
- package/esm/splitter/style/index.less +312 -0
- package/esm/statusTag/index.d.ts +28 -0
- package/esm/statusTag/index.js +122 -0
- package/esm/statusTag/style/index.d.ts +2 -0
- package/esm/statusTag/style/index.js +2 -0
- package/esm/statusTag/style/index.less +70 -0
- package/esm/statusTag/style/mixin.less +39 -0
- package/esm/style/mixins/index.less +0 -0
- package/esm/style/themes/index.less +2 -1
- package/esm/style/themes/variable.less +1 -0
- package/lib/_util/gapSize.d.ts +3 -0
- package/lib/_util/gapSize.js +17 -0
- package/lib/_util/hooks/index.d.ts +1 -0
- package/lib/_util/hooks/index.js +16 -0
- package/lib/_util/hooks/useOrientation.d.ts +2 -0
- package/lib/_util/hooks/useOrientation.js +26 -0
- package/lib/_util/isNonNullable.d.ts +2 -0
- package/lib/_util/isNonNullable.js +10 -0
- package/lib/_util/type.d.ts +2 -1
- package/lib/blockHeader/index.js +12 -12
- package/lib/blockHeader/style/index.d.ts +1 -1
- package/lib/blockHeader/style/index.js +1 -1
- package/lib/blockHeader/style/index.less +9 -8
- package/lib/button/style/index.less +60 -46
- package/lib/button/style/mixin.less +47 -0
- package/lib/collapsible/index.d.ts +97 -0
- package/lib/collapsible/index.js +199 -0
- package/lib/collapsible/style/index.d.ts +1 -0
- package/lib/collapsible/style/index.js +3 -0
- package/lib/collapsible/style/index.less +24 -0
- package/lib/collapsibleActionItems/index.d.ts +24 -0
- package/lib/collapsibleActionItems/index.js +68 -0
- package/lib/collapsibleActionItems/style/index.d.ts +2 -0
- package/lib/collapsibleActionItems/style/index.js +4 -0
- package/lib/collapsibleActionItems/style/index.less +7 -0
- package/lib/flex/index.d.ts +7 -0
- package/lib/flex/index.js +60 -0
- package/lib/flex/interface.d.ts +16 -0
- package/lib/flex/interface.js +5 -0
- package/lib/flex/style/index.d.ts +2 -0
- package/lib/flex/style/index.js +4 -0
- package/lib/flex/style/index.less +77 -0
- package/lib/flex/utils.d.ts +7 -0
- package/lib/flex/utils.js +40 -0
- package/lib/index.d.ts +10 -1
- package/lib/index.js +73 -1
- 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/resize/index.d.ts +8 -0
- package/lib/resize/index.js +38 -0
- package/lib/resizeObserver/index.d.ts +45 -0
- package/lib/resizeObserver/index.js +136 -0
- package/lib/splitter/Panel.d.ts +7 -0
- package/lib/splitter/Panel.js +44 -0
- package/lib/splitter/SplitBar.d.ts +24 -0
- package/lib/splitter/SplitBar.js +179 -0
- package/lib/splitter/Splitter.d.ts +5 -0
- package/lib/splitter/Splitter.js +186 -0
- package/lib/splitter/hooks/sizeUtil.d.ts +3 -0
- package/lib/splitter/hooks/sizeUtil.js +56 -0
- package/lib/splitter/hooks/useItems.d.ts +14 -0
- package/lib/splitter/hooks/useItems.js +46 -0
- package/lib/splitter/hooks/useResizable.d.ts +10 -0
- package/lib/splitter/hooks/useResizable.js +83 -0
- package/lib/splitter/hooks/useResize.d.ts +6 -0
- package/lib/splitter/hooks/useResize.js +142 -0
- package/lib/splitter/hooks/useSizes.d.ts +4 -0
- package/lib/splitter/hooks/useSizes.js +62 -0
- package/lib/splitter/index.d.ts +8 -0
- package/lib/splitter/index.js +12 -0
- package/lib/splitter/interface.d.ts +68 -0
- package/lib/splitter/interface.js +5 -0
- package/lib/splitter/style/index.d.ts +2 -0
- package/lib/splitter/style/index.js +4 -0
- package/lib/splitter/style/index.less +312 -0
- package/lib/statusTag/index.d.ts +28 -0
- package/lib/statusTag/index.js +125 -0
- package/lib/statusTag/style/index.d.ts +2 -0
- package/lib/statusTag/style/index.js +4 -0
- package/lib/statusTag/style/index.less +70 -0
- package/lib/statusTag/style/mixin.less +39 -0
- package/lib/style/mixins/index.less +0 -0
- package/lib/style/themes/index.less +2 -1
- package/lib/style/themes/variable.less +1 -0
- package/package.json +11 -19
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.justifyContentValues = exports.flexWrapValues = exports.default = exports.alignItemsValues = void 0;
|
|
7
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
8
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
9
|
+
const flexWrapValues = exports.flexWrapValues = ['wrap', 'nowrap', 'wrap-reverse'];
|
|
10
|
+
const justifyContentValues = exports.justifyContentValues = ['flex-start', 'flex-end', 'start', 'end', 'center', 'space-between', 'space-around', 'space-evenly', 'stretch', 'normal', 'left', 'right'];
|
|
11
|
+
const alignItemsValues = exports.alignItemsValues = ['center', 'start', 'end', 'flex-start', 'flex-end', 'self-start', 'self-end', 'baseline', 'normal', 'stretch'];
|
|
12
|
+
const genClsWrap = (prefixCls, props) => {
|
|
13
|
+
const wrap = props.wrap === true ? 'wrap' : props.wrap;
|
|
14
|
+
return {
|
|
15
|
+
[`${prefixCls}-wrap-${wrap}`]: wrap && flexWrapValues.includes(wrap)
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
const genClsAlign = (prefixCls, props) => {
|
|
19
|
+
const alignCls = {};
|
|
20
|
+
alignItemsValues.forEach(cssKey => {
|
|
21
|
+
alignCls[`${prefixCls}-align-${cssKey}`] = props.align === cssKey;
|
|
22
|
+
});
|
|
23
|
+
alignCls[`${prefixCls}-align-stretch`] = !props.align && !!props.vertical;
|
|
24
|
+
return alignCls;
|
|
25
|
+
};
|
|
26
|
+
const genClsJustify = (prefixCls, props) => {
|
|
27
|
+
const justifyCls = {};
|
|
28
|
+
justifyContentValues.forEach(cssKey => {
|
|
29
|
+
justifyCls[`${prefixCls}-justify-${cssKey}`] = props.justify === cssKey;
|
|
30
|
+
});
|
|
31
|
+
return justifyCls;
|
|
32
|
+
};
|
|
33
|
+
const createFlexClassNames = (prefixCls, props) => {
|
|
34
|
+
return (0, _classnames.default)({
|
|
35
|
+
...genClsWrap(prefixCls, props),
|
|
36
|
+
...genClsAlign(prefixCls, props),
|
|
37
|
+
...genClsJustify(prefixCls, props)
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
var _default = exports.default = createFlexClassNames;
|
package/lib/index.d.ts
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
-
import '@dtinsight/react-icons/dist/index.css';
|
|
2
1
|
export { default as BlockHeader } from './blockHeader';
|
|
2
|
+
export type { ButtonProps } from './button';
|
|
3
3
|
export { default as Button } from './button';
|
|
4
|
+
export { default as Flex } from './flex';
|
|
5
|
+
export type { FlexProps } from './flex/interface';
|
|
6
|
+
export { default as CollapsibleActionItems } from './collapsibleActionItems';
|
|
7
|
+
export { default as OverflowList } from './overflowList';
|
|
8
|
+
export { default as Resize } from './resize';
|
|
9
|
+
export { default as Splitter } from './splitter';
|
|
10
|
+
export * from './splitter';
|
|
11
|
+
export { default as Collapsible } from './collapsible';
|
|
12
|
+
export { default as StatusTag } from './statusTag';
|
package/lib/index.js
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
var _exportNames = {
|
|
7
|
+
BlockHeader: true,
|
|
8
|
+
Button: true,
|
|
9
|
+
Flex: true,
|
|
10
|
+
CollapsibleActionItems: true,
|
|
11
|
+
OverflowList: true,
|
|
12
|
+
Resize: true,
|
|
13
|
+
Splitter: true,
|
|
14
|
+
Collapsible: true,
|
|
15
|
+
StatusTag: true
|
|
16
|
+
};
|
|
6
17
|
Object.defineProperty(exports, "BlockHeader", {
|
|
7
18
|
enumerable: true,
|
|
8
19
|
get: function () {
|
|
@@ -15,7 +26,68 @@ Object.defineProperty(exports, "Button", {
|
|
|
15
26
|
return _button.default;
|
|
16
27
|
}
|
|
17
28
|
});
|
|
18
|
-
|
|
29
|
+
Object.defineProperty(exports, "Collapsible", {
|
|
30
|
+
enumerable: true,
|
|
31
|
+
get: function () {
|
|
32
|
+
return _collapsible.default;
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
Object.defineProperty(exports, "CollapsibleActionItems", {
|
|
36
|
+
enumerable: true,
|
|
37
|
+
get: function () {
|
|
38
|
+
return _collapsibleActionItems.default;
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
Object.defineProperty(exports, "Flex", {
|
|
42
|
+
enumerable: true,
|
|
43
|
+
get: function () {
|
|
44
|
+
return _flex.default;
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
Object.defineProperty(exports, "OverflowList", {
|
|
48
|
+
enumerable: true,
|
|
49
|
+
get: function () {
|
|
50
|
+
return _overflowList.default;
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
Object.defineProperty(exports, "Resize", {
|
|
54
|
+
enumerable: true,
|
|
55
|
+
get: function () {
|
|
56
|
+
return _resize.default;
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
Object.defineProperty(exports, "Splitter", {
|
|
60
|
+
enumerable: true,
|
|
61
|
+
get: function () {
|
|
62
|
+
return _splitter.default;
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
Object.defineProperty(exports, "StatusTag", {
|
|
66
|
+
enumerable: true,
|
|
67
|
+
get: function () {
|
|
68
|
+
return _statusTag.default;
|
|
69
|
+
}
|
|
70
|
+
});
|
|
19
71
|
var _blockHeader = _interopRequireDefault(require("./blockHeader"));
|
|
20
72
|
var _button = _interopRequireDefault(require("./button"));
|
|
73
|
+
var _flex = _interopRequireDefault(require("./flex"));
|
|
74
|
+
var _collapsibleActionItems = _interopRequireDefault(require("./collapsibleActionItems"));
|
|
75
|
+
var _overflowList = _interopRequireDefault(require("./overflowList"));
|
|
76
|
+
var _resize = _interopRequireDefault(require("./resize"));
|
|
77
|
+
var _splitter = _interopRequireWildcard(require("./splitter"));
|
|
78
|
+
Object.keys(_splitter).forEach(function (key) {
|
|
79
|
+
if (key === "default" || key === "__esModule") return;
|
|
80
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
81
|
+
if (key in exports && exports[key] === _splitter[key]) return;
|
|
82
|
+
Object.defineProperty(exports, key, {
|
|
83
|
+
enumerable: true,
|
|
84
|
+
get: function () {
|
|
85
|
+
return _splitter[key];
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
var _collapsible = _interopRequireDefault(require("./collapsible"));
|
|
90
|
+
var _statusTag = _interopRequireDefault(require("./statusTag"));
|
|
91
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
92
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
21
93
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -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,143 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _configProvider = require("antd/es/config-provider");
|
|
9
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
10
|
+
require("./style");
|
|
11
|
+
var _resizeObserver = _interopRequireDefault(require("../resizeObserver"));
|
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
14
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
15
|
+
class OverflowList extends _react.Component {
|
|
16
|
+
static defaultProps = {
|
|
17
|
+
items: [],
|
|
18
|
+
collapseFrom: 'end',
|
|
19
|
+
minVisibleItems: 0,
|
|
20
|
+
renderMode: 'collapse'
|
|
21
|
+
};
|
|
22
|
+
static displayName;
|
|
23
|
+
containerRef = /*#__PURE__*/(0, _react.createRef)();
|
|
24
|
+
overflowRef = /*#__PURE__*/(0, _react.createRef)();
|
|
25
|
+
itemRefs = new Map();
|
|
26
|
+
prefixCls = 'overflow-list';
|
|
27
|
+
constructor(props) {
|
|
28
|
+
super(props);
|
|
29
|
+
this.prefixCls = (0, _configProvider.globalConfig)().getPrefixCls(this.prefixCls);
|
|
30
|
+
this.state = {
|
|
31
|
+
visibleCount: props.items.length,
|
|
32
|
+
isMeasuring: props.renderMode === 'collapse'
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
componentDidMount() {
|
|
36
|
+
if (this.props.renderMode === 'collapse') {
|
|
37
|
+
this.measureAndAdjust();
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
componentUpdate(prevProps) {
|
|
41
|
+
if (prevProps.items !== this.props.items || prevProps.renderMode !== this.props.renderMode) {
|
|
42
|
+
this.setState({
|
|
43
|
+
isMeasuring: true,
|
|
44
|
+
visibleCount: this.props.items.length
|
|
45
|
+
}, this.measureAndAdjust);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
measureAndAdjust = () => {
|
|
49
|
+
const container = this.containerRef.current;
|
|
50
|
+
if (!container || this.props.renderMode !== 'collapse') return;
|
|
51
|
+
const {
|
|
52
|
+
items,
|
|
53
|
+
minVisibleItems,
|
|
54
|
+
collapseFrom,
|
|
55
|
+
onOverflow
|
|
56
|
+
} = this.props;
|
|
57
|
+
const containerWidth = container.offsetWidth;
|
|
58
|
+
const overflowWidth = this.overflowRef.current?.offsetWidth ?? 0;
|
|
59
|
+
let totalWidth = 0;
|
|
60
|
+
let newVisibleCount = 0;
|
|
61
|
+
for (let i = 0; i < items.length; i++) {
|
|
62
|
+
const index = collapseFrom === 'end' ? i : items.length - 1 - i;
|
|
63
|
+
const itemWidth = this.itemRefs.get(index)?.getBoundingClientRect().width ?? 0;
|
|
64
|
+
const isLast = i === items.length - 1;
|
|
65
|
+
const limit = isLast ? containerWidth : containerWidth - overflowWidth;
|
|
66
|
+
if (totalWidth + itemWidth <= limit || newVisibleCount < (minVisibleItems || 0)) {
|
|
67
|
+
totalWidth += itemWidth;
|
|
68
|
+
newVisibleCount++;
|
|
69
|
+
} else {
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
this.setState({
|
|
74
|
+
visibleCount: newVisibleCount,
|
|
75
|
+
isMeasuring: false
|
|
76
|
+
}, () => {
|
|
77
|
+
if (onOverflow) {
|
|
78
|
+
onOverflow(this.getOverflowItems(newVisibleCount));
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
};
|
|
82
|
+
getOverflowItems = count => {
|
|
83
|
+
const {
|
|
84
|
+
items,
|
|
85
|
+
collapseFrom
|
|
86
|
+
} = this.props;
|
|
87
|
+
return collapseFrom === 'end' ? items.slice(count) : items.slice(0, items.length - count);
|
|
88
|
+
};
|
|
89
|
+
renderCollapse() {
|
|
90
|
+
const {
|
|
91
|
+
items,
|
|
92
|
+
visibleItemRenderer,
|
|
93
|
+
overflowRenderer,
|
|
94
|
+
collapseFrom,
|
|
95
|
+
style,
|
|
96
|
+
className
|
|
97
|
+
} = this.props;
|
|
98
|
+
const {
|
|
99
|
+
visibleCount,
|
|
100
|
+
isMeasuring
|
|
101
|
+
} = this.state;
|
|
102
|
+
const overflowItems = this.getOverflowItems(visibleCount);
|
|
103
|
+
const hasOverflow = overflowItems.length > 0;
|
|
104
|
+
const containerStyle = {
|
|
105
|
+
maxWidth: '100%',
|
|
106
|
+
visibility: 'visible',
|
|
107
|
+
...style
|
|
108
|
+
};
|
|
109
|
+
const renderItems = () => {
|
|
110
|
+
return items.map((item, i) => {
|
|
111
|
+
const isVisible = isMeasuring || (collapseFrom === 'end' ? i < visibleCount : i >= items.length - visibleCount);
|
|
112
|
+
if (!isVisible) return null;
|
|
113
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
114
|
+
key: i,
|
|
115
|
+
ref: el => {
|
|
116
|
+
if (el) this.itemRefs.set(i, el);else this.itemRefs.delete(i);
|
|
117
|
+
},
|
|
118
|
+
className: `${this.prefixCls}-item`
|
|
119
|
+
}, visibleItemRenderer(item, i));
|
|
120
|
+
});
|
|
121
|
+
};
|
|
122
|
+
const overflowNode = (hasOverflow || isMeasuring) && /*#__PURE__*/_react.default.createElement("div", {
|
|
123
|
+
ref: this.overflowRef,
|
|
124
|
+
className: `${this.prefixCls}-overflow`
|
|
125
|
+
}, overflowRenderer(isMeasuring ? items : overflowItems));
|
|
126
|
+
return /*#__PURE__*/_react.default.createElement(_resizeObserver.default, {
|
|
127
|
+
onResize: () => this.setState({
|
|
128
|
+
isMeasuring: true
|
|
129
|
+
}, this.measureAndAdjust)
|
|
130
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
131
|
+
ref: this.containerRef,
|
|
132
|
+
className: (0, _classnames.default)(this.prefixCls, className),
|
|
133
|
+
style: containerStyle
|
|
134
|
+
}, collapseFrom === 'start' && overflowNode, renderItems(), collapseFrom === 'end' && overflowNode));
|
|
135
|
+
}
|
|
136
|
+
render() {
|
|
137
|
+
return this.renderCollapse();
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
if (process.env.NODE_ENV === 'development') {
|
|
141
|
+
OverflowList.displayName = 'OverflowList';
|
|
142
|
+
}
|
|
143
|
+
var _default = exports.default = OverflowList;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
9
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
10
|
+
const Resize = ({
|
|
11
|
+
observerEle,
|
|
12
|
+
onResize,
|
|
13
|
+
children
|
|
14
|
+
}) => {
|
|
15
|
+
const resizeEventRef = (0, _react.useRef)(onResize);
|
|
16
|
+
resizeEventRef.current = onResize;
|
|
17
|
+
(0, _react.useEffect)(() => {
|
|
18
|
+
const onResizeProxy = () => {
|
|
19
|
+
if (typeof resizeEventRef.current === 'function') {
|
|
20
|
+
resizeEventRef.current();
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
if (!observerEle) {
|
|
24
|
+
window.addEventListener('resize', onResizeProxy, false);
|
|
25
|
+
return () => {
|
|
26
|
+
window.removeEventListener('resize', onResizeProxy, false);
|
|
27
|
+
};
|
|
28
|
+
} else {
|
|
29
|
+
const resizeObserver = new ResizeObserver(onResizeProxy);
|
|
30
|
+
resizeObserver.observe(observerEle);
|
|
31
|
+
return () => {
|
|
32
|
+
resizeObserver.unobserve(observerEle);
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
}, [observerEle]);
|
|
36
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, children);
|
|
37
|
+
};
|
|
38
|
+
var _default = exports.default = Resize;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface BaseProps {
|
|
3
|
+
className?: string;
|
|
4
|
+
style?: React.CSSProperties;
|
|
5
|
+
[key: string]: any;
|
|
6
|
+
}
|
|
7
|
+
export interface ResizeEntry {
|
|
8
|
+
contentRect: DOMRectReadOnly;
|
|
9
|
+
target: Element;
|
|
10
|
+
}
|
|
11
|
+
export interface ReactResizeObserverProps extends BaseProps {
|
|
12
|
+
onResize?: (entries: ResizeEntry[]) => void;
|
|
13
|
+
observeParent?: boolean;
|
|
14
|
+
observerProperty?: ObserverProperty;
|
|
15
|
+
delayTick?: number;
|
|
16
|
+
children: React.ReactElement;
|
|
17
|
+
}
|
|
18
|
+
export declare enum ObserverProperty {
|
|
19
|
+
Width = "width",
|
|
20
|
+
Height = "height",
|
|
21
|
+
All = "all"
|
|
22
|
+
}
|
|
23
|
+
export default class ReactResizeObserver extends React.Component<ReactResizeObserverProps> {
|
|
24
|
+
static defaultProps: {
|
|
25
|
+
onResize: () => void;
|
|
26
|
+
observeParent: boolean;
|
|
27
|
+
observerProperty: ObserverProperty;
|
|
28
|
+
delayTick: number;
|
|
29
|
+
};
|
|
30
|
+
observer: ResizeObserver | null;
|
|
31
|
+
childNode: HTMLElement | null;
|
|
32
|
+
element: Element | null;
|
|
33
|
+
_parentNode: HTMLElement | null;
|
|
34
|
+
formerPropertyValue: Map<Element, number>;
|
|
35
|
+
constructor(props: ReactResizeObserverProps);
|
|
36
|
+
getElement: () => Element | null;
|
|
37
|
+
handleResizeEventTriggered: (entries: ResizeEntry[]) => void;
|
|
38
|
+
observeElement: (force?: boolean) => void;
|
|
39
|
+
mergeRef: (ref: React.Ref<any>, node: HTMLElement) => void;
|
|
40
|
+
componentDidMount(): void;
|
|
41
|
+
componentDidUpdate(prevProps: ReactResizeObserverProps): void;
|
|
42
|
+
componentWillUnmount(): void;
|
|
43
|
+
render(): React.ReactElement;
|
|
44
|
+
}
|
|
45
|
+
export {};
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = exports.ObserverProperty = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _reactDom = require("react-dom");
|
|
9
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
10
|
+
let ObserverProperty = exports.ObserverProperty = /*#__PURE__*/function (ObserverProperty) {
|
|
11
|
+
ObserverProperty["Width"] = "width";
|
|
12
|
+
ObserverProperty["Height"] = "height";
|
|
13
|
+
ObserverProperty["All"] = "all";
|
|
14
|
+
return ObserverProperty;
|
|
15
|
+
}({});
|
|
16
|
+
class ReactResizeObserver extends _react.default.Component {
|
|
17
|
+
static defaultProps = {
|
|
18
|
+
onResize: () => {},
|
|
19
|
+
observeParent: false,
|
|
20
|
+
observerProperty: ObserverProperty.All,
|
|
21
|
+
delayTick: 0
|
|
22
|
+
};
|
|
23
|
+
observer = null;
|
|
24
|
+
childNode = null;
|
|
25
|
+
element = null;
|
|
26
|
+
_parentNode = null;
|
|
27
|
+
formerPropertyValue = new Map();
|
|
28
|
+
constructor(props) {
|
|
29
|
+
super(props);
|
|
30
|
+
if (typeof window !== 'undefined' && window.ResizeObserver) {
|
|
31
|
+
this.observer = new window.ResizeObserver(this.handleResizeEventTriggered);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
getElement = () => {
|
|
35
|
+
try {
|
|
36
|
+
// eslint-disable-next-line react/no-find-dom-node
|
|
37
|
+
return (0, _reactDom.findDOMNode)(this.childNode || this);
|
|
38
|
+
} catch (error) {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
handleResizeEventTriggered = entries => {
|
|
43
|
+
const {
|
|
44
|
+
observerProperty,
|
|
45
|
+
onResize
|
|
46
|
+
} = this.props;
|
|
47
|
+
if (observerProperty === ObserverProperty.All) {
|
|
48
|
+
onResize?.(entries);
|
|
49
|
+
} else {
|
|
50
|
+
const finalEntries = [];
|
|
51
|
+
for (const entry of entries) {
|
|
52
|
+
const currentValue = entry.contentRect[observerProperty];
|
|
53
|
+
if (this.formerPropertyValue.has(entry.target)) {
|
|
54
|
+
if (currentValue !== this.formerPropertyValue.get(entry.target)) {
|
|
55
|
+
this.formerPropertyValue.set(entry.target, currentValue);
|
|
56
|
+
finalEntries.push(entry);
|
|
57
|
+
}
|
|
58
|
+
} else {
|
|
59
|
+
this.formerPropertyValue.set(entry.target, currentValue);
|
|
60
|
+
finalEntries.push(entry);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
if (finalEntries.length > 0) {
|
|
64
|
+
onResize?.(finalEntries);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
observeElement = (force = false) => {
|
|
69
|
+
if (!this.observer) return;
|
|
70
|
+
const element = this.getElement();
|
|
71
|
+
if (!(element && element instanceof Element)) {
|
|
72
|
+
this.observer.disconnect();
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
if (element === this.element && !force) {
|
|
76
|
+
return;
|
|
77
|
+
} else {
|
|
78
|
+
this.observer.disconnect();
|
|
79
|
+
this.element = element;
|
|
80
|
+
}
|
|
81
|
+
this.observer.observe(element);
|
|
82
|
+
if (this.props.observeParent && element.parentNode) {
|
|
83
|
+
const parentNode = element.parentNode;
|
|
84
|
+
if (parentNode.ownerDocument && parentNode.ownerDocument.defaultView && parentNode instanceof parentNode.ownerDocument.defaultView.HTMLElement) {
|
|
85
|
+
this._parentNode = parentNode;
|
|
86
|
+
this.observer.observe(parentNode);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
mergeRef = (ref, node) => {
|
|
91
|
+
this.childNode = node;
|
|
92
|
+
// 转发外部ref
|
|
93
|
+
if (typeof ref === 'function') {
|
|
94
|
+
ref(node);
|
|
95
|
+
} else if (typeof ref === 'object' && ref && 'current' in ref) {
|
|
96
|
+
ref.current = node;
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
componentDidMount() {
|
|
100
|
+
this.observeElement?.();
|
|
101
|
+
}
|
|
102
|
+
componentDidUpdate(prevProps) {
|
|
103
|
+
if (this.props.observeParent !== prevProps.observeParent) {
|
|
104
|
+
this.observeElement?.(true);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
componentWillUnmount() {
|
|
108
|
+
if (this.observer) {
|
|
109
|
+
this.observer.disconnect();
|
|
110
|
+
this.observer = null;
|
|
111
|
+
}
|
|
112
|
+
this.element = null;
|
|
113
|
+
this._parentNode = null;
|
|
114
|
+
this.formerPropertyValue.clear();
|
|
115
|
+
}
|
|
116
|
+
render() {
|
|
117
|
+
const {
|
|
118
|
+
children,
|
|
119
|
+
className,
|
|
120
|
+
style,
|
|
121
|
+
...rest
|
|
122
|
+
} = this.props;
|
|
123
|
+
const child = _react.default.Children.only(children);
|
|
124
|
+
const childRef = child.ref;
|
|
125
|
+
return /*#__PURE__*/_react.default.cloneElement(child, {
|
|
126
|
+
...rest,
|
|
127
|
+
className: className ? `${child.props.className || ''} ${className}` : child.props.className,
|
|
128
|
+
style: {
|
|
129
|
+
...child.props.style,
|
|
130
|
+
...style
|
|
131
|
+
},
|
|
132
|
+
ref: node => this.mergeRef(childRef, node)
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
exports.default = ReactResizeObserver;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { InternalPanelProps, PanelProps } from './interface';
|
|
3
|
+
export declare const InternalPanel: React.ForwardRefExoticComponent<InternalPanelProps & {
|
|
4
|
+
children?: React.ReactNode;
|
|
5
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
6
|
+
declare const Panel: React.FC<React.PropsWithChildren<PanelProps>>;
|
|
7
|
+
export default Panel;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = exports.InternalPanel = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _configProvider = require("antd/es/config-provider");
|
|
9
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
12
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
13
|
+
const InternalPanel = exports.InternalPanel = /*#__PURE__*/(0, _react.forwardRef)((props, ref) => {
|
|
14
|
+
const {
|
|
15
|
+
prefixCls: customizePrefixCls,
|
|
16
|
+
className,
|
|
17
|
+
children,
|
|
18
|
+
size,
|
|
19
|
+
style = {}
|
|
20
|
+
} = props;
|
|
21
|
+
const {
|
|
22
|
+
getPrefixCls
|
|
23
|
+
} = (0, _react.useContext)(_configProvider.ConfigContext);
|
|
24
|
+
const prefixCls = getPrefixCls('splitter', customizePrefixCls);
|
|
25
|
+
const panelClassName = (0, _classnames.default)(`${prefixCls}-panel`, {
|
|
26
|
+
[`${prefixCls}-panel-hidden`]: size === 0
|
|
27
|
+
}, className);
|
|
28
|
+
const hasSize = size !== undefined;
|
|
29
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
30
|
+
ref: ref,
|
|
31
|
+
className: panelClassName,
|
|
32
|
+
style: {
|
|
33
|
+
...style,
|
|
34
|
+
// Use auto when start from ssr
|
|
35
|
+
flexBasis: hasSize ? size : 'auto',
|
|
36
|
+
flexGrow: hasSize ? 0 : 1
|
|
37
|
+
}
|
|
38
|
+
}, children);
|
|
39
|
+
});
|
|
40
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
41
|
+
InternalPanel.displayName = 'Panel';
|
|
42
|
+
}
|
|
43
|
+
const Panel = () => null;
|
|
44
|
+
var _default = exports.default = Panel;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export declare type ShowCollapsibleIconMode = boolean | 'auto';
|
|
3
|
+
export interface SplitBarProps {
|
|
4
|
+
index: number;
|
|
5
|
+
active: boolean;
|
|
6
|
+
prefixCls: string;
|
|
7
|
+
resizable: boolean;
|
|
8
|
+
startCollapsible: boolean;
|
|
9
|
+
endCollapsible: boolean;
|
|
10
|
+
showStartCollapsibleIcon: ShowCollapsibleIconMode;
|
|
11
|
+
showEndCollapsibleIcon: ShowCollapsibleIconMode;
|
|
12
|
+
onOffsetStart: (index: number) => void;
|
|
13
|
+
onOffsetUpdate: (index: number, offsetX: number, offsetY: number, lazyEnd?: boolean) => void;
|
|
14
|
+
onOffsetEnd: (lazyEnd?: boolean) => void;
|
|
15
|
+
onCollapse: (index: number, type: 'start' | 'end') => void;
|
|
16
|
+
vertical: boolean;
|
|
17
|
+
ariaNow: number;
|
|
18
|
+
ariaMin: number;
|
|
19
|
+
ariaMax: number;
|
|
20
|
+
lazy?: boolean;
|
|
21
|
+
containerSize: number;
|
|
22
|
+
}
|
|
23
|
+
declare const SplitBar: React.FC<SplitBarProps>;
|
|
24
|
+
export default SplitBar;
|