dom.min.js 4.1 KB

1
  1. "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.DomTools=void 0;var _ctor=_interopRequireDefault(require("xe-utils/ctor")),_utils=_interopRequireDefault(require("./utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var browse=_ctor.default.browse(),htmlElem=browse.isDoc?document.querySelector("html"):0,bodyElem=browse.isDoc?document.body:0,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!==htmlElem&&r!==bodyElem&&(o.top-=r.scrollTop,o.left-=r.scrollLeft),(!t||e!==t&&e.offsetParent!==t)&&e.offsetParent)return getNodeOffset(e.offsetParent,t,o)}return o}var DomTools={browse:browse,isPx:function(e){return e&&/^\d+(px)?$/.test(e)},isScale:function(e){return e&&/^\d+%$/.test(e)},hasClass:function(e,t){return e&&e.className&&e.className.match&&e.className.match(getClsRE(t))},removeClass:function(e,t){e&&DomTools.hasClass(e,t)&&(e.className=e.className.replace(getClsRE(t),""))},addClass:function(e,t){e&&!DomTools.hasClass(e,t)&&(DomTools.removeClass(e,t),e.className="".concat(e.className," ").concat(t))},updateCellTitle:function(e,t){var o="html"===t.type?e.innerText:e.textContent;e.getAttribute("title")!==o&&e.setAttribute("title",o)},rowToVisible:function(e,t){var o=e.$refs.tableBody.$el,r=o.querySelector('[data-rowid="'.concat(_utils.default.getRowid(e,t),'"]'));if(r){var l=o.clientHeight,n=o.scrollTop,s=r.offsetTop+(r.offsetParent?r.offsetParent.offsetTop:0),i=r.clientHeight;if(s<n||n+l<s)return e.scrollTo(null,s);if(l+n<=s+i)return e.scrollTo(null,n+i)}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,n=o.scrollLeft,s=r.offsetLeft+(r.offsetParent?r.offsetParent.offsetLeft:0),i=r.clientWidth;if(s<n||n+l<s)return e.scrollTo(s);if(l+n<=s+i)return e.scrollTo(n+i)}else if(e.scrollXLoad){for(var a=e.visibleColumn,c=0,f=0;f<a.length&&a[f]!==t;f++)c+=a[f].renderWidth;return e.scrollTo(c)}return Promise.resolve()},getDomNode:function(){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}},getEventTargetNode:function(e,t,o,r){for(var l,n=e.target;n&&n.nodeType&&n!==document;){if(o&&DomTools.hasClass(n,o)&&(!r||r(n)))l=n;else if(n===t)return{flag:!o||!!l,container:t,targetElem:l};n=n.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,r=t.left,l=DomTools.getDomNode();return{boundingTop:o,top:l.scrollTop+o,boundingLeft:r,left:l.scrollLeft+r,visibleHeight:l.visibleHeight,visibleWidth:l.visibleWidth}},getCellNodeIndex:function(e){var t=e.parentNode;return{columnIndex:_ctor.default.arrayIndexOf(t.children,e),rowIndex:_ctor.default.arrayIndexOf(t.parentNode.children,t)}},getRowNodes:function(e,t,o){for(var r=t.columnIndex,l=t.rowIndex,n=o.columnIndex,s=o.rowIndex,i=[],a=Math.min(l,s),c=Math.max(l,s);a<=c;a++){for(var f=[],u=e[a],d=Math.min(r,n),m=Math.max(r,n);d<=m;d++){var p=u.children[d];f.push(p)}i.push(f)}return i},getCellIndexs:function(e){var t=e.parentNode,o=t.getAttribute("data-rowid"),r=[].indexOf.call(t.children,e);return{rowid:o,rowIndex:[].indexOf.call(t.parentNode.children,t),columnIndex:r}},toView: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 o&&("auto"===o?r=e.parentHeight:(r=DomTools.isScale(o)?Math.floor(parseInt(o)/100*e.parentHeight):_ctor.default.toNumber(o),r-=e.getExcludeHeight())),r}},_default=exports.DomTools=DomTools;exports.default=_default;