truly-ui
Version:
Web Components for Desktop Applications.
96 lines (94 loc) • 13.6 kB
JavaScript
/*
MIT License
Copyright (c) 2019 Temainfo Sistemas
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
import { Injectable, } from '@angular/core';
import { Toaster } from '../parts/model/toaster';
import { TlToasterContainer } from '../toaster-container';
import * as i0 from "@angular/core";
let uniqueId = 0;
export class ToasterService {
constructor(app, injector, compiler) {
this.app = app;
this.injector = injector;
this.compiler = compiler;
this.listToasters = [];
}
createToaster(toasterConfig) {
if (!this.toasterContainer) {
this.toasterContainer = this.compiler.resolveComponentFactory(TlToasterContainer).create(this.injector);
this.toasterContainer.instance.toasterService = this;
this.app.attachView(this.toasterContainer.hostView);
const domElem = this.toasterContainer.hostView
.rootNodes[0];
document.body.appendChild(domElem);
}
this.toasterContainer.instance.position = toasterConfig.position;
this.toasterContainer.instance.width = toasterConfig.width;
this.toaster = new Toaster();
this.toaster = Object.assign(this.toaster, toasterConfig);
}
success(toasterConfig) {
this.createToaster(toasterConfig);
this.toaster.icon = 'ion ion-ios-checkmark-circle-outline';
this.toaster.color = 'success';
this.toaster.id = 'toaster-sucess-' + uniqueId++;
this.addToaster();
}
information(toasterConfig) {
this.createToaster(toasterConfig);
this.toaster.icon = 'ion ion-ios-information-circle-outline';
this.toaster.color = 'information';
this.toaster.id = 'toaster-information-' + uniqueId++;
this.addToaster();
}
danger(toasterConfig) {
this.createToaster(toasterConfig);
this.toaster.icon = 'ion ion-ios-close-circle-outline';
this.toaster.color = 'danger';
this.toaster.id = 'toaster-danger-' + uniqueId++;
this.addToaster();
}
warning(toasterConfig) {
this.createToaster(toasterConfig);
this.toaster.icon = 'ion ion-ios-warning';
this.toaster.color = 'warning';
this.toaster.id = 'toaster-warning-' + uniqueId++;
this.addToaster();
}
addToaster() {
this.listToasters = [...this.listToasters, this.toaster];
}
close(id) {
this.listToasters.forEach((item) => {
if (item.id === id) {
item.closed = true;
}
});
this.listToasters = this.listToasters.filter((item) => item.id !== id);
}
getListToasters() {
return this.listToasters;
}
}
/** @nocollapse */ ToasterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ToasterService, deps: [{ token: i0.ApplicationRef }, { token: i0.Injector }, { token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Injectable });
/** @nocollapse */ ToasterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ToasterService });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ToasterService, decorators: [{
type: Injectable
}], ctorParameters: function () { return [{ type: i0.ApplicationRef }, { type: i0.Injector }, { type: i0.ComponentFactoryResolver }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Rlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJ1bHktdWkvc3JjL2NvbXBvbmVudHMvdG9hc3Rlci9zZXJ2aWNlcy90b2FzdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBQ0gsT0FBTyxFQUVMLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBRTFELElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztBQUdqQixNQUFNLE9BQU8sY0FBYztJQVF6QixZQUFxQixHQUFtQixFQUFVLFFBQWtCLEVBQVUsUUFBa0M7UUFBM0YsUUFBRyxHQUFILEdBQUcsQ0FBZ0I7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBMEI7UUFOeEcsaUJBQVksR0FBRyxFQUFFLENBQUM7SUFPMUIsQ0FBQztJQUVELGFBQWEsQ0FBRSxhQUE0QjtRQUN6QyxJQUFLLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFHO1lBQzVCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLHVCQUF1QixDQUFFLGtCQUFrQixDQUFFLENBQUMsTUFBTSxDQUFFLElBQUksQ0FBQyxRQUFRLENBQUUsQ0FBQztZQUM1RyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7WUFDckQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBRSxDQUFDO1lBRXRELE1BQU0sT0FBTyxHQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFrQztpQkFD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QUM3RSxDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDOzsrSEExRVUsY0FBYzttSUFBZCxjQUFjOzRGQUFkLGNBQWM7a0JBRDFCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuIE1JVCBMaWNlbnNlXG5cbiBDb3B5cmlnaHQgKGMpIDIwMTkgVGVtYWluZm8gU2lzdGVtYXNcblxuIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbFxuIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFXG4gU09GVFdBUkUuXG4gKi9cbmltcG9ydCB7XG4gIEFwcGxpY2F0aW9uUmVmLCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIENvbXBvbmVudFJlZiwgRW1iZWRkZWRWaWV3UmVmLFxuICBJbmplY3RhYmxlLCBJbmplY3Rvcixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUb2FzdGVyQ29uZmlnIH0gZnJvbSAnLi4vdG9hc3Rlci1jb25maWcnO1xuaW1wb3J0IHsgVG9hc3RlciB9IGZyb20gJy4uL3BhcnRzL21vZGVsL3RvYXN0ZXInO1xuaW1wb3J0IHsgVGxUb2FzdGVyQ29udGFpbmVyIH0gZnJvbSAnLi4vdG9hc3Rlci1jb250YWluZXInO1xuXG5sZXQgdW5pcXVlSWQgPSAwO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVG9hc3RlclNlcnZpY2Uge1xuXG4gIHByaXZhdGUgbGlzdFRvYXN0ZXJzID0gW107XG5cbiAgcHJpdmF0ZSB0b2FzdGVyOiBUb2FzdGVyO1xuXG4gIHByaXZhdGUgdG9hc3RlckNvbnRhaW5lcjogQ29tcG9uZW50UmVmPFRsVG9hc3RlckNvbnRhaW5lcj47XG5cbiAgY29uc3RydWN0b3IoIHByaXZhdGUgYXBwOiBBcHBsaWNhdGlvblJlZiwgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsIHByaXZhdGUgY29tcGlsZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciApIHtcbiAgfVxuXG4gIGNyZWF0ZVRvYXN0ZXIoIHRvYXN0ZXJDb25maWc6IFRvYXN0ZXJDb25maWcgKSB7XG4gICAgaWYgKCAhdGhpcy50b2FzdGVyQ29udGFpbmVyICkge1xuICAgICAgdGhpcy50b2FzdGVyQ29udGFpbmVyID0gdGhpcy5jb21waWxlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeSggVGxUb2FzdGVyQ29udGFpbmVyICkuY3JlYXRlKCB0aGlzLmluamVjdG9yICk7XG4gICAgICB0aGlzLnRvYXN0ZXJDb250YWluZXIuaW5zdGFuY2UudG9hc3RlclNlcnZpY2UgPSB0aGlzO1xuICAgICAgdGhpcy5hcHAuYXR0YWNoVmlldyggdGhpcy50b2FzdGVyQ29udGFpbmVyLmhvc3RWaWV3ICk7XG5cbiAgICAgIGNvbnN0IGRvbUVsZW0gPSAodGhpcy50b2FzdGVyQ29udGFpbmVyLmhvc3RWaWV3IGFzIEVtYmVkZGVkVmlld1JlZjxhbnk+IClcbiAgICAgICAgLnJvb3ROb2Rlc1sgMCBdIGFzIEhUTUxFbGVtZW50O1xuICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCggZG9tRWxlbSApO1xuICAgIH1cbiAgICB0aGlzLnRvYXN0ZXJDb250YWluZXIuaW5zdGFuY2UucG9zaXRpb24gPSB0b2FzdGVyQ29uZmlnLnBvc2l0aW9uO1xuICAgIHRoaXMudG9hc3RlckNvbnRhaW5lci5pbnN0YW5jZS53aWR0aCA9IHRvYXN0ZXJDb25maWcud2lkdGg7XG4gICAgdGhpcy50b2FzdGVyID0gbmV3IFRvYXN0ZXIoKTtcbiAgICB0aGlzLnRvYXN0ZXIgPSBPYmplY3QuYXNzaWduKCB0aGlzLnRvYXN0ZXIsIHRvYXN0ZXJDb25maWcgKTtcbiAgfVxuXG4gIHN1Y2Nlc3MoIHRvYXN0ZXJDb25maWc6IFRvYXN0ZXJDb25maWcgKSB7XG4gICAgdGhpcy5jcmVhdGVUb2FzdGVyKCB0b2FzdGVyQ29uZmlnICk7XG4gICAgdGhpcy50b2FzdGVyLmljb24gPSAnaW9uIGlvbi1pb3MtY2hlY2ttYXJrLWNpcmNsZS1vdXRsaW5lJztcbiAgICB0aGlzLnRvYXN0ZXIuY29sb3IgPSAnc3VjY2Vzcyc7XG4gICAgdGhpcy50b2FzdGVyLmlkID0gJ3RvYXN0ZXItc3VjZXNzLScgKyB1bmlxdWVJZCsrO1xuICAgIHRoaXMuYWRkVG9hc3RlcigpO1xuICB9XG5cbiAgaW5mb3JtYXRpb24oIHRvYXN0ZXJDb25maWc6IFRvYXN0ZXJDb25maWcgKSB7XG4gICAgdGhpcy5jcmVhdGVUb2FzdGVyKCB0b2FzdGVyQ29uZmlnICk7XG4gICAgdGhpcy50b2FzdGVyLmljb24gPSAnaW9uIGlvbi1pb3MtaW5mb3JtYXRpb24tY2lyY2xlLW91dGxpbmUnO1xuICAgIHRoaXMudG9hc3Rlci5jb2xvciA9ICdpbmZvcm1hdGlvbic7XG4gICAgdGhpcy50b2FzdGVyLmlkID0gJ3RvYXN0ZXItaW5mb3JtYXRpb24tJyArIHVuaXF1ZUlkKys7XG4gICAgdGhpcy5hZGRUb2FzdGVyKCk7XG4gIH1cblxuICBkYW5nZXIoIHRvYXN0ZXJDb25maWc6IFRvYXN0ZXJDb25maWcgKSB7XG4gICAgdGhpcy5jcmVhdGVUb2FzdGVyKCB0b2FzdGVyQ29uZmlnICk7XG4gICAgdGhpcy50b2FzdGVyLmljb24gPSAnaW9uIGlvbi1pb3MtY2xvc2UtY2lyY2xlLW91dGxpbmUnO1xuICAgIHRoaXMudG9hc3Rlci5jb2xvciA9ICdkYW5nZXInO1xuICAgIHRoaXMudG9hc3Rlci5pZCA9ICd0b2FzdGVyLWRhbmdlci0nICsgdW5pcXVlSWQrKztcbiAgICB0aGlzLmFkZFRvYXN0ZXIoKTtcbiAgfVxuXG4gIHdhcm5pbmcoIHRvYXN0ZXJDb25maWc6IFRvYXN0ZXJDb25maWcgKSB7XG4gICAgdGhpcy5jcmVhdGVUb2FzdGVyKCB0b2FzdGVyQ29uZmlnICk7XG4gICAgdGhpcy50b2FzdGVyLmljb24gPSAnaW9uIGlvbi1pb3Mtd2FybmluZyc7XG4gICAgdGhpcy50b2FzdGVyLmNvbG9yID0gJ3dhcm5pbmcnO1xuICAgIHRoaXMudG9hc3Rlci5pZCA9ICd0b2FzdGVyLXdhcm5pbmctJyArIHVuaXF1ZUlkKys7XG4gICAgdGhpcy5hZGRUb2FzdGVyKCk7XG4gIH1cblxuICBwcml2YXRlIGFkZFRvYXN0ZXIoKSB7XG4gICAgdGhpcy5saXN0VG9hc3RlcnMgPSBbIC4uLnRoaXMubGlzdFRvYXN0ZXJzLCB0aGlzLnRvYXN0ZXIgXTtcbiAgfVxuXG4gIGNsb3NlKCBpZDogc3RyaW5nICkge1xuICAgIHRoaXMubGlzdFRvYXN0ZXJzLmZvckVhY2goICggaXRlbSApID0+IHtcbiAgICAgIGlmICggaXRlbS5pZCA9PT0gaWQgKSB7XG4gICAgICAgIGl0ZW0uY2xvc2VkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9ICk7XG4gICAgdGhpcy5saXN0VG9hc3RlcnMgPSB0aGlzLmxpc3RUb2FzdGVycy5maWx0ZXIoICggaXRlbSApID0+IGl0ZW0uaWQgIT09IGlkICk7XG4gIH1cblxuICBnZXRMaXN0VG9hc3RlcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMubGlzdFRvYXN0ZXJzO1xuICB9XG5cbn1cbiJdfQ==