UNPKG

ant-design-vue

Version:

An enterprise-class UI design language and Vue-based implementation

78 lines (64 loc) 2.43 kB
import { isVNode as _isVNode, createVNode as _createVNode } from "vue"; function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } import classNames from '../_util/classNames'; import ResizeObserver from '../vc-resize-observer'; function _isSlot(s) { return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !_isVNode(s); } var Filter = function Filter(_ref, _ref2) { var _slot; var height = _ref.height, offset = _ref.offset, prefixCls = _ref.prefixCls, onInnerResize = _ref.onInnerResize; var slots = _ref2.slots; var _a; var outerStyle = {}; var innerStyle = { display: 'flex', flexDirection: 'column' }; if (offset !== undefined) { outerStyle = { height: "".concat(height, "px"), position: 'relative', overflow: 'hidden' }; innerStyle = _extends(_extends({}, innerStyle), { transform: "translateY(".concat(offset, "px)"), position: 'absolute', left: 0, right: 0, top: 0 }); } return _createVNode("div", { "style": outerStyle }, [_createVNode(ResizeObserver, { "onResize": function onResize(_ref3) { var offsetHeight = _ref3.offsetHeight; if (offsetHeight && onInnerResize) { onInnerResize(); } } }, _isSlot(_slot = _createVNode("div", { "style": innerStyle, "class": classNames(_defineProperty({}, "".concat(prefixCls, "-holder-inner"), prefixCls)) }, [(_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots)])) ? _slot : { default: function _default() { return [_slot]; } })]); }; Filter.displayName = 'Filter'; Filter.inheritAttrs = false; Filter.props = { prefixCls: String, /** Virtual filler height. Should be `count * itemMinHeight` */ height: Number, /** Set offset of visible items. Should be the top of start item position */ offset: Number, onInnerResize: Function }; export default Filter;