@sheinx/base 3.6.4-beta.8 → 3.7.0-beta.10

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 (91) hide show
  1. package/cjs/popover/popover.d.ts +1 -1
  2. package/cjs/popover/popover.d.ts.map +1 -1
  3. package/cjs/popover/popover.js +10 -8
  4. package/cjs/popover/popover.type.d.ts +6 -0
  5. package/cjs/popover/popover.type.d.ts.map +1 -1
  6. package/cjs/sticky/sticky.d.ts.map +1 -1
  7. package/cjs/sticky/sticky.js +6 -3
  8. package/cjs/sticky/sticky.type.d.ts +2 -2
  9. package/cjs/sticky/sticky.type.d.ts.map +1 -1
  10. package/cjs/table/table.d.ts.map +1 -1
  11. package/cjs/table/table.js +156 -98
  12. package/cjs/table/table.type.d.ts +15 -2
  13. package/cjs/table/table.type.d.ts.map +1 -1
  14. package/cjs/table/tbody.d.ts +1 -1
  15. package/cjs/table/tbody.d.ts.map +1 -1
  16. package/cjs/table/tbody.js +28 -10
  17. package/cjs/table/tbody.type.d.ts +2 -3
  18. package/cjs/table/tbody.type.d.ts.map +1 -1
  19. package/cjs/table/td.d.ts +21 -0
  20. package/cjs/table/td.d.ts.map +1 -0
  21. package/cjs/table/td.js +74 -0
  22. package/cjs/table/tfoot.d.ts.map +1 -1
  23. package/cjs/table/tfoot.js +0 -10
  24. package/cjs/table/tfoot.type.d.ts +0 -2
  25. package/cjs/table/tfoot.type.d.ts.map +1 -1
  26. package/cjs/table/thead.d.ts.map +1 -1
  27. package/cjs/table/thead.js +7 -19
  28. package/cjs/table/thead.type.d.ts +0 -2
  29. package/cjs/table/thead.type.d.ts.map +1 -1
  30. package/cjs/table/tr.d.ts +1 -2
  31. package/cjs/table/tr.d.ts.map +1 -1
  32. package/cjs/table/tr.js +33 -29
  33. package/cjs/tabs/tabs.d.ts.map +1 -1
  34. package/cjs/tabs/tabs.js +10 -1
  35. package/cjs/tabs/tabs.type.d.ts +6 -0
  36. package/cjs/tabs/tabs.type.d.ts.map +1 -1
  37. package/cjs/tag/tag.d.ts.map +1 -1
  38. package/cjs/tag/tag.js +1 -1
  39. package/cjs/tooltip/tooltip.d.ts.map +1 -1
  40. package/cjs/tooltip/tooltip.js +10 -2
  41. package/cjs/virtual-scroll/scroll-table.d.ts +28 -0
  42. package/cjs/virtual-scroll/scroll-table.d.ts.map +1 -0
  43. package/cjs/virtual-scroll/scroll-table.js +155 -0
  44. package/cjs/virtual-scroll/scroll.d.ts.map +1 -1
  45. package/cjs/virtual-scroll/scroll.js +4 -4
  46. package/esm/popover/popover.d.ts +1 -1
  47. package/esm/popover/popover.d.ts.map +1 -1
  48. package/esm/popover/popover.js +10 -8
  49. package/esm/popover/popover.type.d.ts +6 -0
  50. package/esm/popover/popover.type.d.ts.map +1 -1
  51. package/esm/sticky/sticky.d.ts.map +1 -1
  52. package/esm/sticky/sticky.js +6 -3
  53. package/esm/sticky/sticky.type.d.ts +2 -2
  54. package/esm/sticky/sticky.type.d.ts.map +1 -1
  55. package/esm/table/table.d.ts.map +1 -1
  56. package/esm/table/table.js +157 -99
  57. package/esm/table/table.type.d.ts +15 -2
  58. package/esm/table/table.type.d.ts.map +1 -1
  59. package/esm/table/tbody.d.ts +1 -1
  60. package/esm/table/tbody.d.ts.map +1 -1
  61. package/esm/table/tbody.js +29 -11
  62. package/esm/table/tbody.type.d.ts +2 -3
  63. package/esm/table/tbody.type.d.ts.map +1 -1
  64. package/esm/table/td.d.ts +21 -0
  65. package/esm/table/td.d.ts.map +1 -0
  66. package/esm/table/td.js +66 -0
  67. package/esm/table/tfoot.d.ts.map +1 -1
  68. package/esm/table/tfoot.js +0 -10
  69. package/esm/table/tfoot.type.d.ts +0 -2
  70. package/esm/table/tfoot.type.d.ts.map +1 -1
  71. package/esm/table/thead.d.ts.map +1 -1
  72. package/esm/table/thead.js +7 -19
  73. package/esm/table/thead.type.d.ts +0 -2
  74. package/esm/table/thead.type.d.ts.map +1 -1
  75. package/esm/table/tr.d.ts +1 -2
  76. package/esm/table/tr.d.ts.map +1 -1
  77. package/esm/table/tr.js +33 -29
  78. package/esm/tabs/tabs.d.ts.map +1 -1
  79. package/esm/tabs/tabs.js +10 -1
  80. package/esm/tabs/tabs.type.d.ts +6 -0
  81. package/esm/tabs/tabs.type.d.ts.map +1 -1
  82. package/esm/tag/tag.d.ts.map +1 -1
  83. package/esm/tag/tag.js +1 -1
  84. package/esm/tooltip/tooltip.d.ts.map +1 -1
  85. package/esm/tooltip/tooltip.js +11 -3
  86. package/esm/virtual-scroll/scroll-table.d.ts +28 -0
  87. package/esm/virtual-scroll/scroll-table.d.ts.map +1 -0
  88. package/esm/virtual-scroll/scroll-table.js +148 -0
  89. package/esm/virtual-scroll/scroll.d.ts.map +1 -1
  90. package/esm/virtual-scroll/scroll.js +4 -4
  91. package/package.json +2 -2
