bkui-vue 1.0.3-beta.62 → 1.0.3-beta.62.dialog.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 (79) hide show
  1. package/dist/index.cjs.js +69 -69
  2. package/dist/index.esm.js +20255 -19428
  3. package/dist/index.umd.js +69 -69
  4. package/dist/style.css +1 -1
  5. package/dist/style.variable.css +1 -1
  6. package/lib/components.d.ts +1 -0
  7. package/lib/components.js +1 -0
  8. package/lib/dialog/dialog.css +139 -77
  9. package/lib/dialog/dialog.d.ts +41 -121
  10. package/lib/dialog/dialog.less +10 -65
  11. package/lib/dialog/dialog.variable.css +139 -77
  12. package/lib/dialog/index.d.ts +105 -272
  13. package/lib/dialog/index.js +91 -100
  14. package/lib/dialog/props.d.ts +8 -48
  15. package/lib/info-box/index.d.ts +2 -2
  16. package/lib/info-box/index.js +312 -173
  17. package/lib/info-box/info-box.css +63 -7
  18. package/lib/info-box/info-box.d.ts +17 -16
  19. package/lib/info-box/info-box.less +76 -14
  20. package/lib/info-box/info-box.variable.css +63 -7
  21. package/lib/info-box/render-component.d.ts +4 -0
  22. package/lib/modal/index.d.ts +45 -325
  23. package/lib/modal/index.js +187 -666
  24. package/lib/modal/mask.d.ts +6 -0
  25. package/lib/modal/modal.css +131 -31
  26. package/lib/modal/modal.d.ts +16 -126
  27. package/lib/modal/modal.less +84 -28
  28. package/lib/modal/modal.variable.css +131 -31
  29. package/lib/modal/props.mixin.d.ts +2 -53
  30. package/lib/scrollbar/index.d.ts +14 -0
  31. package/lib/scrollbar/index.js +18740 -0
  32. package/lib/scrollbar/scrollbar-core/can-use-dom.d.ts +2 -0
  33. package/lib/scrollbar/scrollbar-core/helpers.d.ts +5 -0
  34. package/lib/scrollbar/scrollbar-core/index.d.ts +236 -0
  35. package/lib/scrollbar/scrollbar-core/mouse-wheel.d.ts +5 -0
  36. package/lib/scrollbar/scrollbar-core/scrollbar-width.d.ts +1 -0
  37. package/lib/scrollbar/scrollbar.css +74 -0
  38. package/lib/scrollbar/scrollbar.less +93 -0
  39. package/lib/scrollbar/scrollbar.variable.css +203 -0
  40. package/lib/shared/index.d.ts +0 -1
  41. package/lib/shared/index.js +1 -48
  42. package/lib/sideslider/index.d.ts +31 -222
  43. package/lib/sideslider/index.js +49 -36
  44. package/lib/sideslider/sideslider.css +4 -42
  45. package/lib/sideslider/sideslider.d.ts +14 -105
  46. package/lib/sideslider/sideslider.less +13 -58
  47. package/lib/sideslider/sideslider.variable.css +4 -42
  48. package/lib/table/const.d.ts +1 -1
  49. package/lib/table/index.d.ts +23 -0
  50. package/lib/table/index.js +176 -43
  51. package/lib/table/plugins/use-fixed-column.d.ts +1 -1
  52. package/lib/table/plugins/use-pagination.d.ts +3 -1
  53. package/lib/table/plugins/use-shift-key.d.ts +11 -0
  54. package/lib/table/props.d.ts +8 -0
  55. package/lib/table/table.css +97 -42
  56. package/lib/table/table.d.ts +11 -0
  57. package/lib/table/table.less +43 -58
  58. package/lib/table/table.variable.css +97 -42
  59. package/lib/table/use-attributes.d.ts +1 -0
  60. package/lib/table/use-render.d.ts +1 -1
  61. package/lib/table-column/index.js +6 -2
  62. package/lib/tree/index.d.ts +23 -0
  63. package/lib/tree/index.js +9 -3
  64. package/lib/tree/props.d.ts +8 -0
  65. package/lib/tree/tree.css +75 -2
  66. package/lib/tree/tree.d.ts +11 -0
  67. package/lib/tree/tree.variable.css +75 -2
  68. package/lib/virtual-render/index.d.ts +4 -0
  69. package/lib/virtual-render/index.js +253 -52
  70. package/lib/virtual-render/props.d.ts +7 -0
  71. package/lib/virtual-render/use-fix-top.d.ts +2 -7
  72. package/lib/virtual-render/use-scrollbar.d.ts +23 -0
  73. package/lib/virtual-render/v-virtual-render.d.ts +2 -1
  74. package/lib/virtual-render/virtual-render.css +75 -2
  75. package/lib/virtual-render/virtual-render.d.ts +2 -0
  76. package/lib/virtual-render/virtual-render.less +3 -3
  77. package/lib/virtual-render/virtual-render.variable.css +75 -2
  78. package/package.json +1 -1
  79. package/lib/shared/mask.d.ts +0 -11
