@universis/common
Version:
Universis - common directives and services
86 lines • 8.55 kB
JavaScript
import { Component, ElementRef, Input } from '@angular/core';
import 'jquery';
import * as _Toast from 'bootstrap/js/dist/toast';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
const Toast = _Toast.default || _Toast;
/**
*
* A native spinner component
* @export
* @class SpinnerComponent
* @implements {OnInit}
*/
export class ToastComponent {
constructor(_element) {
this._element = _element;
this.autoHide = true;
this.delay = 5000;
this.dateCreated = new Date();
}
ngOnInit() {
}
ngAfterViewInit() {
this.toast = new Toast(this._element.nativeElement, {
animation: false,
autohide: this.autoHide,
delay: this.delay
});
return this.toast.show();
}
show() {
if (this.toast) {
this.toast.show();
}
}
hide() {
const container = document.body.getElementsByClassName('universis-toast-container')[0];
if (container.getElementsByClassName('show').length === 1) {
container.classList.add('hidden');
}
if (this.toast) {
this.toast.hide();
}
}
}
ToastComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ToastComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
ToastComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ToastComponent, selector: "universis-toast.toast", inputs: { title: "title", message: "message", autoHide: "autoHide", delay: "delay" }, ngImport: i0, template: `
<div class="toast-header d-flex p-0">
<strong class="mr-auto">{{ title }}</strong>
<button type="button" class="ml-2 mb-1 align-self-start close" data-dismiss="toast" (click)="hide();" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="toast-body p-0">
<div class="toast-body-content" [innerHTML]="message"></div>
</div>
<div class="toast-header p-0">
<small class="toast-date">{{ dateCreated | date: 'shortTime'}}</small>
</div>
`, isInline: true, styles: [":host{z-index:auto}\n"], dependencies: [{ kind: "pipe", type: i1.DatePipe, name: "date" }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ToastComponent, decorators: [{
type: Component,
args: [{ selector: 'universis-toast.toast', template: `
<div class="toast-header d-flex p-0">
<strong class="mr-auto">{{ title }}</strong>
<button type="button" class="ml-2 mb-1 align-self-start close" data-dismiss="toast" (click)="hide();" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="toast-body p-0">
<div class="toast-body-content" [innerHTML]="message"></div>
</div>
<div class="toast-header p-0">
<small class="toast-date">{{ dateCreated | date: 'shortTime'}}</small>
</div>
`, styles: [":host{z-index:auto}\n"] }]
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { title: [{
type: Input
}], message: [{
type: Input
}], autoHide: [{
type: Input
}], delay: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3NoYXJlZC9jb21wb25lbnRzL21vZGFsL3RvYXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sUUFBUSxDQUFDO0FBQ2hCLE9BQU8sS0FBSyxNQUFNLE1BQU0seUJBQXlCLENBQUM7OztBQUNsRCxNQUFNLEtBQUssR0FBSSxNQUFjLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQztBQUNoRDs7Ozs7O0dBTUc7QUF5QkgsTUFBTSxPQUFPLGNBQWM7SUFVdkIsWUFBb0IsUUFBb0I7UUFBcEIsYUFBUSxHQUFSLFFBQVEsQ0FBWTtRQU4vQixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLFVBQUssR0FBRyxJQUFJLENBQUM7UUFDZixnQkFBVyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFJWSxDQUFDO0lBRTdDLFFBQVE7SUFFUixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUU7WUFDbEQsU0FBUyxFQUFFLEtBQUs7WUFDaEIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztTQUNsQixDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVNLElBQUk7UUFDUCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDWixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ3JCO0lBQ0wsQ0FBQztJQUVNLElBQUk7UUFDVCxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLDJCQUEyQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkYsSUFBSSxTQUFTLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUN6RCxTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNuQztRQUVELElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNkLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDbkI7SUFDSCxDQUFDOzs0R0F4Q1EsY0FBYztnR0FBZCxjQUFjLG1KQXRCYjs7Ozs7Ozs7Ozs7OztHQWFYOzRGQVNVLGNBQWM7a0JBeEIxQixTQUFTOytCQUNJLHVCQUF1QixZQUN2Qjs7Ozs7Ozs7Ozs7OztHQWFYO2lHQVdVLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgJ2pxdWVyeSc7XG5pbXBvcnQgKiBhcyBfVG9hc3QgZnJvbSAnYm9vdHN0cmFwL2pzL2Rpc3QvdG9hc3QnO1xuY29uc3QgVG9hc3QgPSAoX1RvYXN0IGFzIGFueSkuZGVmYXVsdCB8fCBfVG9hc3Q7XG4vKipcbiAqXG4gKiBBIG5hdGl2ZSBzcGlubmVyIGNvbXBvbmVudFxuICogQGV4cG9ydFxuICogQGNsYXNzIFNwaW5uZXJDb21wb25lbnRcbiAqIEBpbXBsZW1lbnRzIHtPbkluaXR9XG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndW5pdmVyc2lzLXRvYXN0LnRvYXN0JyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b2FzdC1oZWFkZXIgZC1mbGV4IHAtMFwiPlxuICAgICAgICAgICAgICAgICAgPHN0cm9uZyBjbGFzcz1cIm1yLWF1dG9cIj57eyB0aXRsZSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJtbC0yIG1iLTEgYWxpZ24tc2VsZi1zdGFydCBjbG9zZVwiIGRhdGEtZGlzbWlzcz1cInRvYXN0XCIgKGNsaWNrKT1cImhpZGUoKTtcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+JnRpbWVzOzwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9hc3QtYm9keSBwLTBcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b2FzdC1ib2R5LWNvbnRlbnRcIiBbaW5uZXJIVE1MXT1cIm1lc3NhZ2VcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9hc3QtaGVhZGVyIHAtMFwiPlxuICAgICAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPVwidG9hc3QtZGF0ZVwiPnt7IGRhdGVDcmVhdGVkIHwgZGF0ZTogJ3Nob3J0VGltZSd9fTwvc21hbGw+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gIGAsXG4gICAgc3R5bGVzOiBbXG4gICAgICAgIGA6aG9zdCB7XG4gICAgICAgICAgICB6LWluZGV4OiBhdXRvO1xuICAgICAgICB9YFxuICAgIF1cbn0pXG5cblxuZXhwb3J0IGNsYXNzIFRvYXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcblxuICAgIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgbWVzc2FnZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIGF1dG9IaWRlID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBkZWxheSA9IDUwMDA7XG4gICAgcHVibGljIGRhdGVDcmVhdGVkID0gbmV3IERhdGUoKTtcblxuICAgIHByaXZhdGUgdG9hc3Q6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2VsZW1lbnQ6IEVsZW1lbnRSZWYpIHsgfVxuXG4gICAgbmdPbkluaXQoKSB7XG5cbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICB0aGlzLnRvYXN0ID0gbmV3IFRvYXN0KHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudCwge1xuICAgICAgICBhbmltYXRpb246IGZhbHNlLFxuICAgICAgICBhdXRvaGlkZTogdGhpcy5hdXRvSGlkZSxcbiAgICAgICAgZGVsYXk6IHRoaXMuZGVsYXlcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHRoaXMudG9hc3Quc2hvdygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzaG93KCkge1xuICAgICAgICBpZiAodGhpcy50b2FzdCkge1xuICAgICAgICAgICAgdGhpcy50b2FzdC5zaG93KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgaGlkZSgpIHtcbiAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmJvZHkuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgndW5pdmVyc2lzLXRvYXN0LWNvbnRhaW5lcicpWzBdO1xuICAgICAgaWYgKGNvbnRhaW5lci5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdzaG93JykubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIGNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCdoaWRkZW4nKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMudG9hc3QpIHtcbiAgICAgICAgdGhpcy50b2FzdC5oaWRlKCk7XG4gICAgICB9XG4gICAgfVxufVxuIl19