UNPKG

@duoduo-oba/ng-devui

Version:

DevUI components based on Angular

81 lines 7.38 kB
/** * @fileoverview added by tsickle * Generated from: tree-mask.service.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { TreeUtils } from '@duoduo-oba/ng-devui/utils'; export class TreeMaskService { /** * @return {?} */ static creatMaskElement() { /** @type {?} */ const maskElement = document.createElement('span'); /** @type {?} */ const style = { display: 'none', position: 'absolute', top: '0', right: '0', 'z-index': '-1' // 设置z-index防止挡住tree }; maskElement.classList.add('devui-tree-mask'); TreeUtils.addElStyles(maskElement, style); return maskElement; } /** * @param {?} hostElement * @param {?} maskElement * @param {?} treeWidth * @return {?} */ static addMask(hostElement, maskElement, treeWidth) { event.stopPropagation(); if (treeWidth) { /** @type {?} */ const nodeHeight = hostElement.clientHeight; maskElement.style.width = treeWidth + 'px'; maskElement.style.height = nodeHeight + 'px'; maskElement.style.display = 'block'; hostElement.appendChild(maskElement); } } /** * @param {?} hostElement * @param {?} maskElement * @return {?} */ static removeMask(hostElement, maskElement) { maskElement.style.display = 'none'; hostElement.removeChild(maskElement); } /** * @param {?} treeNode * @param {?=} index * @return {?} */ static calcWidth(treeNode, index) { /** @type {?} */ let treeWidth; // 若传入的有width说明是nativeElement则直接设置宽度,若有Length说明是queryList则找子元素宽度 if (treeNode.clientWidth) { treeWidth = treeNode.clientWidth; } else if (treeNode.length) { /** @type {?} */ const nodeList = treeNode['_results']; if (index >= 0) { // 若index小于0则必定不合法,NaN和undefined都不大于0 treeWidth = nodeList[index].nativeElement.clientWidth; } else { // index不合法的和没传的都找子element里最大的 treeWidth = Math.max(...nodeList.map((/** * @param {?} node * @return {?} */ node => node.nativeElement.clientWidth))); } } return treeWidth; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1tYXNrLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1kZXZ1aS90cmVlLyIsInNvdXJjZXMiOlsidHJlZS1tYXNrLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsTUFBTSxPQUFPLGVBQWU7Ozs7SUFFbkIsTUFBTSxDQUFDLGdCQUFnQjs7Y0FDdEIsV0FBVyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDOztjQUM1QyxLQUFLLEdBQUc7WUFDWixPQUFPLEVBQUUsTUFBTTtZQUNmLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLEdBQUcsRUFBRSxHQUFHO1lBQ1IsS0FBSyxFQUFFLEdBQUc7WUFDVixTQUFTLEVBQUUsSUFBSSxDQUFDLG9CQUFvQjtTQUNyQztRQUNELFdBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDN0MsU0FBUyxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDMUMsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQzs7Ozs7OztJQUVNLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBZ0IsRUFBRSxXQUFnQixFQUFFLFNBQWlCO1FBQ3pFLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLFNBQVMsRUFBRTs7a0JBQ1AsVUFBVSxHQUFHLFdBQVcsQ0FBQyxZQUFZO1lBQzNDLFdBQVcsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDM0MsV0FBVyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsVUFBVSxHQUFHLElBQUksQ0FBQztZQUM3QyxXQUFXLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7WUFDcEMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUN0QztJQUNILENBQUM7Ozs7OztJQUVNLE1BQU0sQ0FBQyxVQUFVLENBQUMsV0FBZ0IsRUFBRSxXQUFnQjtRQUN6RCxXQUFXLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDbkMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN2QyxDQUFDOzs7Ozs7SUFFTSxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQWEsRUFBRSxLQUFjOztZQUMvQyxTQUFTO1FBQ2IsZ0VBQWdFO1FBQ2hFLElBQUksUUFBUSxDQUFDLFdBQVcsRUFBRTtZQUN4QixTQUFTLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQztTQUNsQzthQUFNLElBQUksUUFBUSxDQUFDLE1BQU0sRUFBRTs7a0JBQ3BCLFFBQVEsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDO1lBQ3JDLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRSxFQUFFLHFDQUFxQztnQkFDckQsU0FBUyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDO2FBQ3ZEO2lCQUFNLEVBQUUsOEJBQThCO2dCQUNyQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxHQUFHOzs7O2dCQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUMsQ0FBQyxDQUFDO2FBQy9FO1NBQ0Y7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmVlVXRpbHMgfSBmcm9tICduZy1kZXZ1aS91dGlscyc7XHJcblxyXG5leHBvcnQgY2xhc3MgVHJlZU1hc2tTZXJ2aWNlIHtcclxuXHJcbiAgcHVibGljIHN0YXRpYyBjcmVhdE1hc2tFbGVtZW50KCkge1xyXG4gICAgY29uc3QgbWFza0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XHJcbiAgICBjb25zdCBzdHlsZSA9IHtcclxuICAgICAgZGlzcGxheTogJ25vbmUnLFxyXG4gICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcclxuICAgICAgdG9wOiAnMCcsXHJcbiAgICAgIHJpZ2h0OiAnMCcsXHJcbiAgICAgICd6LWluZGV4JzogJy0xJyAvLyDorr7nva56LWluZGV46Ziy5q2i5oyh5L2PdHJlZVxyXG4gICAgfTtcclxuICAgIG1hc2tFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2RldnVpLXRyZWUtbWFzaycpO1xyXG4gICAgVHJlZVV0aWxzLmFkZEVsU3R5bGVzKG1hc2tFbGVtZW50LCBzdHlsZSk7XHJcbiAgICByZXR1cm4gbWFza0VsZW1lbnQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGFkZE1hc2soaG9zdEVsZW1lbnQ6IGFueSwgbWFza0VsZW1lbnQ6IGFueSwgdHJlZVdpZHRoOiBudW1iZXIpIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgaWYgKHRyZWVXaWR0aCkge1xyXG4gICAgICBjb25zdCBub2RlSGVpZ2h0ID0gaG9zdEVsZW1lbnQuY2xpZW50SGVpZ2h0O1xyXG4gICAgICBtYXNrRWxlbWVudC5zdHlsZS53aWR0aCA9IHRyZWVXaWR0aCArICdweCc7XHJcbiAgICAgIG1hc2tFbGVtZW50LnN0eWxlLmhlaWdodCA9IG5vZGVIZWlnaHQgKyAncHgnO1xyXG4gICAgICBtYXNrRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcclxuICAgICAgaG9zdEVsZW1lbnQuYXBwZW5kQ2hpbGQobWFza0VsZW1lbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyByZW1vdmVNYXNrKGhvc3RFbGVtZW50OiBhbnksIG1hc2tFbGVtZW50OiBhbnkpIHtcclxuICAgIG1hc2tFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XHJcbiAgICBob3N0RWxlbWVudC5yZW1vdmVDaGlsZChtYXNrRWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGNhbGNXaWR0aCh0cmVlTm9kZTogYW55LCBpbmRleD86IG51bWJlcikge1xyXG4gICAgbGV0IHRyZWVXaWR0aDtcclxuICAgIC8vIOiLpeS8oOWFpeeahOaciXdpZHRo6K+05piO5pivbmF0aXZlRWxlbWVudOWImeebtOaOpeiuvue9ruWuveW6pu+8jOiLpeaciUxlbmd0aOivtOaYjuaYr3F1ZXJ5TGlzdOWImeaJvuWtkOWFg+e0oOWuveW6plxyXG4gICAgaWYgKHRyZWVOb2RlLmNsaWVudFdpZHRoKSB7XHJcbiAgICAgIHRyZWVXaWR0aCA9IHRyZWVOb2RlLmNsaWVudFdpZHRoO1xyXG4gICAgfSBlbHNlIGlmICh0cmVlTm9kZS5sZW5ndGgpIHtcclxuICAgICAgY29uc3Qgbm9kZUxpc3QgPSB0cmVlTm9kZVsnX3Jlc3VsdHMnXTtcclxuICAgICAgaWYgKGluZGV4ID49IDApIHsgLy8g6IulaW5kZXjlsI/kuo4w5YiZ5b+F5a6a5LiN5ZCI5rOV77yMTmFO5ZKMdW5kZWZpbmVk6YO95LiN5aSn5LqOMFxyXG4gICAgICAgIHRyZWVXaWR0aCA9IG5vZGVMaXN0W2luZGV4XS5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xyXG4gICAgICB9IGVsc2UgeyAvLyBpbmRleOS4jeWQiOazleeahOWSjOayoeS8oOeahOmDveaJvuWtkGVsZW1lbnTph4zmnIDlpKfnmoRcclxuICAgICAgICB0cmVlV2lkdGggPSBNYXRoLm1heCguLi5ub2RlTGlzdC5tYXAobm9kZSA9PiBub2RlLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGgpKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRyZWVXaWR0aDtcclxuICB9XHJcbn1cclxuIl19