@kdcloudjs/kdesign 1.6.31 → 1.6.33

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 (64) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/LICENSE +3 -0
  3. package/dist/kdesign.css +1 -1
  4. package/dist/kdesign.css.map +1 -1
  5. package/dist/kdesign.js +2071 -219
  6. package/dist/kdesign.js.map +1 -1
  7. package/dist/kdesign.min.css +1 -1
  8. package/dist/kdesign.min.js +8 -8
  9. package/dist/kdesign.min.js.map +1 -1
  10. package/es/_utils/getStringLength.d.ts +1 -0
  11. package/es/_utils/getStringLength.js +14 -0
  12. package/es/_utils/hooks.d.ts +3 -0
  13. package/es/_utils/hooks.js +50 -1
  14. package/es/_utils/raf.d.ts +3 -0
  15. package/es/_utils/raf.js +35 -0
  16. package/es/_utils/resizeObserver.d.ts +15 -0
  17. package/es/_utils/resizeObserver.js +79 -0
  18. package/es/_utils/usePopper.js +1 -1
  19. package/es/date-picker/date-picker.js +2 -5
  20. package/es/select/interface.d.ts +2 -0
  21. package/es/select/select.js +22 -2
  22. package/es/stepper/stepper.js +2 -1
  23. package/es/table/feature/colGroupExtendable.d.ts +4 -0
  24. package/es/table/feature/colGroupExtendable.js +9 -0
  25. package/es/table/interface.d.ts +2 -1
  26. package/es/table/table.js +5 -1
  27. package/es/virtual-list/Filler.d.ts +9 -0
  28. package/es/virtual-list/Filler.js +38 -0
  29. package/es/virtual-list/index.d.ts +3 -0
  30. package/es/virtual-list/index.js +3 -0
  31. package/es/virtual-list/utils/algorithmUtil.d.ts +19 -0
  32. package/es/virtual-list/utils/algorithmUtil.js +79 -0
  33. package/es/virtual-list/utils/itemUtil.d.ts +75 -0
  34. package/es/virtual-list/utils/itemUtil.js +176 -0
  35. package/es/virtual-list/virtual-list.d.ts +34 -0
  36. package/es/virtual-list/virtual-list.js +589 -0
  37. package/lib/_utils/getStringLength.d.ts +1 -0
  38. package/lib/_utils/getStringLength.js +21 -0
  39. package/lib/_utils/hooks.d.ts +3 -0
  40. package/lib/_utils/hooks.js +56 -0
  41. package/lib/_utils/raf.d.ts +3 -0
  42. package/lib/_utils/raf.js +43 -0
  43. package/lib/_utils/resizeObserver.d.ts +15 -0
  44. package/lib/_utils/resizeObserver.js +95 -0
  45. package/lib/_utils/usePopper.js +1 -1
  46. package/lib/date-picker/date-picker.js +2 -6
  47. package/lib/select/interface.d.ts +2 -0
  48. package/lib/select/select.js +23 -2
  49. package/lib/stepper/stepper.js +3 -1
  50. package/lib/table/feature/colGroupExtendable.d.ts +4 -0
  51. package/lib/table/feature/colGroupExtendable.js +17 -0
  52. package/lib/table/interface.d.ts +2 -1
  53. package/lib/table/table.js +6 -1
  54. package/lib/virtual-list/Filler.d.ts +9 -0
  55. package/lib/virtual-list/Filler.js +59 -0
  56. package/lib/virtual-list/index.d.ts +3 -0
  57. package/lib/virtual-list/index.js +36 -0
  58. package/lib/virtual-list/utils/algorithmUtil.d.ts +19 -0
  59. package/lib/virtual-list/utils/algorithmUtil.js +88 -0
  60. package/lib/virtual-list/utils/itemUtil.d.ts +75 -0
  61. package/lib/virtual-list/utils/itemUtil.js +206 -0
  62. package/lib/virtual-list/virtual-list.d.ts +34 -0
  63. package/lib/virtual-list/virtual-list.js +626 -0
  64. package/package.json +1 -1
