@duoduo-oba/ng-devui
Version:
DevUI components based on Angular
225 lines • 16.4 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: splitter-pane.component.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, HostBinding, Input, Output, Renderer2 } from '@angular/core';
var SplitterPaneComponent = /** @class */ (function () {
function SplitterPaneComponent(el, renderer) {
this.el = el;
this.renderer = renderer;
// 当前panel是否可调整大小
this.resizable = true;
// 面板是否可折叠
this.collapsible = false;
// 非边缘面板折叠方向,before只生成向前折叠的按钮,after生成向后折叠按钮,both生成两个
this.collapseDirection = 'both';
// 大小改变事件
this.sizeChange = new EventEmitter();
// 收起和展开事件
this.collapsedChange = new EventEmitter();
this.paneClass = true;
// 分割条方向
this._order = 0; // flex布局下pane位置
// flex布局下pane位置
this.collapsed = false; // 标记是否折叠
this.element = this.el.nativeElement;
}
Object.defineProperty(SplitterPaneComponent.prototype, "size", {
get: /**
* @return {?}
*/
function () {
return this._size;
},
set: /**
* @param {?} newSize
* @return {?}
*/
function (newSize) {
this._size = newSize;
this.renderer.setStyle(this.element, 'flex-basis', newSize);
/** @type {?} */
var paneFixedClass = 'devui-splitter-pane-fixed';
if (this.size) {
// 设置 flex-grow 和 flex-shrink
this.renderer.addClass(this.element, paneFixedClass);
}
else {
this.renderer.removeClass(this.element, paneFixedClass);
}
},
enumerable: true,
configurable: true
});
Object.defineProperty(SplitterPaneComponent.prototype, "order", {
get: /**
* @return {?}
*/
function () {
return this._order;
},
set:
// nativeElement句柄
/**
* @param {?} paneOrder
* @return {?}
*/
function (paneOrder) {
this._order = paneOrder;
this.setOrderStyles();
},
enumerable: true,
configurable: true
});
// 设置order
// 设置order
/**
* @return {?}
*/
SplitterPaneComponent.prototype.setOrderStyles =
// 设置order
/**
* @return {?}
*/
function () {
this.renderer.setStyle(this.element, 'order', this.order);
};
Object.defineProperty(SplitterPaneComponent.prototype, "computedSize", {
// 获取当前pane大小
get:
// 获取当前pane大小
/**
* @return {?}
*/
function () {
if (this.orientation === 'vertical') {
return this.element.offsetHeight;
}
else {
return this.element.offsetWidth;
}
},
enumerable: true,
configurable: true
});
// 收起时隐藏当前pane
// 收起时隐藏当前pane
/**
* @return {?}
*/
SplitterPaneComponent.prototype.toggleCollapseClass =
// 收起时隐藏当前pane
/**
* @return {?}
*/
function () {
/** @type {?} */
var paneHiddenClass = 'devui-splitter-pane-hidden';
if (!this.collapsed) {
this.renderer.removeClass(this.element, paneHiddenClass);
}
else {
this.renderer.addClass(this.element, paneHiddenClass);
}
};
// 收起时用于改变相邻pane的flex-grow属性来改变非自适应pane的size
// 收起时用于改变相邻pane的flex-grow属性来改变非自适应pane的size
/**
* @return {?}
*/
SplitterPaneComponent.prototype.toggleNearPaneFlexGrow =
// 收起时用于改变相邻pane的flex-grow属性来改变非自适应pane的size
/**
* @return {?}
*/
function () {
/** @type {?} */
var flexGrowClass = 'devui-splitter-pane-grow';
/** @type {?} */
var hasFlexGrowClass = this.element.classList.contains(flexGrowClass);
if (hasFlexGrowClass) {
this.renderer.removeClass(this.element, flexGrowClass);
}
else {
this.renderer.addClass(this.element, flexGrowClass);
}
};
/**
* @return {?}
*/
SplitterPaneComponent.prototype.ngAfterViewChecked = /**
* @return {?}
*/
function () {
// 视图检查完对resizeable pane设置flex属性
if (!this.size && !this.resizable) {
this.renderer.addClass(this.element, 'devui-splitter-pane-fixed');
}
};
SplitterPaneComponent.decorators = [
{ type: Component, args: [{
selector: 'd-splitter-pane',
template: "<ng-content></ng-content>\r\n",
changeDetection: ChangeDetectionStrategy.OnPush,
styles: [":host.devui-splitter-pane{position:relative;-webkit-box-flex:1;flex:1 1 auto;display:block;min-width:0;max-width:100%;min-height:0;max-height:100%;height:100%}:host.devui-splitter-pane-fixed{-webkit-box-flex:0;flex-grow:0;flex-shrink:0}:host.devui-splitter-pane-hidden{-webkit-box-flex:0!important;flex:0!important;overflow:hidden!important}:host.devui-splitter-pane-grow{-webkit-box-flex:1!important;flex-grow:1!important}"]
}] }
];
/** @nocollapse */
SplitterPaneComponent.ctorParameters = function () { return [
{ type: ElementRef },
{ type: Renderer2 }
]; };
SplitterPaneComponent.propDecorators = {
minSize: [{ type: Input }],
maxSize: [{ type: Input }],
resizable: [{ type: Input }],
collapsible: [{ type: Input }],
collapseDirection: [{ type: Input }],
size: [{ type: Input }],
sizeChange: [{ type: Output }],
collapsedChange: [{ type: Output }],
paneClass: [{ type: HostBinding, args: ['class.devui-splitter-pane',] }]
};
return SplitterPaneComponent;
}());
export { SplitterPaneComponent };
if (false) {
/** @type {?} */
SplitterPaneComponent.prototype.minSize;
/** @type {?} */
SplitterPaneComponent.prototype.maxSize;
/** @type {?} */
SplitterPaneComponent.prototype.resizable;
/** @type {?} */
SplitterPaneComponent.prototype.collapsible;
/** @type {?} */
SplitterPaneComponent.prototype.collapseDirection;
/** @type {?} */
SplitterPaneComponent.prototype._size;
/** @type {?} */
SplitterPaneComponent.prototype.sizeChange;
/** @type {?} */
SplitterPaneComponent.prototype.collapsedChange;
/** @type {?} */
SplitterPaneComponent.prototype.paneClass;
/** @type {?} */
SplitterPaneComponent.prototype.orientation;
/** @type {?} */
SplitterPaneComponent.prototype._order;
/** @type {?} */
SplitterPaneComponent.prototype.collapsed;
/** @type {?} */
SplitterPaneComponent.prototype.element;
/**
* @type {?}
* @private
*/
SplitterPaneComponent.prototype.el;
/**
* @type {?}
* @private
*/
SplitterPaneComponent.prototype.renderer;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXR0ZXItcGFuZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1kZXZ1aS9zcGxpdHRlci8iLCJzb3VyY2VzIjpbInNwbGl0dGVyLXBhbmUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFvQix1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFDckYsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9EO0lBd0RFLCtCQUFvQixFQUFjLEVBQVUsUUFBbUI7UUFBM0MsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7O1FBM0NyRCxjQUFTLEdBQUcsSUFBSSxDQUFDOztRQUVqQixnQkFBVyxHQUFHLEtBQUssQ0FBQzs7UUFFcEIsc0JBQWlCLEdBQXNCLE1BQU0sQ0FBQzs7UUFtQjlDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDOztRQUdoQyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFTCxjQUFTLEdBQUcsSUFBSSxDQUFDOztRQUczRCxXQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCOztRQUM1QixjQUFTLEdBQUcsS0FBSyxDQUFDLENBQUMsU0FBUztRQVkxQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDO0lBQ3ZDLENBQUM7SUF0Q0Qsc0JBQ0ksdUNBQUk7Ozs7UUFXUjtZQUNFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNwQixDQUFDOzs7OztRQWRELFVBQ1MsT0FBTztZQUNkLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDOztnQkFDdEQsY0FB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LHdDQUF5Qjs7SUFFekIsd0NBQXlCOztJQUV6QiwwQ0FBMEI7O0lBRTFCLDRDQUE2Qjs7SUFFN0Isa0RBQXVEOztJQUV4RCxzQ0FBTTs7SUFpQk4sMkNBQTBDOztJQUcxQyxnREFBK0M7O0lBRS9DLDBDQUEyRDs7SUFFM0QsNENBQWlDOztJQUNqQyx1Q0FBVzs7SUFDWCwwQ0FBa0I7O0lBQ2xCLHdDQUFROzs7OztJQVVJLG1DQUFzQjs7Ozs7SUFBRSx5Q0FBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdDaGVja2VkLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdEJpbmRpbmcsIElucHV0LCBPdXRwdXQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTcGxpdHRlck9yaWVudGF0aW9uLCBDb2xsYXBzZURpcmVjdGlvbiB9IGZyb20gJy4vc3BsaXR0ZXIudHlwZXMnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2Qtc3BsaXR0ZXItcGFuZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NwbGl0dGVyLXBhbmUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NwbGl0dGVyLXBhbmUuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBTcGxpdHRlclBhbmVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdDaGVja2VkIHtcclxuICAgLy8gcGFuZeeahOacgOWwj+WAvFxyXG4gICBASW5wdXQoKSBtaW5TaXplOiBzdHJpbmc7XHJcbiAgIC8vIHBhbmXnmoTmnIDlpKflgLxcclxuICAgQElucHV0KCkgbWF4U2l6ZTogc3RyaW5nO1xyXG4gICAvLyDlvZPliY1wYW5lbOaYr+WQpuWPr+iwg+aVtOWkp+Wwj1xyXG4gICBASW5wdXQoKSByZXNpemFibGUgPSB0cnVlO1xyXG4gICAvLyDpnaLmnb/mmK/lkKblj6/mipjlj6BcclxuICAgQElucHV0KCkgY29sbGFwc2libGUgPSBmYWxzZTtcclxuICAgLy8g6Z2e6L6557yY6Z2i5p2/5oqY5Y+g5pa55ZCR77yMYmVmb3Jl5Y+q55Sf5oiQ5ZCR5YmN5oqY5Y+g55qE5oyJ6ZKu77yMYWZ0ZXLnlJ/miJDlkJHlkI7mipjlj6DmjInpkq7vvIxib3Ro55Sf5oiQ5Lik5LiqXHJcbiAgIEBJbnB1dCgpIGNvbGxhcHNlRGlyZWN0aW9uOiBDb2xsYXBzZURpcmVjdGlvbiA9ICdib3RoJztcclxuICAvLyBwYW5l5Yid5aeL5YyW5aSn5bCPXHJcbiAgX3NpemU7XHJcbiAgQElucHV0KClcclxuICBzZXQgc2l6ZShuZXdTaXplKSB7XHJcbiAgICB0aGlzLl9zaXplID0gbmV3U2l6ZTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50LCAnZmxleC1iYXNpcycsIG5ld1NpemUpO1xyXG4gICAgY29uc3QgcGFuZUZpeGVkQ2xhc3MgPSAnZGV2dWktc3BsaXR0ZXItcGFuZS1maXhlZCc7XHJcbiAgICBpZiAodGhpcy5zaXplKSB7XHJcbiAgICAgIC8vIOiuvue9riBmbGV4LWdyb3cg5ZKMIGZsZXgtc2hyaW5rXHJcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbGVtZW50LCBwYW5lRml4ZWRDbGFzcyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWxlbWVudCwgcGFuZUZpeGVkQ2xhc3MpO1xyXG4gICAgfVxyXG4gIH1cclxuICBnZXQgc2l6ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLl9zaXplO1xyXG4gIH1cclxuICAvLyDlpKflsI/mlLnlj5jkuovku7ZcclxuICBAT3V0cHV0KCkgc2l6ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgLy8g5pS26LW35ZKM5bGV5byA5LqL5Lu2XHJcbiAgQE91dHB1dCgpIGNvbGxhcHNlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5kZXZ1aS1zcGxpdHRlci1wYW5lJykgcGFuZUNsYXNzID0gdHJ1ZTtcclxuXHJcbiAgb3JpZW50YXRpb246IFNwbGl0dGVyT3JpZW50YXRpb247IC8vIOWIhuWJsuadoeaWueWQkVxyXG4gIF9vcmRlciA9IDA7IC8vIGZsZXjluIPlsYDkuItwYW5l5L2N572uXHJcbiAgY29sbGFwc2VkID0gZmFsc2U7IC8vIOagh+iusOaYr+WQpuaKmOWPoFxyXG4gIGVsZW1lbnQ7IC8vIG5hdGl2ZUVsZW1lbnTlj6Xmn4RcclxuXHJcbiAgc2V0IG9yZGVyKHBhbmVPcmRlcikge1xyXG4gICAgdGhpcy5fb3JkZXIgPSBwYW5lT3JkZXI7XHJcbiAgICB0aGlzLnNldE9yZGVyU3R5bGVzKCk7XHJcbiAgfVxyXG4gIGdldCBvcmRlcigpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX29yZGVyO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7XHJcbiAgICB0aGlzLmVsZW1lbnQgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgfVxyXG5cclxuICAvLyDorr7nva5vcmRlclxyXG4gIHNldE9yZGVyU3R5bGVzKCkge1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnQsICdvcmRlcicsIHRoaXMub3JkZXIpO1xyXG4gIH1cclxuXHJcbiAgLy8g6I635Y+W5b2T5YmNcGFuZeWkp+Wwj1xyXG4gIGdldCBjb21wdXRlZFNpemUoKSB7XHJcbiAgICBpZiAodGhpcy5vcmllbnRhdGlvbiA9PT0gJ3ZlcnRpY2FsJykge1xyXG4gICAgICByZXR1cm4gdGhpcy5lbGVtZW50Lm9mZnNldEhlaWdodDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmVsZW1lbnQub2Zmc2V0V2lkdGg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyDmlLbotbfml7bpmpDol4/lvZPliY1wYW5lXHJcbiAgdG9nZ2xlQ29sbGFwc2VDbGFzcygpIHtcclxuICAgIGNvbnN0IHBhbmVIaWRkZW5DbGFzcyA9ICdkZXZ1aS1zcGxpdHRlci1wYW5lLWhpZGRlbic7XHJcbiAgICBpZiAoIXRoaXMuY29sbGFwc2VkKSB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5lbGVtZW50LCBwYW5lSGlkZGVuQ2xhc3MpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsZW1lbnQsIHBhbmVIaWRkZW5DbGFzcyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyDmlLbotbfml7bnlKjkuo7mlLnlj5jnm7jpgrtwYW5l55qEZmxleC1ncm935bGe5oCn5p2l5pS55Y+Y6Z2e6Ieq6YCC5bqUcGFuZeeahHNpemVcclxuICB0b2dnbGVOZWFyUGFuZUZsZXhHcm93KCkge1xyXG4gICAgY29uc3QgZmxleEdyb3dDbGFzcyA9ICdkZXZ1aS1zcGxpdHRlci1wYW5lLWdyb3cnO1xyXG4gICAgY29uc3QgaGFzRmxleEdyb3dDbGFzcyA9IHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoZmxleEdyb3dDbGFzcyk7XHJcbiAgICBpZiAoaGFzRmxleEdyb3dDbGFzcykge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWxlbWVudCwgZmxleEdyb3dDbGFzcyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudCwgZmxleEdyb3dDbGFzcyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XHJcbiAgICAvLyDop4blm77mo4Dmn6Xlrozlr7lyZXNpemVhYmxlIHBhbmXorr7nva5mbGV45bGe5oCnXHJcbiAgICBpZiAoIXRoaXMuc2l6ZSAmJiAhdGhpcy5yZXNpemFibGUpIHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsZW1lbnQsICdkZXZ1aS1zcGxpdHRlci1wYW5lLWZpeGVkJyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==