shineout 3.9.14 → 3.9.15-beta.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.
package/cjs/index.js CHANGED
@@ -522,5 +522,5 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
522
522
  // 此文件由脚本自动生成,请勿直接修改。
523
523
  // This file was generated automatically by a script. Please do not modify it directly.
524
524
  var _default = exports.default = {
525
- version: '3.9.14'
525
+ version: '3.9.15-beta.2'
526
526
  };
package/dist/shineout.js CHANGED
@@ -12326,7 +12326,7 @@ var handleStyle = function handleStyle(style) {
12326
12326
  };
12327
12327
  /* harmony default export */ var jss_style_handleStyle = (handleStyle);
12328
12328
  ;// CONCATENATED MODULE: ../shineout-style/src/version.ts
12329
- /* harmony default export */ var version = ('3.9.14');
12329
+ /* harmony default export */ var version = ('3.9.15-beta.2');
12330
12330
  ;// CONCATENATED MODULE: ../shineout-style/src/jss-style/index.tsx
12331
12331
 
12332
12332
 
@@ -55557,12 +55557,14 @@ var showGallery = function showGallery(jssStyle, images) {
55557
55557
  var container = image_event_getContainer();
55558
55558
  document.addEventListener('keydown', keyClose);
55559
55559
  container.className = containerClass || '';
55560
- image_event_ReactRender( /*#__PURE__*/(0,jsx_runtime.jsx)(image_gallery, {
55561
- jssStyle: jssStyle,
55562
- onClose: image_event_close,
55563
- current: current,
55564
- images: Images
55565
- }), container);
55560
+ setTimeout(function () {
55561
+ image_event_ReactRender( /*#__PURE__*/(0,jsx_runtime.jsx)(image_gallery, {
55562
+ jssStyle: jssStyle,
55563
+ onClose: image_event_close,
55564
+ current: current,
55565
+ images: Images
55566
+ }), container);
55567
+ }, 0);
55566
55568
  };
55567
55569
  /* harmony default export */ var image_event = (showGallery);
55568
55570
  ;// CONCATENATED MODULE: ../hooks/src/utils/style-unit.ts
@@ -66294,12 +66296,89 @@ var useTableSort = function useTableSort(props) {
66294
66296
  };
66295
66297
  };
66296
66298
  /* harmony default export */ var use_table_sort = (useTableSort);
66299
+ ;// CONCATENATED MODULE: ../hooks/src/components/use-table/use-table-virtual-external.tsx
66300
+
66301
+
66302
+
66303
+ var useTableVirtualExternal = function useTableVirtualExternal(props) {
66304
+ var _useState = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(0),
66305
+ _useState2 = slicedToArray_default()(_useState, 2),
66306
+ headerOffset = _useState2[0],
66307
+ setHeaderOffset = _useState2[1];
66308
+ var externalStickyRef = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useRef)(null);
66309
+ var tableOffsetRef = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useRef)(0);
66310
+ var handleExternalScroll = usePersistFn(function () {
66311
+ var _props$tableRef, _externalStickyRef$cu;
66312
+ if (props.disabled) return;
66313
+ var container = props.virtualScrollContainer();
66314
+ var tableEl = (_props$tableRef = props.tableRef) === null || _props$tableRef === void 0 ? void 0 : _props$tableRef.current;
66315
+ if (!container || !tableEl) return;
66316
+ if (tableOffsetRef.current === 0) {
66317
+ if (container === document.documentElement || container === document.body) {
66318
+ tableOffsetRef.current = tableEl.getBoundingClientRect().top + window.scrollY;
66319
+ } else {
66320
+ tableOffsetRef.current = tableEl.getBoundingClientRect().top - container.getBoundingClientRect().top + container.scrollTop;
66321
+ }
66322
+ }
66323
+ var rawScrollTop;
66324
+ if (container === document.documentElement || container === document.body) {
66325
+ var rect = tableEl.getBoundingClientRect();
66326
+ rawScrollTop = -rect.top;
66327
+ } else {
66328
+ var containerRect = container.getBoundingClientRect();
66329
+ var tableRect = tableEl.getBoundingClientRect();
66330
+ rawScrollTop = containerRect.top - tableRect.top;
66331
+ }
66332
+ if (rawScrollTop < 0) rawScrollTop = 0;
66333
+ var sumHeight = props.getContentHeight(props.dataLength - 1);
66334
+ var viewportHeight = ((_externalStickyRef$cu = externalStickyRef.current) === null || _externalStickyRef$cu === void 0 ? void 0 : _externalStickyRef$cu.clientHeight) || container.clientHeight;
66335
+ var scrollTop;
66336
+ var max;
66337
+ if (props.externalStickyHeader) {
66338
+ max = sumHeight - props.tfootHeight - viewportHeight;
66339
+ scrollTop = rawScrollTop;
66340
+ } else {
66341
+ var newHeaderOffset = Math.min(rawScrollTop, props.theadHeight);
66342
+ if (newHeaderOffset !== headerOffset) {
66343
+ setHeaderOffset(newHeaderOffset);
66344
+ }
66345
+ max = sumHeight - props.theadHeight - props.tfootHeight - viewportHeight;
66346
+ scrollTop = rawScrollTop - props.theadHeight;
66347
+ if (scrollTop < 0) scrollTop = 0;
66348
+ }
66349
+ if (max > 0 && scrollTop > max) {
66350
+ scrollTop = max;
66351
+ }
66352
+ props.updateIndexAndTopFromTop(scrollTop);
66353
+ });
66354
+ (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
66355
+ if (props.disabled) return;
66356
+ var container = props.virtualScrollContainer();
66357
+ if (!container) return;
66358
+ var scrollTarget = container === document.documentElement || container === document.body ? window : container;
66359
+ scrollTarget.addEventListener('scroll', handleExternalScroll, {
66360
+ passive: true
66361
+ });
66362
+ handleExternalScroll();
66363
+ return function () {
66364
+ scrollTarget.removeEventListener('scroll', handleExternalScroll);
66365
+ };
66366
+ }, [props.disabled, props.dataLength]);
66367
+ return {
66368
+ externalStickyRef: externalStickyRef,
66369
+ headerOffset: headerOffset,
66370
+ tableOffsetRef: tableOffsetRef
66371
+ };
66372
+ };
66373
+ /* harmony default export */ var use_table_virtual_external = (useTableVirtualExternal);
66297
66374
  ;// CONCATENATED MODULE: ../hooks/src/components/use-table/use-table-virtual.tsx
