UNPKG

lamb-web-lib

Version:

LambWebLib. Es un proyecto angular de tipo Librería. que contiene una Suit de componentes reutilizables para el proyecto [Lamb Financial](https://lamb.upeu.edu.pe).

149 lines 13.2 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc */ import { Component, Input, Output, EventEmitter, Inject, ElementRef, Renderer2, HostBinding, HostListener, } from '@angular/core'; import { DOCUMENT } from '@angular/common'; import { ModalDismissReasons } from './modal-dismiss-reasons'; import { lambFocusTrap } from './util/focus-trap'; export class LambModalWindowComponent { // @HostBinding('attr.role') // public role = 'dialog'; // @HostBinding('attr.tabindex') // public tabindex = '-1'; // @HostBinding('attr.style') // public style = 'display: block;'; /** * @param {?} document * @param {?} _elRef * @param {?} _renderer */ constructor(document, _elRef, _renderer) { this._elRef = _elRef; this._renderer = _renderer; this.backdrop = true; this.keyboard = true; this.dismissEvent = new EventEmitter(); this._document = document; lambFocusTrap(this._elRef.nativeElement, this.dismissEvent); } /** * @return {?} */ get modalClass() { return 'modal fade show d-block' + (this.windowClass ? ' ' + this.windowClass : ''); } /** * @param {?} $event * @return {?} */ backdropClick($event) { if (this.backdrop === true && this._elRef.nativeElement === $event.target) { this.dismiss(ModalDismissReasons.BACKDROP_CLICK); } } /** * @param {?} $event * @return {?} */ escKey($event) { if (this.keyboard && !$event.defaultPrevented) { this.dismiss(ModalDismissReasons.ESC); } } /** * @param {?} reason * @return {?} */ dismiss(reason) { this.dismissEvent.emit(reason); } /** * @return {?} */ ngOnInit() { this._elWithFocus = this._document.activeElement; this._renderer.addClass(this._document.body, 'modal-open'); } /** * @return {?} */ ngAfterViewInit() { if (!this._elRef.nativeElement.contains(document.activeElement)) { this._elRef.nativeElement['focus'].apply(this._elRef.nativeElement, []); } } /** * @return {?} */ ngOnDestroy() { /** @type {?} */ const body = this._document.body; /** @type {?} */ const elWithFocus = this._elWithFocus; /** @type {?} */ let elementToFocus; if (elWithFocus && elWithFocus['focus'] && body.contains(elWithFocus)) { elementToFocus = elWithFocus; } else { elementToFocus = body; } elementToFocus['focus'].apply(elementToFocus, []); this._elWithFocus = null; this._renderer.removeClass(body, 'modal-open'); } } LambModalWindowComponent.decorators = [ { type: Component, args: [{ selector: 'lamb-modal-window', template: ` <div [class]="'modal-dialog' + (size ? ' modal-' + size : '') + (centered ? ' modal-dialog-centered' : '')" role="document"> <div class="modal-content"><ng-content></ng-content></div> </div> `, host: { // '[class]': '"modal fade show" + (windowClass ? " " + windowClass : "")', 'role': 'dialog', 'tabindex': '-1', 'style': 'display: block;', }, },] }, ]; LambModalWindowComponent.ctorParameters = () => [ { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }, { type: ElementRef }, { type: Renderer2 } ]; LambModalWindowComponent.propDecorators = { backdrop: [{ type: Input }], keyboard: [{ type: Input }], size: [{ type: Input }], centered: [{ type: Input }], windowClass: [{ type: Input }], dismissEvent: [{ type: Output }], modalClass: [{ type: HostBinding, args: ['class',] }], backdropClick: [{ type: HostListener, args: ['click', ['$event'],] }], escKey: [{ type: HostListener, args: ['keyup.esc', ['$event'],] }] }; if (false) { /** @type {?} */ LambModalWindowComponent.prototype._document; /** @type {?} */ LambModalWindowComponent.prototype._elWithFocus; /** @type {?} */ LambModalWindowComponent.prototype.backdrop; /** @type {?} */ LambModalWindowComponent.prototype.keyboard; /** @type {?} */ LambModalWindowComponent.prototype.size; /** @type {?} */ LambModalWindowComponent.prototype.centered; /** @type {?} */ LambModalWindowComponent.prototype.windowClass; /** @type {?} */ LambModalWindowComponent.prototype.dismissEvent; /** @type {?} */ LambModalWindowComponent.prototype._elRef; /** @type {?} */ LambModalWindowComponent.prototype._renderer; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtd2luZG93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2xhbWItd2ViLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL21vZGFsL21vZGFsLXdpbmRvdy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ00sS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQzFDLE1BQU0sRUFDTixVQUFVLEVBQ1YsU0FBUyxFQUNULFdBQVcsRUFDWCxZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQW9CbEQsTUFBTTs7Ozs7Ozs7Ozs7O0lBb0JKLFlBQThCLFFBQVEsRUFBVSxNQUFrQixFQUFVLFNBQW9CO1FBQWhELFdBQU0sR0FBTixNQUFNLENBQVk7UUFBVSxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBaEJ2RixhQUFRLEdBQXFCLElBQUksQ0FBQztRQUNsQyxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBSWYsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBWS9DLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1FBQzFCLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDOUQsQ0FBQzs7OztJQVpELElBQ0ksVUFBVSxLQUFLLE1BQU0sQ0FBQyx5QkFBeUIsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7Ozs7O0lBY2xHLGFB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QiwrQ0FBNkI7O0lBQzdCLGdEQUFpRDs7SUFXVCwwQ0FBMEI7O0lBQUUsNkNBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsIE9uSW5pdCwgT25EZXN0cm95LFxyXG4gIEFmdGVyVmlld0luaXQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlcixcclxuICBJbmplY3QsXHJcbiAgRWxlbWVudFJlZixcclxuICBSZW5kZXJlcjIsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE1vZGFsRGlzbWlzc1JlYXNvbnMgfSBmcm9tICcuL21vZGFsLWRpc21pc3MtcmVhc29ucyc7XHJcbmltcG9ydCB7IGxhbWJGb2N1c1RyYXAgfSBmcm9tICcuL3V0aWwvZm9jdXMtdHJhcCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xhbWItbW9kYWwtd2luZG93JyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdlxyXG4gICAgICBbY2xhc3NdPVwiJ21vZGFsLWRpYWxvZycgKyAoc2l6ZSA/ICcgbW9kYWwtJyArIHNpemUgOiAnJykgKyAoY2VudGVyZWQgPyAnIG1vZGFsLWRpYWxvZy1jZW50ZXJlZCcgOiAnJylcIlxyXG4gICAgICByb2xlPVwiZG9jdW1lbnRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnRcIj48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG4gIGhvc3Q6IHtcclxuICAgIC8vICdbY2xhc3NdJzogJ1wibW9kYWwgZmFkZSBzaG93XCIgKyAod2luZG93Q2xhc3MgPyBcIiBcIiArIHdpbmRvd0NsYXNzIDogXCJcIiknLFxyXG4gICAgJ3JvbGUnOiAnZGlhbG9nJyxcclxuICAgICd0YWJpbmRleCc6ICctMScsXHJcbiAgICAnc3R5bGUnOiAnZGlzcGxheTogYmxvY2s7JyxcclxuICAgIC8vICcoa2V5dXAuZXNjKSc6ICdlc2NLZXkoJGV2ZW50KScsXHJcbiAgICAvLyAnKGNsaWNrKSc6ICdiYWNrZHJvcENsaWNrKCRldmVudCknLFxyXG4gIH0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMYW1iTW9kYWxXaW5kb3dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBfZG9jdW1lbnQ6IGFueTtcclxuICBwcml2YXRlIF9lbFdpdGhGb2N1czogRWxlbWVudDsgLy8gZWxlbWVudG8gcXVlIHNlIGVuZm9jYSBhbnRlcyBkZSBsYSBhcGVydHVyYSBtb2RhbFxyXG5cclxuICBASW5wdXQoKSBiYWNrZHJvcDogYm9vbGVhbiB8IHN0cmluZyA9IHRydWU7XHJcbiAgQElucHV0KCkga2V5Ym9hcmQgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNpemU6IHN0cmluZztcclxuICBASW5wdXQoKSBjZW50ZXJlZDogYm9vbGVhbjtcclxuICBASW5wdXQoKSB3aW5kb3dDbGFzczogc3RyaW5nO1xyXG4gIEBPdXRwdXQoKSBkaXNtaXNzRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXHJcbiAgZ2V0IG1vZGFsQ2xhc3MoKSB7IHJldHVybiAnbW9kYWwgZmFkZSBzaG93IGQtYmxvY2snICsgKHRoaXMud2luZG93Q2xhc3MgPyAnICcgKyB0aGlzLndpbmRvd0NsYXNzIDogJycpOyB9XHJcbiAgLy8gQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKVxyXG4gIC8vIHB1YmxpYyByb2xlID0gJ2RpYWxvZyc7XHJcbiAgLy8gQEhvc3RCaW5kaW5nKCdhdHRyLnRhYmluZGV4JylcclxuICAvLyBwdWJsaWMgdGFiaW5kZXggPSAnLTEnO1xyXG4gIC8vIEBIb3N0QmluZGluZygnYXR0ci5zdHlsZScpXHJcbiAgLy8gcHVibGljIHN0eWxlID0gJ2Rpc3BsYXk6IGJsb2NrOyc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoRE9DVU1FTlQpIGRvY3VtZW50LCBwcml2YXRlIF9lbFJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMikge1xyXG4gICAgdGhpcy5fZG9jdW1lbnQgPSBkb2N1bWVudDtcclxuICAgIGxhbWJGb2N1c1RyYXAodGhpcy5fZWxSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5kaXNtaXNzRXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxyXG4gIHB1YmxpYyBiYWNrZHJvcENsaWNrKCRldmVudCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuYmFja2Ryb3AgPT09IHRydWUgJiYgdGhpcy5fZWxSZWYubmF0aXZlRWxlbWVudCA9PT0gJGV2ZW50LnRhcmdldCkge1xyXG4gICAgICB0aGlzLmRpc21pc3MoTW9kYWxEaXNtaXNzUmVhc29ucy5CQUNLRFJPUF9DTElDSyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdrZXl1cC5lc2MnLCBbJyRldmVudCddKVxyXG4gIHB1YmxpYyBlc2NLZXkoJGV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5rZXlib2FyZCAmJiAhJGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcclxuICAgICAgdGhpcy5kaXNtaXNzKE1vZGFsRGlzbWlzc1JlYXNvbnMuRVNDKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBkaXNtaXNzKHJlYXNvbik6IHZvaWQgeyB0aGlzLmRpc21pc3NFdmVudC5lbWl0KHJlYXNvbik7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLl9lbFdpdGhGb2N1cyA9IHRoaXMuX2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XHJcbiAgICB0aGlzLl9yZW5kZXJlci5hZGRDbGFzcyh0aGlzLl9kb2N1bWVudC5ib2R5LCAnbW9kYWwtb3BlbicpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgaWYgKCF0aGlzLl9lbFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpKSB7XHJcbiAgICAgIHRoaXMuX2VsUmVmLm5hdGl2ZUVsZW1lbnRbJ2ZvY3VzJ10uYXBwbHkodGhpcy5fZWxSZWYubmF0aXZlRWxlbWVudCwgW10pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICBjb25zdCBib2R5ID0gdGhpcy5fZG9jdW1lbnQuYm9keTtcclxuICAgIGNvbnN0IGVsV2l0aEZvY3VzID0gdGhpcy5fZWxXaXRoRm9jdXM7XHJcblxyXG4gICAgbGV0IGVsZW1lbnRUb0ZvY3VzO1xyXG4gICAgaWYgKGVsV2l0aEZvY3VzICYmIGVsV2l0aEZvY3VzWydmb2N1cyddICYmIGJvZHkuY29udGFpbnMoZWxXaXRoRm9jdXMpKSB7XHJcbiAgICAgIGVsZW1lbnRUb0ZvY3VzID0gZWxXaXRoRm9jdXM7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBlbGVtZW50VG9Gb2N1cyA9IGJvZHk7XHJcbiAgICB9XHJcbiAgICBlbGVtZW50VG9Gb2N1c1snZm9jdXMnXS5hcHBseShlbGVtZW50VG9Gb2N1cywgW10pO1xyXG5cclxuICAgIHRoaXMuX2VsV2l0aEZvY3VzID0gbnVsbDtcclxuICAgIHRoaXMuX3JlbmRlcmVyLnJlbW92ZUNsYXNzKGJvZHksICdtb2RhbC1vcGVuJyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==