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).
165 lines • 14.3 kB
JavaScript
/**
* @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';
var LambModalWindowComponent = /** @class */ (function () {
// @HostBinding('attr.role')
// public role = 'dialog';
// @HostBinding('attr.tabindex')
// public tabindex = '-1';
// @HostBinding('attr.style')
// public style = 'display: block;';
function LambModalWindowComponent(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);
}
Object.defineProperty(LambModalWindowComponent.prototype, "modalClass", {
get: /**
* @return {?}
*/
function () { return 'modal fade show d-block' + (this.windowClass ? ' ' + this.windowClass : ''); },
enumerable: true,
configurable: true
});
/**
* @param {?} $event
* @return {?}
*/
LambModalWindowComponent.prototype.backdropClick = /**
* @param {?} $event
* @return {?}
*/
function ($event) {
if (this.backdrop === true && this._elRef.nativeElement === $event.target) {
this.dismiss(ModalDismissReasons.BACKDROP_CLICK);
}
};
/**
* @param {?} $event
* @return {?}
*/
LambModalWindowComponent.prototype.escKey = /**
* @param {?} $event
* @return {?}
*/
function ($event) {
if (this.keyboard && !$event.defaultPrevented) {
this.dismiss(ModalDismissReasons.ESC);
}
};
/**
* @param {?} reason
* @return {?}
*/
LambModalWindowComponent.prototype.dismiss = /**
* @param {?} reason
* @return {?}
*/
function (reason) { this.dismissEvent.emit(reason); };
/**
* @return {?}
*/
LambModalWindowComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () {
this._elWithFocus = this._document.activeElement;
this._renderer.addClass(this._document.body, 'modal-open');
};
/**
* @return {?}
*/
LambModalWindowComponent.prototype.ngAfterViewInit = /**
* @return {?}
*/
function () {
if (!this._elRef.nativeElement.contains(document.activeElement)) {
this._elRef.nativeElement['focus'].apply(this._elRef.nativeElement, []);
}
};
/**
* @return {?}
*/
LambModalWindowComponent.prototype.ngOnDestroy = /**
* @return {?}
*/
function () {
/** @type {?} */
var body = this._document.body;
/** @type {?} */
var elWithFocus = this._elWithFocus;
/** @type {?} */
var 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: "\n <div\n [class]=\"'modal-dialog' + (size ? ' modal-' + size : '') + (centered ? ' modal-dialog-centered' : '')\"\n role=\"document\">\n <div class=\"modal-content\"><ng-content></ng-content></div>\n </div>\n ",
host: {
// '[class]': '"modal fade show" + (windowClass ? " " + windowClass : "")',
'role': 'dialog',
'tabindex': '-1',
'style': 'display: block;',
},
},] },
];
LambModalWindowComponent.ctorParameters = function () { return [
{ 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'],] }]
};
return LambModalWindowComponent;
}());
export { LambModalWindowComponent };
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtd2luZG93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2xhbWItd2ViLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL21vZGFsL21vZGFsLXdpbmRvdy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ00sS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQzFDLE1BQU0sRUFDTixVQUFVLEVBQ1YsU0FBUyxFQUNULFdBQVcsRUFDWCxZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVsRDtJQStCRSw0QkFBNEI7SUFDNUIsMEJBQTBCO0lBQzFCLGdDQUFnQztJQUNoQywwQkFBMEI7SUFDMUIsNkJBQTZCO0lBQzdCLG9DQUFvQztJQUVwQyxrQ0FBOEIsUUFBUSxFQUFVLE1BQWtCLEVBQVUsU0FBb0I7UUFBaEQsV0FBTSxHQUFOLE1BQU0sQ0FBWTtRQUFVLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFoQnZGLGFBQVEsR0FBcUIsSUFBSSxDQUFDO1FBQ2xDLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFJZixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFZL0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7UUFDMUIsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBWkQsc0JBQ0ksZ0RBQVU7Ozs7UUFEZCxjQUNtQixNQUFNLENBQUMseUJBQXlCLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdB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QyxZQUFZLFNBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDOztJQW1DdkMsK0JBQUM7Q0FBQSxBQXJGRCxJQXFGQztTQW5FWSx3QkFBd0I7OztJQUNuQyw2Q0FBdUI7O0lBQ3ZCLGdEQUE4Qjs7SUFFOUIsNENBQTJDOztJQUMzQyw0Q0FBeUI7O0lBQ3pCLHdDQUFzQjs7SUFDdEIsNENBQTJCOztJQUMzQiwrQ0FBNkI7O0lBQzdCLGdEQUFpRDs7SUFXVCwwQ0FBMEI7O0lBQUUsNkNBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsIE9uSW5pdCwgT25EZXN0cm95LFxyXG4gIEFmdGVyVmlld0luaXQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlcixcclxuICBJbmplY3QsXHJcbiAgRWxlbWVudFJlZixcclxuICBSZW5kZXJlcjIsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE1vZGFsRGlzbWlzc1JlYXNvbnMgfSBmcm9tICcuL21vZGFsLWRpc21pc3MtcmVhc29ucyc7XHJcbmltcG9ydCB7IGxhbWJGb2N1c1RyYXAgfSBmcm9tICcuL3V0aWwvZm9jdXMtdHJhcCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xhbWItbW9kYWwtd2luZG93JyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdlxyXG4gICAgICBbY2xhc3NdPVwiJ21vZGFsLWRpYWxvZycgKyAoc2l6ZSA/ICcgbW9kYWwtJyArIHNpemUgOiAnJykgKyAoY2VudGVyZWQgPyAnIG1vZGFsLWRpYWxvZy1jZW50ZXJlZCcgOiAnJylcIlxyXG4gICAgICByb2xlPVwiZG9jdW1lbnRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnRcIj48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG4gIGhvc3Q6IHtcclxuICAgIC8vICdbY2xhc3NdJzogJ1wibW9kYWwgZmFkZSBzaG93XCIgKyAod2luZG93Q2xhc3MgPyBcIiBcIiArIHdpbmRvd0NsYXNzIDogXCJcIiknLFxyXG4gICAgJ3JvbGUnOiAnZGlhbG9nJyxcclxuICAgICd0YWJpbmRleCc6ICctMScsXHJcbiAgICAnc3R5bGUnOiAnZGlzcGxheTogYmxvY2s7JyxcclxuICAgIC8vICcoa2V5dXAuZXNjKSc6ICdlc2NLZXkoJGV2ZW50KScsXHJcbiAgICAvLyAnKGNsaWNrKSc6ICdiYWNrZHJvcENsaWNrKCRldmVudCknLFxyXG4gIH0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMYW1iTW9kYWxXaW5kb3dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBfZG9jdW1lbnQ6IGFueTtcclxuICBwcml2YXRlIF9lbFdpdGhGb2N1czogRWxlbWVudDsgLy8gZWxlbWVudG8gcXVlIHNlIGVuZm9jYSBhbnRlcyBkZSBsYSBhcGVydHVyYSBtb2RhbFxyXG5cclxuICBASW5wdXQoKSBiYWNrZHJvcDogYm9vbGVhbiB8IHN0cmluZyA9IHRydWU7XHJcbiAgQElucHV0KCkga2V5Ym9hcmQgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNpemU6IHN0cmluZztcclxuICBASW5wdXQoKSBjZW50ZXJlZDogYm9vbGVhbjtcclxuICBASW5wdXQoKSB3aW5kb3dDbGFzczogc3RyaW5nO1xyXG4gIEBPdXRwdXQoKSBkaXNtaXNzRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXHJcbiAgZ2V0IG1vZGFsQ2xhc3MoKSB7IHJldHVybiAnbW9kYWwgZmFkZSBzaG93IGQtYmxvY2snICsgKHRoaXMud2luZG93Q2xhc3MgPyAnICcgKyB0aGlzLndpbmRvd0NsYXNzIDogJycpOyB9XHJcbiAgLy8gQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKVxyXG4gIC8vIHB1YmxpYyByb2xlID0gJ2RpYWxvZyc7XHJcbiAgLy8gQEhvc3RCaW5kaW5nKCdhdHRyLnRhYmluZGV4JylcclxuICAvLyBwdWJsaWMgdGFiaW5kZXggPSAnLTEnO1xyXG4gIC8vIEBIb3N0QmluZGluZygnYXR0ci5zdHlsZScpXHJcbiAgLy8gcHVibGljIHN0eWxlID0gJ2Rpc3BsYXk6IGJsb2NrOyc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoRE9DVU1FTlQpIGRvY3VtZW50LCBwcml2YXRlIF9lbFJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMikge1xyXG4gICAgdGhpcy5fZG9jdW1lbnQgPSBkb2N1bWVudDtcclxuICAgIGxhbWJGb2N1c1RyYXAodGhpcy5fZWxSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5kaXNtaXNzRXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxyXG4gIHB1YmxpYyBiYWNrZHJvcENsaWNrKCRldmVudCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuYmFja2Ryb3AgPT09IHRydWUgJiYgdGhpcy5fZWxSZWYubmF0aXZlRWxlbWVudCA9PT0gJGV2ZW50LnRhcmdldCkge1xyXG4gICAgICB0aGlzLmRpc21pc3MoTW9kYWxEaXNtaXNzUmVhc29ucy5CQUNLRFJPUF9DTElDSyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdrZXl1cC5lc2MnLCBbJyRldmVudCddKVxyXG4gIHB1YmxpYyBlc2NLZXkoJGV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5rZXlib2FyZCAmJiAhJGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcclxuICAgICAgdGhpcy5kaXNtaXNzKE1vZGFsRGlzbWlzc1JlYXNvbnMuRVNDKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBkaXNtaXNzKHJlYXNvbik6IHZvaWQgeyB0aGlzLmRpc21pc3NFdmVudC5lbWl0KHJlYXNvbik7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLl9lbFdpdGhGb2N1cyA9IHRoaXMuX2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XHJcbiAgICB0aGlzLl9yZW5kZXJlci5hZGRDbGFzcyh0aGlzLl9kb2N1bWVudC5ib2R5LCAnbW9kYWwtb3BlbicpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgaWYgKCF0aGlzLl9lbFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpKSB7XHJcbiAgICAgIHRoaXMuX2VsUmVmLm5hdGl2ZUVsZW1lbnRbJ2ZvY3VzJ10uYXBwbHkodGhpcy5fZWxSZWYubmF0aXZlRWxlbWVudCwgW10pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICBjb25zdCBib2R5ID0gdGhpcy5fZG9jdW1lbnQuYm9keTtcclxuICAgIGNvbnN0IGVsV2l0aEZvY3VzID0gdGhpcy5fZWxXaXRoRm9jdXM7XHJcblxyXG4gICAgbGV0IGVsZW1lbnRUb0ZvY3VzO1xyXG4gICAgaWYgKGVsV2l0aEZvY3VzICYmIGVsV2l0aEZvY3VzWydmb2N1cyddICYmIGJvZHkuY29udGFpbnMoZWxXaXRoRm9jdXMpKSB7XHJcbiAgICAgIGVsZW1lbnRUb0ZvY3VzID0gZWxXaXRoRm9jdXM7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBlbGVtZW50VG9Gb2N1cyA9IGJvZHk7XHJcbiAgICB9XHJcbiAgICBlbGVtZW50VG9Gb2N1c1snZm9jdXMnXS5hcHBseShlbGVtZW50VG9Gb2N1cywgW10pO1xyXG5cclxuICAgIHRoaXMuX2VsV2l0aEZvY3VzID0gbnVsbDtcclxuICAgIHRoaXMuX3JlbmRlcmVyLnJlbW92ZUNsYXNzKGJvZHksICdtb2RhbC1vcGVuJyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==