UNPKG

@duoduo-oba/ng-devui

Version:

DevUI components based on Angular

225 lines 16.4 kB
/** * @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==