bkui-vue 1.0.3-beta.61 → 1.0.3-beta.61.dialog.1

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 +20154 -19397
  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 +18737 -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/select/index.d.ts +0 -33
  41. package/lib/select/index.js +2 -4
  42. package/lib/select/select.css +5 -19
  43. package/lib/select/select.d.ts +0 -11
  44. package/lib/select/select.less +6 -26
  45. package/lib/select/select.variable.css +5 -19
  46. package/lib/select/selectTagInput.d.ts +0 -7
  47. package/lib/shared/index.d.ts +0 -1
  48. package/lib/shared/index.js +1 -48
  49. package/lib/sideslider/index.d.ts +31 -222
  50. package/lib/sideslider/index.js +49 -36
  51. package/lib/sideslider/sideslider.css +4 -42
  52. package/lib/sideslider/sideslider.d.ts +14 -105
  53. package/lib/sideslider/sideslider.less +13 -58
  54. package/lib/sideslider/sideslider.variable.css +4 -42
  55. package/lib/table/const.d.ts +1 -1
  56. package/lib/table/index.js +49 -40
  57. package/lib/table/plugins/use-fixed-column.d.ts +1 -1
  58. package/lib/table/plugins/use-pagination.d.ts +3 -1
  59. package/lib/table/table.css +97 -42
  60. package/lib/table/table.less +43 -58
  61. package/lib/table/table.variable.css +97 -42
  62. package/lib/table/use-attributes.d.ts +1 -0
  63. package/lib/table/use-render.d.ts +1 -1
  64. package/lib/table-column/index.js +1 -1
  65. package/lib/tree/tree.css +75 -2
  66. package/lib/tree/tree.variable.css +75 -2
  67. package/lib/virtual-render/index.d.ts +4 -0
  68. package/lib/virtual-render/index.js +253 -52
  69. package/lib/virtual-render/props.d.ts +7 -0
  70. package/lib/virtual-render/use-fix-top.d.ts +2 -7
  71. package/lib/virtual-render/use-scrollbar.d.ts +23 -0
  72. package/lib/virtual-render/v-virtual-render.d.ts +2 -1
  73. package/lib/virtual-render/virtual-render.css +75 -2
  74. package/lib/virtual-render/virtual-render.d.ts +2 -0
  75. package/lib/virtual-render/virtual-render.less +3 -3
  76. package/lib/virtual-render/virtual-render.variable.css +75 -2
  77. package/package.json +2 -1
  78. package/lib/icon/image-fill.js +0 -191
  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",
