UNPKG

@stratio/egeo

Version:
184 lines 15.3 kB
/** * @fileoverview added by tsickle * Generated from: lib/st-alerts/alert-box/st-alert-box.component.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /* * © 2017 Stratio Big Data Inc., Sucursal en España. * * This software is licensed under the Apache License, Version 2.0. * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the terms of the License for more details. * * SPDX-License-Identifier: Apache-2.0. */ import { Component, Input, ChangeDetectorRef, ChangeDetectionStrategy, Output, EventEmitter } from '@angular/core'; import { STALERT_SEVERITY, StAlert } from '../st-alerts.model'; /** * @description {Component} [Alert Box] * * Alert box is made to let the user know errors or information about he is trying to do. * * @example * * {html} * * ``` * <st-alert-box [alert]="alert" [showInConsole]="showInConsole"></st-alert-box> * * ``` */ export class StAlertBoxComponent { /** * @param {?} _cd */ constructor(_cd) { this._cd = _cd; /** * \@Input {boolean} [showInConsole=false] Display logs in console */ this.showInConsole = false; /** * \@Output {StAlertLink} [clickLink=] Event emitted when link is clicked */ this.clickLink = new EventEmitter(); /** * \@Output {boolean} [close=] Event emitted when alert is closed */ this.close = new EventEmitter(); this.opacity = 0; } /** * @return {?} */ ngOnInit() { this.alert.opacity.subscribe((/** * @param {?} opacity * @return {?} */ opacity => this.changeOpacity(opacity))); this.alert.notify(); if (this.showInConsole) { this.notifyConsole(); } this.severityColorValue = this.getSeverityColor(); this.iconValue = this.getIcon(); } /** * @return {?} */ closeAlert() { this.alert.cancel(); this.close.emit(true); } /** * @return {?} */ getIcon() { switch (this.alert.severity) { case STALERT_SEVERITY.ERROR: return 'icon-circle-alert'; case STALERT_SEVERITY.WARNING: return 'icon-alert'; case STALERT_SEVERITY.SUCCESS: return 'icon-circle-check'; case STALERT_SEVERITY.INFO: return 'icon-info'; default: return ''; } } /** * @return {?} */ getSeverityColor() { switch (this.alert.severity) { case STALERT_SEVERITY.ERROR: return 'sth-alert-box-error'; case STALERT_SEVERITY.WARNING: return 'sth-alert-box-warning'; case STALERT_SEVERITY.SUCCESS: return 'sth-alert-box-success'; case STALERT_SEVERITY.INFO: return 'sth-alert-box-info'; default: return ''; } } /** * @return {?} */ goTo() { this.clickLink.emit(this.alert.link); } /** * @param {?} opacity * @return {?} */ changeOpacity(opacity) { this.opacity = opacity; this._cd.markForCheck(); } /** * @private * @return {?} */ notifyConsole() { switch (this.alert.severity) { case STALERT_SEVERITY.ERROR: console.error(`ERROR-${this.alert.title}: ${this.alert.message}`); break; case STALERT_SEVERITY.WARNING: console.warn(`WARNING-${this.alert.title}: ${this.alert.message}`); break; case STALERT_SEVERITY.SUCCESS: console.log(`SUCCESS-${this.alert.title}: ${this.alert.message}`); break; default: console.error(`ERROR: severity not found for ${this.alert.title}: ${this.alert.message}`); break; } } } StAlertBoxComponent.decorators = [ { type: Component, args: [{ selector: 'st-alert-box', template: "<!--\n\n \u00A9 2017 Stratio Big Data Inc., Sucursal en Espa\u00F1a.\n\n This software is licensed under the Apache License, Version 2.0.\n This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;\n without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n See the terms of the License for more details.\n\n SPDX-License-Identifier: Apache-2.0.\n\n-->\n<div class=\"sth-alert-box\" [ngClass]=\"severityColorValue\" [ngStyle]=\"{opacity: opacity}\">\n <div class=\"sth-alert-box-content\">\n <div class=\"sth-alert-box-close-button\">\n <i (click)=\"closeAlert()\" class=\"icon-cross\"></i>\n </div>\n <header class=\"sth-alert-box-header\">\n <i class=\"status-icon\" [ngClass]=\"iconValue\"></i>\n <span>{{alert.title}}</span>\n </header>\n <div class=\"sth-alert-box-body\">\n <p>{{alert.message}}</p>\n </div>\n </div>\n <footer *ngIf=\"alert.link\" class=\"sth-alert-box-footer\">\n <a (click)=\"goTo()\">{{alert.link.title}}</a>\n </footer>\n</div>\n", changeDetection: ChangeDetectionStrategy.OnPush }] } ]; /** @nocollapse */ StAlertBoxComponent.ctorParameters = () => [ { type: ChangeDetectorRef } ]; StAlertBoxComponent.propDecorators = { alert: [{ type: Input }], showInConsole: [{ type: Input }], clickLink: [{ type: Output }], close: [{ type: Output }] }; if (false) { /** * \@Input {StAlert} [alert=] Data of the alert * @type {?} */ StAlertBoxComponent.prototype.alert; /** * \@Input {boolean} [showInConsole=false] Display logs in console * @type {?} */ StAlertBoxComponent.prototype.showInConsole; /** * \@Output {StAlertLink} [clickLink=] Event emitted when link is clicked * @type {?} */ StAlertBoxComponent.prototype.clickLink; /** * \@Output {boolean} [close=] Event emitted when alert is closed * @type {?} */ StAlertBoxComponent.prototype.close; /** @type {?} */ StAlertBoxComponent.prototype.iconValue; /** @type {?} */ StAlertBoxComponent.prototype.opacity; /** @type {?} */ StAlertBoxComponent.prototype.severityColorValue; /** * @type {?} * @private */ StAlertBoxComponent.prototype._cd; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3QtYWxlcnQtYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzdHJhdGlvL2VnZW8vIiwic291cmNlcyI6WyJsaWIvc3QtYWxlcnRzL2FsZXJ0LWJveC9zdC1hbGVydC1ib3guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQVVBLE9BQU8sRUFDSixTQUFTLEVBQ1QsS0FBSyxFQUVMLGlCQUFpQixFQUNqQix1QkFBdUIsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUMvQyxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFlLE1BQU0sb0JBQW9CLENBQUM7QUFPNUU7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE1BQU0sT0FBTyxtQkFBbUI7Ozs7SUFjN0IsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7Ozs7UUFWakMsa0JBQWEsR0FBWSxLQUFLLENBQUM7Ozs7UUFFOUIsY0FBUyxHQUE4QixJQUFJLFlBQVksRUFBRSxDQUFDOzs7O1FBRTFELFVBQUssR0FBMEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUdyRCxZQUFPLEdBQVcsQ0FBQyxDQUFDO0lBSTNCLENBQUM7Ozs7SUFFRCxRQUFRO1FBQ0wsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUzs7OztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDcEIsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN2QjtRQUNELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUNsRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFP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RXhDLHdDQUFvRTs7Ozs7SUFFcEUsb0NBQTREOztJQUU1RCx3Q0FBeUI7O0lBQ3pCLHNDQUEyQjs7SUFDM0IsaURBQWtDOzs7OztJQUV0QixrQ0FBOEIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogwqkgMjAxNyBTdHJhdGlvIEJpZyBEYXRhIEluYy4sIFN1Y3Vyc2FsIGVuIEVzcGHDsWEuXG4gKlxuICogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTtcbiAqIHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuXG4gKiBTZWUgdGhlIHRlcm1zIG9mIHRoZSBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAuXG4gKi9cbmltcG9ydCB7XG4gICBDb21wb25lbnQsXG4gICBJbnB1dCxcbiAgIE9uSW5pdCxcbiAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIE91dHB1dCwgRXZlbnRFbWl0dGVyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTVEFMRVJUX1NFVkVSSVRZLCBTdEFsZXJ0LCBTdEFsZXJ0TGluayB9IGZyb20gJy4uL3N0LWFsZXJ0cy5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgc2VsZWN0b3I6ICdzdC1hbGVydC1ib3gnLFxuICAgdGVtcGxhdGVVcmw6ICcuL3N0LWFsZXJ0LWJveC5jb21wb25lbnQuaHRtbCcsXG4gICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbi8qKlxuICogQGRlc2NyaXB0aW9uIHtDb21wb25lbnR9IFtBbGVydCBCb3hdXG4gKlxuICogQWxlcnQgYm94IGlzIG1hZGUgdG8gbGV0IHRoZSB1c2VyIGtub3cgZXJyb3JzIG9yIGluZm9ybWF0aW9uIGFib3V0IGhlIGlzIHRyeWluZyB0byBkby5cbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIHtodG1sfVxuICpcbiAqIGBgYFxuICogPHN0LWFsZXJ0LWJveCBbYWxlcnRdPVwiYWxlcnRcIiBbc2hvd0luQ29uc29sZV09XCJzaG93SW5Db25zb2xlXCI+PC9zdC1hbGVydC1ib3g+XG4gKlxuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBTdEFsZXJ0Qm94Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgIC8qKiBASW5wdXQge1N0QWxlcnR9IFthbGVydD1dIERhdGEgb2YgdGhlIGFsZXJ0ICovXG4gICBASW5wdXQoKSBhbGVydDogU3RBbGVydDtcbiAgIC8qKiBASW5wdXQge2Jvb2xlYW59IFtzaG93SW5Db25zb2xlPWZhbHNlXSBEaXNwbGF5IGxvZ3MgaW4gY29uc29sZSAqL1xuICAgQElucHV0KCkgc2hvd0luQ29uc29sZTogYm9vbGVhbiA9IGZhbHNlO1xuICAgLyoqIEBPdXRwdXQge1N0QWxlcnRMaW5rfSBbY2xpY2tMaW5rPV0gRXZlbnQgZW1pdHRlZCB3aGVuIGxpbmsgaXMgY2xpY2tlZCAqL1xuICAgQE91dHB1dCgpIGNsaWNrTGluazogRXZlbnRFbWl0dGVyPFN0QWxlcnRMaW5rPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgIC8qKiBAT3V0cHV0IHtib29sZWFufSBbY2xvc2U9XSBFdmVudCBlbWl0dGVkIHdoZW4gYWxlcnQgaXMgY2xvc2VkICovXG4gICBAT3V0cHV0KCkgY2xvc2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgcHVibGljIGljb25WYWx1ZTogc3RyaW5nO1xuICAgcHVibGljIG9wYWNpdHk6IG51bWJlciA9IDA7XG4gICBwdWJsaWMgc2V2ZXJpdHlDb2xvclZhbHVlOiBzdHJpbmc7XG5cbiAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2NkOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgfVxuXG4gICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgIHRoaXMuYWxlcnQub3BhY2l0eS5zdWJzY3JpYmUob3BhY2l0eSA9PiB0aGlzLmNoYW5nZU9wYWNpdHkob3BhY2l0eSkpO1xuICAgICAgdGhpcy5hbGVydC5ub3RpZnkoKTtcbiAgICAgIGlmICh0aGlzLnNob3dJbkNvbnNvbGUpIHtcbiAgICAgICAgIHRoaXMubm90aWZ5Q29uc29sZSgpO1xuICAgICAgfVxuICAgICAgdGhpcy5zZXZlcml0eUNvbG9yVmFsdWUgPSB0aGlzLmdldFNldmVyaXR5Q29sb3IoKTtcbiAgICAgIHRoaXMuaWNvblZhbHVlID0gdGhpcy5nZXRJY29uKCk7XG4gICB9XG5cbiAgIGNsb3NlQWxlcnQoKTogdm9pZCB7XG4gICAgICB0aGlzLmFsZXJ0LmNhbmNlbCgpO1xuICAgICAgdGhpcy5jbG9zZS5lbWl0KHRydWUpO1xuICAgfVxuXG4gICBnZXRJY29uKCk6IHN0cmluZyB7XG4gICAgICBzd2l0Y2ggKHRoaXMuYWxlcnQuc2V2ZXJpdHkpIHtcbiAgICAgICAgIGNhc2UgU1RBTEVSVF9TRVZFUklUWS5FUlJPUjogcmV0dXJuICdpY29uLWNpcmNsZS1hbGVydCc7XG4gICAgICAgICBjYXNlIFNUQUxFUlRfU0VWRVJJVFkuV0FSTklORzogcmV0dXJuICdpY29uLWFsZXJ0JztcbiAgICAgICAgIGNhc2UgU1RBTEVSVF9TRVZFUklUWS5TVUNDRVNTOiByZXR1cm4gJ2ljb24tY2lyY2xlLWNoZWNrJztcbiAgICAgICAgIGNhc2UgU1RBTEVSVF9TRVZFUklUWS5JTkZPOiByZXR1cm4gJ2ljb24taW5mbyc7XG4gICAgICAgICBkZWZhdWx0OiByZXR1cm4gJyc7XG4gICAgICB9XG4gICB9XG5cbiAgIGdldFNldmVyaXR5Q29sb3IoKTogc3RyaW5nIHtcbiAgICAgIHN3aXRjaCAodGhpcy5hbGVydC5zZXZlcml0eSkge1xuICAgICAgICAgY2FzZSBTVEFMRVJUX1NFVkVSSVRZLkVSUk9SOiByZXR1cm4gJ3N0aC1hbGVydC1ib3gtZXJyb3InO1xuICAgICAgICAgY2FzZSBTVEFMRVJUX1NFVkVSSVRZLldBUk5JTkc6IHJldHVybiAnc3RoLWFsZXJ0LWJveC13YXJuaW5nJztcbiAgICAgICAgIGNhc2UgU1RBTEVSVF9TRVZFUklUWS5TVUNDRVNTOiByZXR1cm4gJ3N0aC1hbGVydC1ib3gtc3VjY2Vzcyc7XG4gICAgICAgICBjYXNlIFNUQUxFUlRfU0VWRVJJVFkuSU5GTzogcmV0dXJuICdzdGgtYWxlcnQtYm94LWluZm8nO1xuICAgICAgICAgZGVmYXVsdDogcmV0dXJuICcnO1xuICAgICAgfVxuICAgfVxuXG4gICBnb1RvKCk6IHZvaWQge1xuICAgICAgdGhpcy5jbGlja0xpbmsuZW1pdCh0aGlzLmFsZXJ0LmxpbmspO1xuICAgfVxuXG4gICBjaGFuZ2VPcGFjaXR5KG9wYWNpdHk6IG51bWJlcik6IHZvaWQge1xuICAgICAgdGhpcy5vcGFjaXR5ID0gb3BhY2l0eTtcbiAgICAgIHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xuICAgfVxuXG4gICBwcml2YXRlIG5vdGlmeUNvbnNvbGUoKTogdm9pZCB7XG4gICAgICBzd2l0Y2ggKHRoaXMuYWxlcnQuc2V2ZXJpdHkpIHtcbiAgICAgICAgIGNhc2UgU1RBTEVSVF9TRVZFUklUWS5FUlJPUjogY29uc29sZS5lcnJvcihgRVJST1ItJHt0aGlzLmFsZXJ0LnRpdGxlfTogJHt0aGlzLmFsZXJ0Lm1lc3NhZ2V9YCk7IGJyZWFrO1xuICAgICAgICAgY2FzZSBTVEFMRVJUX1NFVkVSSVRZLldBUk5JTkc6IGNvbnNvbGUud2FybihgV0FSTklORy0ke3RoaXMuYWxlcnQudGl0bGV9OiAke3RoaXMuYWxlcnQubWVzc2FnZX1gKTsgYnJlYWs7XG4gICAgICAgICBjYXNlIFNUQUxFUlRfU0VWRVJJVFkuU1VDQ0VTUzogY29uc29sZS5sb2coYFNVQ0NFU1MtJHt0aGlzLmFsZXJ0LnRpdGxlfTogJHt0aGlzLmFsZXJ0Lm1lc3NhZ2V9YCk7IGJyZWFrO1xuICAgICAgICAgZGVmYXVsdDogY29uc29sZS5lcnJvcihgRVJST1I6IHNldmVyaXR5IG5vdCBmb3VuZCBmb3IgJHt0aGlzLmFsZXJ0LnRpdGxlfTogJHt0aGlzLmFsZXJ0Lm1lc3NhZ2V9YCk7IGJyZWFrO1xuICAgICAgfVxuICAgfVxufVxuIl19