66298
66375
 
66299
66376
 
66300
66377
 
66301
66378
 
66302
66379
 
66380
+
66381
+
66303
66382
  // 找出最大的连续数字的个数
66304
66383
  function getMaxRowSpanLength(input) {
66305
66384
  var map = new Map();
@@ -66438,8 +66517,8 @@ var useTableVirtual = function useTableVirtual(props) {
66438
66517
  setHeight(getContentHeight(props.data.length - 1));
66439
66518
  }
66440
66519
  var preIndex = context.preIndex;
66441
- // 解决: 从下往上滚 由于高度变化会导致滚动条跳动
66442
- if (preIndex && preIndex > startIndex && startIndex === index) {
66520
+ // 解决: 从下往上滚 由于高度变化会导致滚动条跳动(仅内部滚动需要)
66521
+ if (!props.virtualScrollContainer && preIndex && preIndex > startIndex && startIndex === index) {
66443
66522
  // 发生在顶部
66444
66523
  if (context.heightCallback) return;
66445
66524
  var offset = height - (beforeHeight || props.rowHeight);
@@ -66689,6 +66768,20 @@ var useTableVirtual = function useTableVirtual(props) {
66689
66768
  }
66690
66769
  return "translate3d(0, ".concat(0 - t, "px, 0)");
66691
66770
  }, [innerTop]);
66771
+ var isExternalScroll = !!props.virtualScrollContainer;
66772
+ var externalInfo = use_table_virtual_external({
66773
+ disabled: props.disabled || !isExternalScroll,
66774
+ dataLength: props.data.length,
66775
+ theadHeight: props.theadHeight,
66776
+ tfootHeight: props.tfootHeight,
66777
+ externalStickyHeader: props.externalStickyHeader,
66778
+ virtualScrollContainer: props.virtualScrollContainer || function () {
66779
+ return null;
66780
+ },
66781
+ tableRef: props.tableRef,
66782
+ getContentHeight: getContentHeight,
66783
+ updateIndexAndTopFromTop: updateIndexAndTopFromTop
66784
+ });
66692
66785
  return {
66693
66786
  scrollHeight: scrollHeight,
66694
66787
  startIndex: startIndex,
@@ -66699,7 +66792,11 @@ var useTableVirtual = function useTableVirtual(props) {
66699
66792
  scrollToIndex: scrollToIndex,
66700
66793
  scrollColumnByLeft: scrollColumnByLeft,
66701
66794
  scrollColumnIntoView: scrollColumnIntoView,
66702
- rowSpanInfo: rowSpanInfo
66795
+ rowSpanInfo: rowSpanInfo,
66796
+ isExternalScroll: isExternalScroll,
66797
+ externalStickyRef: externalInfo.externalStickyRef,
66798
+ headerOffset: externalInfo.headerOffset,
66799
+ tableOffsetRef: externalInfo.tableOffsetRef
66703
66800
  };
66704
66801
  };
66705
66802
  /* harmony default export */ var use_table_virtual = (useTableVirtual);
@@ -68571,7 +68668,7 @@ function Table(props) {
68571
68668
  scrollingTimer: null
68572
68669
  }),
