@dtjoy/dt-design 1.0.0 → 1.0.2

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 (161) hide show
  1. package/esm/_util/gapSize.d.ts +3 -0
  2. package/esm/_util/gapSize.js +10 -0
  3. package/esm/_util/hooks/index.d.ts +1 -0
  4. package/esm/_util/hooks/index.js +1 -0
  5. package/esm/_util/hooks/useOrientation.d.ts +2 -0
  6. package/esm/_util/hooks/useOrientation.js +19 -0
  7. package/esm/_util/isNonNullable.d.ts +2 -0
  8. package/esm/_util/isNonNullable.js +4 -0
  9. package/esm/_util/type.d.ts +2 -1
  10. package/esm/blockHeader/index.d.ts +1 -1
  11. package/esm/blockHeader/index.js +13 -10
  12. package/esm/blockHeader/style/index.d.ts +2 -0
  13. package/esm/blockHeader/style/index.js +2 -0
  14. package/esm/blockHeader/{style.less → style/index.less} +143 -141
  15. package/esm/button/index.d.ts +10 -0
  16. package/esm/button/index.js +29 -0
  17. package/esm/button/style/index.d.ts +2 -0
  18. package/esm/button/style/index.js +2 -0
  19. package/esm/button/style/index.less +134 -0
  20. package/esm/button/style/mixin.less +47 -0
  21. package/esm/collapsible/index.d.ts +97 -0
  22. package/esm/collapsible/index.js +234 -0
  23. package/esm/collapsible/style/index.d.ts +1 -0
  24. package/esm/collapsible/style/index.js +1 -0
  25. package/esm/collapsible/style/index.less +24 -0
  26. package/esm/collapsibleActionItems/index.d.ts +24 -0
  27. package/esm/collapsibleActionItems/index.js +74 -0
  28. package/esm/collapsibleActionItems/style/index.d.ts +2 -0
  29. package/esm/collapsibleActionItems/style/index.js +2 -0
  30. package/esm/collapsibleActionItems/style/index.less +7 -0
  31. package/esm/flex/index.d.ts +7 -0
  32. package/esm/flex/index.js +62 -0
  33. package/esm/flex/interface.d.ts +16 -0
  34. package/esm/flex/interface.js +1 -0
  35. package/esm/flex/style/index.d.ts +2 -0
  36. package/esm/flex/style/index.js +2 -0
  37. package/esm/flex/style/index.less +77 -0
  38. package/esm/flex/utils.d.ts +7 -0
  39. package/esm/flex/utils.js +33 -0
  40. package/esm/index.d.ts +10 -1
  41. package/esm/index.js +8 -7
  42. package/esm/resize/index.d.ts +8 -0
  43. package/esm/resize/index.js +29 -0
  44. package/esm/splitter/Panel.d.ts +7 -0
  45. package/esm/splitter/Panel.js +38 -0
  46. package/esm/splitter/SplitBar.d.ts +24 -0
  47. package/esm/splitter/SplitBar.js +185 -0
  48. package/esm/splitter/Splitter.d.ts +5 -0
  49. package/esm/splitter/Splitter.js +215 -0
  50. package/esm/splitter/hooks/sizeUtil.d.ts +3 -0
  51. package/esm/splitter/hooks/sizeUtil.js +63 -0
  52. package/esm/splitter/hooks/useItems.d.ts +14 -0
  53. package/esm/splitter/hooks/useItems.js +44 -0
  54. package/esm/splitter/hooks/useResizable.d.ts +10 -0
  55. package/esm/splitter/hooks/useResizable.js +73 -0
  56. package/esm/splitter/hooks/useResize.d.ts +6 -0
  57. package/esm/splitter/hooks/useResize.js +158 -0
  58. package/esm/splitter/hooks/useSizes.d.ts +4 -0
  59. package/esm/splitter/hooks/useSizes.js +80 -0
  60. package/esm/splitter/index.d.ts +8 -0
  61. package/esm/splitter/index.js +5 -0
  62. package/esm/splitter/interface.d.ts +68 -0
  63. package/esm/splitter/interface.js +1 -0
  64. package/esm/splitter/style/index.d.ts +2 -0
  65. package/esm/splitter/style/index.js +2 -0
  66. package/esm/splitter/style/index.less +312 -0
  67. package/esm/statusTag/index.d.ts +28 -0
  68. package/esm/statusTag/index.js +122 -0
  69. package/esm/statusTag/style/index.d.ts +2 -0
  70. package/esm/statusTag/style/index.js +2 -0
  71. package/esm/statusTag/style/index.less +70 -0
  72. package/esm/statusTag/style/mixin.less +39 -0
  73. package/esm/style/index.d.ts +1 -0
  74. package/esm/style/index.js +1 -0
  75. package/esm/style/index.less +1 -0
  76. package/esm/style/mixins/index.less +0 -0
  77. package/esm/style/themes/index.less +2 -0
  78. package/esm/style/themes/variable.less +1 -0
  79. package/lib/_util/gapSize.d.ts +3 -0
  80. package/lib/_util/gapSize.js +17 -0
  81. package/lib/_util/hooks/index.d.ts +1 -0
  82. package/lib/_util/hooks/index.js +16 -0
  83. package/lib/_util/hooks/useOrientation.d.ts +2 -0
  84. package/lib/_util/hooks/useOrientation.js +26 -0
  85. package/lib/_util/isNonNullable.d.ts +2 -0
  86. package/lib/_util/isNonNullable.js +10 -0
  87. package/lib/_util/type.d.ts +2 -1
  88. package/lib/blockHeader/index.d.ts +1 -1
  89. package/lib/blockHeader/index.js +13 -11
  90. package/lib/blockHeader/style/index.d.ts +2 -0
  91. package/lib/blockHeader/style/index.js +4 -0
  92. package/lib/blockHeader/{style.less → style/index.less} +143 -141
  93. package/lib/button/index.d.ts +10 -0
  94. package/lib/button/index.js +33 -0
  95. package/lib/button/style/index.d.ts +2 -0
  96. package/lib/button/style/index.js +4 -0
  97. package/lib/button/style/index.less +134 -0
  98. package/lib/button/style/mixin.less +47 -0
  99. package/lib/collapsible/index.d.ts +97 -0
  100. package/lib/collapsible/index.js +199 -0
  101. package/lib/collapsible/style/index.d.ts +1 -0
  102. package/lib/collapsible/style/index.js +3 -0
  103. package/lib/collapsible/style/index.less +24 -0
  104. package/lib/collapsibleActionItems/index.d.ts +24 -0
  105. package/lib/collapsibleActionItems/index.js +68 -0
  106. package/lib/collapsibleActionItems/style/index.d.ts +2 -0
  107. package/lib/collapsibleActionItems/style/index.js +4 -0
  108. package/lib/collapsibleActionItems/style/index.less +7 -0
  109. package/lib/flex/index.d.ts +7 -0
  110. package/lib/flex/index.js +60 -0
  111. package/lib/flex/interface.d.ts +16 -0
  112. package/lib/flex/interface.js +5 -0
  113. package/lib/flex/style/index.d.ts +2 -0
  114. package/lib/flex/style/index.js +4 -0
  115. package/lib/flex/style/index.less +77 -0
  116. package/lib/flex/utils.d.ts +7 -0
  117. package/lib/flex/utils.js +39 -0
  118. package/lib/index.d.ts +10 -1
  119. package/lib/index.js +72 -1
  120. package/lib/resize/index.d.ts +8 -0
  121. package/lib/resize/index.js +38 -0
  122. package/lib/splitter/Panel.d.ts +7 -0
  123. package/lib/splitter/Panel.js +44 -0
  124. package/lib/splitter/SplitBar.d.ts +24 -0
  125. package/lib/splitter/SplitBar.js +179 -0
  126. package/lib/splitter/Splitter.d.ts +5 -0
  127. package/lib/splitter/Splitter.js +202 -0
  128. package/lib/splitter/hooks/sizeUtil.d.ts +3 -0
  129. package/lib/splitter/hooks/sizeUtil.js +56 -0
  130. package/lib/splitter/hooks/useItems.d.ts +14 -0
  131. package/lib/splitter/hooks/useItems.js +46 -0
  132. package/lib/splitter/hooks/useResizable.d.ts +10 -0
  133. package/lib/splitter/hooks/useResizable.js +83 -0
  134. package/lib/splitter/hooks/useResize.d.ts +6 -0
  135. package/lib/splitter/hooks/useResize.js +142 -0
  136. package/lib/splitter/hooks/useSizes.d.ts +4 -0
  137. package/lib/splitter/hooks/useSizes.js +62 -0
  138. package/lib/splitter/index.d.ts +8 -0
  139. package/lib/splitter/index.js +12 -0
  140. package/lib/splitter/interface.d.ts +68 -0
  141. package/lib/splitter/interface.js +5 -0
  142. package/lib/splitter/style/index.d.ts +2 -0
  143. package/lib/splitter/style/index.js +4 -0
  144. package/lib/splitter/style/index.less +312 -0
  145. package/lib/statusTag/index.d.ts +28 -0
  146. package/lib/statusTag/index.js +125 -0
  147. package/lib/statusTag/style/index.d.ts +2 -0
  148. package/lib/statusTag/style/index.js +4 -0
  149. package/lib/statusTag/style/index.less +70 -0
  150. package/lib/statusTag/style/mixin.less +39 -0
  151. package/lib/style/index.d.ts +1 -0
  152. package/lib/style/index.js +3 -0
  153. package/lib/style/index.less +1 -0
  154. package/lib/style/mixins/index.less +0 -0
  155. package/lib/style/themes/index.less +2 -0
  156. package/lib/style/themes/variable.less +1 -0
  157. package/package.json +142 -141
  158. package/esm/styles/entry.less +0 -6
  159. package/esm/styles/variables.less +0 -1
  160. package/lib/styles/entry.less +0 -6
  161. package/lib/styles/variables.less +0 -1
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _configProvider = require("antd/es/config-provider");
9
+ var _clsx = require("clsx");
10
+ var _lodashEs = require("lodash-es");
11
+ require("./style");
12
+ var _gapSize = require("../_util/gapSize");
13
+ var _hooks = require("../_util/hooks");
14
+ var _isNonNullable = _interopRequireDefault(require("../_util/isNonNullable"));
15
+ var _utils = _interopRequireDefault(require("./utils"));
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+ 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); }
18
+ const Flex = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
19
+ const {
20
+ prefixCls: customizePrefixCls,
21
+ rootClassName,
22
+ className,
23
+ style,
24
+ flex,
25
+ gap,
26
+ vertical,
27
+ orientation,
28
+ component: Component = 'div',
29
+ children,
30
+ ...othersProps
31
+ } = props;
32
+ const {
33
+ direction: ctxDirection
34
+ } = _react.default.useContext(_configProvider.ConfigContext);
35
+ const prefixCls = customizePrefixCls || (0, _configProvider.globalConfig)().getPrefixCls('flex');
36
+ const [mergedVertical] = (0, _hooks.useOrientation)(orientation, vertical);
37
+ const mergedCls = (0, _clsx.clsx)(className, rootClassName, prefixCls, (0, _utils.default)(prefixCls, props), {
38
+ [`${prefixCls}-rtl`]: ctxDirection === 'rtl',
39
+ [`${prefixCls}-gap-${gap}`]: (0, _gapSize.isPresetSize)(gap),
40
+ [`${prefixCls}-vertical`]: mergedVertical === 'vertical'
41
+ });
42
+ const mergedStyle = {
43
+ ...style
44
+ };
45
+ if ((0, _isNonNullable.default)(flex)) {
46
+ mergedStyle.flex = flex;
47
+ }
48
+ if ((0, _isNonNullable.default)(gap) && !(0, _gapSize.isPresetSize)(gap)) {
49
+ mergedStyle.gap = gap;
50
+ }
51
+ return /*#__PURE__*/_react.default.createElement(Component, _extends({
52
+ ref: ref,
53
+ className: mergedCls,
54
+ style: mergedStyle
55
+ }, (0, _lodashEs.omit)(othersProps, ['justify', 'wrap', 'align'])), children);
56
+ });
57
+ if (process.env.NODE_ENV !== 'production') {
58
+ Flex.displayName = 'Flex';
59
+ }
60
+ var _default = exports.default = Flex;
@@ -0,0 +1,16 @@
1
+ import type React from 'react';
2
+ import { SizeType } from 'antd/es/config-provider/SizeContext';
3
+ import type { Orientation } from '../_util/hooks';
4
+ import type { AnyObject, CustomComponent, LiteralUnion } from '../_util/type';
5
+ export interface FlexProps<P = AnyObject> extends React.HTMLAttributes<HTMLElement> {
6
+ prefixCls?: string;
7
+ rootClassName?: string;
8
+ vertical?: boolean;
9
+ orientation?: Orientation;
10
+ wrap?: boolean | React.CSSProperties['flexWrap'];
11
+ justify?: React.CSSProperties['justifyContent'];
12
+ align?: React.CSSProperties['alignItems'];
13
+ flex?: React.CSSProperties['flex'];
14
+ gap?: LiteralUnion<SizeType, React.CSSProperties['gap']>;
15
+ component?: CustomComponent<P>;
16
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,2 @@
1
+ import '../../style/index.less';
2
+ import './index.less';
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ require("../../style/index.less");
4
+ require("./index.less");
@@ -0,0 +1,77 @@
1
+ @import '../../style/themes/index.less';
2
+
3
+ @flex-prefix-cls: ~'@{ant-prefix}-flex';
4
+
5
+ // 属性与值的映射
6
+ @align-items-values: {
7
+ stretch: stretch;
8
+ flex-start: flex-start;
9
+ center: center;
10
+ flex-end: flex-end;
11
+ baseline: baseline;
12
+ };
13
+
14
+ @justify-content-values: {
15
+ flex-start: flex-start;
16
+ center: center;
17
+ flex-end: flex-end;
18
+ space-between: space-between;
19
+ space-around: space-around;
20
+ space-evenly: space-evenly;
21
+ };
22
+
23
+ @flex-wrap-values: {
24
+ nowrap: nowrap;
25
+ wrap: wrap;
26
+ wrap-reverse: wrap-reverse;
27
+ };
28
+
29
+ .@{flex-prefix-cls} {
30
+ display: flex;
31
+ margin: 0;
32
+ padding: 0;
33
+
34
+ // 方向
35
+ &-vertical {
36
+ flex-direction: column;
37
+ }
38
+ &-rtl {
39
+ direction: rtl;
40
+ }
41
+ &:empty {
42
+ display: none;
43
+ }
44
+
45
+ // 间距 (Gap)
46
+ &-gap-small {
47
+ gap: @padding-xs;
48
+ }
49
+ &-gap-middle {
50
+ gap: @padding-md;
51
+ }
52
+ &-gap-large {
53
+ gap: @padding-lg;
54
+ }
55
+
56
+ // 使用 Loops/Each 抽象重复代码
57
+ // flex-wrap
58
+ each(@flex-wrap-values, .(@value, @key) {
59
+ &-wrap-@{key} {
60
+ flex-wrap: @value;
61
+ }
62
+ });
63
+
64
+ // align-items
65
+ each(@align-items-values, .(@value, @key) {
66
+ &-align-@{key} {
67
+ align-items: @value;
68
+ }
69
+ });
70
+
71
+ // justify-content
72
+ each(@justify-content-values, .(@value, @key) {
73
+ &-justify-@{key} {
74
+ justify-content: @value;
75
+ }
76
+ });
77
+ }
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import type { FlexProps } from './interface';
3
+ export declare const flexWrapValues: React.CSSProperties['flexWrap'][];
4
+ export declare const justifyContentValues: React.CSSProperties['justifyContent'][];
5
+ export declare const alignItemsValues: React.CSSProperties['alignItems'][];
6
+ declare const createFlexClassNames: (prefixCls: string, props: FlexProps) => string;
7
+ export default createFlexClassNames;
@@ -0,0 +1,39 @@
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 _clsx = require("clsx");
8
+ const flexWrapValues = exports.flexWrapValues = ['wrap', 'nowrap', 'wrap-reverse'];
9
+ const justifyContentValues = exports.justifyContentValues = ['flex-start', 'flex-end', 'start', 'end', 'center', 'space-between', 'space-around', 'space-evenly', 'stretch', 'normal', 'left', 'right'];
10
+ const alignItemsValues = exports.alignItemsValues = ['center', 'start', 'end', 'flex-start', 'flex-end', 'self-start', 'self-end', 'baseline', 'normal', 'stretch'];
11
+ const genClsWrap = (prefixCls, props) => {
12
+ const wrap = props.wrap === true ? 'wrap' : props.wrap;
13
+ return {
14
+ [`${prefixCls}-wrap-${wrap}`]: wrap && flexWrapValues.includes(wrap)
15
+ };
16
+ };
17
+ const genClsAlign = (prefixCls, props) => {
18
+ const alignCls = {};
19
+ alignItemsValues.forEach(cssKey => {
20
+ alignCls[`${prefixCls}-align-${cssKey}`] = props.align === cssKey;
21
+ });
22
+ alignCls[`${prefixCls}-align-stretch`] = !props.align && !!props.vertical;
23
+ return alignCls;
24
+ };
25
+ const genClsJustify = (prefixCls, props) => {
26
+ const justifyCls = {};
27
+ justifyContentValues.forEach(cssKey => {
28
+ justifyCls[`${prefixCls}-justify-${cssKey}`] = props.justify === cssKey;
29
+ });
30
+ return justifyCls;
31
+ };
32
+ const createFlexClassNames = (prefixCls, props) => {
33
+ return (0, _clsx.clsx)({
34
+ ...genClsWrap(prefixCls, props),
35
+ ...genClsAlign(prefixCls, props),
36
+ ...genClsJustify(prefixCls, props)
37
+ });
38
+ };
39
+ var _default = exports.default = createFlexClassNames;
package/lib/index.d.ts CHANGED
@@ -1,3 +1,12 @@
1
1
  import '@dtinsight/react-icons/dist/index.css';
2
- import './styles/entry.less';
3
2
  export { default as BlockHeader } from './blockHeader';
3
+ export type { ButtonProps } from './button';
4
+ export { default as Button } from './button';
5
+ export { default as Flex } from './flex';
6
+ export type { FlexProps } from './flex/interface';
7
+ export { default as CollapsibleActionItems } from './collapsibleActionItems';
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,13 +3,84 @@
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
+ Resize: true,
12
+ Splitter: true,
13
+ Collapsible: true,
14
+ StatusTag: true
15
+ };
6
16
  Object.defineProperty(exports, "BlockHeader", {
7
17
  enumerable: true,
8
18
  get: function () {
9
19
  return _blockHeader.default;
10
20
  }
11
21
  });