@@ -0,0 +1,148 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
6
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
+ import React, { useMemo, useRef } from 'react';
8
+ import { useForkRef, usePersistFn, useResize, util } from '@sheinx/hooks';
9
+ import { useConfig } from "../config";
10
+ import { jsx as _jsx } from "react/jsx-runtime";
11
+ import { jsxs as _jsxs } from "react/jsx-runtime";
12
+ var extractHeightValue = function extractHeightValue(num) {
13
+ if (util.isNumber(num)) return num;
14
+ var match = num.match(/(\d+)/);
15
+ if (match) {
16
+ return parseInt(match[0], 10);
17
+ }
18
+ return undefined;
19
+ };
20
+ var Scroll = function Scroll(props) {
21
+ var containerRef = useRef(null);
22
+ var scrollRef = useRef(null);
23
+ var wrapperRef = useForkRef(scrollRef, props.wrapperRef);
24
+ var _useRef = useRef({
25
+ timer: null,
26
+ isMouseDown: false
27
+ }),
28
+ context = _useRef.current;
29
+ // TODO: keepScrollTop考虑做成Table的新feat?
30
+ var _props$scrollHeight = props.scrollHeight,
31
+ scrollHeight = _props$scrollHeight === void 0 ? 0 : _props$scrollHeight,
32
+ _props$scrollWidth = props.scrollWidth,
33
+ scrollWidth = _props$scrollWidth === void 0 ? 0 : _props$scrollWidth,
34
+ _props$defaultHeight = props.defaultHeight,
35
+ defaultHeight = _props$defaultHeight === void 0 ? 0 : _props$defaultHeight,
36
+ _props$keepScrollTop = props.keepScrollTop,
37
+ keepScrollTop = _props$keepScrollTop === void 0 ? false : _props$keepScrollTop;
38
+ var _useResize = useResize({
39
+ targetRef: containerRef,
40
+ timer: 100
41
+ }),
42
+ width = _useResize.width,
43
+ h = _useResize.height;
44
+ var height = h || defaultHeight;
45
+ var config = useConfig();
46
+ var isRtl = config.direction === 'rtl';
47
+ var scrollerStyle = {
48
+ flex: 1,
49
+ minWidth: 0,
50
+ minHeight: 0,
51
+ overflow: 'auto',
52
+ width: '100%'
53
+ };
54
+ var containerStyle = {
55
+ height: '100%',
56
+ width: '100%',
57
+ display: 'flex',
58
+ position: 'sticky',
59
+ flexDirection: 'column',
60
+ top: 0
61
+ };
62
+
63
+ // 当滚动容器的高度为 0 时,paddingTop 为 0,避免滚动条抖动现象
64
+ var paddingTop = useMemo(function () {
65
+ if (keepScrollTop) return Math.max(0, Math.floor(scrollHeight - height));
66
+ return height === 0 ? 0 : Math.max(0, Math.floor(scrollHeight - height));
67
+ }, [scrollHeight, height]);
68
+ var placeStyle = {
69
+ paddingTop: paddingTop,
70
+ width: scrollWidth,
71
+ overflow: props.isScrollY ? 'hidden' : 'auto hidden',
72
+ height: props.isScrollY ? 0 : 1,
73
+ marginTop: props.isScrollY ? 0 : -1,
74
+ lineHeight: 0
75
+ };
76
+ var handleScroll = usePersistFn(function (e) {
77
+ var onScrollToBottom = props.onScrollToBottom;
78
+ var target = e.currentTarget;
79
+ var scrollLeft = target.scrollLeft,
80
+ scrollTop = target.scrollTop;
81
+ if (props.height && onScrollToBottom) {
82
+ var realHeight = extractHeightValue(props.height);
83
+ if (realHeight !== undefined) {
84
+ var touchBottom = target.scrollHeight === scrollTop + realHeight;
85
+ if (touchBottom) onScrollToBottom();
86
+ }
87
+ }
88
+ var maxY = target.scrollHeight - target.clientHeight;
89
+ var maxX = target.scrollWidth - target.clientWidth;
90
+ if (!isRtl) {
91
+ // 解决浏览器缩放以后导致滚动条长度出现小数
92
+ if (maxX - scrollLeft < 0 || maxX - scrollLeft < 1) scrollLeft = maxX;
93
+ if (scrollLeft < 0) scrollLeft = 0;
94
+ } else {
95
+ if (maxX + scrollLeft < 0 || maxX + scrollLeft < 1) scrollLeft = 0 - maxX;
96
+ if (scrollLeft > 0) scrollLeft = 0;
97
+ }
98
+ if (scrollTop > maxY || maxY - scrollTop < 1) scrollTop = maxY;
99
+ if (scrollTop < 0) scrollTop = 0;
100
+ var x = maxX === 0 ? 0 : Math.min(Math.abs(scrollLeft) / maxX, 1);
101
+ var y = maxY === 0 ? 0 : Math.min(scrollTop / maxY, 1);
102
+ if (props.onScroll) props.onScroll({
103
+ scrollLeft: scrollLeft,
104
+ scrollTop: scrollTop,
105
+ x: x,
106
+ y: y,
107
+ height: height,
108
+ width: width,
109
+ fromDrag: context.isMouseDown
110
+ });
111
+ });
112
+ var handleInnerScroll = usePersistFn(function (e) {
113
+ var scrollTop = e.currentTarget.scrollTop;
114
+ if (scrollRef.current) {
115
+ e.currentTarget.scrollTop = 0;
116
+ scrollRef.current.scrollTop += scrollTop;
117
+ }
118
+ });
119
+ return /*#__PURE__*/_jsx("div", {
120
+ className: props.className,
121
+ style: props.style,
122
+ children: /*#__PURE__*/_jsxs("div", _objectSpread(_objectSpread({}, util.getDataAttribute({
123
+ role: 'scroll'
124
+ })), {}, {
125
+ style: scrollerStyle,
126
+ onScroll: handleScroll,
127
+ ref: wrapperRef,
128
+ onMouseDown: function onMouseDown() {
129
+ context.isMouseDown = true;
130
+ },
131
+ onMouseUp: function onMouseUp() {
132
+ context.isMouseDown = false;
133
+ },
134
+ children: [/*#__PURE__*/_jsx("div", _objectSpread(_objectSpread({}, util.getDataAttribute({
135
+ role: 'scroll-container'
136
+ })), {}, {
137
+ style: containerStyle,
138
+ ref: containerRef,
139
+ onScroll: handleInnerScroll,
140
+ children: props.children
141
+ })), /*#__PURE__*/_jsx("div", {
142
+ style: placeStyle,
143
+ children: "\xA0"
144
+ })]
145
+ }))
146
+ });
147
+ };
148
+ export default Scroll;
@@ -1 +1 @@
1
- {"version":3,"file":"scroll.d.ts","sourceRoot":"","sources":["scroll.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0B,MAAM,OAAO,CAAC;AAI/C,UAAU,WAAW;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC7C,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,QAAQ,EAAE,OAAO,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,KAAK,IAAI,CAAC;IACX,gBAAgB,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACpC,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,QAAA,MAAM,MAAM,UAAW,WAAW,4CAkIjC,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"scroll.d.ts","sourceRoot":"","sources":["scroll.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0B,MAAM,OAAO,CAAC;AAI/C,UAAU,WAAW;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC7C,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,QAAQ,EAAE,OAAO,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,KAAK,IAAI,CAAC;IACX,gBAAgB,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACpC,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,QAAA,MAAM,MAAM,UAAW,WAAW,4CAgIjC,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -40,13 +40,13 @@ var Scroll = function Scroll(props) {
40
40
  width: '100%',
41
41
  overflow: 'auto'
42
42
  };
43
- var containerStyle = _defineProperty(_defineProperty({
43
+ var containerStyle = {
44
44
  height: '100%',
45
45
  width: '100%',
46
46
  display: 'inline-flex',
47
- overflow: 'hidden',
48
- position: 'sticky'
49
- }, isRtl ? 'right' : 'left', 0), "top", 0);
47
+ position: 'sticky',
48
+ top: 0
49
+ };
50
50
 
51
51
  // 当滚动容器的高度为 0 时,paddingTop 为 0,避免滚动条抖动现象
52
52
  var paddingTop = useMemo(function () {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sheinx/base",
3
- "version": "3.6.4-beta.8",
3
+ "version": "3.7.0-beta.10",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "license": "MIT",
@@ -10,7 +10,7 @@
10
10
  "module": "./esm/index.js",
11
11
  "typings": "./cjs/index.d.ts",
12
12
  "dependencies": {
13
- "@sheinx/hooks": "3.6.4-beta.8",
13
+ "@sheinx/hooks": "3.7.0-beta.10",
14
14
  "immer": "^10.0.0",
15
15
  "classnames": "^2.0.0",
16
16
  "@shined/reactive": "^0.1.3-alpha.0"