UNPKG

vxe-table

Version:

一个基于 vue 的 PC 端表格组件,支持增删改查、虚拟滚动、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、虚拟列表、模态窗口、自定义模板、渲染器、贼灵活的配置项、扩展接口等...

1 lines 3.92 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getOffsetHeight=getOffsetHeight,exports.getPaddingTopBottomSize=getPaddingTopBottomSize,exports.default=exports.DomTools=exports.browse=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_utils=_interopRequireDefault(require("./utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var getRowid=_utils.default.getRowid,browse=_xeUtils.default.browse();exports.browse=browse;var reClsMap={};function getClsRE(e){return reClsMap[e]||(reClsMap[e]=new RegExp("(?:^|\\s)".concat(e,"(?!\\S)"),"g")),reClsMap[e]}function getNodeOffset(e,t,o){if(e){var r=e.parentNode;if(o.top+=e.offsetTop,o.left+=e.offsetLeft,r&&r!==document.documentElement&&r!==document.body&&(o.top-=r.scrollTop,o.left-=r.scrollLeft),(!t||e!==t&&e.offsetParent!==t)&&e.offsetParent)return getNodeOffset(e.offsetParent,t,o)}return o}function isScale(e){return e&&/^\d+%$/.test(e)}function hasClass(e,t){return e&&e.className&&e.className.match&&e.className.match(getClsRE(t))}function removeClass(e,t){e&&hasClass(e,t)&&(e.className=e.className.replace(getClsRE(t),""))}function getDomNode(){var e=document.documentElement,t=document.body;return{scrollTop:e.scrollTop||t.scrollTop,scrollLeft:e.scrollLeft||t.scrollLeft,visibleHeight:e.clientHeight||t.clientHeight,visibleWidth:e.clientWidth||t.clientWidth}}function getOffsetHeight(e){return e?e.offsetHeight:0}function getPaddingTopBottomSize(e){if(e){e=getComputedStyle(e);return _xeUtils.default.toNumber(e.paddingTop)+_xeUtils.default.toNumber(e.paddingBottom)}return 0}var DomTools={browse:browse,isPx:function(e){return e&&/^\d+(px)?$/.test(e)},isScale:isScale,hasClass:hasClass,removeClass:removeClass,addClass:function(e,t){e&&!hasClass(e,t)&&(removeClass(e,t),e.className="".concat(e.className," ").concat(t))},updateCellTitle:function(e,t){t="html"===t.type?e.innerText:e.textContent;e.getAttribute("title")!==t&&e.setAttribute("title",t)},rowToVisible:function(e,t){var o=e.$refs.tableBody.$el,r=o.querySelector('[rowid="'.concat(getRowid(e,t),'"]'));if(r){var l=o.clientHeight,s=o.scrollTop,o=r.offsetTop+(r.offsetParent?r.offsetParent.offsetTop:0),r=r.clientHeight;if(o<s||s+l<o)return e.scrollTo(null,o);if(l+s<=o+r)return e.scrollTo(null,s+r)}else if(e.scrollYLoad)return e.scrollTo(null,(e.afterFullData.indexOf(t)-1)*e.scrollYStore.rowHeight);return Promise.resolve()},colToVisible:function(e,t){var o=e.$refs.tableBody.$el,r=o.querySelector(".".concat(t.id));if(r){var l=o.clientWidth,s=o.scrollLeft,o=r.offsetLeft+(r.offsetParent?r.offsetParent.offsetLeft:0),r=r.clientWidth;if(o<s||s+l<o)return e.scrollTo(o);if(l+s<=o+r)return e.scrollTo(s+r)}else if(e.scrollXLoad){for(var i=e.visibleColumn,n=0,f=0;f<i.length&&i[f]!==t;f++)n+=i[f].renderWidth;return e.scrollTo(n)}return Promise.resolve()},getDomNode:getDomNode,getEventTargetNode:function(e,t,o,r){for(var l,s=e.target;s&&s.nodeType&&s!==document;){if(o&&hasClass(s,o)&&(!r||r(s)))l=s;else if(s===t)return{flag:!o||!!l,container:t,targetElem:l};s=s.parentNode}return{flag:!1}},getOffsetPos:function(e,t){return getNodeOffset(e,t,{left:0,top:0})},getAbsolutePos:function(e){var t=e.getBoundingClientRect(),o=t.top,e=t.left,t=getDomNode();return{boundingTop:o,top:t.scrollTop+o,boundingLeft:e,left:t.scrollLeft+e,visibleHeight:t.visibleHeight,visibleWidth:t.visibleWidth}},scrollToView:function(e){var t="scrollIntoViewIfNeeded",o="scrollIntoView";e&&(e[t]?e[t]():e[o]&&e[o]())},triggerEvent:function(e,t){var o;"function"==typeof Event?o=new Event(t):(o=document.createEvent("Event")).initEvent(t,!0,!0),e.dispatchEvent(o)},calcHeight:function(e,t){var o=e[t],r=0;return r=o?"auto"===o?e.parentHeight:(t=e.getExcludeHeight(),r=isScale(o)?Math.floor((_xeUtils.default.toInteger(o)||1)/100*e.parentHeight):_xeUtils.default.toNumber(o),Math.max(40,r-t)):r}},_default=exports.DomTools=DomTools;exports.default=DomTools;