68573
68670
  context = _useRef.current;
68574
- var virtual = !fakeVirtual && props.rowsInView !== 0 && (!!props.virtual || props.fixed === 'both' || props.fixed === 'y' || props.fixed === 'auto');
68671
+ var virtual = !fakeVirtual && props.rowsInView !== 0 && (!!props.virtual || !!props.virtualScrollContainer || props.fixed === 'both' || props.fixed === 'y' || props.fixed === 'auto');
68575
68672
  (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useLayoutEffect)(function () {
68576
68673
  if (!virtual) return;
68577
68674
  if (!tableRef.current) return;
@@ -68589,7 +68686,7 @@ function Table(props) {
68589
68686
  tbodyHeight = _useResize.height;
68590
68687
 
68591
68688
  // default height
68592
- var defaultHeight = virtual && !props.height ? '100%' : props.height;
68689
+ var defaultHeight = virtual && !props.height && !props.virtualScrollContainer ? '100%' : props.height;
68593
68690
  var selection = use_table_select({
68594
68691
  cellSelectable: props.cellSelectable
68595
68692
  });
@@ -68765,7 +68862,10 @@ function Table(props) {
68765
68862
  scrollLeft: props.scrollLeft,
68766
68863
  isRtl: isRtl,
68767
68864
  theadHeight: context.theadHeight,
68768
- tfootHeight: context.tfootHeight
68865
+ tfootHeight: context.tfootHeight,
68866
+ virtualScrollContainer: props.virtualScrollContainer,
68867
+ tableRef: tableRef,
68868
+ externalStickyHeader: !!props.virtualScrollContainer && !!props.sticky
68769
68869
  });
68770
68870
  var syncHeaderScroll = usePersistFn(function (left) {
68771
68871
  var _tableRef$current;
@@ -68946,7 +69046,7 @@ function Table(props) {
68946
69046
  }
68947
69047
  };
68948
69048
  var isRenderVirtualTable = virtual || props.sticky || !((_props$data2 = props.data) !== null && _props$data2 !== void 0 && _props$data2.length);
68949
- var headWrapperClass = classnames_default()(tableClasses === null || tableClasses === void 0 ? void 0 : tableClasses.headWrapper, !!$empty && tableClasses.emptyHeader, props.sticky && isScrollY && tableClasses.scrollY, props.sticky && isScrollY && browserScrollbarWidth === 0 && tableClasses.overlayScrollbar, props.sticky && !isScrollY && tableClasses.scrollX);
69049
+ var headWrapperClass = classnames_default()(tableClasses === null || tableClasses === void 0 ? void 0 : tableClasses.headWrapper, !!$empty && tableClasses.emptyHeader, props.sticky && isScrollY && tableClasses.scrollY, props.sticky && isScrollY && browserScrollbarWidth === 0 && tableClasses.overlayScrollbar, props.sticky && !isScrollY && !virtualInfo.isExternalScroll && tableClasses.scrollX);
68950
69050
  var footWrapperClass = classnames_default()(tableClasses === null || tableClasses === void 0 ? void 0 : tableClasses.footWrapper);
68951
69051
  var renderHeadMirrorScroller = function renderHeadMirrorScroller() {
68952
69052
  var _scrollRef$current2, _scrollRef$current3, _scrollRef$current4;
@@ -69037,8 +69137,55 @@ function Table(props) {
69037
69137
  })
69038
69138
  }));
