UNPKG

@duoduo-oba/ng-devui

Version:

DevUI components based on Angular

130 lines 10.5 kB
/** * @fileoverview added by tsickle * Generated from: splitter.component.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { ChangeDetectionStrategy, Component, Input, ContentChildren, QueryList, HostBinding, ElementRef } from '@angular/core'; import { SplitterPaneComponent } from './splitter-pane.component'; import { SplitterService } from './splitter.service'; export class SplitterComponent { /** * @param {?} el * @param {?} splitter */ constructor(el, splitter) { this.el = el; this.splitter = splitter; // 指定Splitter中窗格的方向,默认水平分割。 this.orientation = 'horizontal'; // 分隔条大小 this.splitBarSize = '2px'; // pane设置为不可调整大小时,生效 this.disabledBarSize = '1px'; } /** * @return {?} */ get class() { return 'devui-splitter devui-splitter-' + this.orientation; } /** * @param {?} changes * @return {?} */ ngOnChanges(changes) { if (changes.orientation && !changes.orientation.isFirstChange()) { this.reconfigure(); } } /** * @return {?} */ ngAfterContentInit() { this.reconfigure(); // contentChildren 变化时,触发重新设置pane this.paneChangesSubscription = this.panes.changes.subscribe((/** * @param {?} panes * @return {?} */ (panes) => { this.reconfigure(); })); } /** * @return {?} */ ngOnDestroy() { if (this.paneChangesSubscription) { this.paneChangesSubscription.unsubscribe(); } } // 配置pane /** * @return {?} */ reconfigure() { this.splitter.configPane({ panes: this.panes.toArray(), orientation: this.orientation, // 内容投影进组件之后,组件还没有渲染出dom,此时获取不到宽度,此处设置一个回调函数 containerSize: (/** * @return {?} */ () => { if (this.orientation === 'vertical') { return this.el.nativeElement.clientHeight; } else { return this.el.nativeElement.clientWidth; } }) }); } } SplitterComponent.decorators = [ { type: Component, args: [{ selector: 'd-splitter', exportAs: 'dSplitter', template: "<ng-content select=\"d-splitter-pane\"></ng-content>\r\n<ng-container *ngFor=\"let pane of panes; let index = index; let last = last\">\r\n <d-splitter-bar\r\n dResize\r\n [style.order]=\"index * 2 + 1\"\r\n *ngIf=\"!last\"\r\n [index]=\"index\"\r\n [splitBarSize]=\"splitBarSize\"\r\n [disabledBarSize]=\"disabledBarSize\"\r\n [orientation]=\"orientation\"\r\n >\r\n </d-splitter-bar>\r\n</ng-container>\r\n", changeDetection: ChangeDetectionStrategy.OnPush, providers: [ SplitterService ], styles: [":host{display:-webkit-box;display:flex;width:100%;height:auto;position:relative}:host.devui-splitter-horizontal{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}:host.devui-splitter-vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column}"] }] } ]; /** @nocollapse */ SplitterComponent.ctorParameters = () => [ { type: ElementRef }, { type: SplitterService } ]; SplitterComponent.propDecorators = { orientation: [{ type: Input }], splitBarSize: [{ type: Input }], disabledBarSize: [{ type: Input }], class: [{ type: HostBinding, args: ['class',] }], panes: [{ type: ContentChildren, args: [SplitterPaneComponent,] }] }; if (false) { /** @type {?} */ SplitterComponent.prototype.orientation; /** @type {?} */ SplitterComponent.prototype.splitBarSize; /** @type {?} */ SplitterComponent.prototype.disabledBarSize; /** @type {?} */ SplitterComponent.prototype.panes; /** @type {?} */ SplitterComponent.prototype.paneChangesSubscription; /** * @type {?} * @private */ SplitterComponent.prototype.el; /** * @type {?} * @private */ SplitterComponent.prototype.splitter; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXR0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctZGV2dWkvc3BsaXR0ZXIvIiwic291cmNlcyI6WyJzcGxpdHRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFDN0MsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRWxFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQWFyRCxNQUFNLE9BQU8saUJBQWlCOzs7OztJQWU1QixZQUFvQixFQUFjLEVBQVUsUUFBeUI7UUFBakQsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQWlCOztRQWI1RCxnQkFBVyxHQUF3QixZQUFZLENBQUM7O1FBRWhELGlCQUFZLEdBQUcsS0FBSyxDQUFDOztRQUVyQixvQkFBZSxHQUFHLEtBQUssQ0FBQztJQVdqQyxDQUFDOzs7O0lBVEQsSUFBMEIsS0FBSztRQUM3QixPQUFPLGdDQUFnQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDN0QsQ0FBQzs7Ozs7SUFTRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsV0FBVyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsRUFBRTtZQUM3RCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDdEI7SUFDSCxDQUFDOzs7O0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixpQ0FBaUM7UUFDakMsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVM7Ozs7UUFBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3BFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNyQixDQUFDLEVBQUMsQ0FBQztJQUNMLENBQUM7Ozs7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsdUJBQXVCLEVBQUU7WUFDaEMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQzVDO0lBQ0gsQ0FBQzs7Ozs7SUFHRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUM7WUFDdkIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFO1lBQzNCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVzs7WUFFN0IsYUFBYTs7O1lBQUUsR0FBRyxFQUFFO2dCQUNsQixJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssVUFBVSxFQUFFO29CQUNuQyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQztpQkFDM0M7cUJBQU07b0JBQ0gsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUM7aUJBQzVDO1lBQ0gsQ0FBQyxDQUFBO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7O1lBaEVGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsWUFBWTtnQkFDdEIsUUFBUSxFQUFFLFdBQVc7Z0JBQ3JCLDRiQUF3QztnQkFFeEMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07Z0JBQy9DLFNBQVMsRUFBRTtvQkFDVCxlQUFlO2lCQUNoQjs7YUFDRjs7OztZQWQ2QyxVQUFVO1lBRy9DLGVBQWU7OzswQkFlckIsS0FBSzsyQkFFTCxLQUFLOzhCQUVMLEtBQUs7b0JBRUwsV0FBVyxTQUFDLE9BQU87b0JBSW5CLGVBQWUsU0FBQyxxQkFBcUI7Ozs7SUFWdEMsd0NBQXlEOztJQUV6RCx5Q0FBOEI7O0lBRTlCLDRDQUFpQzs7SUFNakMsa0NBQWdGOztJQUNoRixvREFBc0M7Ozs7O0lBRTFCLCtCQUFzQjs7Ozs7SUFBRSxxQ0FBaUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgQ29udGVudENoaWxkcmVuLCBRdWVyeUxpc3QsIEhvc3RCaW5kaW5nLFxyXG4gIE9uQ2hhbmdlcywgQWZ0ZXJDb250ZW50SW5pdCwgU2ltcGxlQ2hhbmdlcywgRWxlbWVudFJlZiwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNwbGl0dGVyUGFuZUNvbXBvbmVudCB9IGZyb20gJy4vc3BsaXR0ZXItcGFuZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTcGxpdHRlck9yaWVudGF0aW9uIH0gZnJvbSAnLi9zcGxpdHRlci50eXBlcyc7XHJcbmltcG9ydCB7IFNwbGl0dGVyU2VydmljZSB9IGZyb20gJy4vc3BsaXR0ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2Qtc3BsaXR0ZXInLFxyXG4gIGV4cG9ydEFzOiAnZFNwbGl0dGVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc3BsaXR0ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NwbGl0dGVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBTcGxpdHRlclNlcnZpY2VcclxuICBdXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgU3BsaXR0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XHJcbiAgLy8g5oyH5a6aU3BsaXR0ZXLkuK3nqpfmoLznmoTmlrnlkJHvvIzpu5jorqTmsLTlubPliIblibLjgIJcclxuICBASW5wdXQoKSBvcmllbnRhdGlvbjogU3BsaXR0ZXJPcmllbnRhdGlvbiA9ICdob3Jpem9udGFsJztcclxuICAvLyDliIbpmpTmnaHlpKflsI9cclxuICBASW5wdXQoKSBzcGxpdEJhclNpemUgPSAnMnB4JztcclxuICAvLyBwYW5l6K6+572u5Li65LiN5Y+v6LCD5pW05aSn5bCP5pe277yM55Sf5pWIXHJcbiAgQElucHV0KCkgZGlzYWJsZWRCYXJTaXplID0gJzFweCc7XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKSBnZXQgY2xhc3MoKSB7XHJcbiAgICByZXR1cm4gJ2RldnVpLXNwbGl0dGVyIGRldnVpLXNwbGl0dGVyLScgKyB0aGlzLm9yaWVudGF0aW9uO1xyXG4gIH1cclxuICAvLyDlhoXltYzpnaLmnb9cclxuICBAQ29udGVudENoaWxkcmVuKFNwbGl0dGVyUGFuZUNvbXBvbmVudCkgcGFuZXM6IFF1ZXJ5TGlzdDxTcGxpdHRlclBhbmVDb21wb25lbnQ+O1xyXG4gIHBhbmVDaGFuZ2VzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsIHByaXZhdGUgc3BsaXR0ZXI6IFNwbGl0dGVyU2VydmljZSkge1xyXG5cclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGlmIChjaGFuZ2VzLm9yaWVudGF0aW9uICYmICFjaGFuZ2VzLm9yaWVudGF0aW9uLmlzRmlyc3RDaGFuZ2UoKSkge1xyXG4gICAgICAgIHRoaXMucmVjb25maWd1cmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcclxuICAgIHRoaXMucmVjb25maWd1cmUoKTtcclxuICAgIC8vIGNvbnRlbnRDaGlsZHJlbiDlj5jljJbml7bvvIzop6blj5Hph43mlrDorr7nva5wYW5lXHJcbiAgICB0aGlzLnBhbmVDaGFuZ2VzU3Vic2NyaXB0aW9uID0gdGhpcy5wYW5lcy5jaGFuZ2VzLnN1YnNjcmliZSgocGFuZXMpID0+IHtcclxuICAgICAgdGhpcy5yZWNvbmZpZ3VyZSgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIGlmICh0aGlzLnBhbmVDaGFuZ2VzU3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgIHRoaXMucGFuZUNoYW5nZXNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIOmFjee9rnBhbmVcclxuICByZWNvbmZpZ3VyZSgpIHtcclxuICAgIHRoaXMuc3BsaXR0ZXIuY29uZmlnUGFuZSh7XHJcbiAgICAgIHBhbmVzOiB0aGlzLnBhbmVzLnRvQXJyYXkoKSxcclxuICAgICAgb3JpZW50YXRpb246IHRoaXMub3JpZW50YXRpb24sXHJcbiAgICAgIC8vIOWGheWuueaKleW9sei/m+e7hOS7tuS5i+WQju+8jOe7hOS7tui/mOayoeaciea4suafk+WHumRvbe+8jOatpOaXtuiOt+WPluS4jeWIsOWuveW6pu+8jOatpOWkhOiuvue9ruS4gOS4quWbnuiwg+WHveaVsFxyXG4gICAgICBjb250YWluZXJTaXplOiAoKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMub3JpZW50YXRpb24gPT09ICd2ZXJ0aWNhbCcpIHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19