UNPKG

@asi-ngtools/lib

Version:

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

104 lines (103 loc) 9.15 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ import { AsiDropdownContainer } from './container/asi-dropdown-container.component'; import { Injectable, ComponentFactoryResolver, } from '@angular/core'; import * as nh from '../../native-helper'; import { of } from 'rxjs'; var AsiDropdownService = /** @class */ (function () { function AsiDropdownService(resolver) { this.resolver = resolver; this.containers = []; } /** * * @param asiDropDown The template content of the dropdown * @param viewContainerRef The ViewContainerRef of the parent component * @param elementRef The parent HTMLElement, where the dropdown should display */ /** * * @param {?} viewContainerRef The ViewContainerRef of the parent component * @param {?} elementRef The parent HTMLElement, where the dropdown should display * @param {?} asiDropDown The template content of the dropdown * @return {?} */ AsiDropdownService.prototype.showDropdown = /** * * @param {?} viewContainerRef The ViewContainerRef of the parent component * @param {?} elementRef The parent HTMLElement, where the dropdown should display * @param {?} asiDropDown The template content of the dropdown * @return {?} */ function (viewContainerRef, elementRef, asiDropDown) { var _this = this; /** @type {?} */ var containerRef = this.getContainer(viewContainerRef); containerRef.instance.injectService(this); containerRef.instance.forElement(elementRef); containerRef.instance.show(asiDropDown); containerRef.instance.setIndex(this.containers.length); containerRef.instance.canClose = asiDropDown.canClose; containerRef.instance.onClose().subscribe(function (containerToRemove) { nh.remove(_this.containers, function (container) { return containerToRemove.index === container.instance.index; }); }); this.containers.push(containerRef); return containerRef; }; /** * @param {?} index * @param {?} canClose * @return {?} */ AsiDropdownService.prototype.canClose = /** * @param {?} index * @param {?} canClose * @return {?} */ function (index, canClose) { if (index >= this.containers.length - 1) { if (canClose) { return nh.observe(canClose(document.activeElement)); } else { return of(true); } } else { return of(false); } }; /** * @param {?} viewContainerRef * @return {?} */ AsiDropdownService.prototype.getContainer = /** * @param {?} viewContainerRef * @return {?} */ function (viewContainerRef) { /** @type {?} */ var asiDropdownContainerFactory = this.resolver.resolveComponentFactory(AsiDropdownContainer); return viewContainerRef.createComponent(asiDropdownContainerFactory, 0); }; AsiDropdownService.decorators = [ { type: Injectable } ]; /** @nocollapse */ AsiDropdownService.ctorParameters = function () { return [ { type: ComponentFactoryResolver } ]; }; return AsiDropdownService; }()); export { AsiDropdownService }; if (false) { /** @type {?} */ AsiDropdownService.prototype.containers; /** @type {?} */ AsiDropdownService.prototype.resolver; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNpLWRyb3Bkb3duLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYXNpLW5ndG9vbHMvbGliLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvYXNpLWRyb3Bkb3duL2FzaS1kcm9wZG93bi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNwRixPQUFPLEVBQ0wsVUFBVSxFQUVWLHdCQUF3QixHQUd6QixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxFQUFFLEVBQWMsTUFBTSxNQUFNLENBQUM7O0lBT3BDLDRCQUFvQixRQUFrQztRQUFsQyxhQUFRLEdBQVIsUUFBUSxDQUEwQjswQkFGVSxFQUFFO0tBR2pFO0lBRUQ7Ozs7O09BS0c7Ozs7Ozs7O0lBQ0gseUNBQVk7Ozs7Ozs7SUFBWixVQUFhLGdCQUFrQyxFQUFFLFVBQWUsRUFBRSxXQUF3QjtRQUExRixpQkFrQkM7O1FBakJDLElBQUksWUFBWSxHQUF1QyxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFM0YsWUFBWSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDN0MsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDeEMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2RCxZQUFZLENBQUMsUUFBUSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDO1FBRXRELFlBQVksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDLFVBQUMsaUJBQWlCO1lBQzFELEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSSxDQUFDLFVBQVUsRUFBRSxVQUFDLFNBQVM7Z0JBQ25DLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7YUFDN0QsQ0FBQyxDQUFDO1NBQ0osQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFbkMsTUFBTSxDQUFDLFlBQVksQ0FBQztLQUNyQjs7Ozs7O0lBRUQscUNBQVE7Ozs7O0lBQVIsVUFBUyxLQUFhLEVBQUUsUUFBa0I7UUFDeEMsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztnQkFDYixNQUFNLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7YUFDckQ7WUFBQyxJQUFJLENBQUMsQ0FBQztnQkFDTixNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ2pCO1NBQ0Y7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNOLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDbEI7S0FDRjs7Ozs7SUFFTyx5Q0FBWTs7OztjQUFDLGdCQUFtQzs7UUFFdEQsSUFBTSwyQkFBMkIsR0FBMkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3hJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsMkJBQTJCLEVBQUUsQ0FBQyxDQUFDLENBQUM7OztnQkFqRDNFLFVBQVU7Ozs7Z0JBUlQsd0JBQXdCOzs2QkFMMUI7O1NBY2Esa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXNpRHJvcERvd24gfSBmcm9tICcuL2FzaS1kcm9wZG93bi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBc2lEcm9wZG93bkNvbnRhaW5lciB9IGZyb20gJy4vY29udGFpbmVyL2FzaS1kcm9wZG93bi1jb250YWluZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHtcclxuICBJbmplY3RhYmxlLFxyXG4gIENvbXBvbmVudEZhY3RvcnksXHJcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gIENvbXBvbmVudFJlZixcclxuICBWaWV3Q29udGFpbmVyUmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0ICogYXMgbmggZnJvbSAnLi4vLi4vbmF0aXZlLWhlbHBlcic7XHJcbmltcG9ydCB7IG9mLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBBc2lEcm9wZG93blNlcnZpY2Uge1xyXG5cclxuICBwcml2YXRlIGNvbnRhaW5lcnM6IEFycmF5PENvbXBvbmVudFJlZjxBc2lEcm9wZG93bkNvbnRhaW5lcj4+ID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcikge1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gYXNpRHJvcERvd24gVGhlIHRlbXBsYXRlIGNvbnRlbnQgb2YgdGhlIGRyb3Bkb3duXHJcbiAgICogQHBhcmFtIHZpZXdDb250YWluZXJSZWYgVGhlIFZpZXdDb250YWluZXJSZWYgb2YgdGhlIHBhcmVudCBjb21wb25lbnRcclxuICAgKiBAcGFyYW0gZWxlbWVudFJlZiBUaGUgcGFyZW50IEhUTUxFbGVtZW50LCB3aGVyZSB0aGUgZHJvcGRvd24gc2hvdWxkIGRpc3BsYXlcclxuICAgKi9cclxuICBzaG93RHJvcGRvd24odmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZiwgZWxlbWVudFJlZjogYW55LCBhc2lEcm9wRG93bjogQXNpRHJvcERvd24pOiBDb21wb25lbnRSZWY8QXNpRHJvcGRvd25Db250YWluZXI+IHtcclxuICAgIGxldCBjb250YWluZXJSZWY6IENvbXBvbmVudFJlZjxBc2lEcm9wZG93bkNvbnRhaW5lcj4gPSB0aGlzLmdldENvbnRhaW5lcih2aWV3Q29udGFpbmVyUmVmKTtcclxuXHJcbiAgICBjb250YWluZXJSZWYuaW5zdGFuY2UuaW5qZWN0U2VydmljZSh0aGlzKTtcclxuICAgIGNvbnRhaW5lclJlZi5pbnN0YW5jZS5mb3JFbGVtZW50KGVsZW1lbnRSZWYpO1xyXG4gICAgY29udGFpbmVyUmVmLmluc3RhbmNlLnNob3coYXNpRHJvcERvd24pO1xyXG4gICAgY29udGFpbmVyUmVmLmluc3RhbmNlLnNldEluZGV4KHRoaXMuY29udGFpbmVycy5sZW5ndGgpO1xyXG4gICAgY29udGFpbmVyUmVmLmluc3RhbmNlLmNhbkNsb3NlID0gYXNpRHJvcERvd24uY2FuQ2xvc2U7XHJcblxyXG4gICAgY29udGFpbmVyUmVmLmluc3RhbmNlLm9uQ2xvc2UoKS5zdWJzY3JpYmUoKGNvbnRhaW5lclRvUmVtb3ZlKSA9PiB7XHJcbiAgICAgIG5oLnJlbW92ZSh0aGlzLmNvbnRhaW5lcnMsIChjb250YWluZXIpID0+IHtcclxuICAgICAgICByZXR1cm4gY29udGFpbmVyVG9SZW1vdmUuaW5kZXggPT09IGNvbnRhaW5lci5pbnN0YW5jZS5pbmRleDtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmNvbnRhaW5lcnMucHVzaChjb250YWluZXJSZWYpO1xyXG5cclxuICAgIHJldHVybiBjb250YWluZXJSZWY7XHJcbiAgfVxyXG5cclxuICBjYW5DbG9zZShpbmRleDogbnVtYmVyLCBjYW5DbG9zZTogRnVuY3Rpb24pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgaWYgKGluZGV4ID49IHRoaXMuY29udGFpbmVycy5sZW5ndGggLSAxKSB7XHJcbiAgICAgIGlmIChjYW5DbG9zZSkge1xyXG4gICAgICAgIHJldHVybiBuaC5vYnNlcnZlKGNhbkNsb3NlKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gb2YodHJ1ZSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBvZihmYWxzZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldENvbnRhaW5lcih2aWV3Q29udGFpbmVyUmVmIDogVmlld0NvbnRhaW5lclJlZik6IENvbXBvbmVudFJlZjxBc2lEcm9wZG93bkNvbnRhaW5lcj4ge1xyXG4gICAgLy8gQ3JlYXRlIGFuIEFzaURyb3Bkb3duQ29udGFpbmVyXHJcbiAgICBjb25zdCBhc2lEcm9wZG93bkNvbnRhaW5lckZhY3Rvcnk6IENvbXBvbmVudEZhY3Rvcnk8QXNpRHJvcGRvd25Db250YWluZXI+ID0gdGhpcy5yZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShBc2lEcm9wZG93bkNvbnRhaW5lcik7XHJcbiAgICByZXR1cm4gdmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoYXNpRHJvcGRvd25Db250YWluZXJGYWN0b3J5LCAwKTtcclxuICB9XHJcbn1cclxuIl19