UNPKG

@asi-ngtools/lib

Version:

This project is a little components library, simple to use, which will help you to simplify your project.

141 lines (140 loc) 11.4 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ import { EventEmitter, Output, ElementRef, Input, Component, TemplateRef, ViewChild } from '@angular/core'; import { AsiDropdownService } from './asi-dropdown.service'; var AsiDropDown = /** @class */ (function () { function AsiDropDown(asiDropdownService, elementRef) { this.asiDropdownService = asiDropdownService; this.elementRef = elementRef; /** * Change to true to open the drowndrop */ this.open = false; /** * fix the width to the relative component width */ this.calculWidth = true; /** * Allow you to add a class to the down drop container */ this.dropDownClass = ''; /** * Event emitted when dropdown is closed (you should put you open var to false to be able to reopen) */ this.onClose = new EventEmitter(); } /** * @param {?} changes * @return {?} */ AsiDropDown.prototype.ngOnChanges = /** * @param {?} changes * @return {?} */ function (changes) { var _this = this; // To open if (changes["open"]) { if (changes["open"].currentValue) { setTimeout(function () { if (_this.relativeTo == null) { _this.dropdown = _this.asiDropdownService.showDropdown(_this.elementRef.nativeElement.parentElement, _this); } else if (_this.relativeTo.nativeElement) { _this.dropdown = _this.asiDropdownService.showDropdown(_this.relativeTo.nativeElement, _this); } else if (_this.relativeTo['elementRef'].nativeElement) { _this.dropdown = _this.asiDropdownService.showDropdown(_this.relativeTo['elementRef'].nativeElement, _this); } else { console.warn('Default choice for the down down cannot find nativeElement on the relativeTo element'); _this.dropdown = _this.asiDropdownService.showDropdown(_this.elementRef.nativeElement.parentElement, _this); } _this.dropdown.instance.setCalculWidth(_this.calculWidth); _this.dropdown.instance.onClose().subscribe(function () { _this.destroyDropdown(); }); }); } else if (this.dropdown) { this.dropdown.instance.close(); } } }; /** * @return {?} */ AsiDropDown.prototype.destroyDropdown = /** * @return {?} */ function () { this.open = false; this.onClose.emit(); this.dropdown.destroy(); }; AsiDropDown.decorators = [ { type: Component, args: [{ selector: 'asi-dropdown', template: '<ng-template><div class="asi-dropdown"><ng-content></ng-content></div></ng-template>' }] } ]; /** @nocollapse */ AsiDropDown.ctorParameters = function () { return [ { type: AsiDropdownService }, { type: ElementRef } ]; }; AsiDropDown.propDecorators = { open: [{ type: Input }], calculWidth: [{ type: Input }], relativeTo: [{ type: Input }], dropDownClass: [{ type: Input }], onClose: [{ type: Output }], canClose: [{ type: Input }], contentTemplate: [{ type: ViewChild, args: [TemplateRef,] }] }; return AsiDropDown; }()); export { AsiDropDown }; if (false) { /** * Change to true to open the drowndrop * @type {?} */ AsiDropDown.prototype.open; /** * fix the width to the relative component width * @type {?} */ AsiDropDown.prototype.calculWidth; /** * link the dropdown to the component position * @type {?} */ AsiDropDown.prototype.relativeTo; /** * Allow you to add a class to the down drop container * @type {?} */ AsiDropDown.prototype.dropDownClass; /** * Event emitted when dropdown is closed (you should put you open var to false to be able to reopen) * @type {?} */ AsiDropDown.prototype.onClose; /** * Function to check if the dropdown can close on click, get the clicked element as parameter * @type {?} */ AsiDropDown.prototype.canClose; /** @type {?} */ AsiDropDown.prototype.dropdown; /** @type {?} */ AsiDropDown.prototype.contentTemplate; /** @type {?} */ AsiDropDown.prototype.asiDropdownService; /** @type {?} */ AsiDropDown.prototype.elementRef; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNpLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bhc2ktbmd0b29scy9saWIvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9hc2ktZHJvcGRvd24vYXNpLWRyb3Bkb3duLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUNMLFlBQVksRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUMvRCxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0lBeUIxRCxxQkFBb0Isa0JBQXNDLEVBQVUsVUFBc0I7UUFBdEUsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUFVLGVBQVUsR0FBVixVQUFVLENBQVk7Ozs7b0JBaEIxRSxLQUFLOzs7OzJCQUVFLElBQUk7Ozs7NkJBSUYsRUFBRTs7Ozt1QkFFUCxJQUFJLFlBQVksRUFBRTtLQVNyQzs7Ozs7SUFFRCxpQ0FBVzs7OztJQUFYLFVBQVksT0FBc0I7UUFBbEMsaUJBd0JDOztRQXRCQyxFQUFFLENBQUMsQ0FBQyxPQUFPLFVBQU8sQ0FBQztZQUNqQixFQUFFLENBQUMsQ0FBQyxPQUFPLFNBQU0sWUFBWSxDQUFDLENBQUMsQ0FBQztnQkFDOUIsVUFBVSxDQUFDO29CQUNULEVBQUUsQ0FBQyxDQUFDLEtBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQzt3QkFDNUIsS0FBSSxDQUFDLFFBQVEsR0FBRyxLQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLEtBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxLQUFJLENBQUMsQ0FBQztxQkFDekc7b0JBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQzt3QkFDekMsS0FBSSxDQUFDLFFBQVEsR0FBRyxLQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLEtBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLEtBQUksQ0FBQyxDQUFDO3FCQUMzRjtvQkFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO3dCQUN2RCxLQUFJLENBQUMsUUFBUSxHQUFHLEtBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsS0FBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxhQUFhLEVBQUUsS0FBSSxDQUFDLENBQUM7cUJBQ3pHO29CQUFDLElBQUksQ0FBQyxDQUFDO3dCQUNOLE9BQU8sQ0FBQyxJQUFJLENBQUMsc0ZBQXNGLENBQUMsQ0FBQzt3QkFDckcsS0FBSSxDQUFDLFFBQVEsR0FBRyxLQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLEtBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxLQUFJLENBQUMsQ0FBQztxQkFDekc7b0JBQ0QsS0FBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEtBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztvQkFDeEQsS0FBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDO3dCQUN6QyxLQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7cUJBQ3hCLENBQUMsQ0FBQztpQkFDSixDQUFDLENBQUM7YUFDSjtZQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztnQkFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDaEM7U0FDRjtLQUNGOzs7O0lBRUQscUNBQWU7OztJQUFmO1FBQ0UsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO0tBQ3pCOztnQkF4REYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxjQUFjO29CQUN4QixRQUFRLEVBQUUsc0ZBQXNGO2lCQUNqRzs7OztnQkFMUSxrQkFBa0I7Z0JBSkgsVUFBVTs7O3VCQWEvQixLQUFLOzhCQUVMLEtBQUs7NkJBRUwsS0FBSztnQ0FFTCxLQUFLOzBCQUVMLE1BQU07MkJBRU4sS0FBSztrQ0FJTCxTQUFTLFNBQUMsV0FBVzs7c0JBNUJ4Qjs7U0FXYSxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBFdmVudEVtaXR0ZXIsIE91dHB1dCwgRWxlbWVudFJlZiwgSW5wdXQsIENvbXBvbmVudCwgVGVtcGxhdGVSZWYsXHJcbiAgVmlld0NoaWxkLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIENvbXBvbmVudFJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBc2lEcm9wZG93bkNvbnRhaW5lciB9IGZyb20gJy4vY29udGFpbmVyL2FzaS1kcm9wZG93bi1jb250YWluZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXNpRHJvcGRvd25TZXJ2aWNlIH0gZnJvbSAnLi9hc2ktZHJvcGRvd24uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FzaS1kcm9wZG93bicsXHJcbiAgdGVtcGxhdGU6ICc8bmctdGVtcGxhdGU+PGRpdiBjbGFzcz1cImFzaS1kcm9wZG93blwiPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L2Rpdj48L25nLXRlbXBsYXRlPicsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBc2lEcm9wRG93biBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcblxyXG4gIC8qKiBDaGFuZ2UgdG8gdHJ1ZSB0byBvcGVuIHRoZSBkcm93bmRyb3AgKi9cclxuICBASW5wdXQoKSBvcGVuID0gZmFsc2U7XHJcbiAgLyoqIGZpeCB0aGUgd2lkdGggdG8gdGhlIHJlbGF0aXZlIGNvbXBvbmVudCB3aWR0aCAqL1xyXG4gIEBJbnB1dCgpIGNhbGN1bFdpZHRoID0gdHJ1ZTtcclxuICAvKiogbGluayB0aGUgZHJvcGRvd24gdG8gdGhlIGNvbXBvbmVudCBwb3NpdGlvbiAqL1xyXG4gIEBJbnB1dCgpIHJlbGF0aXZlVG86IEVsZW1lbnRSZWY7XHJcbiAgLyoqIEFsbG93IHlvdSB0byBhZGQgYSBjbGFzcyB0byB0aGUgZG93biBkcm9wIGNvbnRhaW5lciAqL1xyXG4gIEBJbnB1dCgpIGRyb3BEb3duQ2xhc3MgPSAnJztcclxuICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIGRyb3Bkb3duIGlzIGNsb3NlZCAoeW91IHNob3VsZCBwdXQgeW91IG9wZW4gdmFyIHRvIGZhbHNlIHRvIGJlIGFibGUgdG8gcmVvcGVuKSAqL1xyXG4gIEBPdXRwdXQoKSBvbkNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIC8qKiBGdW5jdGlvbiB0byBjaGVjayBpZiB0aGUgZHJvcGRvd24gY2FuIGNsb3NlIG9uIGNsaWNrLCBnZXQgdGhlIGNsaWNrZWQgZWxlbWVudCBhcyBwYXJhbWV0ZXIgKi9cclxuICBASW5wdXQoKSBjYW5DbG9zZTogRnVuY3Rpb247XHJcblxyXG4gIHByaXZhdGUgZHJvcGRvd246IENvbXBvbmVudFJlZjxBc2lEcm9wZG93bkNvbnRhaW5lcj47XHJcblxyXG4gIEBWaWV3Q2hpbGQoVGVtcGxhdGVSZWYpIGNvbnRlbnRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhc2lEcm9wZG93blNlcnZpY2U6IEFzaURyb3Bkb3duU2VydmljZSwgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICAvLyBUbyBvcGVuXHJcbiAgICBpZiAoY2hhbmdlcy5vcGVuKSB7XHJcbiAgICAgIGlmIChjaGFuZ2VzLm9wZW4uY3VycmVudFZhbHVlKSB7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy5yZWxhdGl2ZVRvID09IG51bGwpIHtcclxuICAgICAgICAgICAgdGhpcy5kcm9wZG93biA9IHRoaXMuYXNpRHJvcGRvd25TZXJ2aWNlLnNob3dEcm9wZG93bih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50LCB0aGlzKTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5yZWxhdGl2ZVRvLm5hdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgdGhpcy5kcm9wZG93biA9IHRoaXMuYXNpRHJvcGRvd25TZXJ2aWNlLnNob3dEcm9wZG93bih0aGlzLnJlbGF0aXZlVG8ubmF0aXZlRWxlbWVudCwgdGhpcyk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMucmVsYXRpdmVUb1snZWxlbWVudFJlZiddLm5hdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgdGhpcy5kcm9wZG93biA9IHRoaXMuYXNpRHJvcGRvd25TZXJ2aWNlLnNob3dEcm9wZG93bih0aGlzLnJlbGF0aXZlVG9bJ2VsZW1lbnRSZWYnXS5uYXRpdmVFbGVtZW50LCB0aGlzKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignRGVmYXVsdCBjaG9pY2UgZm9yIHRoZSBkb3duIGRvd24gY2Fubm90IGZpbmQgbmF0aXZlRWxlbWVudCBvbiB0aGUgcmVsYXRpdmVUbyBlbGVtZW50Jyk7XHJcbiAgICAgICAgICAgIHRoaXMuZHJvcGRvd24gPSB0aGlzLmFzaURyb3Bkb3duU2VydmljZS5zaG93RHJvcGRvd24odGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCwgdGhpcyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmRyb3Bkb3duLmluc3RhbmNlLnNldENhbGN1bFdpZHRoKHRoaXMuY2FsY3VsV2lkdGgpO1xyXG4gICAgICAgICAgdGhpcy5kcm9wZG93bi5pbnN0YW5jZS5vbkNsb3NlKCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5kZXN0cm95RHJvcGRvd24oKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuZHJvcGRvd24pIHtcclxuICAgICAgICB0aGlzLmRyb3Bkb3duLmluc3RhbmNlLmNsb3NlKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRlc3Ryb3lEcm9wZG93bigpIHtcclxuICAgIHRoaXMub3BlbiA9IGZhbHNlO1xyXG4gICAgdGhpcy5vbkNsb3NlLmVtaXQoKTtcclxuICAgIHRoaXMuZHJvcGRvd24uZGVzdHJveSgpO1xyXG4gIH1cclxufVxyXG4iXX0=