Filler.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
  2. import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
  3. import { createVNode as _createVNode } from "vue";
  4. import classNames from '../_util/classNames';
  5. import ResizeObserver from '../vc-resize-observer';
  6. var Filter = function Filter(_ref, _ref2) {
  7. var _slots$default;
  8. var height = _ref.height,
  9. offset = _ref.offset,
  10. prefixCls = _ref.prefixCls,
  11. onInnerResize = _ref.onInnerResize;
  12. var slots = _ref2.slots;
  13. var outerStyle = {};
  14. var innerStyle = {
  15. display: 'flex',
  16. flexDirection: 'column'
  17. };
  18. if (offset !== undefined) {
  19. outerStyle = {
  20. height: "".concat(height, "px"),
  21. position: 'relative',
  22. overflow: 'hidden'
  23. };
  24. innerStyle = _objectSpread(_objectSpread({}, innerStyle), {}, {
  25. transform: "translateY(".concat(offset, "px)"),
  26. position: 'absolute',
  27. left: 0,
  28. right: 0,
  29. top: 0
  30. });
  31. }
  32. return _createVNode("div", {
  33. "style": outerStyle
  34. }, [_createVNode(ResizeObserver, {
  35. "onResize": function onResize(_ref3) {
  36. var offsetHeight = _ref3.offsetHeight;
  37. if (offsetHeight && onInnerResize) {
  38. onInnerResize();
  39. }
  40. }
  41. }, {
  42. default: function _default() {
  43. return [_createVNode("div", {
  44. "style": innerStyle,
  45. "class": classNames(_defineProperty({}, "".concat(prefixCls, "-holder-inner"), prefixCls))
  46. }, [(_slots$default = slots.default) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots)])];
  47. }
  48. })]);
  49. };
  50. Filter.displayName = 'Filter';
  51. Filter.inheritAttrs = false;
  52. Filter.props = {
  53. prefixCls: String,
  54. /** Virtual filler height. Should be `count * itemMinHeight` */
  55. height: Number,
  56. /** Set offset of visible items. Should be the top of start item position */
  57. offset: Number,
  58. onInnerResize: Function
  59. };
  60. export default Filter;