@c-standard/angular-devui-extension
Version:
an extensional components lib for devui
54 lines • 7.43 kB
JavaScript
import { Injectable, } from '@angular/core';
import { NotifyComponent } from './notify.component';
import * as i0 from "@angular/core";
export class NotifyService {
constructor(
// todo 修改
componentFactoryResolver, appRef, injector) {
this.componentFactoryResolver = componentFactoryResolver;
this.appRef = appRef;
this.injector = injector;
}
notify(options) {
const data = {
message: options?.message,
type: options?.type,
};
// 1. Create a component reference from the component
const componentRef = this.componentFactoryResolver
.resolveComponentFactory(NotifyComponent)
.create(this.injector);
componentRef.instance.data = data;
// 2. Attach component to the appRef so that it's inside the ng component tree
this.appRef.attachView(componentRef.hostView);
// 3. Get DOM element from component
const domElem = componentRef.hostView.rootNodes[0];
// 4. Append DOM element to the body
document.body.appendChild(domElem);
// 6. Wait some time and remove it from the component tree and from the DOM
setTimeout(() => {
if (componentRef) {
this.appRef.detachView(componentRef.hostView);
componentRef.destroy();
}
}, options?.delay || 1000);
}
warring(message) {
this.notify({ type: 'warning', message: message });
}
success(message) {
this.notify({ type: 'success', message: message });
}
error(message) {
this.notify({ type: 'danger', message: message });
}
}
NotifyService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: NotifyService, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.ApplicationRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
NotifyService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: NotifyService, providedIn: 'root' });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: NotifyService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root',
}]
}], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i0.ApplicationRef }, { type: i0.Injector }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZ5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL25vdGlmeS9ub3RpZnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBSUgsVUFBVSxHQUViLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFLckQsTUFBTSxPQUFPLGFBQWE7SUFDdEI7SUFDSSxVQUFVO0lBQ0Ysd0JBQWtELEVBQ2xELE1BQXNCLEVBQ3RCLFFBQWtCO1FBRmxCLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbEQsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUMzQixDQUFDO0lBRUosTUFBTSxDQUFDLE9BQXVCO1FBQzFCLE1BQU0sSUFBSSxHQUFRO1lBQ2QsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPO1lBQ3pCLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSTtTQUN0QixDQUFDO1FBQ0YscURBQXFEO1FBQ3JELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyx3QkFBd0I7YUFDN0MsdUJBQXVCLENBQUMsZUFBZSxDQUFDO2FBQ3hDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFM0IsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2xDLDhFQUE4RTtRQUM5RSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFOUMsb0NBQW9DO1FBQ3BDLE1BQU0sT0FBTyxHQUFJLFlBQVksQ0FBQyxRQUFpQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQWdCLENBQUM7UUFFNUYsb0NBQW9DO1FBQ3BDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRW5DLDJFQUEyRTtRQUMzRSxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxZQUFZLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM5QyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDMUI7UUFDTCxDQUFDLEVBQUUsT0FBTyxFQUFFLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsT0FBTyxDQUFDLE9BQWdCO1FBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxPQUFPLENBQUMsT0FBZ0I7UUFDcEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFnQjtRQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUN0RCxDQUFDOzswR0EvQ1EsYUFBYTs4R0FBYixhQUFhLGNBRlYsTUFBTTsyRkFFVCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBBcHBsaWNhdGlvblJlZixcclxuICAgIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgIEVtYmVkZGVkVmlld1JlZixcclxuICAgIEluamVjdGFibGUsXHJcbiAgICBJbmplY3RvcixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTm90aWZ5T3B0aW9ucyB9IGZyb20gJy4vbm90aWZ5JztcclxuaW1wb3J0IHsgTm90aWZ5Q29tcG9uZW50IH0gZnJvbSAnLi9ub3RpZnkuY29tcG9uZW50JztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5vdGlmeVNlcnZpY2Uge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgLy8gdG9kbyDkv67mlLlcclxuICAgICAgICBwcml2YXRlIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgICAgIHByaXZhdGUgYXBwUmVmOiBBcHBsaWNhdGlvblJlZixcclxuICAgICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvclxyXG4gICAgKSB7fVxyXG5cclxuICAgIG5vdGlmeShvcHRpb25zPzogTm90aWZ5T3B0aW9ucykge1xyXG4gICAgICAgIGNvbnN0IGRhdGE6IGFueSA9IHtcclxuICAgICAgICAgICAgbWVzc2FnZTogb3B0aW9ucz8ubWVzc2FnZSxcclxuICAgICAgICAgICAgdHlwZTogb3B0aW9ucz8udHlwZSxcclxuICAgICAgICB9O1xyXG4gICAgICAgIC8vIDEuIENyZWF0ZSBhIGNvbXBvbmVudCByZWZlcmVuY2UgZnJvbSB0aGUgY29tcG9uZW50XHJcbiAgICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJcclxuICAgICAgICAgICAgLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KE5vdGlmeUNvbXBvbmVudClcclxuICAgICAgICAgICAgLmNyZWF0ZSh0aGlzLmluamVjdG9yKTtcclxuXHJcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmRhdGEgPSBkYXRhO1xyXG4gICAgICAgIC8vIDIuIEF0dGFjaCBjb21wb25lbnQgdG8gdGhlIGFwcFJlZiBzbyB0aGF0IGl0J3MgaW5zaWRlIHRoZSBuZyBjb21wb25lbnQgdHJlZVxyXG4gICAgICAgIHRoaXMuYXBwUmVmLmF0dGFjaFZpZXcoY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcclxuXHJcbiAgICAgICAgLy8gMy4gR2V0IERPTSBlbGVtZW50IGZyb20gY29tcG9uZW50XHJcbiAgICAgICAgY29uc3QgZG9tRWxlbSA9IChjb21wb25lbnRSZWYuaG9zdFZpZXcgYXMgRW1iZWRkZWRWaWV3UmVmPGFueT4pLnJvb3ROb2Rlc1swXSBhcyBIVE1MRWxlbWVudDtcclxuXHJcbiAgICAgICAgLy8gNC4gQXBwZW5kIERPTSBlbGVtZW50IHRvIHRoZSBib2R5XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb21FbGVtKTtcclxuXHJcbiAgICAgICAgLy8gNi4gV2FpdCBzb21lIHRpbWUgYW5kIHJlbW92ZSBpdCBmcm9tIHRoZSBjb21wb25lbnQgdHJlZSBhbmQgZnJvbSB0aGUgRE9NXHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChjb21wb25lbnRSZWYpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYXBwUmVmLmRldGFjaFZpZXcoY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcclxuICAgICAgICAgICAgICAgIGNvbXBvbmVudFJlZi5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LCBvcHRpb25zPy5kZWxheSB8fCAxMDAwKTtcclxuICAgIH1cclxuXHJcbiAgICB3YXJyaW5nKG1lc3NhZ2U/OiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLm5vdGlmeSh7IHR5cGU6ICd3YXJuaW5nJywgbWVzc2FnZTogbWVzc2FnZSB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzdWNjZXNzKG1lc3NhZ2U/OiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLm5vdGlmeSh7IHR5cGU6ICdzdWNjZXNzJywgbWVzc2FnZTogbWVzc2FnZSB9KTtcclxuICAgIH1cclxuXHJcbiAgICBlcnJvcihtZXNzYWdlPzogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5ub3RpZnkoeyB0eXBlOiAnZGFuZ2VyJywgbWVzc2FnZTogbWVzc2FnZSB9KTtcclxuICAgIH1cclxufVxyXG4iXX0=