@duoduo-oba/ng-devui
Version:
DevUI components based on Angular
130 lines • 10.5 kB
JavaScript
/**
* @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