@duoduo-oba/ng-devui
Version:
DevUI components based on Angular
105 lines • 8.1 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: tree-mask.service.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import { TreeUtils } from '@duoduo-oba/ng-devui/utils';
var TreeMaskService = /** @class */ (function () {
function TreeMaskService() {
}
/**
* @return {?}
*/
TreeMaskService.creatMaskElement = /**
* @return {?}
*/
function () {
/** @type {?} */
var maskElement = document.createElement('span');
/** @type {?} */
var 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 {?}
*/
TreeMaskService.addMask = /**
* @param {?} hostElement
* @param {?} maskElement
* @param {?} treeWidth
* @return {?}
*/
function (hostElement, maskElement, treeWidth) {
event.stopPropagation();
if (treeWidth) {
/** @type {?} */
var 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 {?}
*/
TreeMaskService.removeMask = /**
* @param {?} hostElement
* @param {?} maskElement
* @return {?}
*/
function (hostElement, maskElement) {
maskElement.style.display = 'none';
hostElement.removeChild(maskElement);
};
/**
* @param {?} treeNode
* @param {?=} index
* @return {?}
*/
TreeMaskService.calcWidth = /**
* @param {?} treeNode
* @param {?=} index
* @return {?}
*/
function (treeNode, index) {
/** @type {?} */
var treeWidth;
// 若传入的有width说明是nativeElement则直接设置宽度,若有Length说明是queryList则找子元素宽度
if (treeNode.clientWidth) {
treeWidth = treeNode.clientWidth;
}
else if (treeNode.length) {
/** @type {?} */
var nodeList = treeNode['_results'];
if (index >= 0) { // 若index小于0则必定不合法,NaN和undefined都不大于0
treeWidth = nodeList[index].nativeElement.clientWidth;
}
else { // index不合法的和没传的都找子element里最大的
treeWidth = Math.max.apply(Math, tslib_1.__spread(nodeList.map((/**
* @param {?} node
* @return {?}
*/
function (node) { return node.nativeElement.clientWidth; }))));
}
}
return treeWidth;
};
return TreeMaskService;
}());
export { TreeMaskService };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1tYXNrLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1kZXZ1aS90cmVlLyIsInNvdXJjZXMiOlsidHJlZS1tYXNrLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDO0lBQUE7SUErQ0EsQ0FBQzs7OztJQTdDZSxnQ0FBZ0I7OztJQUE5Qjs7WUFDUSxXQUFXLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUM7O1lBQzVDLEtBQUssR0FBRztZQUNaLE9BQU8sRUFBRSxNQUFNO1lBQ2YsUUFBUSxFQUFFLFVBQVU7WUFDcEIsR0FBRyxFQUFFLEdBQUc7WUFDUixLQUFLLEVBQUUsR0FBRztZQUNWLFNBQVMsRUFBRSxJQUFJLENBQUMsb0JBQW9CO1NBQ3JDO1FBQ0QsV0FBVyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM3QyxTQUFTLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMxQyxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDOzs7Ozs7O0lBRWEsdUJBQU87Ozs7OztJQUFyQixVQUFzQixXQUFnQixFQUFFLFdBQWdCLEVBQUUsU0FBaUI7UUFDekUsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksU0FBUyxFQUFFOztnQkFDUCxVQUFVLEdBQUcsV0FBVyxDQUFDLFlBQVk7WUFDM0MsV0FBVyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsU0FBUyxHQUFHLElBQUksQ0FBQztZQUMzQyxXQUFXLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQzdDLFdBQVcsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztZQUNwQyxXQUFXLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ3RDO0lBQ0gsQ0FBQzs7Ozs7O0lBRWEsMEJBQVU7Ozs7O0lBQXhCLFVBQXlCLFdBQWdCLEVBQUUsV0FBZ0I7UUFDekQsV0FBVyxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ25DLFdBQVcsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdkMsQ0FBQzs7Ozs7O0lBRWEseUJBQVM7Ozs7O0lBQXZCLFVBQXdCLFFBQWEsRUFBRSxLQUFjOztZQUMvQyxTQUFTO1FBQ2IsZ0VBQWdFO1FBQ2hFLElBQUksUUFBUSxDQUFDLFdBQVcsRUFBRTtZQUN4QixTQUFTLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQztTQUNsQzthQUFNLElBQUksUUFBUSxDQUFDLE1BQU0sRUFBRTs7Z0JBQ3BCLFFBQVEsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDO1lBQ3JDLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRSxFQUFFLHFDQUFxQztnQkFDckQsU0FBUyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDO2FBQ3ZEO2lCQUFNLEVBQUUsOEJBQThCO2dCQUNyQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsT0FBUixJQUFJLG1CQUFRLFFBQVEsQ0FBQyxHQUFHOzs7O2dCQUFDLFVBQUEsSUFBSSxJQUFJLE9BQUEsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQTlCLENBQThCLEVBQUMsRUFBQyxDQUFDO2FBQy9FO1NBQ0Y7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBQ0gsc0JBQUM7QUFBRCxDQUFDLEFBL0NELElBK0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJlZVV0aWxzIH0gZnJvbSAnbmctZGV2dWkvdXRpbHMnO1xyXG5cclxuZXhwb3J0IGNsYXNzIFRyZWVNYXNrU2VydmljZSB7XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRNYXNrRWxlbWVudCgpIHtcclxuICAgIGNvbnN0IG1hc2tFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xyXG4gICAgY29uc3Qgc3R5bGUgPSB7XHJcbiAgICAgIGRpc3BsYXk6ICdub25lJyxcclxuICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXHJcbiAgICAgIHRvcDogJzAnLFxyXG4gICAgICByaWdodDogJzAnLFxyXG4gICAgICAnei1pbmRleCc6ICctMScgLy8g6K6+572uei1pbmRleOmYsuatouaMoeS9j3RyZWVcclxuICAgIH07XHJcbiAgICBtYXNrRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdkZXZ1aS10cmVlLW1hc2snKTtcclxuICAgIFRyZWVVdGlscy5hZGRFbFN0eWxlcyhtYXNrRWxlbWVudCwgc3R5bGUpO1xyXG4gICAgcmV0dXJuIG1hc2tFbGVtZW50O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBhZGRNYXNrKGhvc3RFbGVtZW50OiBhbnksIG1hc2tFbGVtZW50OiBhbnksIHRyZWVXaWR0aDogbnVtYmVyKSB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGlmICh0cmVlV2lkdGgpIHtcclxuICAgICAgY29uc3Qgbm9kZUhlaWdodCA9IGhvc3RFbGVtZW50LmNsaWVudEhlaWdodDtcclxuICAgICAgbWFza0VsZW1lbnQuc3R5bGUud2lkdGggPSB0cmVlV2lkdGggKyAncHgnO1xyXG4gICAgICBtYXNrRWxlbWVudC5zdHlsZS5oZWlnaHQgPSBub2RlSGVpZ2h0ICsgJ3B4JztcclxuICAgICAgbWFza0VsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7XHJcbiAgICAgIGhvc3RFbGVtZW50LmFwcGVuZENoaWxkKG1hc2tFbGVtZW50KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgcmVtb3ZlTWFzayhob3N0RWxlbWVudDogYW55LCBtYXNrRWxlbWVudDogYW55KSB7XHJcbiAgICBtYXNrRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xyXG4gICAgaG9zdEVsZW1lbnQucmVtb3ZlQ2hpbGQobWFza0VsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBjYWxjV2lkdGgodHJlZU5vZGU6IGFueSwgaW5kZXg/OiBudW1iZXIpIHtcclxuICAgIGxldCB0cmVlV2lkdGg7XHJcbiAgICAvLyDoi6XkvKDlhaXnmoTmnIl3aWR0aOivtOaYjuaYr25hdGl2ZUVsZW1lbnTliJnnm7TmjqXorr7nva7lrr3luqbvvIzoi6XmnIlMZW5ndGjor7TmmI7mmK9xdWVyeUxpc3TliJnmib7lrZDlhYPntKDlrr3luqZcclxuICAgIGlmICh0cmVlTm9kZS5jbGllbnRXaWR0aCkge1xyXG4gICAgICB0cmVlV2lkdGggPSB0cmVlTm9kZS5jbGllbnRXaWR0aDtcclxuICAgIH0gZWxzZSBpZiAodHJlZU5vZGUubGVuZ3RoKSB7XHJcbiAgICAgIGNvbnN0IG5vZGVMaXN0ID0gdHJlZU5vZGVbJ19yZXN1bHRzJ107XHJcbiAgICAgIGlmIChpbmRleCA+PSAwKSB7IC8vIOiLpWluZGV45bCP5LqOMOWImeW/heWumuS4jeWQiOazle+8jE5hTuWSjHVuZGVmaW5lZOmDveS4jeWkp+S6jjBcclxuICAgICAgICB0cmVlV2lkdGggPSBub2RlTGlzdFtpbmRleF0ubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aDtcclxuICAgICAgfSBlbHNlIHsgLy8gaW5kZXjkuI3lkIjms5XnmoTlkozmsqHkvKDnmoTpg73mib7lrZBlbGVtZW506YeM5pyA5aSn55qEXHJcbiAgICAgICAgdHJlZVdpZHRoID0gTWF0aC5tYXgoLi4ubm9kZUxpc3QubWFwKG5vZGUgPT4gbm9kZS5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoKSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0cmVlV2lkdGg7XHJcbiAgfVxyXG59XHJcbiJdfQ==