@@ -0,0 +1,3 @@
1
+ declare let raf: any;
2
+ declare let caf: any;
3
+ export { raf, caf };
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.raf = exports.caf = void 0;
7
+ var target = typeof window === 'undefined' ? global : window;
8
+ var vendors = ['webkit', 'ms', 'moz', 'o'];
9
+ var raf = target.requestAnimationFrame; // eslint-disable-line
10
+
11
+ exports.raf = raf;
12
+ var caf = target.cancelAnimationFrame; // eslint-disable-line
13
+
14
+ exports.caf = caf;
15
+
16
+ if (!raf || !caf) {
17
+ vendors.some(function (prefix) {
18
+ exports.raf = raf = target["".concat(prefix, "RequestAnimationFrame")];
19
+ exports.caf = caf = target["".concat(prefix, "CancelAnimationFrame")] || target["".concat(prefix, "CancelRequestAnimationFrame")];
20
+ return raf && caf;
21
+ });
22
+
23
+ if (!raf || !caf) {
24
+ var lastTime = 0;
25
+
26
+ exports.raf = raf = function raf(cb) {
27
+ var currentTime = Date.now();
28
+ var diff = Math.max(0, 16 - (currentTime - lastTime));
29
+ var timer = setTimeout(function () {
30
+ cb();
31
+ lastTime = currentTime + diff;
32
+ }, diff);
33
+ return timer;
34
+ };
35
+
36
+ exports.caf = caf = function caf(timer) {
37
+ clearTimeout(timer);
38
+ };
39
+ }
40
+ }
41
+
42
+ exports.raf = raf = raf.bind(target);
43
+ exports.caf = caf = caf.bind(target);
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ export interface ResizeProps {
3
+ onResize?: (entry: ResizeObserverEntry[]) => void;
4
+ children?: React.ReactNode;
5
+ }
6
+ declare class ResizeObserverComponent extends React.Component<ResizeProps> {
7
+ resizeObserver: any;
8
+ componentDidMount(): void;
9
+ componentDidUpdate(): void;
10
+ componentWillUnmount: () => void;
11
+ createResizeObserver: () => void;
12
+ destroyResizeObserver: () => void;
13
+ render(): React.ReactNode;
14
+ }
15
+ export default ResizeObserverComponent;
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+
3
+ var _Reflect$construct = require("@babel/runtime-corejs3/core-js-stable/reflect/construct");
4
+
5
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = void 0;
11
+
12
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/classCallCheck"));
13
+
14
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/createClass"));
15
+
16
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/assertThisInitialized"));
17
+
18
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/inherits"));
19
+
20
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/possibleConstructorReturn"));
21
+
22
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/getPrototypeOf"));
23
+
24
+ var _react = _interopRequireDefault(require("react"));
25
+
26
+ var _resizeObserverPolyfill = _interopRequireDefault(require("resize-observer-polyfill"));
27
+
28
+ var _reactDom = require("react-dom");
29
+
30
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
31
+
32
+ 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; } }
33
+
34
+ var ResizeObserverComponent = /*#__PURE__*/function (_React$Component) {
35
+ (0, _inherits2.default)(ResizeObserverComponent, _React$Component);
36
+
37
+ var _super = _createSuper(ResizeObserverComponent);
38
+
39
+ function ResizeObserverComponent() {
40
+ var _this;
41
+
42
+ (0, _classCallCheck2.default)(this, ResizeObserverComponent);
43
+ _this = _super.apply(this, arguments);
44
+
45
+ _this.componentWillUnmount = function () {
46
+ if (_this.resizeObserver) {
47
+ _this.destroyResizeObserver();
48
+ }
49
+ };
50
+
51
+ _this.createResizeObserver = function () {
52
+ _this.resizeObserver = new _resizeObserverPolyfill.default(function (entry) {
53
+ var onResize = _this.props.onResize;
54
+ onResize && onResize(entry);
55
+ }); // eslint-disable-next-line react/no-find-dom-node
56
+
57
+ _this.resizeObserver.observe((0, _reactDom.findDOMNode)((0, _assertThisInitialized2.default)(_this)));
58
+ };
59
+
60
+ _this.destroyResizeObserver = function () {
61
+ _this.resizeObserver && _this.resizeObserver.disconnect();
62
+ _this.resizeObserver = null;
63
+ };
64
+
65
+ return _this;
66
+ }
67
+
68
+ (0, _createClass2.default)(ResizeObserverComponent, [{
69
+ key: "componentDidMount",
70
+ value: function componentDidMount() {
71
+ if (! /*#__PURE__*/_react.default.isValidElement(this.props.children)) {
72
+ console.warn('The children of ResizeObserver is invalid.');
73
+ } else {
74
+ this.createResizeObserver();
75
+ }
76
+ }
77
+ }, {
78
+ key: "componentDidUpdate",
79
+ value: function componentDidUpdate() {
80
+ // eslint-disable-next-line react/no-find-dom-node
81
+ if (!this.resizeObserver && (0, _reactDom.findDOMNode)(this)) {
82
+ this.createResizeObserver();
83
+ }
84
+ }
85
+ }, {
86
+ key: "render",
87
+ value: function render() {
88
+ return this.props.children;
89
+ }
90
+ }]);
91
+ return ResizeObserverComponent;
92
+ }(_react.default.Component);
93
+
94
+ var _default = ResizeObserverComponent;
95
+ exports.default = _default;
@@ -579,7 +579,7 @@ function usePopper(locatorElement, popperElement, props) {
579
579
  } else {
580
580
  if (matchTrigger('hover')) {
581
581
  mouseleaveTimer && clearTimeout(mouseleaveTimer);
582
- mouseleaveTimer = window.setTimeout(hidePopper, mouseLeaveDelay * 3000);
582
+ mouseleaveTimer = window.setTimeout(hidePopper, mouseLeaveDelay * 1000);
583
583
  } else {
584
584
  hidePopper();
585
585
  }
@@ -122,8 +122,6 @@ var InternalDatePicker = function InternalDatePicker(props, ref) {
122
122
  onClick = datePickerProps.onClick,
123
123
  _onOk = datePickerProps.onOk; // ref
124
124
 
125
- var panelDivRef = _react.default.useRef(null);
126
-
127
125
  var inputDivRefDefault = _react.default.useRef(null);
128
126
 
129
127
  var inputDivRef = ref || inputDivRefDefault;
@@ -285,9 +283,7 @@ var InternalDatePicker = function InternalDatePicker(props, ref) {
285
283
  if (!openValue) {
286
284
  setSelectedValue(dateValue);
287
285
 
288
- if (valueText === '') {
289
- triggerTextChange('');
290
- } else if (valueText !== text) {
286
+ if (valueText !== text) {
291
287
  resetText();
292
288
  }
293
289
  } else {
@@ -439,7 +435,7 @@ var InternalDatePicker = function InternalDatePicker(props, ref) {
439
435
 
440
436
  var inputProps = {
441
437
  inputRef: inputRef,
442
- panelDivRef: panelDivRef,
438
+ panelDivRef: popperRef,
443
439
  id: id,
444
440
  autoFocus: autoFocus,
445
441
  allowClear: allowClear,
@@ -1,5 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { PopperProps } from '../_utils/usePopper';
3
+ import { AvailableVirtualListProps } from '../virtual-list';
3
4
  export declare const SelectSizes: ["large", "middle", "small"];
4
5
  export declare type SelectSize = typeof SelectSizes[number];
5
6
  export declare const BorderTypes: ["none", "underline", "bordered"];
@@ -37,6 +38,7 @@ export interface AbstractSelectProps extends PopperProps {
37
38
  filterOption?: boolean | ((inputValue: string, option?: OptionsType) => boolean);
38
39
  optionFilterProp?: string;
39
40
  optionLabelProp?: string;
41
+ virtualListProps?: AvailableVirtualListProps | boolean;
40
42
  }
41
43
  export interface LabeledValue {
42
44
  key?: string;
@@ -51,6 +51,8 @@ var _option = _interopRequireDefault(require("./option"));
51
51
 
52
52
  var _usePopper = _interopRequireDefault(require("../_utils/usePopper"));
53
53
 
54
+ var _virtualList = _interopRequireDefault(require("../virtual-list"));
55
+
54
56
  function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
55
57
 
56
58
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -99,7 +101,8 @@ var InternalSelect = function InternalSelect(props, ref) {
99
101
  optionLabelProp = selectProps.optionLabelProp,
100
102
  _selectProps$popperSt = selectProps.popperStyle,
101
103
  popperStyle = _selectProps$popperSt === void 0 ? {} : _selectProps$popperSt,
102
- tagRender = selectProps.tagRender;
104
+ tagRender = selectProps.tagRender,
105
+ virtualListProps = selectProps.virtualListProps;
103
106
  var isMultiple = mode === 'multiple'; // 是否多选
104
107
 
105
108
  var _useMergedState = (0, _hooks.useMergedState)(undefined, {
@@ -595,6 +598,7 @@ var InternalSelect = function InternalSelect(props, ref) {
595
598
  listHeight = selectProps.listHeight;
596
599
  var selectedVal = multipleRef.current.selectedVal;
597
600
  var childrenToRender = filledOptions;
601
+ var eleOptionList = filledOptions;
598
602
 
599
603
  if (Array.isArray(childrenToRender) && childrenToRender.length > 0) {
600
604
  childrenToRender = (0, _map.default)(childrenToRender).call(childrenToRender, function (item, index) {
@@ -602,6 +606,23 @@ var InternalSelect = function InternalSelect(props, ref) {
602
606
  var temp = renderOption(item, index);
603
607
  return temp;
604
608
  });
609
+ eleOptionList = /*#__PURE__*/_react.default.createElement(_virtualList.default, (0, _extends2.default)({
610
+ role: "listbox",
611
+ data: childrenToRender,
612
+ itemKey: function itemKey(child) {
613
+ var _a;
614
+
615
+ return (_a = child.props) === null || _a === void 0 ? void 0 : _a.value;
616
+ },
617
+ onMouseDown: function onMouseDown(e) {
618
+ return e === null || e === void 0 ? void 0 : e.preventDefault();
619
+ },
620
+ isStaticItemHeight: true,
621
+ height: listHeight || 300,
622
+ measureLongestItem: false
623
+ }, virtualListProps), function (child) {
624
+ return child;
625
+ });
605
626
  }
606
627
 
607
628
  var heightStyle = {
@@ -621,7 +642,7 @@ var InternalSelect = function InternalSelect(props, ref) {
621
642
  className: dropDownCls,
622
643
  style: dropDownStyle,
623
644
  ref: dropDownRef
624
- }, !dropdownRender && childrenToRender.length > 0 && dropRender(childrenToRender, heightStyle), renderNotContent(), /*#__PURE__*/_react.default.createElement("div", null, dropdownRender && dropdownRender(dropRender(childrenToRender, heightStyle))), isMultiple && /*#__PURE__*/_react.default.createElement("div", {
645
+ }, !dropdownRender && childrenToRender.length > 0 && dropRender(eleOptionList, heightStyle), renderNotContent(), /*#__PURE__*/_react.default.createElement("div", null, dropdownRender && dropdownRender(dropRender(childrenToRender, heightStyle))), isMultiple && /*#__PURE__*/_react.default.createElement("div", {
625
646
  className: multipleFooterCls
626
647
  }, /*#__PURE__*/_react.default.createElement(_index.Checkbox, {
627
648
  style: checkboxStyle,
@@ -43,6 +43,8 @@ var _omit = require("../_utils/omit");
43
43
 
44
44
  var _hooks = require("../_utils/hooks");
45
45
 
46
+ var _numberUtil = require("../_utils/numberUtil");
47
+
46
48
  function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
47
49
 
48
50
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -140,7 +142,7 @@ var InternalStepper = function InternalStepper(props, ref) {
140
142
  return false;
141
143
  }
142
144
 
143
- var startingNumber = parseFloat(stepperrref.current.value) || parseFloat(inputNumberProps.min) || 0;
145
+ var startingNumber = (0, _numberUtil.isExp)(stepperrref.current.value) ? (0, _big.default)(stepperrref.current.value).valueOf() : stepperrref.current.value || parseFloat(inputNumberProps.min) || 0;
144
146
  var calculationResults = new _big.default(startingNumber)[type](stepNum).valueOf();
145
147
  var legalNumber = stepperrref.current.verifiValue(calculationResults);
146
148
 
@@ -0,0 +1,4 @@
1
+ import { colGroupExtendOption } from '@kdcloudjs/table/es/table/pipeline/features';
2
+ import { TablePipeline } from '../interface';
3
+ declare function colGroupExtendable(pipeline: TablePipeline, columnGroupExtend: colGroupExtendOption): void;
4
+ export default colGroupExtendable;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _table = require("@kdcloudjs/table");
9
+
10
+ function colGroupExtendable(pipeline, columnGroupExtend) {
11
+ if (columnGroupExtend) {
12
+ pipeline.use(_table.features.colGroupExtendable(columnGroupExtend));
13
+ }
14
+ }
15
+
16
+ var _default = colGroupExtendable;
17
+ exports.default = _default;
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import { TableProps as BaseTableProps, TablePipeline as TP, ArtColumnStaticPart } from '@kdcloudjs/table';
3
- import { SortFeatureOptions, RowDetailFeatureOptions, FilterFeatureOptions, TreeModeFeatureOptions, ColumnDragOptions, ColumnResizeOptions, ContextMenuFeatureOptions, RangeSelectionFeatureOptions } from '@kdcloudjs/table/es/table/pipeline/features';
3
+ import { SortFeatureOptions, RowDetailFeatureOptions, FilterFeatureOptions, TreeModeFeatureOptions, ColumnDragOptions, ColumnResizeOptions, ContextMenuFeatureOptions, RangeSelectionFeatureOptions, colGroupExtendOption } from '@kdcloudjs/table/es/table/pipeline/features';
4
4
  declare type TablePropsOfComponents = Pick<BaseTableProps, 'components'> & {
5
5
  components?: {
6
6
  /** 复选框 */
@@ -31,6 +31,7 @@ export interface TableProps extends TablePropsOfExtend, TablePropsOfComponents {
31
31
  columnResize?: boolean | ColumnResizeOptions;
32
32
  contextMenu?: IContextMenu;
33
33
  rangeSelection?: TableRangeSelection;
34
+ columnGroupExtend?: colGroupExtendOption;
34
35
  }
35
36
  export declare type RowSelectionType = 'checkbox' | 'radio';
36
37
  export declare type RowSelectionFixed = 'start' | 'end';
@@ -59,6 +59,8 @@ var _devwarning = _interopRequireDefault(require("../_utils/devwarning"));
59
59
 
60
60
  var _useFooterDataSource = _interopRequireDefault(require("./feature/useFooterDataSource"));
61
61
 
62
+ var _colGroupExtendable = _interopRequireDefault(require("./feature/colGroupExtendable"));
63
+
62
64
  function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
63
65
 
64
66
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -94,7 +96,9 @@ var Table = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
94
96
  cssVariables = props.cssVariables,
95
97
  stickyScrollHeight = props.stickyScrollHeight,
96
98
  scrollbarWidth = props.scrollbarWidth,
97
- scrollLoad = props.scrollLoad;
99
+ scrollLoad = props.scrollLoad,
100
+ _props$columnGroupExt = props.columnGroupExtend,
101
+ columnGroupExtend = _props$columnGroupExt === void 0 ? {} : _props$columnGroupExt;
98
102
 
99
103
  var _useContext = (0, _react.useContext)(_ConfigContext.default),
100
104
  getPrefixCls = _useContext.getPrefixCls,
@@ -148,6 +152,7 @@ var Table = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
148
152
  (0, _useRangeSelection.default)(pipeline, rangeSelection);
149
153
  (0, _mergeCellHover.default)(pipeline);
150
154
  (0, _useFooterDataSource.default)(pipeline, footerDataSource);
155
+ (0, _colGroupExtendable.default)(pipeline, columnGroupExtend);
151
156
  /* -------------------------------------------------------------------------- */
152
157
 
153
158
  /* after useTablePipeline, merge pipeline.getProps result */
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ interface FillerProps {
3
+ height: number;
4
+ offset?: number;
5
+ outerStyle?: React.CSSProperties;
6
+ children: React.ReactNode;
7
+ }
8
+ declare const Filler: React.FC<FillerProps>;
9
+ export default Filler;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
4
+
5
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
6
+
7
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
8
+
9
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
10
+
11
+ Object.defineProperty(exports, "__esModule", {
12
+ value: true
13
+ });
14
+ exports.default = void 0;
15
+
16
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
17
+
18
+ var React = _interopRequireWildcard(require("react"));
19
+
20
+ function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
+
22
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
+
24
+ var Filler = function Filler(_ref) {
25
+ var height = _ref.height,
26
+ offset = _ref.offset,
27
+ children = _ref.children,
28
+ propsOuterStyle = _ref.outerStyle;
29
+ var outerStyle = {};
30
+ var innerStyle = {
31
+ display: 'flex',
32
+ flexDirection: 'column'
33
+ };
34
+
35
+ if (offset !== undefined) {
36
+ outerStyle = (0, _extends2.default)({
37
+ height: height,
38
+ position: 'relative',
39
+ overflow: 'hidden',
40
+ zIndex: 0
41
+ }, propsOuterStyle);
42
+ innerStyle = (0, _extends2.default)((0, _extends2.default)({}, innerStyle), {
43
+ transform: "translateY(".concat(offset, "px)"),
44
+ position: 'absolute',
45
+ left: 0,
46
+ right: 0,
47
+ top: 0
48
+ });
49
+ }
50
+
51
+ return /*#__PURE__*/React.createElement("div", {
52
+ style: outerStyle
53
+ }, /*#__PURE__*/React.createElement("div", {
54
+ style: innerStyle
55
+ }, children));
56
+ };
57
+
58
+ var _default = Filler;
59
+ exports.default = _default;
@@ -0,0 +1,3 @@
1
+ import VirtualList from './virtual-list';
2
+ export * from './virtual-list';
3
+ export default VirtualList;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
4
+
5
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
6
+
7
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
8
+
9
+ var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
10
+
11
+ Object.defineProperty(exports, "__esModule", {
12
+ value: true
13
+ });
14
+ var _exportNames = {};
15
+ exports.default = void 0;
16
+
17
+ var _virtualList = _interopRequireWildcard(require("./virtual-list"));
18
+
19
+ _Object$keys(_virtualList).forEach(function (key) {
20
+ if (key === "default" || key === "__esModule") return;
21
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
22
+ if (key in exports && exports[key] === _virtualList[key]) return;
23
+ Object.defineProperty(exports, key, {
24
+ enumerable: true,
25
+ get: function get() {
26
+ return _virtualList[key];
27
+ }
28
+ });
29
+ });
30
+
31
+ function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
32
+
33
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
34
+
35
+ var _default = _virtualList.default;
36
+ exports.default = _default;
@@ -0,0 +1,19 @@
1
+ import { Key } from './itemUtil';
2
+ /**
3
+ * Get index with specific start index one by one. e.g.
4
+ * min: 3, max: 9, start: 6
5
+ *
6
+ * Return index is:
7
+ * [0]: 6
8
+ * [1]: 7
9
+ * [2]: 5
10
+ * [3]: 8
11
+ * [4]: 4
12
+ * [5]: 9
13
+ * [6]: 3
14
+ */
15
+ export declare function getIndexByStartLoc(min: number, max: number, start: number, index: number): number;
16
+ export declare function findListDiffIndex<T>(originList: T[], targetList: T[], getKey: (item: T, index: number) => Key): {
17
+ index: number;
18
+ multiple: boolean;
19
+ } | null;
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.findListDiffIndex = findListDiffIndex;
7
+ exports.getIndexByStartLoc = getIndexByStartLoc;
8
+
9
+ /**
10
+ * Get index with specific start index one by one. e.g.
11
+ * min: 3, max: 9, start: 6
12
+ *
13
+ * Return index is:
14
+ * [0]: 6
15
+ * [1]: 7
16
+ * [2]: 5
17
+ * [3]: 8
18
+ * [4]: 4
19
+ * [5]: 9
20
+ * [6]: 3
21
+ */
22
+ function getIndexByStartLoc(min, max, start, index) {
23
+ var beforeCount = start - min;
24
+ var afterCount = max - start;
25
+ var balanceCount = Math.min(beforeCount, afterCount) * 2;
26
+
27
+ if (index <= balanceCount) {
28
+ var stepIndex = Math.floor(index / 2);
29
+
30
+ if (index % 2) {
31
+ return start + stepIndex + 1;
32
+ }
33
+
34
+ return start - stepIndex;
35
+ }
36
+
37
+ if (beforeCount > afterCount) {
38
+ return start - (index - afterCount);
39
+ }
40
+
41
+ return start + (index - beforeCount);
42
+ }
43
+
44
+ function findListDiffIndex(originList, targetList, getKey) {
45
+ var originLen = originList.length;
46
+ var targetLen = targetList.length;
47
+ var shortList;
48
+ var longList;
49
+
50
+ if (originLen === 0 && targetLen === 0) {
51
+ return null;
52
+ }
53
+
54
+ if (originLen < targetLen) {
55
+ shortList = originList;
56
+ longList = targetList;
57
+ } else {
58
+ shortList = targetList;
59
+ longList = originList;
60
+ }
61
+
62
+ var notExistKey = {
63
+ __EMPTY_ITEM__: true
64
+ };
65
+
66
+ function getItemKey(item, index) {
67
+ return item !== undefined ? getKey(item, index) : notExistKey;
68
+ }
69
+
70
+ var diffIndex = null;
71
+ var multiple = Math.abs(originLen - targetLen) !== 1;
72
+
73
+ for (var i = 0; i < longList.length; i += 1) {
74
+ var shortKey = getItemKey(shortList[i], i);
75
+ var longKey = getItemKey(longList[i], i);
76
+
77
+ if (shortKey !== longKey) {
78
+ diffIndex = i;
79
+ multiple = multiple || shortKey !== getItemKey(longList[i + 1], i + 1);
80
+ break;
81
+ }
82
+ }
83
+
84
+ return diffIndex === null ? null : {
85
+ index: diffIndex,
86
+ multiple: multiple
87
+ };
88
+ }
@@ -0,0 +1,75 @@
1
+ /**
2
+ * 为了计算方便,定位元素的下标可能返回数组长度,代表最后一个元素
3
+ */
4
+ export declare const GHOST_ITEM_KEY = "__rc_ghost_item__";
5
+ export declare type Key = string | number;
6
+ interface LocationItemResult {
7
+ /** 用于定位的元素的下标 */
8
+ index: number;
9
+ /** 定位元素自身需要补充的偏移量 */
10
+ offsetPtg: number;
11
+ }
12
+ /**
13
+ * 根据滚动条当前的滚动百分比,计算出基准元素
14
+ * 在基准元素的上方和下方渲染可见区域的其他元素
15
+ */
16
+ export declare function getLocationItem(scrollPtg: number, total: number): LocationItemResult;
17
+ /**
18
+ * 获取HTML元素高度
19
+ */
20
+ export declare function getNodeHeight(node: HTMLElement, needMargin?: boolean): number;
21
+ /**
22
+ * 获取有效的scrollTop值
23
+ * Safari的缓动效果会获得负值的scrollTop
24
+ */
25
+ export declare function getValidScrollTop(scrollTop: number, scrollRange: number): number;
26
+ /**
27
+ * 视口已滚动距离 / 总可滚动距离
28
+ */
29
+ export declare function getScrollPercentage({ scrollTop, scrollHeight, clientHeight, }: {
30
+ scrollTop: number;
31
+ scrollHeight: number;
32
+ clientHeight: number;
33
+ }): number;
34
+ /**
35
+ * 计算需要渲染的元素的开始下标、结束下标和用于定位的元素下标
36
+ */
37
+ export declare function getRangeIndex(scrollPtg: number, itemCount: number, visibleCount: number): {
38
+ itemIndex: number;
39
+ itemOffsetPtg: number;
40
+ startIndex: number;
41
+ endIndex: number;
42
+ };
43
+ interface ItemTopConfig {
44
+ itemHeight: number;
45
+ itemOffsetPtg: number;
46
+ scrollTop: number;
47
+ scrollPtg: number;
48
+ clientHeight: number;
49
+ }
50
+ /**
51
+ * 计算元素相对于视口顶部的偏移量
52
+ */
53
+ export declare function getItemRelativeTop({ itemHeight, itemOffsetPtg, scrollPtg, clientHeight, }: Omit<ItemTopConfig, 'scrollTop'>): number;
54
+ /**
55
+ * 计算元素相对于整个滚动区域顶部的偏移量
56
+ */
57
+ export declare function getItemAbsoluteTop({ scrollTop, ...rest }: ItemTopConfig): number;
58
+ interface CompareItemConfig {
59
+ locatedItemRelativeTop: number;
60
+ locatedItemIndex: number;
61
+ compareItemIndex: number;
62
+ getItemKey: (index: number) => Key;
63
+ startIndex: number;
64
+ endIndex: number;
65
+ itemElementHeights: {
66
+ [key: string]: number;
67
+ };
68
+ itemHeight: number;
69
+ }
70
+ /**
71
+ * 计算某一指定下标的元素相对于视口顶部的偏移量
72
+ */
73
+ export declare function getCompareItemRelativeTop({ locatedItemRelativeTop, locatedItemIndex, compareItemIndex, startIndex, endIndex, getItemKey, itemElementHeights, itemHeight, }: CompareItemConfig): number;
74
+ export declare function getLongestItemIndex(data: Array<any>): number;
75
+ export {};