@@ -531,28 +668,46 @@ function use_tag_render_objectSpread(e) { for (var r = 1; r < arguments.length;
531
668
 
532
669
 
533
670
 
671
+
534
672
  /* harmony default export */ const use_tag_render = (function (props, ctx) {
535
673
  var renderAs = props.renderAs,
536
674
  contentAs = props.contentAs;
675
+ var refRoot = (0,external_vue_namespaceObject.ref)(null);
676
+ var _useScrollbar = use_scrollbar(refRoot, props),
677
+ init = _useScrollbar.init,
678
+ scrollTo = _useScrollbar.scrollTo,
679
+ classNames = _useScrollbar.classNames;
680
+ var contentStyle = (0,external_vue_namespaceObject.reactive)({
681
+ x: 0,
682
+ y: 0
683
+ });
684
+ var computedStyle = (0,external_vue_namespaceObject.computed)(function () {
685
+ return use_tag_render_objectSpread({}, props.contentStyle);
686
+ });
537
687
  /** 指令触发Scroll事件,计算当前startIndex & endIndex & scrollTop & translateY */
538
688
  var handleScrollCallback = function handleScrollCallback(event, _startIndex, _endIndex, _scrollTop, translateY, scrollLeft, pos) {
689
+ var scrollbar = pos.scrollbar;
690
+ if (scrollbar !== null && scrollbar !== void 0 && scrollbar.offset) {
691
+ var _scrollbar$offset;
692
+ Object.assign(contentStyle, (_scrollbar$offset = scrollbar === null || scrollbar === void 0 ? void 0 : scrollbar.offset) !== null && _scrollbar$offset !== void 0 ? _scrollbar$offset : {});
693
+ }
539
694
  ctx.emit('content-scroll', [event, {
540
695
  translateY: translateY,
541
696
  translateX: scrollLeft,
542
697
  pos: pos
543
698
  }]);
544
699
  };
545
- var instance = null;
700
+ var renderInstance = null;
546
701
  var binding = (0,external_vue_namespaceObject.computed)(function () {
547
702
  return {
548
703
  lineHeight: props.lineHeight,
704
+ scrollbar: props.scrollbar,
549
705
  handleScrollCallback: handleScrollCallback,
550
706
  pagination: {},
551
707
  throttleDelay: props.throttleDelay,
552
708
  onlyScroll: props.scrollEvent
553
709
  };
554
710
  });
555
- var refRoot = (0,external_vue_namespaceObject.ref)(null);
556
711
  /** 虚拟渲染外层容器样式 */
557
712
  var wrapperStyle = (0,external_vue_namespaceObject.computed)(function () {
558
713
  var _props$maxHeight;
@@ -564,20 +719,36 @@ function use_tag_render_objectSpread(e) { for (var r = 1; r < arguments.length;
564
719
  maxHeight: (_props$maxHeight = props.maxHeight) !== null && _props$maxHeight !== void 0 ? _props$maxHeight : height
565
720
  }, props.wrapperStyle);
566
721
  });
567
- var _useFixTop = use_fix_top(props, refRoot),
568
- scrollTo = _useFixTop.scrollTo,
722
+ var _useFixTop = use_fix_top(props, scrollTo),
569
723
  fixToTop = _useFixTop.fixToTop;
570
724
  ctx.expose({
571
725
  scrollTo: scrollTo,
572
726
  fixToTop: fixToTop
573
727
  });
574
728
  (0,external_vue_namespaceObject.onMounted)(function () {
575
- instance = new VisibleRender(binding, refRoot.value);
576
- instance.install();
729
+ var _props$scrollbar;
730
+ renderInstance = new VisibleRender(binding, refRoot.value);
731
+ if ((_props$scrollbar = props.scrollbar) !== null && _props$scrollbar !== void 0 && _props$scrollbar.enabled) {
732
+ init(renderInstance.executeThrottledRender.bind(renderInstance));
733
+ return;
734
+ }
735
+ renderInstance.install();
577
736
  });
578
737
  (0,external_vue_namespaceObject.onUnmounted)(function () {
579
- var _instance;
580
- (_instance = instance) === null || _instance === void 0 || _instance.uninstall();
738
+ var _renderInstance;
739
+ (_renderInstance = renderInstance) === null || _renderInstance === void 0 || _renderInstance.uninstall();
740
+ });
741
+ var wrapperClassNames = (0,external_vue_namespaceObject.computed)(function () {
742
+ if (props.scrollbar.enabled) {
743
+ return [props.className, classNames.wrapper];
744
+ }
745
+ return [props.className];
746
+ });
747
+ var contentClassNames = (0,external_vue_namespaceObject.computed)(function () {
748
+ if (props.scrollbar.enabled) {
749
+ return [props.contentClassName, classNames.contentEl];
750
+ }
751
+ return [props.contentClassName];
581
752
  });
582
753
  return {
583
754
  rendAsTag: function rendAsTag() {
@@ -585,12 +756,12 @@ function use_tag_render_objectSpread(e) { for (var r = 1; r < arguments.length;
585
756
  return (0,external_vue_namespaceObject.h)(
586
757
  // @ts-ignore:next-line
587
758
  renderAs, {
588
- "class": props.className,
759
+ "class": wrapperClassNames.value,
589
760
  style: wrapperStyle.value,
590
761
  ref: refRoot
591
762
  }, [(_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, {
592
- "class": props.contentClassName,
593
- style: props.contentStyle
763
+ "class": contentClassNames.value,
764
+ style: computedStyle.value
594
765
  }, [(_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, {
595
766
  data: props.list
596
767
  })) !== 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 : '']);
@@ -639,6 +810,7 @@ function virtual_render_objectSpread(e) { for (var r = 1; r < arguments.length;
639
810
 
640
811
 
641
812
 
813
+
642
814
  /* harmony default export */ const virtual_render = ((0,external_vue_namespaceObject.defineComponent)({
643
815
  name: 'VirtualRender',
644
816
  directives: {
@@ -670,10 +842,17 @@ function virtual_render_objectSpread(e) { for (var r = 1; r < arguments.length;
670
842
  lineHeight: props.lineHeight,
671
843
  handleScrollCallback: handleScrollCallback,
672
844
  pagination: pagination,
673
- throttleDelay: props.throttleDelay
845
+ throttleDelay: props.throttleDelay,
846
+ scrollbar: props.scrollbar
674
847
  };
675
848
  });
676
849
  var refRoot = (0,external_vue_namespaceObject.ref)(null);
850
+ var refVirtualSection = (0,external_vue_namespaceObject.ref)(null);
851
+ var refContent = (0,external_vue_namespaceObject.ref)(null);
852
+ var _useScrollbar = use_scrollbar(refRoot, props),
853
+ init = _useScrollbar.init,
854
+ scrollTo = _useScrollbar.scrollTo,
855
+ classNames = _useScrollbar.classNames;
677
856
  var instance = null;
678
857
  var pagination = (0,external_vue_namespaceObject.reactive)({
679
858
  startIndex: 0,
@@ -703,10 +882,9 @@ function virtual_render_objectSpread(e) { for (var r = 1; r < arguments.length;
703
882
  var end = (pagination.endIndex + props.preloadItemCount) * props.groupItemCount;
704
883
  var total = localList.value.length;
705
884
  if (total < end) {
706
- var contentLength = end - start;
707
885
  calcList.value = localList.value.slice(start, total);
708
886
  end = total + 1;
709
- start = end - contentLength;
887
+ start = end - Math.ceil(refContent.value.offsetHeight / props.lineHeight);
710
888
  start = start < 0 ? 0 : start;
711
889
  }
712
890
  var value = localList.value.slice(start, end + 10);
@@ -716,7 +894,18 @@ function virtual_render_objectSpread(e) { for (var r = 1; r < arguments.length;
716
894
  }
717
895
  };
718
896
  (0,external_vue_namespaceObject.onMounted)(function () {
897
+ var _props$scrollbar;
719
898
  instance = new VisibleRender(binding, refRoot.value);
899
+ if ((_props$scrollbar = props.scrollbar) !== null && _props$scrollbar !== void 0 && _props$scrollbar.enabled) {
900
+ init(instance.executeThrottledRender.bind(instance), null, refVirtualSection.value);
901
+ instance.executeThrottledRender.call(instance, {
902
+ offset: {
903
+ x: 0,
904
+ y: 0
905
+ }
906
+ });
907
+ return;
908
+ }
720
909
  instance.install();
721
910
  });
722
911
  (0,external_vue_namespaceObject.onUnmounted)(function () {
@@ -780,10 +969,7 @@ function virtual_render_objectSpread(e) { for (var r = 1; r < arguments.length;
780
969
  });
781
970
  /** 展示列表内容区域样式 */
782
971
  var innerContentStyle = (0,external_vue_namespaceObject.computed)(function () {
783
- return props.scrollPosition === 'content' ? {
784
- top: "".concat(pagination.scrollTop + props.scrollOffsetTop, "px"),
785
- transform: "translateY(-".concat(pagination.translateY, "px)")
786
- } : {};
972
+ return props.scrollPosition === 'content' ? {} : {};
787
973
  });
788
974
  /** 虚拟渲染外层容器样式 */
789
975
  var wrapperStyle = (0,external_vue_namespaceObject.computed)(function () {
@@ -808,7 +994,7 @@ function virtual_render_objectSpread(e) { for (var r = 1; r < arguments.length;
808
994
  resolveClassName = _usePrefix.resolveClassName;
809
995
  /** 外层样式列表 */
810
996
  var wrapperClass = (0,external_vue_namespaceObject.computed)(function () {
811
- return [resolveClassName('virtual-render'), props.scrollXName, props.scrollYName].concat(_toConsumableArray(resolvePropClassName(props.className)), [props.scrollPosition === 'container' ? resolveClassName('virtual-content') : '']);
997
+ return [resolveClassName('virtual-render')].concat(_toConsumableArray(resolvePropClassName(props.className)), [props.scrollPosition === 'container' ? resolveClassName('virtual-content') : '']);
812
998
  });
813
999
  /** 内容区域样式列表 */
814
1000
  var innerClass = (0,external_vue_namespaceObject.computed)(function () {
@@ -819,20 +1005,33 @@ function virtual_render_objectSpread(e) { for (var r = 1; r < arguments.length;
819
1005
  * @param keepLastPostion
820
1006
  */
821
1007
  var reset = function reset() {
1008
+ var _instance2;
822
1009
  handleChangeListConfig();
823
1010
  afterListDataReset();
1011
+ (_instance2 = instance) === null || _instance2 === void 0 || _instance2.executeThrottledRender.call(instance, {
1012
+ offset: {
1013
+ x: 0,
1014
+ y: 0
1015
+ }
1016
+ });
824
1017
  };
825
- var _useFixTop = use_fix_top(props, refRoot),
826
- scrollTo = _useFixTop.scrollTo,
1018
+ var _useFixTop = use_fix_top(props, scrollTo),
827
1019
  fixToTop = _useFixTop.fixToTop;
828
1020
  (0,external_vue_namespaceObject.watch)(function () {
829
1021
  return [props.lineHeight, props.height, props.list, props.maxHeight];
830
1022
  }, function () {
831
- var _instance2;
832
- (_instance2 = instance) === null || _instance2 === void 0 || _instance2.setBinding(binding);
1023
+ var _instance3;
1024
+ (_instance3 = instance) === null || _instance3 === void 0 || _instance3.setBinding(binding);
833
1025
  handleChangeListConfig();
834
1026
  (0,external_vue_namespaceObject.nextTick)(function () {
1027
+ var _instance4;
835
1028
  afterListDataReset();
1029
+ (_instance4 = instance) === null || _instance4 === void 0 || _instance4.executeThrottledRender.call(instance, {
1030
+ offset: {
1031
+ x: 0,
1032
+ y: 0
1033
+ }
1034
+ });
836
1035
  });
837
1036
  }, {
838
1037
  deep: true,
@@ -849,14 +1048,16 @@ function virtual_render_objectSpread(e) { for (var r = 1; r < arguments.length;
849
1048
  // @ts-ignore:next-line
850
1049
  renderAs || 'div', {
851
1050
  ref: refRoot,
852
- "class": wrapperClass.value,
1051
+ "class": [].concat(_toConsumableArray(wrapperClass.value), [classNames.wrapper]),
853
1052
  style: wrapperStyle.value
854
1053
  }, [(_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', {
855
- "class": innerClass.value,
1054
+ ref: refContent,
1055
+ "class": [].concat(_toConsumableArray(innerClass.value), [classNames.contentEl]),
856
1056
  style: virtual_render_objectSpread(virtual_render_objectSpread({}, innerContentStyle.value), props.contentStyle)
857
1057
  }, [(_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, {
858
1058
  data: calcList.value
859
1059
  })) !== 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', {
1060
+ ref: refVirtualSection,
860
1061
  "class": [resolveClassName('virtual-section')],
861
1062
  style: innerStyle.value
862
1063
  }), (_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;