UNPKG

flexi-toast

Version:

Lightweight, customizable Angular toast notification component with title, message, icon types, auto-dismiss, manual close, animations, theme and positioning support.

1 lines 24.2 kB
{"version":3,"file":"flexi-toast.mjs","sources":["../../../library/src/lib/flexi-toast.service.ts","../../../library/src/flexi-toast.ts"],"sourcesContent":["import { Injectable, Renderer2, RendererFactory2 } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FlexiToastService {\r\n options: FlexiToastOptionsModel = new FlexiToastOptionsModel();\r\n\r\n private renderer: Renderer2;\r\n\r\n constructor(rendererFactory: RendererFactory2) {\r\n this.renderer = rendererFactory.createRenderer(null, null);\r\n }\r\n\r\n showToast(title: string, text: string, icon: FlexiToastIconType = \"success\", options?: FlexiToastOptionsModel) {\r\n if (!options) {\r\n options = this.options;\r\n }\r\n\r\n options.icon = icon;\r\n\r\n let wrapper = document.querySelector(\".flexi-toast-wrapper\");\r\n if (!wrapper) {\r\n wrapper = this.renderer.createElement('div');\r\n this.renderer.addClass(wrapper, `flexi-toast-wrapper`);\r\n this.renderer.addClass(wrapper, `flexi-taost-${options.position}`);\r\n const body = this.renderer.selectRootElement('body', true);\r\n this.renderer.appendChild(body, wrapper);\r\n } else {\r\n wrapper.className = `flexi-toast-wrapper flexi-taost-${options.position}`;\r\n\r\n if (options.preventDuplicate) {\r\n const allEl: any = document.querySelectorAll(\".flexi-toast\");\r\n if (allEl) {\r\n for (const el of allEl) {\r\n this.renderer.removeChild(wrapper, el);\r\n }\r\n }\r\n }\r\n }\r\n\r\n const toast = this.renderer.createElement('div');\r\n this.renderer.addClass(toast, 'flexi-toast');\r\n this.renderer.addClass(toast, `flexi-toast-${options.icon}`);\r\n this.renderer.setAttribute(toast, `data-bs-theme`, options.themeClass!)\r\n\r\n if (!options.showToastCloseBtn) {\r\n this.renderer.listen(toast, 'click', () => {\r\n this.renderer.removeClass(toast, 'flexi-toast-fade-in');\r\n this.renderer.addClass(toast, 'flexi-toast-fade-out');\r\n setTimeout(() => {\r\n this.renderer.removeChild(wrapper, toast);\r\n }, 500);\r\n });\r\n }\r\n\r\n const container = this.renderer.createElement('div');\r\n this.renderer.addClass(container, 'flexi-toast-container');\r\n\r\n const container1 = this.renderer.createElement('div');\r\n this.renderer.addClass(container1, 'flexi-toast-container-1');\r\n\r\n // SVG ikonu eklemek\r\n const svgIcon = this.renderer.createElement('svg', 'http://www.w3.org/2000/svg');\r\n this.renderer.setAttribute(svgIcon, 'xmlns', 'http://www.w3.org/2000/svg');\r\n this.renderer.setAttribute(svgIcon, 'viewBox', '0 0 512 512');\r\n\r\n const path = this.renderer.createElement('path', 'http://www.w3.org/2000/svg');\r\n if (options.icon === \"success\") {\r\n this.renderer.setAttribute(path, 'd', 'M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM227.3 387.3l184-184c6.2-6.2 6.2-16.4 0-22.6l-22.6-22.6c-6.2-6.2-16.4-6.2-22.6 0L216 308.1l-70.1-70.1c-6.2-6.2-16.4-6.2-22.6 0l-22.6 22.6c-6.2 6.2-6.2 16.4 0 22.6l104 104c6.2 6.2 16.4 6.2 22.6 0z');\r\n } else if (options.icon === \"warning\") {\r\n this.renderer.setAttribute(path, 'd', 'M504 256c0 137-111 248-248 248S8 393 8 256C8 119.1 119 8 256 8s248 111.1 248 248zm-248 50c-25.4 0-46 20.6-46 46s20.6 46 46 46 46-20.6 46-46-20.6-46-46-46zm-43.7-165.3l7.4 136c.3 6.4 5.6 11.3 12 11.3h48.5c6.4 0 11.6-5 12-11.3l7.4-136c.4-6.9-5.1-12.7-12-12.7h-63.4c-6.9 0-12.4 5.8-12 12.7z');\r\n } else if (options.icon === \"info\") {\r\n this.renderer.setAttribute(path, 'd', 'M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336h24V272H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h48c13.3 0 24 10.7 24 24v88h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H216c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-208a32 32 0 1 1 0 64 32 32 0 1 1 0-64z');\r\n } else if (options.icon === \"error\") {\r\n this.renderer.setAttribute(path, 'd', 'M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z');\r\n }\r\n\r\n this.renderer.appendChild(svgIcon, path);\r\n this.renderer.appendChild(container1, svgIcon);\r\n\r\n const container2 = this.renderer.createElement('div');\r\n this.renderer.addClass(container2, 'flexi-toast-container-2');\r\n\r\n const titleEl = this.renderer.createElement('span');\r\n const titleText = this.renderer.createText(title);\r\n this.renderer.appendChild(titleEl, titleText);\r\n\r\n const message = this.renderer.createElement('span');\r\n message.innerHTML = text;\r\n\r\n this.renderer.appendChild(container2, titleEl);\r\n this.renderer.appendChild(container2, message);\r\n\r\n this.renderer.appendChild(container, container1);\r\n this.renderer.appendChild(container, container2);\r\n\r\n if (options.autoClose && options.showProgressBar) {\r\n const progressBar = this.renderer.createElement('div');\r\n this.renderer.addClass(progressBar, 'flexi-toast-progress-bar');\r\n this.renderer.addClass(progressBar, `flex-toast-progress-bar-${options.icon}`)\r\n this.renderer.appendChild(toast, progressBar);\r\n\r\n // Add animation to progress bar\r\n this.renderer.setStyle(progressBar, 'transition', `width ${options.timeOut}ms linear`);\r\n this.renderer.setStyle(progressBar, 'width', '100%');\r\n setTimeout(() => {\r\n this.renderer.setStyle(progressBar, 'width', '0%');\r\n }, 10);\r\n }\r\n\r\n this.renderer.appendChild(toast, container);\r\n\r\n if (options.showToastCloseBtn) {\r\n const closeBtn = this.renderer.createElement('span');\r\n this.renderer.addClass(closeBtn, 'flexi-toast-close-btn');\r\n const closeText = this.renderer.createText('×');\r\n this.renderer.appendChild(closeBtn, closeText);\r\n\r\n this.renderer.listen(closeBtn, 'click', () => {\r\n this.renderer.removeClass(toast, 'flexi-toast-fade-in');\r\n this.renderer.addClass(toast, 'flexi-toast-fade-out');\r\n setTimeout(() => {\r\n this.renderer.removeChild(wrapper, toast);\r\n }, 500);\r\n });\r\n\r\n this.renderer.appendChild(toast, closeBtn);\r\n }\r\n\r\n\r\n this.renderer.appendChild(wrapper, toast);\r\n\r\n // Timeout to trigger the fade-in animation\r\n setTimeout(() => {\r\n this.renderer.addClass(toast, 'flexi-toast-fade-in');\r\n }, 10);\r\n\r\n if (options.autoClose) {\r\n setTimeout(() => {\r\n this.renderer.removeClass(toast, 'flexi-toast-fade-in');\r\n this.renderer.addClass(toast, 'flexi-toast-fade-out');\r\n setTimeout(() => {\r\n this.renderer.removeChild(wrapper, toast);\r\n }, 500);\r\n }, options.timeOut);\r\n }\r\n }\r\n\r\n showSwal(title: string, question: string, confirmBtnText: string = this.options.confirmBtnText ?? \"Delete\", callBack: () => void, cancelBtnText: string = this.options.cancelBtnText ?? \"Cancel\", cancelCallBack?:()=> void) {\r\n const body = this.renderer.selectRootElement('body', true);\r\n\r\n const container = this.renderer.createElement('div');\r\n this.renderer.addClass(container, 'flexi-swal-container');\r\n this.renderer.setAttribute(container, `data-bs-theme`, this.options.themeClass!)\r\n\r\n const content = this.renderer.createElement('div');\r\n this.renderer.addClass(content, 'flexi-swal-content');\r\n this.renderer.addClass(content, `flexi-swal-content-left-border-${this.options.swalContentThemeClass}`);\r\n\r\n if(this.options.showSwalCloseBtn){\r\n const closeBtn = this.renderer.createElement('span');\r\n this.renderer.addClass(closeBtn, 'flexi-swal-close-btn');\r\n const closeText = this.renderer.createText('×');\r\n this.renderer.appendChild(closeBtn, closeText);\r\n\r\n this.renderer.listen(closeBtn, 'click', () => {\r\n this.renderer.addClass(content, 'fade-out');\r\n setTimeout(() => {\r\n this.renderer.removeChild(body, container);\r\n }, 200);\r\n });\r\n\r\n this.renderer.appendChild(content, closeBtn);\r\n }\r\n\r\n const titleEl = this.renderer.createElement(\"div\");\r\n this.renderer.addClass(titleEl,\"flexi-swal-title-container\");\r\n const titleTextEl = this.renderer.createElement(\"span\");\r\n const titleText = this.renderer.createText(title);\r\n this.renderer.appendChild(titleTextEl, titleText);\r\n const titleCloseButton = this.renderer.createElement(\"button\");\r\n const titleCloseButtonText = this.renderer.createText(\"x\");\r\n this.renderer.appendChild(titleCloseButton,titleCloseButtonText);\r\n this.renderer.addClass(titleCloseButton, 'flexi-swal-close-button');\r\n this.renderer.appendChild(titleEl, titleText);\r\n this.renderer.appendChild(titleEl, titleCloseButton);\r\n this.renderer.appendChild(content, titleEl);\r\n\r\n const questionEl = this.renderer.createElement('div');\r\n this.renderer.addClass(questionEl,\"flexi-swal-question-container\");\r\n const questionTextEl = this.renderer.createElement(\"span\");\r\n const questionText = this.renderer.createText(question);\r\n this.renderer.appendChild(questionTextEl, questionText);\r\n this.renderer.appendChild(questionEl,questionTextEl);\r\n this.renderer.appendChild(content, questionEl);\r\n\r\n const buttonsContainer = this.renderer.createElement('div');\r\n this.renderer.addClass(buttonsContainer, \"flexi-swal-button-container\");\r\n\r\n const confirmButton = this.renderer.createElement('button');\r\n this.renderer.addClass(confirmButton, 'flexi-swal-button');\r\n this.renderer.addClass(confirmButton, \"flexi-swal-button-primary\");\r\n const confirmButtonText = this.renderer.createText(confirmBtnText);\r\n this.renderer.appendChild(confirmButton, confirmButtonText);\r\n\r\n const cancelButton = this.renderer.createElement('button');\r\n this.renderer.addClass(cancelButton, 'flexi-swal-button');\r\n\r\n const cancelButtonText = this.renderer.createText(cancelBtnText);\r\n this.renderer.appendChild(cancelButton, cancelButtonText);\r\n\r\n this.renderer.listen(confirmButton, 'click', () => {\r\n callBack();\r\n this.renderer.addClass(content, 'fade-out');\r\n setTimeout(() => {\r\n this.renderer.removeChild(body, container);\r\n this.renderer.removeStyle(body, 'overflow')\r\n const el = document.getElementsByClassName(\"flexi-swal-container\");\r\n if(el.length > 0){\r\n el[0].remove();\r\n }\r\n }, 200);\r\n });\r\n\r\n this.renderer.listen(cancelButton, 'click', () => {\r\n this.renderer.addClass(content, 'fade-out');\r\n if(cancelCallBack){\r\n cancelCallBack();\r\n }\r\n setTimeout(() => {\r\n this.renderer.removeChild(body, container);\r\n this.renderer.removeStyle(body, 'overflow');\r\n const el = document.getElementsByClassName(\"flexi-swal-container\");\r\n if(el.length > 0){\r\n el[0].remove();\r\n }\r\n }, 200);\r\n });\r\n\r\n this.renderer.listen(titleCloseButton, 'click', () => {\r\n this.renderer.addClass(content, 'fade-out');\r\n if(cancelCallBack){\r\n cancelCallBack();\r\n }\r\n setTimeout(() => {\r\n this.renderer.removeChild(body, container);\r\n this.renderer.removeStyle(body, 'overflow');\r\n const el = document.getElementsByClassName(\"flexi-swal-container\");\r\n if(el.length > 0){\r\n el[0].remove();\r\n }\r\n }, 200);\r\n });\r\n\r\n\r\n this.renderer.appendChild(buttonsContainer, confirmButton);\r\n this.renderer.appendChild(buttonsContainer, cancelButton);\r\n\r\n this.renderer.appendChild(content, buttonsContainer);\r\n\r\n this.renderer.appendChild(container, content);\r\n\r\n this.renderer.appendChild(body, container);\r\n this.renderer.setStyle(body, 'overflow', 'hidden');\r\n }\r\n}\r\n\r\nexport class FlexiToastOptionsModel {\r\n icon?: FlexiToastIconType = \"success\";\r\n autoClose?: boolean = true;\r\n timeOut?: number = 3000;\r\n showProgressBar?: boolean = true;\r\n showToastCloseBtn?: boolean = true;\r\n showSwalCloseBtn?: boolean = false;\r\n preventDuplicate?: boolean = false;\r\n position?: FlexiToastPositionType = \"bottom-right\"\r\n themeClass?: FlexiToastThemeClassType | string = \"light\";\r\n cancelBtnText?: string = \"Vazgeç\";\r\n confirmBtnText?: string = \"Sil\";\r\n swalContentThemeClass?: FlexiSwalContentThemeClass = \"default\";\r\n}\r\n\r\nexport type FlexiToastIconType = \"success\" | \"warning\" | \"info\" | \"error\";\r\nexport type FlexiToastThemeClassType = \"light\" | \"dark\";\r\nexport type FlexiToastPositionType = \"top-left\" | \"top-right\" | \"bottom-left\" | \"bottom-right\" | \"full-bottom\" | \"full-top\";\r\nexport type FlexiSwalContentThemeClass = \"success\" | \"warning\" | \"info\" | \"error\" | \"default\";","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}