22
+ Object.defineProperty(exports, "Button", {
23
+ enumerable: true,
24
+ get: function () {
25
+ return _button.default;
26
+ }
27
+ });
28
+ Object.defineProperty(exports, "Collapsible", {
29
+ enumerable: true,
30
+ get: function () {
31
+ return _collapsible.default;
32
+ }
33
+ });
34
+ Object.defineProperty(exports, "CollapsibleActionItems", {
35
+ enumerable: true,
36
+ get: function () {
37
+ return _collapsibleActionItems.default;
38
+ }
39
+ });
40
+ Object.defineProperty(exports, "Flex", {
41
+ enumerable: true,
42
+ get: function () {
43
+ return _flex.default;
44
+ }
45
+ });
46
+ Object.defineProperty(exports, "Resize", {
47
+ enumerable: true,
48
+ get: function () {
49
+ return _resize.default;
50
+ }
51
+ });
52
+ Object.defineProperty(exports, "Splitter", {
53
+ enumerable: true,
54
+ get: function () {
55
+ return _splitter.default;
56
+ }
57
+ });
58
+ Object.defineProperty(exports, "StatusTag", {
59
+ enumerable: true,
60
+ get: function () {
61
+ return _statusTag.default;
62
+ }
63
+ });
12
64
  require("@dtinsight/react-icons/dist/index.css");