69039
69139
  if (isRenderVirtualTable) {
69040
- var _props$data3, _virtualInfo$rowSpanI;
69140
+ var _props$data4, _virtualInfo$rowSpanI2;
69041
69141
  var showStickyHeader = !props.hideHeader && props.sticky;
69142
+ if (virtualInfo.isExternalScroll) {
69143
+ var _props$sticky$top, _props$virtualScrollC, _props$data3, _virtualInfo$rowSpanI;
69144
+ var tableOffset = virtualInfo.tableOffsetRef.current;
69145
+ var stickyTop = typeof_default()(props.sticky) === 'object' ? (_props$sticky$top = props.sticky.top) !== null && _props$sticky$top !== void 0 ? _props$sticky$top : 0 : 0;
69146
+ var stickyTopOffset = stickyTop - tableOffset;
69147
+ var externalContainer = (_props$virtualScrollC = props.virtualScrollContainer) === null || _props$virtualScrollC === void 0 ? void 0 : _props$virtualScrollC.call(props);
69148
+ var stickyDivHeight = externalContainer ? externalContainer.clientHeight - stickyTopOffset : undefined;
69149
+ return /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
69150
+ style: {
69151
+ position: 'relative',
69152
+ height: virtualInfo.scrollHeight
69153
+ },
69154
+ children: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
69155
+ ref: virtualInfo.externalStickyRef,
69156
+ style: {
69157
+ position: 'sticky',
69158
+ top: stickyTopOffset,
69159
+ height: stickyDivHeight,
69160
+ overflowX: 'auto',
69161
+ overflowY: 'hidden'
69162
+ },
69163
+ children: [!props.hideHeader && /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
69164
+ style: {
69165
+ position: 'relative',
69166
+ zIndex: 1,
69167
+ marginTop: props.sticky ? 0 : -virtualInfo.headerOffset
69168
+ },
69169
+ children: $headTable
69170
+ }), !!((_props$data3 = props.data) !== null && _props$data3 !== void 0 && _props$data3.length) && /*#__PURE__*/(0,jsx_runtime.jsxs)("table", {
69171
+ style: objectSpread2_default()(objectSpread2_default()({}, tableStyle), {}, {
69172
+ transform: virtualInfo.translateStyle,
69173
+ willChange: 'transform'
69174
+ }),
69175
+ ref: tbodyRef,
69176
+ children: [Group, /*#__PURE__*/(0,jsx_runtime.jsx)(tbody, objectSpread2_default()(objectSpread2_default()({}, bodyCommonProps), {}, {
69177
+ currentRowIndex: virtualInfo.startIndex,
69178
+ currentColIndex: currentColIndex,
69179
+ data: virtualInfo.data,
69180
+ originData: treeData,
69181
+ rowSpanIndexArray: (_virtualInfo$rowSpanI = virtualInfo.rowSpanInfo) === null || _virtualInfo$rowSpanI === void 0 ? void 0 : _virtualInfo$rowSpanI.rowSpanIndexArray,
69182
+ setRowHeight: virtualInfo.setRowHeight,
69183
+ scrolling: scrolling
69184
+ }))]
69185
+ }), $empty]
69186
+ })
69187
+ });
69188
+ }
69042
69189
  return /*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
69043
69190
  children: [renderHeadMirrorScroller(), showStickyHeader && /*#__PURE__*/(0,jsx_runtime.jsx)(StickyWrapper, objectSpread2_default()(objectSpread2_default()({}, stickyProps), {}, {
69044
69191
  children: $headTable
@@ -69059,7 +69206,7 @@ function Table(props) {
69059
69206
  isEmpty: !!$empty,
69060
69207
  tableRef: tableRef,
69061
69208
  setFakeVirtual: scrollAble ? undefined : setFakeVirtual,
69062
- children: [!props.hideHeader && !props.sticky && $headTable, !!((_props$data3 = props.data) !== null && _props$data3 !== void 0 && _props$data3.length) && /*#__PURE__*/(0,jsx_runtime.jsxs)("table", {
69209
+ children: [!props.hideHeader && !props.sticky && $headTable, !!((_props$data4 = props.data) !== null && _props$data4 !== void 0 && _props$data4.length) && /*#__PURE__*/(0,jsx_runtime.jsxs)("table", {
69063
69210
  style: objectSpread2_default()(objectSpread2_default()({}, tableStyle), {}, {
69064
69211
  transform: virtualInfo.translateStyle
69065
69212
  }),
@@ -69069,7 +69216,7 @@ function Table(props) {
69069
69216
  currentColIndex: currentColIndex,
69070
69217
  data: virtualInfo.data,
69071
69218
  originData: treeData,
69072
- rowSpanIndexArray: (_virtualInfo$rowSpanI = virtualInfo.rowSpanInfo) === null || _virtualInfo$rowSpanI === void 0 ? void 0 : _virtualInfo$rowSpanI.rowSpanIndexArray,
69219
+ rowSpanIndexArray: (_virtualInfo$rowSpanI2 = virtualInfo.rowSpanInfo) === null || _virtualInfo$rowSpanI2 === void 0 ? void 0 : _virtualInfo$rowSpanI2.rowSpanIndexArray,
69073
69220
  setRowHeight: virtualInfo.setRowHeight,
69074
69221
  scrolling: scrolling
69075
69222
  }))]
@@ -75770,7 +75917,7 @@ var upload_interface = __webpack_require__(8821);
75770
75917
 
75771
75918
 
75772
75919
  /* harmony default export */ var src_0 = ({
75773
- version: '3.9.14'
75920
+ version: '3.9.15-beta.2'
75774
75921
  });
75775
75922
  }();
75776
75923
  /******/ return __webpack_exports__;