ngx-toast-notify
Version:
Push notifications to your visitors with a toast, a lightweight and easily customizable alert message with custom theme based.
1 lines • 17.6 kB
Source Map (JSON)
{"version":3,"file":"ngx-toast-notify.mjs","sources":["../../../projects/ngx-toast-notify/src/lib/ngx-toast-notify.service.ts","../../../projects/ngx-toast-notify/src/lib/ngx-toast-notify.component.ts","../../../projects/ngx-toast-notify/src/lib/ngx-toast-notify.module.ts","../../../projects/ngx-toast-notify/src/public-api.ts","../../../projects/ngx-toast-notify/src/ngx-toast-notify.ts"],"sourcesContent":["import { animate, AnimationBuilder, style } from '@angular/animations';\nimport {\n Injectable,\n Optional,\n Renderer2,\n RendererFactory2,\n} from '@angular/core';\ninterface THEME {\n color: string;\n text: string;\n}\n@Injectable({\n providedIn: 'root',\n})\nexport class NgxToastNotifyService {\n private renderer: Renderer2;\n constructor(\n public rendererFactory: RendererFactory2,\n private animationBuilder: AnimationBuilder\n ) {\n this.renderer = rendererFactory.createRenderer(null, null);\n }\n\n /**\n * showToast: Creates toast notification.\n * @param text: Toast text to be shown. - String\n * @param mode: Toast appearance as - primary | warning | danger | success | info - String\n * @param position: Toast position at - top-left | top-right | bottom-left | bottom-right | top-center | bottom=\n */\n public showToast(text: string, mode: string, position: string) {\n let alertContainer = this.renderer.createElement('div'); // Set the id of the div\n this.renderer.setProperty(\n alertContainer,\n 'id',\n 'ngx-toast-notify-container-' + Math.random()\n ); // Append the created div to the body element\n\n this.renderer.appendChild(document.body, alertContainer);\n this.renderer.setStyle(alertContainer, 'visibility', 'hidden');\n this.renderer.setStyle(alertContainer, 'width', '275px');\n this.renderer.setStyle(\n alertContainer,\n 'background-color', this.getTheme(mode).color\n );\n this.renderer.setStyle(\n alertContainer,\n 'color', this.getTheme(mode).text\n );\n this.renderer.setStyle(alertContainer, 'text-align', 'left');\n this.renderer.setStyle(alertContainer, 'border-radius', '5px');\n this.renderer.setStyle(alertContainer, 'padding', '16px');\n this.renderer.setStyle(alertContainer, 'z-index', '1');\n this.renderer.setStyle(alertContainer, 'position', 'fixed');\n this.renderer.setStyle(alertContainer, 'height', 'fit-content');\n this.renderer.setStyle(alertContainer, 'line-height', '1.5rem');\n this.renderer.setStyle(alertContainer, 'display', 'flex');\n this.renderer.setStyle(alertContainer, 'align-items', 'center');\n this.renderer.setStyle(alertContainer, 'justify-content', 'space-between');\n this.renderer.setStyle(\n alertContainer,\n 'box-shadow',\n '0px 0px 10px 2px #d9d9d9'\n );\n\n const loaderFadeInAnimation = this.animationBuilder.build([\n style({ opacity: 0 }),\n animate(500, style({ opacity: 1 })\n ),\n ]);\n\n const loaderFadeOutAnimation = this.animationBuilder.build([\n style({ opacity: 1 }),\n animate(500, style({ opacity: 0 })\n ),\n ]);\n\n const loaderFadeInAnimationPlayer =\n loaderFadeInAnimation.create(alertContainer);\n const loaderFadeOutAnimationPlayer =\n loaderFadeOutAnimation.create(alertContainer);\n\n loaderFadeInAnimationPlayer.play();\n\n this.setPosition(position, alertContainer);\n this.renderer.setProperty(alertContainer, 'innerHTML', text);\n this.renderer.setStyle(alertContainer, 'visibility', 'visible');\n\n let closeButton = this.renderer.createElement('div');\n this.renderer.setProperty(\n closeButton,\n 'id',\n 'ngx-toast-notify-close-svg-' + Math.random()\n );\n this.renderer.setStyle(closeButton, 'display', 'flex');\n this.renderer.setStyle(closeButton, 'padding', '0.25rem 0.5rem');\n this.renderer.setProperty(\n closeButton,\n 'innerHTML',\n `<svg style=\"cursor:pointer\" xmlns=\"http://www.w3.org/this.config.animationDelayInMilliSeconds0/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" aria-hidden=\"true\" role=\"img\" width=\"1em\" height=\"1em\" preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 1536 1536\"><path d=\"M1149 994q0-26-19-45L949 768l181-181q19-19 19-45q0-27-19-46l-90-90q-19-19-46-19q-26 0-45 19L768 587L587 406q-19-19-45-19q-27 0-46 19l-90 90q-19 19-19 46q0 26 19 45l181 181l-181 181q-19 19-19 45q0 27 19 46l90 90q19 19 46 19q26 0 45-19l181-181l181 181q19 19 45 19q27 0 46-19l90-90q19-19 19-46zm387-226q0 209-103 385.5T1153.5 1433T768 1536t-385.5-103T103 1153.5T0 768t103-385.5T382.5 103T768 0t385.5 103T1433 382.5T1536 768z\" fill=\"currentColor\"/></svg>`\n );\n this.renderer.appendChild(alertContainer, closeButton);\n\n this.renderer.listen(closeButton, 'click', (event) => {\n loaderFadeOutAnimationPlayer.play();\n setTimeout(\n () => {\n this.renderer.removeChild(document.body, alertContainer);\n this.renderer.destroy();\n alertContainer.remove();\n },\n 500\n );\n });\n\n setTimeout(() => {\n loaderFadeOutAnimationPlayer.play();\n setTimeout(\n () => {\n this.renderer.removeChild(document.body, alertContainer);\n this.renderer.destroy();\n alertContainer.remove();\n },\n 500\n );\n }, 1000 * 5);\n }\n\n private getTheme(mode: string = 'primary'): THEME {\n mode = mode.toLocaleLowerCase();\n switch (mode) {\n case 'primary':\n return {\n color: '#0275d8',\n text: '#fff',\n };\n case 'success':\n return {\n color: '#5cb85c',\n text: '#fff',\n };\n case 'info':\n return {\n color: '#5bc0de',\n text: '#fff',\n };\n case 'warning':\n return {\n color: '#f0ad4e',\n text: '#fff',\n };\n case 'danger':\n return {\n color: '#d9534f',\n text: '#fff',\n };\n case 'light':\n return {\n color: '#fff',\n text: '#000',\n };\n case 'dark':\n return {\n color: '#000',\n text: '#fff',\n };\n default:\n return {\n color: '#000',\n text: '#fff',\n };\n }\n }\n\n private setPosition(position: string = 'bottom-right', alertContainer: any) {\n position = position.toLocaleLowerCase();\n if (position === 'top-left') {\n this.renderer.setStyle(alertContainer, 'top', '0px');\n this.renderer.setStyle(alertContainer, 'left', '0px');\n this.renderer.setStyle(alertContainer, 'margin', '1.5rem');\n } else if (position === 'top-right') {\n this.renderer.setStyle(alertContainer, 'top', '0px');\n this.renderer.setStyle(alertContainer, 'right', '0px');\n this.renderer.setStyle(alertContainer, 'margin', '1.5rem');\n } else if (position === 'bottom-left') {\n this.renderer.setStyle(alertContainer, 'bottom', '0px');\n this.renderer.setStyle(alertContainer, 'left', '0px');\n this.renderer.setStyle(alertContainer, 'margin', '1.5rem');\n } else if (position === 'bottom-right') {\n this.renderer.setStyle(alertContainer, 'bottom', '0px');\n this.renderer.setStyle(alertContainer, 'right', '0px');\n this.renderer.setStyle(alertContainer, 'margin', '1.5rem');\n } else if (position === 'top-center') {\n this.renderer.setStyle(alertContainer, 'top', '0px');\n this.renderer.setStyle(alertContainer, 'left', '50%');\n this.renderer.setStyle(alertContainer, 'margin-top', '1.5rem');\n this.renderer.setStyle(alertContainer, 'transform', 'translateX(-50%)');\n } else if (position === 'bottom-center') {\n this.renderer.setStyle(alertContainer, 'bottom', '0px');\n this.renderer.setStyle(alertContainer, 'left', '50%');\n this.renderer.setStyle(alertContainer, 'margin-bottom', '1.5rem');\n this.renderer.setStyle(alertContainer, 'transform', 'translateX(-50%)');\n } else {\n this.renderer.setStyle(alertContainer, 'bottom', '0px');\n this.renderer.setStyle(alertContainer, 'right', '0px');\n this.renderer.setStyle(alertContainer, 'margin', '1.5rem');\n }\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'lib-ngx-toast-notify',\n template: `\n <p>\n ngx-toast-notify works!\n </p>\n `,\n styles: [\n ]\n})\nexport class NgxToastNotifyComponent {\n\n}\n","import {\n ModuleWithProviders,\n NgModule,\n Optional,\n SkipSelf,\n} from '@angular/core';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\n\n@NgModule({\n declarations: [],\n imports: [BrowserAnimationsModule],\n exports: [],\n})\nexport class NgxToastNotifyModule {\n constructor(@Optional() @SkipSelf() parentModule?: NgxToastNotifyModule) {\n if (parentModule) {\n throw new Error(\n 'NgxToastNotifyModule is already loaded. Import it in the AppModule only'\n );\n }\n }\n}\n","/*\n * Public API Surface of ngx-toast-notify\n */\n\nexport * from './lib/ngx-toast-notify.service';\nexport * from './lib/ngx-toast-notify.component';\nexport * from './lib/ngx-toast-notify.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}