@@ -3,6 +3,8 @@ import "./virtual-render.less";
3
3
  import * as __WEBPACK_EXTERNAL_MODULE_bkui_vue_lib_shared_edbdfb03__ from "../shared";
4
4
  import * as __WEBPACK_EXTERNAL_MODULE_vue__ from "vue";
5
5
  import * as __WEBPACK_EXTERNAL_MODULE_bkui_vue_lib_config_provider_fe8577a3__ from "../config-provider";
6
+ import * as __WEBPACK_EXTERNAL_MODULE_vue_types_22de060a__ from "vue-types";
7
+ import * as __WEBPACK_EXTERNAL_MODULE_bkui_vue_lib_scrollbar_918447d0__ from "../scrollbar";
6
8
  import * as __WEBPACK_EXTERNAL_MODULE_lodash_throttle_a7b7506a__ from "lodash/throttle";
7
9
  /******/ // The require scope
8
10
  /******/ var __webpack_require__ = {};
@@ -127,6 +129,10 @@ const external_vue_namespaceObject = external_vue_x({ ["computed"]: () => __WEBP
127
129
  var config_provider_x = y => { var x = {}; __webpack_require__.d(x, y); return x; }
128
130
  var config_provider_y = x => () => x
129
131
  const config_provider_namespaceObject = config_provider_x({ ["usePrefix"]: () => __WEBPACK_EXTERNAL_MODULE_bkui_vue_lib_config_provider_fe8577a3__.usePrefix });
132
+ ;// CONCATENATED MODULE: external "vue-types"
133
+ var external_vue_types_x = y => { var x = {}; __webpack_require__.d(x, y); return x; }
134
+ var external_vue_types_y = x => () => x
135
+ const external_vue_types_namespaceObject = external_vue_types_x({ ["toType"]: () => __WEBPACK_EXTERNAL_MODULE_vue_types_22de060a__.toType });
130
136
  ;// CONCATENATED MODULE: ../../packages/virtual-render/src/props.ts
131
137
 
132
138
  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; }
@@ -157,6 +163,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
157
163
  * IN THE SOFTWARE.
158
164
  */
159
165
 
166
+
160
167
  var EventProps = {
161
168
  onContentScroll: Function
162
169
  };
@@ -241,6 +248,14 @@ var virtualRenderProps = _objectSpread({
241
248
  * 保持滚动条位置、当前渲染区间
242
249
  */
243
250
  keepAlive: shared_namespaceObject.PropTypes.bool.def(false),
251
+ /**
252
+ * 是否允许滚动条改变原有DOM结构
253
+ */
254
+ scrollbar: (0,external_vue_types_namespaceObject.toType)('IScrollbarOption', {
255
+ "default": {
256
+ enabled: true
257
+ }
258
+ }),
244
259
  /**
245
260
  * 数据监听改变时,是否自动重置位置到[0, 0]
246
261
  */
@@ -248,16 +263,32 @@ var virtualRenderProps = _objectSpread({
248
263
  wrapperStyle: shared_namespaceObject.PropTypes.any.def({})
249
264
  }, EventProps);
250
265
  ;// CONCATENATED MODULE: ../../packages/virtual-render/src/use-fix-top.tsx
251
- /* harmony default export */ const use_fix_top = (function (props, refRoot) {
252
- var scrollTo = function scrollTo() {
253
- var option = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
254
- left: 0,
255
- top: 0
256
- };
257
- var left = option.left,
258
- top = option.top;
259
- refRoot.value.scrollTo(left, top);
260
- };
266
+ /*
267
+ * Tencent is pleased to support the open source community by making
268
+ * 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition) available.
269
+ *
270
+ * Copyright (C) 2021 THL A29 Limited, a Tencent company. All rights reserved.
271
+ *
272
+ * 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition) is licensed under the MIT License.
273
+ *
274
+ * License for 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition):
275
+ *
276
+ * ---------------------------------------------------
277
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
278
+ * documentation files (the "Software"), to deal in the Software without restriction, including without limitation
279
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and
280
+ * to permit persons to whom the Software is furnished to do so, subject to the following conditions:
281
+ *
282
+ * The above copyright notice and this permission notice shall be included in all copies or substantial portions of
283
+ * the Software.
284
+ *
285
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
286
+ * THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
287
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
288
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
289
+ * IN THE SOFTWARE.
290
+ */
291
+ /* harmony default export */ const use_fix_top = (function (props, scrollTo) {
261
292
  /**
262
293
  * 指定元素滚动到顶部
263
294
  * @param param0
@@ -282,15 +313,91 @@ var virtualRenderProps = _objectSpread({
282
313
  if (typeof targetIndex === 'number') {
283
314
  var resolvedIndex = targetIndex >= 0 ? targetIndex : 0;
284
315
  var offsetY = resolvedIndex * props.lineHeight;
285
- scrollTo({
286
- left: 0,
287
- top: offsetY
316
+ scrollTo(0, offsetY);
317
+ }
318
+ return null;
319
+ };
320
+ return {
321
+ fixToTop: fixToTop
322
+ };
323
+ });
324
+ ;// CONCATENATED MODULE: external "../scrollbar"
325
+ var scrollbar_x = y => { var x = {}; __webpack_require__.d(x, y); return x; }
326
+ var scrollbar_y = x => () => x
327
+ const scrollbar_namespaceObject = scrollbar_x({ ["default"]: () => __WEBPACK_EXTERNAL_MODULE_bkui_vue_lib_scrollbar_918447d0__["default"] });
328
+ ;// CONCATENATED MODULE: ../../packages/virtual-render/src/use-scrollbar.tsx
329
+ /*
330
+ * Tencent is pleased to support the open source community by making
331
+ * 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition) available.
332
+ *
333
+ * Copyright (C) 2021 THL A29 Limited, a Tencent company. All rights reserved.
334
+ *
335
+ * 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition) is licensed under the MIT License.
336
+ *
337
+ * License for 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition):
338
+ *
339
+ * ---------------------------------------------------
340
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
341
+ * documentation files (the "Software"), to deal in the Software without restriction, including without limitation
342
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and
343
+ * to permit persons to whom the Software is furnished to do so, subject to the following conditions:
344
+ *
345
+ * The above copyright notice and this permission notice shall be included in all copies or substantial portions of
346
+ * the Software.
347
+ *
348
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
349
+ * THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
350
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
351
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
352
+ * IN THE SOFTWARE.
353
+ */
354
+
355
+
356
+ /* harmony default export */ const use_scrollbar = (function (target, props) {
357
+ var instance = null;
358
+ var _usePrefix = (0,config_provider_namespaceObject.usePrefix)(),
359
+ resolveClassName = _usePrefix.resolveClassName;
360
+ var classNames = {
361
+ contentEl: resolveClassName('scrollbar-content-el'),
362
+ wrapper: resolveClassName('scrollbar-wrapper'),
363
+ scrollbar: resolveClassName('scrollbar'),
364
+ track: resolveClassName('scrollbar-track'),
365
+ visible: resolveClassName('scrollbar-visible'),
366
+ horizontal: resolveClassName('scrollbar-horizontal'),
367
+ vertical: resolveClassName('scrollbar-vertical'),
368
+ hover: resolveClassName('scrollbar-hover'),
369
+ dragging: resolveClassName('scrollbar-dragging'),
370
+ scrolling: resolveClassName('scrollbar-scrolling'),
371
+ scrollable: resolveClassName('scrollbar-scrollable'),
372
+ mouseEntered: resolveClassName('scrollbar-mouse-entered')
373
+ };
374
+ var init = function init(scrollFn, delegateXContent, delegateYContent) {
375
+ instance = new scrollbar_namespaceObject["default"](target.value, {
376
+ classNames: classNames,
377
+ wrapperNode: target.value,
378
+ useSystemScrollYBehavior: !props.enabled,
379
+ useSystemScrollXBehavior: true,
380
+ delegateXContent: delegateXContent,
381
+ delegateYContent: delegateYContent,
382
+ onScrollCallback: scrollFn
383
+ });
384
+ };
385
+ var scrollTo = function scrollTo(x, y) {
386
+ var _props$scrollbar;
387
+ if ((_props$scrollbar = props.scrollbar) !== null && _props$scrollbar !== void 0 && _props$scrollbar.enabled) {
388
+ instance.scrollTo({
389
+ left: x,
390
+ top: y
288
391
  });
392
+ return;
289
393
  }
394
+ target.value.scrollTo(x, y);
290
395
  };
291
396
  return {
292
- fixToTop: fixToTop,
293
- scrollTo: scrollTo
397
+ init: init,
398
+ instance: instance,
399
+ scrollTo: scrollTo,
400
+ classNames: classNames
294
401
  };
295
402
  });
296
403
  ;// CONCATENATED MODULE: ../../node_modules/@babel/runtime/helpers/esm/classCallCheck.js
@@ -325,6 +432,7 @@ const throttle_namespaceObject = throttle_x({ ["default"]: () => __WEBPACK_EXTER
325
432
  ;// CONCATENATED MODULE: ../../packages/virtual-render/src/v-virtual-render.ts
326
433
 
327
434
 
435
+
328
436
  /*
329
437
  * Tencent is pleased to support the open source community by making
330
438
  * 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition) available.
@@ -375,14 +483,14 @@ function getMatchedIndex(maxCount, maxHeight, groupItemCount, callback) {
375
483
  diffHeight: diffHeight
376
484
  };
377
485
  }
378
- function computedVirtualIndex(lineHeight, callback, pagination, _el, event) {
379
- if (!event.target) {
486
+ function computedVirtualIndex(lineHeight, callback, pagination, wrapper, event) {
487
+ if (!wrapper || !event.offset) {
380
488
  return;
381
489
  }
382
- var elScrollTop = event.target.scrollTop;
383
- var elScrollLeft = event.target.scrollLeft;
384
- var elScrollHeight = event.target.scrollHeight;
385
- var elOffsetHeight = event.target.offsetHeight;
490
+ var elScrollTop = event.offset.y;
491
+ var elScrollLeft = event.offset.x;
492
+ var elScrollHeight = wrapper.scrollHeight;
493
+ var elOffsetHeight = wrapper.offsetHeight;
386
494
  var count = pagination.count,
387
495
  groupItemCount = pagination.groupItemCount;
388
496
  var targetStartIndex = 0;
@@ -402,7 +510,8 @@ function computedVirtualIndex(lineHeight, callback, pagination, _el, event) {
402
510
  }
403
511
  var bottom = elScrollHeight - elOffsetHeight - elScrollTop;
404
512
  typeof callback === 'function' && callback(event, targetStartIndex, targetEndIndex, elScrollTop, translateY, elScrollLeft, {
405
- bottom: bottom >= 0 ? bottom : 0
513
+ bottom: bottom >= 0 ? bottom : 0,
514
+ scrollbar: event
406
515
  });
407
516
  return {
408
517
  targetStartIndex: targetStartIndex,
@@ -414,7 +523,33 @@ function computedVirtualIndex(lineHeight, callback, pagination, _el, event) {
414
523
  }
415
524
  var VisibleRender = /*#__PURE__*/function () {
416
525
  function VisibleRender(binding, el) {
526
+ var _this = this;
417
527
  _classCallCheck(this, VisibleRender);
528
+ _defineProperty(this, "getEvent", function (event) {
529
+ var _this$binding$value$s = _this.binding.value.scrollbar,
530
+ scrollbar = _this$binding$value$s === void 0 ? {
531
+ enabled: false
532
+ } : _this$binding$value$s;
533
+ if (scrollbar.enabled) {
534
+ var _event$offset;
535
+ return {
536
+ offset: (_event$offset = event.offset) !== null && _event$offset !== void 0 ? _event$offset : event
537
+ };
538
+ }
539
+ if (event !== null && event !== void 0 && event.offset) {
540
+ return {
541
+ offset: event === null || event === void 0 ? void 0 : event.offset
542
+ };
543
+ }
544
+ var elScrollTop = event.target.scrollTop;
545
+ var elScrollLeft = event.target.scrollLeft;
546
+ return {
547
+ offset: {
548
+ x: elScrollLeft,
549
+ y: elScrollTop
550
+ }
551
+ };
552
+ });
418
553
  this.binding = binding;
419
554
  this.wrapper = el;
420
555
  var throttleDelay = binding.value.throttleDelay;
@@ -431,11 +566,13 @@ var VisibleRender = /*#__PURE__*/function () {
431
566
  pagination = _this$binding$value$p === void 0 ? {} : _this$binding$value$p,
432
567
  onlyScroll = _this$binding$value.onlyScroll;
433
568
  if (onlyScroll) {
434
- var elScrollTop = this.wrapper.scrollTop;
435
- var elScrollLeft = this.wrapper.scrollLeft;
436
- var bottom = this.wrapper.scrollHeight - this.wrapper.offsetHeight - this.wrapper.scrollTop;
569
+ var _e$offset, _e$offset$x, _e$offset2;
570
+ var elScrollTop = (_e$offset = e.offset) === null || _e$offset === void 0 ? void 0 : _e$offset.y;
571
+ var elScrollLeft = (_e$offset$x = (_e$offset2 = e.offset) === null || _e$offset2 === void 0 ? void 0 : _e$offset2.x) !== null && _e$offset$x !== void 0 ? _e$offset$x : 0;
572
+ var bottom = this.wrapper.scrollHeight - this.wrapper.offsetHeight - elScrollTop;
437
573
  handleScrollCallback(e, null, null, elScrollTop, elScrollTop, elScrollLeft, {
438
- bottom: bottom >= 0 ? bottom : 0
574
+ bottom: bottom >= 0 ? bottom : 0,
575
+ scrollbar: e
439
576
  });
440
577
  return;
441
578
  }
@@ -457,7 +594,7 @@ var VisibleRender = /*#__PURE__*/function () {
457
594
  }, {
458
595
  key: "executeThrottledRender",
459
596
  value: function executeThrottledRender(e) {
460
- (0,throttle_namespaceObject["default"])(this.render.bind(this), this.delay)(e);
597
+ (0,throttle_namespaceObject["default"])(this.render.bind(this), this.delay)(this.getEvent(e));
461
598
  }
462
599
  }, {
463
600
  key: "install",
@@ -532,28 +669,46 @@ function use_tag_render_objectSpread(e) { for (var r = 1; r < arguments.length;
532
669
 
533
670
 
534
671
 
672
+
535
673
  /* harmony default export */ const use_tag_render = (function (props, ctx) {
536
674
  var renderAs = props.renderAs,
537
675
  contentAs = props.contentAs;
676
+ var refRoot = (0,external_vue_namespaceObject.ref)(null);
677
+ var _useScrollbar = use_scrollbar(refRoot, props),
678
+ init = _useScrollbar.init,
679
+ scrollTo = _useScrollbar.scrollTo,
680
+ classNames = _useScrollbar.classNames;
681
+ var contentStyle = (0,external_vue_namespaceObject.reactive)({
682
+ x: 0,
683
+ y: 0
684
+ });
685
+ var computedStyle = (0,external_vue_namespaceObject.computed)(function () {
686
+ return use_tag_render_objectSpread({}, props.contentStyle);
687
+ });
538
688
  /** 指令触发Scroll事件,计算当前startIndex & endIndex & scrollTop & translateY */
539
689
  var handleScrollCallback = function handleScrollCallback(event, _startIndex, _endIndex, _scrollTop, translateY, scrollLeft, pos) {
690
+ var scrollbar = pos.scrollbar;
691
+ if (scrollbar !== null && scrollbar !== void 0 && scrollbar.offset) {
692
+ var _scrollbar$offset;
693
+ Object.assign(contentStyle, (_scrollbar$offset = scrollbar === null || scrollbar === void 0 ? void 0 : scrollbar.offset) !== null && _scrollbar$offset !== void 0 ? _scrollbar$offset : {});
694
+ }
540
695
  ctx.emit('content-scroll', [event, {
541
696
  translateY: translateY,
542
697
  translateX: scrollLeft,
543
698
  pos: pos
544
699
  }]);
545
700
  };
546
- var instance = null;
701
+ var renderInstance = null;
547
702
  var binding = (0,external_vue_namespaceObject.computed)(function () {
548
703
  return {
549
704
  lineHeight: props.lineHeight,
705
+ scrollbar: props.scrollbar,
550
706
  handleScrollCallback: handleScrollCallback,
551
707
  pagination: {},
552
708
  throttleDelay: props.throttleDelay,
553
709
  onlyScroll: props.scrollEvent
554
710
  };
555
711
  });
556
- var refRoot = (0,external_vue_namespaceObject.ref)(null);
557
712
  /** 虚拟渲染外层容器样式 */
558
713
  var wrapperStyle = (0,external_vue_namespaceObject.computed)(function () {
559
714
  var _props$maxHeight;
@@ -565,20 +720,36 @@ function use_tag_render_objectSpread(e) { for (var r = 1; r < arguments.length;
565
720
  maxHeight: (_props$maxHeight = props.maxHeight) !== null && _props$maxHeight !== void 0 ? _props$maxHeight : height
566
721
  }, props.wrapperStyle);
567
722
  });
568
- var _useFixTop = use_fix_top(props, refRoot),
569
- scrollTo = _useFixTop.scrollTo,
723
+ var _useFixTop = use_fix_top(props, scrollTo),
570
724
  fixToTop = _useFixTop.fixToTop;
571
725
  ctx.expose({
572
726
  scrollTo: scrollTo,
573
727
  fixToTop: fixToTop
574
728
  });
575
729
  (0,external_vue_namespaceObject.onMounted)(function () {
576
- instance = new VisibleRender(binding, refRoot.value);
577
- instance.install();
730
+ var _props$scrollbar;
731
+ renderInstance = new VisibleRender(binding, refRoot.value);
732
+ if ((_props$scrollbar = props.scrollbar) !== null && _props$scrollbar !== void 0 && _props$scrollbar.enabled) {
733
+ init(renderInstance.executeThrottledRender.bind(renderInstance));
734
+ return;
735
+ }
736
+ renderInstance.install();
578
737
  });
579
738
  (0,external_vue_namespaceObject.onUnmounted)(function () {
580
- var _instance;
581
- (_instance = instance) === null || _instance === void 0 || _instance.uninstall();
739
+ var _renderInstance;
740
+ (_renderInstance = renderInstance) === null || _renderInstance === void 0 || _renderInstance.uninstall();
741
+ });
742
+ var wrapperClassNames = (0,external_vue_namespaceObject.computed)(function () {
743
+ if (props.scrollbar.enabled) {
744
+ return [props.className, classNames.wrapper];
745
+ }
746
+ return [props.className];
747
+ });
748
+ var contentClassNames = (0,external_vue_namespaceObject.computed)(function () {
749
+ if (props.scrollbar.enabled) {
750
+ return [props.contentClassName, classNames.contentEl];
751
+ }
752
+ return [props.contentClassName];
582
753
  });
583
754
  return {
584
755
  rendAsTag: function rendAsTag() {
@@ -586,12 +757,12 @@ function use_tag_render_objectSpread(e) { for (var r = 1; r < arguments.length;
586
757
  return (0,external_vue_namespaceObject.h)(
587
758
  // @ts-ignore:next-line
588
759
  renderAs, {
589
- "class": props.className,
760
+ "class": wrapperClassNames.value,
590
761
  style: wrapperStyle.value,
591
762
  ref: refRoot
592
763
  }, [(_ctx$slots$beforeCont = (_ctx$slots$beforeCont2 = (_ctx$slots = ctx.slots).beforeContent) === null || _ctx$slots$beforeCont2 === void 0 ? void 0 : _ctx$slots$beforeCont2.call(_ctx$slots)) !== null && _ctx$slots$beforeCont !== void 0 ? _ctx$slots$beforeCont : '', (0,external_vue_namespaceObject.h)(contentAs, {
593
- "class": props.contentClassName,
594
- style: props.contentStyle
764
+ "class": contentClassNames.value,
765
+ style: computedStyle.value
595
766
  }, [(_ctx$slots$default = (_ctx$slots$default2 = (_ctx$slots2 = ctx.slots)["default"]) === null || _ctx$slots$default2 === void 0 ? void 0 : _ctx$slots$default2.call(_ctx$slots2, {
596
767
  data: props.list
597
768
  })) !== null && _ctx$slots$default !== void 0 ? _ctx$slots$default : '']), (_ctx$slots$afterConte = (_ctx$slots$afterConte2 = (_ctx$slots3 = ctx.slots).afterContent) === null || _ctx$slots$afterConte2 === void 0 ? void 0 : _ctx$slots$afterConte2.call(_ctx$slots3)) !== null && _ctx$slots$afterConte !== void 0 ? _ctx$slots$afterConte : '', (_ctx$slots$afterSecti = (_ctx$slots$afterSecti2 = (_ctx$slots4 = ctx.slots).afterSection) === null || _ctx$slots$afterSecti2 === void 0 ? void 0 : _ctx$slots$afterSecti2.call(_ctx$slots4)) !== null && _ctx$slots$afterSecti !== void 0 ? _ctx$slots$afterSecti : '']);
@@ -640,6 +811,7 @@ function virtual_render_objectSpread(e) { for (var r = 1; r < arguments.length;
640
811
 
641
812
 
642
813
 
814
+
643
815
  /* harmony default export */ const virtual_render = ((0,external_vue_namespaceObject.defineComponent)({
644
816
  name: 'VirtualRender',
645
817
  directives: {
@@ -671,10 +843,17 @@ function virtual_render_objectSpread(e) { for (var r = 1; r < arguments.length;
671
843
  lineHeight: props.lineHeight,
672
844
  handleScrollCallback: handleScrollCallback,
673
845
  pagination: pagination,
674
- throttleDelay: props.throttleDelay
846
+ throttleDelay: props.throttleDelay,
847
+ scrollbar: props.scrollbar
675
848
  };
676
849
  });
677
850
  var refRoot = (0,external_vue_namespaceObject.ref)(null);
851
+ var refVirtualSection = (0,external_vue_namespaceObject.ref)(null);
852
+ var refContent = (0,external_vue_namespaceObject.ref)(null);
853
+ var _useScrollbar = use_scrollbar(refRoot, props),
854
+ init = _useScrollbar.init,
855
+ scrollTo = _useScrollbar.scrollTo,
856
+ classNames = _useScrollbar.classNames;
678
857
  var instance = null;
679
858
  var pagination = (0,external_vue_namespaceObject.reactive)({
680
859
  startIndex: 0,
@@ -704,10 +883,9 @@ function virtual_render_objectSpread(e) { for (var r = 1; r < arguments.length;
704
883
  var end = (pagination.endIndex + props.preloadItemCount) * props.groupItemCount;
705
884
  var total = localList.value.length;
706
885
  if (total < end) {
707
- var contentLength = end - start;
708
886
  calcList.value = localList.value.slice(start, total);
709
887
  end = total + 1;
710
- start = end - contentLength;
888
+ start = end - Math.ceil(refContent.value.offsetHeight / props.lineHeight);
711
889
  start = start < 0 ? 0 : start;
712
890
  }
713
891
  var value = localList.value.slice(start, end + 10);
@@ -717,7 +895,18 @@ function virtual_render_objectSpread(e) { for (var r = 1; r < arguments.length;
717
895
  }
718
896
  };
719
897
  (0,external_vue_namespaceObject.onMounted)(function () {
898
+ var _props$scrollbar;
720
899
  instance = new VisibleRender(binding, refRoot.value);
900
+ if ((_props$scrollbar = props.scrollbar) !== null && _props$scrollbar !== void 0 && _props$scrollbar.enabled) {
901
+ init(instance.executeThrottledRender.bind(instance), null, refVirtualSection.value);
902
+ instance.executeThrottledRender.call(instance, {
903
+ offset: {
904
+ x: 0,
905
+ y: 0
906
+ }
907
+ });
908
+ return;
909
+ }
721
910
  instance.install();
722
911
  });
723
912
  (0,external_vue_namespaceObject.onUnmounted)(function () {
@@ -781,10 +970,7 @@ function virtual_render_objectSpread(e) { for (var r = 1; r < arguments.length;
781
970
  });
782
971
  /** 展示列表内容区域样式 */
783
972
  var innerContentStyle = (0,external_vue_namespaceObject.computed)(function () {
784
- return props.scrollPosition === 'content' ? {
785
- top: "".concat(pagination.scrollTop + props.scrollOffsetTop, "px"),
786
- transform: "translateY(-".concat(pagination.translateY, "px)")
787
- } : {};
973
+ return props.scrollPosition === 'content' ? {} : {};
788
974
  });
789
975
  /** 虚拟渲染外层容器样式 */
790
976
  var wrapperStyle = (0,external_vue_namespaceObject.computed)(function () {
@@ -809,7 +995,7 @@ function virtual_render_objectSpread(e) { for (var r = 1; r < arguments.length;
809
995
  resolveClassName = _usePrefix.resolveClassName;
810
996
  /** 外层样式列表 */
811
997
  var wrapperClass = (0,external_vue_namespaceObject.computed)(function () {
812
- return [resolveClassName('virtual-render'), props.scrollXName, props.scrollYName].concat(_toConsumableArray(resolvePropClassName(props.className)), [props.scrollPosition === 'container' ? resolveClassName('virtual-content') : '']);
998
+ return [resolveClassName('virtual-render')].concat(_toConsumableArray(resolvePropClassName(props.className)), [props.scrollPosition === 'container' ? resolveClassName('virtual-content') : '']);
813
999
  });
814
1000
  /** 内容区域样式列表 */
815
1001
  var innerClass = (0,external_vue_namespaceObject.computed)(function () {
@@ -820,20 +1006,33 @@ function virtual_render_objectSpread(e) { for (var r = 1; r < arguments.length;
820
1006
  * @param keepLastPostion
821
1007
  */
822
1008
  var reset = function reset() {
1009
+ var _instance2;
823
1010
  handleChangeListConfig();
824
1011
  afterListDataReset();
1012
+ (_instance2 = instance) === null || _instance2 === void 0 || _instance2.executeThrottledRender.call(instance, {
1013
+ offset: {
1014
+ x: 0,
1015
+ y: 0
1016
+ }
1017
+ });
825
1018
  };
826
- var _useFixTop = use_fix_top(props, refRoot),
827
- scrollTo = _useFixTop.scrollTo,
1019
+ var _useFixTop = use_fix_top(props, scrollTo),
828
1020
  fixToTop = _useFixTop.fixToTop;
829
1021
  (0,external_vue_namespaceObject.watch)(function () {
830
1022
  return [props.lineHeight, props.height, props.list, props.maxHeight];
831
1023
  }, function () {
832
- var _instance2;
833
- (_instance2 = instance) === null || _instance2 === void 0 || _instance2.setBinding(binding);
1024
+ var _instance3;
1025
+ (_instance3 = instance) === null || _instance3 === void 0 || _instance3.setBinding(binding);
834
1026
  handleChangeListConfig();
835
1027
  (0,external_vue_namespaceObject.nextTick)(function () {
1028
+ var _instance4;
836
1029
  afterListDataReset();
1030
+ (_instance4 = instance) === null || _instance4 === void 0 || _instance4.executeThrottledRender.call(instance, {
1031
+ offset: {
1032
+ x: 0,
1033
+ y: 0
1034
+ }
1035
+ });
837
1036
  });
838
1037
  }, {
839
1038
  deep: true,
@@ -850,14 +1049,16 @@ function virtual_render_objectSpread(e) { for (var r = 1; r < arguments.length;
850
1049
  // @ts-ignore:next-line
851
1050
  renderAs || 'div', {
852
1051
  ref: refRoot,
853
- "class": wrapperClass.value,
1052
+ "class": [].concat(_toConsumableArray(wrapperClass.value), [classNames.wrapper]),
854
1053
  style: wrapperStyle.value
855
1054
  }, [(_ctx$slots$beforeCont = (_ctx$slots$beforeCont2 = (_ctx$slots = ctx.slots).beforeContent) === null || _ctx$slots$beforeCont2 === void 0 ? void 0 : _ctx$slots$beforeCont2.call(_ctx$slots)) !== null && _ctx$slots$beforeCont !== void 0 ? _ctx$slots$beforeCont : '', (0,external_vue_namespaceObject.h)(contentAs || 'div', {
856
- "class": innerClass.value,
1055
+ ref: refContent,
1056
+ "class": [].concat(_toConsumableArray(innerClass.value), [classNames.contentEl]),
857
1057
  style: virtual_render_objectSpread(virtual_render_objectSpread({}, innerContentStyle.value), props.contentStyle)
858
1058
  }, [(_ctx$slots$default = (_ctx$slots$default2 = (_ctx$slots2 = ctx.slots)["default"]) === null || _ctx$slots$default2 === void 0 ? void 0 : _ctx$slots$default2.call(_ctx$slots2, {
859
1059
  data: calcList.value
860
1060
  })) !== null && _ctx$slots$default !== void 0 ? _ctx$slots$default : '']), (_ctx$slots$afterConte = (_ctx$slots$afterConte2 = (_ctx$slots3 = ctx.slots).afterContent) === null || _ctx$slots$afterConte2 === void 0 ? void 0 : _ctx$slots$afterConte2.call(_ctx$slots3)) !== null && _ctx$slots$afterConte !== void 0 ? _ctx$slots$afterConte : '', (0,external_vue_namespaceObject.h)('div', {
1061
+ ref: refVirtualSection,
861
1062
  "class": [resolveClassName('virtual-section')],
862
1063
  style: innerStyle.value
863
1064
  }), (_ctx$slots$afterSecti = (_ctx$slots$afterSecti2 = (_ctx$slots4 = ctx.slots).afterSection) === null || _ctx$slots$afterSecti2 === void 0 ? void 0 : _ctx$slots$afterSecti2.call(_ctx$slots4)) !== null && _ctx$slots$afterSecti !== void 0 ? _ctx$slots$afterSecti : '']);
@@ -1,4 +1,7 @@
1
1
  import { ExtractPropTypes } from 'vue';
2
+ export type IScrollbarOption = {
3
+ enabled: boolean;
4
+ };
2
5
  export declare const virtualRenderProps: {
3
6
  onContentScroll: FunctionConstructor;
4
7
  /** 传入原始数据源 */
@@ -181,6 +184,10 @@ export declare const virtualRenderProps: {
181
184
  } & {
182
185
  default: boolean;
183
186
  };
187
+ /**
188
+ * 是否允许滚动条改变原有DOM结构
189
+ */
190
+ scrollbar: import("vue-types").VueTypeDef<IScrollbarOption>;
184
191
  /**
185
192
  * 数据监听改变时,是否自动重置位置到[0, 0]
186
193
  */
@@ -1,4 +1,3 @@
1
- import { Ref } from 'vue';
2
1
  import { VirtualRenderProps } from './props';
3
2
  type IFixToTopParams = {
4
3
  index?: number;
@@ -8,11 +7,7 @@ type IFixToTopParams = {
8
7
  };
9
8
  position: number[];
10
9
  };
11
- declare const _default: (props: VirtualRenderProps, refRoot: Ref<HTMLElement>) => {
12
- fixToTop: (params: IFixToTopParams) => void;
13
- scrollTo: (option?: {
14
- left: number;
15
- top: number;
16
- }) => void;
10
+ declare const _default: (props: VirtualRenderProps, scrollTo: (x: any, y: any) => void) => {
11
+ fixToTop: (params: IFixToTopParams) => any;
17
12
  };
18
13
  export default _default;
@@ -0,0 +1,23 @@
1
+ import { Ref } from 'vue';
2
+ import BkScrollbar from '../scrollbar';
3
+ import { VirtualRenderProps } from './props';
4
+ declare const _default: (target: Ref<HTMLElement>, props: VirtualRenderProps) => {
5
+ init: (scrollFn?: any, delegateXContent?: any, delegateYContent?: any) => void;
6
+ instance: BkScrollbar;
7
+ scrollTo: (x: any, y: any) => void;
8
+ classNames: {
9
+ contentEl: string;
10
+ wrapper: string;
11
+ scrollbar: string;
12
+ track: string;
13
+ visible: string;
14
+ horizontal: string;
15
+ vertical: string;
16
+ hover: string;
17
+ dragging: string;
18
+ scrolling: string;
19
+ scrollable: string;
20
+ mouseEntered: string;
21
+ };
22
+ };
23
+ export default _default;
@@ -3,7 +3,7 @@ export declare function getMatchedIndex(maxCount: number, maxHeight: number, gro
3
3
  height: number;
4
4
  diffHeight: number;
5
5
  };
6
- export declare function computedVirtualIndex(lineHeight: any, callback: any, pagination: any, _el: any, event: any): {
6
+ export declare function computedVirtualIndex(lineHeight: any, callback: any, pagination: any, wrapper: any, event: any): {
7
7
  targetStartIndex: number;
8
8
  targetEndIndex: number;
9
9
  elScrollTop: any;
@@ -20,6 +20,7 @@ export declare class VisibleRender {
20
20
  install(): void;
21
21
  uninstall(): void;
22
22
  setBinding(binding: any): void;
23
+ private getEvent;
23
24
  }
24
25
  declare const _default: {
25
26
  mounted(el: any, binding: any): void;