13
- require("./styles/entry.less");
14
65
  var _blockHeader = _interopRequireDefault(require("./blockHeader"));
66
+ var _button = _interopRequireDefault(require("./button"));
67
+ var _flex = _interopRequireDefault(require("./flex"));
68
+ var _collapsibleActionItems = _interopRequireDefault(require("./collapsibleActionItems"));
69
+ var _resize = _interopRequireDefault(require("./resize"));
70
+ var _splitter = _interopRequireWildcard(require("./splitter"));
71
+ Object.keys(_splitter).forEach(function (key) {
72
+ if (key === "default" || key === "__esModule") return;
73
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
74
+ if (key in exports && exports[key] === _splitter[key]) return;
75
+ Object.defineProperty(exports, key, {
76
+ enumerable: true,
77
+ get: function () {
78
+ return _splitter[key];
79
+ }
80
+ });
81
+ });
82
+ var _collapsible = _interopRequireDefault(require("./collapsible"));
83
+ var _statusTag = _interopRequireDefault(require("./statusTag"));
84
+ 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); }
85
+ 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
86
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -0,0 +1,8 @@
1
+ import React, { ReactNode } from 'react';
2
+ export interface ResizeProps {
3
+ observerEle?: HTMLElement | null;
4
+ children?: ReactNode;
5
+ onResize?: () => void;
6
+ }
7
+ declare const Resize: React.FC<ResizeProps>;
8
+ export default Resize;
@@ -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,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;
@@ -0,0 +1,179 @@
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 _reactIcons = require("@dtinsight/react-icons");
9
+ var _classnames = _interopRequireDefault(require("classnames"));
10
+ var _useEvent = _interopRequireDefault(require("rc-util/lib/hooks/useEvent"));
11
+ var _useLayoutEffect = _interopRequireDefault(require("rc-util/lib/hooks/useLayoutEffect"));
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
+ function getValidNumber(num) {
16
+ return typeof num === 'number' && !Number.isNaN(num) && Number.isFinite(num) ? Math.round(num) : 0;
17
+ }
18
+ const SplitBar = props => {
19
+ const {
20
+ prefixCls,
21
+ vertical,
22
+ index,
23
+ active,
24
+ ariaNow,
25
+ ariaMin,
26
+ ariaMax,
27
+ resizable,
28
+ startCollapsible,
29
+ endCollapsible,
30
+ onOffsetStart,
31
+ onOffsetUpdate,
32
+ onOffsetEnd,
33
+ onCollapse,
34
+ lazy,
35
+ containerSize,
36
+ showStartCollapsibleIcon,
37
+ showEndCollapsibleIcon
38
+ } = props;
39
+ const splitBarPrefixCls = `${prefixCls}-bar`;
40
+ const [startPos, setStartPos] = (0, _react.useState)(null);
41
+ const [constrainedOffset, setConstrainedOffset] = (0, _react.useState)(0);
42
+ const constrainedOffsetX = vertical ? 0 : constrainedOffset;
43
+ const constrainedOffsetY = vertical ? constrainedOffset : 0;
44
+ const onMouseDown = e => {
45
+ if (resizable && e.currentTarget) {
46
+ setStartPos([e.pageX, e.pageY]);
47
+ onOffsetStart(index);
48
+ }
49
+ };
50
+ const onTouchStart = e => {
51
+ if (resizable && e.touches.length === 1) {
52
+ const touch = e.touches[0];
53
+ setStartPos([touch.pageX, touch.pageY]);
54
+ onOffsetStart(index);
55
+ }
56
+ };
57
+ const getConstrainedOffset = rawOffset => {
58
+ const currentPos = containerSize * ariaNow / 100;
59
+ const newPos = currentPos + rawOffset;
60
+ const minAllowed = Math.max(0, containerSize * ariaMin / 100);
61
+ const maxAllowed = Math.min(containerSize, containerSize * ariaMax / 100);
62
+ const clampedPos = Math.max(minAllowed, Math.min(maxAllowed, newPos));
63
+ return clampedPos - currentPos;
64
+ };
65
+ const handleLazyMove = (0, _useEvent.default)((offsetX, offsetY) => {
66
+ const constrainedOffsetValue = getConstrainedOffset(vertical ? offsetY : offsetX);
67
+ setConstrainedOffset(constrainedOffsetValue);
68
+ });
69
+ const handleLazyEnd = (0, _useEvent.default)(() => {
70
+ onOffsetUpdate(index, constrainedOffsetX, constrainedOffsetY, true);
71
+ setConstrainedOffset(0);
72
+ onOffsetEnd(true);
73
+ });
74
+ const getVisibilityClass = mode => {
75
+ switch (mode) {
76
+ case true:
77
+ return `${splitBarPrefixCls}-collapse-bar-always-visible`;
78
+ case false:
79
+ return `${splitBarPrefixCls}-collapse-bar-always-hidden`;
80
+ case 'auto':
81
+ return `${splitBarPrefixCls}-collapse-bar-hover-only`;
82
+ }
83
+ };
84
+ (0, _useLayoutEffect.default)(() => {
85
+ if (!startPos) {
86
+ return;
87
+ }
88
+ const onMouseMove = e => {
89
+ const {
90
+ pageX,
91
+ pageY
92
+ } = e;
93
+ const offsetX = pageX - startPos[0];
94
+ const offsetY = pageY - startPos[1];
95
+ if (lazy) {
96
+ handleLazyMove(offsetX, offsetY);
97
+ } else {
98
+ onOffsetUpdate(index, offsetX, offsetY);
99
+ }
100
+ };
101
+ const onMouseUp = () => {
102
+ if (lazy) {
103
+ handleLazyEnd();
104
+ } else {
105
+ onOffsetEnd();
106
+ }
107
+ setStartPos(null);
108
+ };
109
+ const handleTouchMove = e => {
110
+ if (e.touches.length === 1) {
111
+ const touch = e.touches[0];
112
+ const offsetX = touch.pageX - startPos[0];
113
+ const offsetY = touch.pageY - startPos[1];
114
+ if (lazy) {
115
+ handleLazyMove(offsetX, offsetY);
116
+ } else {
117
+ onOffsetUpdate(index, offsetX, offsetY);
118
+ }
119
+ }
120
+ };
121
+ const handleTouchEnd = () => {
122
+ if (lazy) {
123
+ handleLazyEnd();
124
+ } else {
125
+ onOffsetEnd();
126
+ }
127
+ setStartPos(null);
128
+ };
129
+ const eventHandlerMap = {
130
+ mousemove: onMouseMove,
131
+ mouseup: onMouseUp,
132
+ touchmove: handleTouchMove,
133
+ touchend: handleTouchEnd
134
+ };
135
+ for (const [event, handler] of Object.entries(eventHandlerMap)) {
136
+ window.addEventListener(event, handler);
137
+ }
138
+ return () => {
139
+ for (const [event, handler] of Object.entries(eventHandlerMap)) {
140
+ window.removeEventListener(event, handler);
141
+ }
142
+ };
143
+ }, [startPos, index, lazy]);
144
+ const transformStyle = {
145
+ [`--${splitBarPrefixCls}-preview-offset`]: `${constrainedOffset}px`
146
+ };
147
+ const StartIcon = vertical ? _reactIcons.UpOutlined : _reactIcons.LeftOutlined;
148
+ const EndIcon = vertical ? _reactIcons.DownOutlined : _reactIcons.RightOutlined;
149
+ return /*#__PURE__*/_react.default.createElement("div", {
150
+ className: splitBarPrefixCls,
151
+ role: "separator",
152
+ "aria-valuenow": getValidNumber(ariaNow),
153
+ "aria-valuemin": getValidNumber(ariaMin),
154
+ "aria-valuemax": getValidNumber(ariaMax)
155
+ }, lazy && /*#__PURE__*/_react.default.createElement("div", {
156
+ className: (0, _classnames.default)(`${splitBarPrefixCls}-preview`, {
157
+ [`${splitBarPrefixCls}-preview-active`]: !!constrainedOffset
158
+ }),
159
+ style: transformStyle
160
+ }), /*#__PURE__*/_react.default.createElement("div", {
161
+ className: (0, _classnames.default)(`${splitBarPrefixCls}-dragger`, {
162
+ [`${splitBarPrefixCls}-dragger-disabled`]: !resizable,
163
+ [`${splitBarPrefixCls}-dragger-active`]: active
164
+ }),
165
+ onMouseDown: onMouseDown,
166
+ onTouchStart: onTouchStart
167
+ }), startCollapsible && /*#__PURE__*/_react.default.createElement("div", {
168
+ className: (0, _classnames.default)(`${splitBarPrefixCls}-collapse-bar`, `${splitBarPrefixCls}-collapse-bar-start`, getVisibilityClass(showStartCollapsibleIcon)),
169
+ onClick: () => onCollapse(index, 'start')
170
+ }, /*#__PURE__*/_react.default.createElement(StartIcon, {
171
+ className: (0, _classnames.default)(`${splitBarPrefixCls}-collapse-icon`, `${splitBarPrefixCls}-collapse-start`)
172
+ })), endCollapsible && /*#__PURE__*/_react.default.createElement("div", {
173
+ className: (0, _classnames.default)(`${splitBarPrefixCls}-collapse-bar`, `${splitBarPrefixCls}-collapse-bar-end`, getVisibilityClass(showEndCollapsibleIcon)),
174
+ onClick: () => onCollapse(index, 'end')
175
+ }, /*#__PURE__*/_react.default.createElement(EndIcon, {
176
+ className: (0, _classnames.default)(`${splitBarPrefixCls}-collapse-icon`, `${splitBarPrefixCls}-collapse-end`)
177
+ })));
178
+ };
179
+ var _default = exports.default = SplitBar;
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import type { SplitterProps } from './interface';
3
+ import './style/index.less';
4
+ declare const Splitter: React.FC<React.PropsWithChildren<SplitterProps>>;
5
+ export default Splitter;