@duoduo-oba/ng-devui
Version:
DevUI components based on Angular
143 lines • 12.2 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: dropdown.component.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, Host, Input, ViewEncapsulation, ElementRef } from '@angular/core';
import { CdkOverlayOrigin } from '@angular/cdk/overlay';
import { AppendToBodyDirectionsConfig } from '@duoduo-oba/ng-devui/utils';
import { fadeInOut } from '@duoduo-oba/ng-devui/utils';
import { DropDownDirective } from './dropdown.directive';
var DropDownAppendToBodyComponent = /** @class */ (function () {
function DropDownAppendToBodyComponent(dropDown) {
this.dropDown = dropDown;
this.menuPosition = 'bottom';
this.appendToBodyDirections = [
'rightDown', 'leftDown', 'rightUp', 'leftUp'
];
this.dropDown.appendToBody = true;
}
/**
* @return {?}
*/
DropDownAppendToBodyComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () {
this.setPositions();
this.setOrigin();
};
/**
* @param {?} changes
* @return {?}
*/
DropDownAppendToBodyComponent.prototype.ngOnChanges = /**
* @param {?} changes
* @return {?}
*/
function (changes) {
if (changes['appendToBodyDirections']) {
this.setPositions();
}
if (changes['alignOrigin']) {
this.setOrigin();
}
};
/**
* @return {?}
*/
DropDownAppendToBodyComponent.prototype.setOrigin = /**
* @return {?}
*/
function () {
if (this.alignOrigin) {
this.origin = new CdkOverlayOrigin(this.alignOrigin);
}
else {
this.origin = undefined;
}
};
/**
* @return {?}
*/
DropDownAppendToBodyComponent.prototype.setPositions = /**
* @return {?}
*/
function () {
if (this.appendToBodyDirections && this.appendToBodyDirections.length > 0) {
this.positions = this.appendToBodyDirections.map((/**
* @param {?} position
* @return {?}
*/
function (position) {
if (typeof position === 'string') {
return AppendToBodyDirectionsConfig[position];
}
else {
return position;
}
})).filter((/**
* @param {?} position
* @return {?}
*/
function (position) { return position !== undefined; }));
}
else {
this.positions = undefined;
}
};
/**
* @param {?} position
* @return {?}
*/
DropDownAppendToBodyComponent.prototype.onPositionChange = /**
* @param {?} position
* @return {?}
*/
function (position) {
switch (position.connectionPair.overlayY) {
case 'top':
case 'center':
this.menuPosition = 'bottom';
break;
case 'bottom':
this.menuPosition = 'top';
}
};
DropDownAppendToBodyComponent.decorators = [
{ type: Component, args: [{
selector: '[dDropDown][appendToBody]',
template: "\n <ng-content></ng-content>\n <ng-template cdk-connected-overlay\n [cdkConnectedOverlayOrigin]=\"origin || dropDown.cdkConnectedOverlayOrigin\"\n [cdkConnectedOverlayOpen]=\"dropDown.isOpen\"\n [cdkConnectedOverlayPositions]=\"positions\"\n (backdropClick)=\"dropDown.isOpen=false\"\n (positionChange)=\"onPositionChange($event)\">\n <div [@fadeInOut]=\"(dropDown.isOpen ? menuPosition : 'void')\">\n <ng-content select=\"[dDropDownMenu]\"></ng-content>\n </div>\n </ng-template>\n ",
encapsulation: ViewEncapsulation.None,
animations: [
fadeInOut
],
styles: [".cdk-overlay-pane .devui-dropdown-menu{position:relative;top:0;left:0;border:none}.devui-dropdown span.icon-chevron-down{display:inline-block;-webkit-transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}.devui-dropdown.open span.icon-chevron-down{-webkit-transform:rotate(180deg);transform:rotate(180deg)}"]
}] }
];
/** @nocollapse */
DropDownAppendToBodyComponent.ctorParameters = function () { return [
{ type: DropDownDirective, decorators: [{ type: Host }] }
]; };
DropDownAppendToBodyComponent.propDecorators = {
alignOrigin: [{ type: Input }],
appendToBodyDirections: [{ type: Input }]
};
return DropDownAppendToBodyComponent;
}());
export { DropDownAppendToBodyComponent };
if (false) {
/** @type {?} */
DropDownAppendToBodyComponent.prototype.menuPosition;
/** @type {?} */
DropDownAppendToBodyComponent.prototype.positions;
/** @type {?} */
DropDownAppendToBodyComponent.prototype.origin;
/** @type {?} */
DropDownAppendToBodyComponent.prototype.alignOrigin;
/** @type {?} */
DropDownAppendToBodyComponent.prototype.appendToBodyDirections;
/** @type {?} */
DropDownAppendToBodyComponent.prototype.dropDown;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctZGV2dWkvZHJvcGRvd24vIiwic291cmNlcyI6WyJkcm9wZG93bi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLElBQUksRUFBVSxLQUFLLEVBQTRCLGlCQUFpQixFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN0SCxPQUFPLEVBQW9CLGdCQUFnQixFQUF3RCxNQUFNLHNCQUFzQixDQUFDO0FBQ2hJLE9BQU8sRUFBd0IsNEJBQTRCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFdkQ7SUE2QkUsdUNBQTJCLFFBQTJCO1FBQTNCLGFBQVEsR0FBUixRQUFRLENBQW1CO1FBUHRELGlCQUFZLEdBQTBCLFFBQVEsQ0FBQztRQUl0QywyQkFBc0IsR0FBcUQ7WUFDbEYsV0FBVyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsUUFBUTtTQUM3QyxDQUFDO1FBRUEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO0lBQ3BDLENBQUM7Ozs7SUFFRCxnREFBUTs7O0lBQVI7UUFDRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7Ozs7O0lBQ0QsbURBQVc7Ozs7SUFBWCxVQUFZLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLHdCQUF3QixDQUFDLEVBQUU7WUFDckMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3JCO1FBQ0QsSUFBSSxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQ2xCO0lBQ0gsQ0FBQzs7OztJQUNELGlEQUFTOzs7SUFBVDtRQUNFLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ3REO2FBQU07WUFDTCxJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQztTQUN6QjtJQUNILENBQUM7Ozs7SUFDRCxvREFBWTs7O0lBQVo7UUFDRSxJQUFJLElBQUksQ0FBQyxzQkFBc0IsSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN6RSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHOzs7O1lBQUMsVUFBQSxRQUFRO2dCQUN2RCxJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVEsRUFBRTtvQkFDaEMsT0FBTyw0QkFBNEIsQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDL0M7cUJBQU07b0JBQ0wsT0FBTyxRQUFRLENBQUM7aUJBQ2pCO1lBQ0gsQ0FBQyxFQUFDLENBQUMsTUFBTTs7OztZQUFDLFVBQUEsUUFBUSxJQUFJLE9BQUEsUUFBUSxLQUFLLFNBQVMsRUFBdEIsQ0FBc0IsRUFBQyxDQUFDO1NBQy9DO2FBQU07WUFDTCxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztTQUM1QjtJQUNILENBQUM7Ozs7O0lBRUQsd0RBQWdCOzs7O0lBQWhCLFVBQWlCLFFBQXdDO1FBQ3ZELFFBQVEsUUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUU7WUFDeEMsS0FBSyxLQUFLLENBQUM7WUFDWCxLQUFLLFFBQVE7Z0JBQ1gsSUFBSSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUM7Z0JBQy9CLE1BQU07WUFDTixLQUFLLFFBQVE7Z0JBQ1gsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7U0FDN0I7SUFDSCxDQUFDOztnQkEzRUYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFFBQVEsRUFBRSx5aEJBWVQ7b0JBRUQsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLFVBQVUsRUFBRTt3QkFDVixTQUFTO3FCQUNWOztpQkFDRjs7OztnQkF0Qk8saUJBQWlCLHVCQStCVixJQUFJOzs7OEJBSmhCLEtBQUs7eUNBQ0wsS0FBSzs7SUFrRFIsb0NBQUM7Q0FBQSxBQTVFRCxJQTRFQztTQXZEWSw2QkFBNkI7OztJQUN4QyxxREFBK0M7O0lBQy9DLGtEQUFVOztJQUNWLCtDQUFPOztJQUNQLG9EQUFzQzs7SUFDdEMsK0RBRUU7O0lBQ1UsaURBQTBDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEhvc3QsIE9uSW5pdCwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgVmlld0VuY2Fwc3VsYXRpb24sIEVsZW1lbnRSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0Nvbm5lY3RlZFBvc2l0aW9uLCBDZGtPdmVybGF5T3JpZ2luLCBDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2UsIFZlcnRpY2FsQ29ubmVjdGlvblBvc30gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xyXG5pbXBvcnQge0FwcGVuZFRvQm9keURpcmVjdGlvbiwgQXBwZW5kVG9Cb2R5RGlyZWN0aW9uc0NvbmZpZyB9IGZyb20gJ25nLWRldnVpL3V0aWxzJztcclxuaW1wb3J0IHtmYWRlSW5PdXR9IGZyb20gJ25nLWRldnVpL3V0aWxzJztcclxuaW1wb3J0IHtEcm9wRG93bkRpcmVjdGl2ZX0gZnJvbSAnLi9kcm9wZG93bi5kaXJlY3RpdmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdbZERyb3BEb3duXVthcHBlbmRUb0JvZHldJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgPG5nLXRlbXBsYXRlIGNkay1jb25uZWN0ZWQtb3ZlcmxheVxyXG4gICAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpbl09XCJvcmlnaW4gfHwgZHJvcERvd24uY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpblwiXHJcbiAgICAgIFtjZGtDb25uZWN0ZWRPdmVybGF5T3Blbl09XCJkcm9wRG93bi5pc09wZW5cIlxyXG4gICAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uc109XCJwb3NpdGlvbnNcIlxyXG4gICAgICAoYmFja2Ryb3BDbGljayk9XCJkcm9wRG93bi5pc09wZW49ZmFsc2VcIlxyXG4gICAgICAocG9zaXRpb25DaGFuZ2UpPVwib25Qb3NpdGlvbkNoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICAgIDxkaXYgW0BmYWRlSW5PdXRdPVwiKGRyb3BEb3duLmlzT3BlbiA/IG1lbnVQb3NpdGlvbiA6ICd2b2lkJylcIj5cclxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZERyb3BEb3duTWVudV1cIj48L25nLWNvbnRlbnQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICBgLFxyXG4gIHN0eWxlVXJsczogWydkcm9wZG93bi5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgYW5pbWF0aW9uczogW1xyXG4gICAgZmFkZUluT3V0XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHJvcERvd25BcHBlbmRUb0JvZHlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgbWVudVBvc2l0aW9uOiBWZXJ0aWNhbENvbm5lY3Rpb25Qb3MgPSAnYm90dG9tJztcclxuICBwb3NpdGlvbnM7XHJcbiAgb3JpZ2luO1xyXG4gIEBJbnB1dCgpIGFsaWduT3JpZ2luOiBFbGVtZW50UmVmPGFueT47XHJcbiAgQElucHV0KCkgYXBwZW5kVG9Cb2R5RGlyZWN0aW9uczogQXJyYXk8QXBwZW5kVG9Cb2R5RGlyZWN0aW9uIHwgQ29ubmVjdGVkUG9zaXRpb24+ID0gW1xyXG4gICAgJ3JpZ2h0RG93bicsICdsZWZ0RG93bicsICdyaWdodFVwJywgJ2xlZnRVcCdcclxuICBdO1xyXG4gIGNvbnN0cnVjdG9yKEBIb3N0KCkgcHVibGljIGRyb3BEb3duOiBEcm9wRG93bkRpcmVjdGl2ZSkge1xyXG4gICAgdGhpcy5kcm9wRG93bi5hcHBlbmRUb0JvZHkgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnNldFBvc2l0aW9ucygpO1xyXG4gICAgdGhpcy5zZXRPcmlnaW4oKTtcclxuICB9XHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgaWYgKGNoYW5nZXNbJ2FwcGVuZFRvQm9keURpcmVjdGlvbnMnXSkge1xyXG4gICAgICB0aGlzLnNldFBvc2l0aW9ucygpO1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXNbJ2FsaWduT3JpZ2luJ10pIHtcclxuICAgICAgdGhpcy5zZXRPcmlnaW4oKTtcclxuICAgIH1cclxuICB9XHJcbiAgc2V0T3JpZ2luKCkge1xyXG4gICAgaWYgKHRoaXMuYWxpZ25PcmlnaW4pIHtcclxuICAgICAgdGhpcy5vcmlnaW4gPSBuZXcgQ2RrT3ZlcmxheU9yaWdpbih0aGlzLmFsaWduT3JpZ2luKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMub3JpZ2luID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuICBzZXRQb3NpdGlvbnMoKSB7XHJcbiAgICBpZiAodGhpcy5hcHBlbmRUb0JvZHlEaXJlY3Rpb25zICYmIHRoaXMuYXBwZW5kVG9Cb2R5RGlyZWN0aW9ucy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMucG9zaXRpb25zID0gdGhpcy5hcHBlbmRUb0JvZHlEaXJlY3Rpb25zLm1hcChwb3NpdGlvbiA9PiB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiBwb3NpdGlvbiA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgIHJldHVybiBBcHBlbmRUb0JvZHlEaXJlY3Rpb25zQ29uZmlnW3Bvc2l0aW9uXTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIHBvc2l0aW9uO1xyXG4gICAgICAgIH1cclxuICAgICAgfSkuZmlsdGVyKHBvc2l0aW9uID0+IHBvc2l0aW9uICE9PSB1bmRlZmluZWQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5wb3NpdGlvbnMgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblBvc2l0aW9uQ2hhbmdlKHBvc2l0aW9uOiBDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2UpIHtcclxuICAgIHN3aXRjaCAocG9zaXRpb24uY29ubmVjdGlvblBhaXIub3ZlcmxheVkpIHtcclxuICAgICAgY2FzZSAndG9wJzpcclxuICAgICAgY2FzZSAnY2VudGVyJzpcclxuICAgICAgICB0aGlzLm1lbnVQb3NpdGlvbiA9ICdib3R0b20nO1xyXG4gICAgICBicmVhaztcclxuICAgICAgY2FzZSAnYm90dG9tJzpcclxuICAgICAgICB0aGlzLm1lbnVQb3NpdGlvbiA9ICd0b3AnO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=