{"version":3,"file":"flexi-toast.mjs","sources":["../../../library/src/lib/flexi-swal.component.ts","../../../library/src/lib/flexi-toast.service.ts","../../../library/src/flexi-toast.ts"],"sourcesContent":["import { Component, Input, Output, EventEmitter, HostBinding, ViewEncapsulation, ChangeDetectionStrategy, input, linkedSignal, output } from '@angular/core';\r\n\r\n\r\nexport type FlexiSwalContentThemeClass = \"success\" | \"warning\" | \"info\" | \"error\" | \"default\";\r\n\r\n@Component({\r\n    selector: 'flexi-swal',\r\n    imports: [],\r\n    encapsulation: ViewEncapsulation.None,\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    template: `\r\n    @if(isVisibleSignal()){\r\n      <div class=\"flexi-swal-container\" [attr.data-bs-theme]=\"themeClass()\">\r\n        <div class=\"flexi-swal-content\"\r\n          [attr.data-bs-theme]=\"themeClass()\">\r\n    \r\n          <!-- Close button (top right) -->\r\n          @if (showCloseBtn()) {\r\n            <span class=\"flexi-swal-close-btn\"\r\n            (click)=\"onCancel()\">×</span>\r\n          }\r\n    \r\n          <!-- Title container -->\r\n          <div class=\"flexi-swal-title-container\">\r\n            <span>{{ title() }}</span>\r\n            <button class=\"flexi-swal-close-button\" (click)=\"onCancel()\">×</button>\r\n          </div>\r\n    \r\n          <!-- Question container -->\r\n          <div class=\"flexi-swal-question-container\">\r\n            <span [innerHtml]=\"question()\"></span>\r\n          </div>\r\n    \r\n          <!-- Button container -->\r\n          <div class=\"flexi-swal-button-container\">\r\n            <button class=\"flexi-swal-button flexi-swal-button-primary\"\r\n              (click)=\"onConfirm()\">\r\n              {{ confirmBtnText() }}\r\n            </button>\r\n            <button class=\"flexi-swal-button\"\r\n              (click)=\"onCancel()\">\r\n              {{ cancelBtnText() }}\r\n            </button>\r\n          </div>\r\n    \r\n        </div>\r\n      </div>\r\n    }\r\n    `,\r\n    styles: [`\r\n    :host {\r\n      position: fixed;\r\n      top: 0;\r\n      left: 0;\r\n      width: 100%;\r\n      height: 100%;\r\n      z-index: 9999;\r\n      pointer-events: none;\r\n    }\r\n\r\n    :host(.visible) {\r\n      pointer-events: all;\r\n    }\r\n\r\n    .flexi-swal-container {\r\n      display: flex;\r\n      position: fixed;\r\n      top: 0;\r\n      left: 0;\r\n      width: 100%;\r\n      height: 100%;\r\n      background: rgba(0, 0, 0, 0.5);\r\n      justify-content: center;\r\n      align-items: center;\r\n      z-index: 9999;\r\n    }\r\n\r\n    .flexi-swal-content {\r\n      animation: fadeIn 0.3s ease-in-out;\r\n    }\r\n\r\n    .fade-out {\r\n      animation: fadeOut 0.2s ease-in-out forwards;\r\n    }\r\n\r\n    @keyframes fadeIn {\r\n      from {\r\n        opacity: 0;\r\n        transform: scale(0.9);\r\n      }\r\n      to {\r\n        opacity: 1;\r\n        transform: scale(1);\r\n      }\r\n    }\r\n\r\n    @keyframes fadeOut {\r\n      from {\r\n        opacity: 1;\r\n        transform: scale(1);\r\n      }\r\n      to {\r\n        opacity: 0;\r\n        transform: scale(0.9);\r\n      }\r\n    }\r\n  `]\r\n})\r\nexport class FlexiSwalComponent {\r\n    readonly title = input<string>('');\r\n    readonly question = input<string>('');\r\n    readonly confirmBtnText = input<string>('Confirm');\r\n    readonly cancelBtnText = input<string>('Cancel');\r\n    readonly showCloseBtn = input<boolean>(false);\r\n    readonly themeClass = input<'light' | 'dark'>('light');\r\n    readonly contentThemeClass = input<FlexiSwalContentThemeClass>('default');\r\n    readonly isVisible = input<boolean>(false);\r\n\r\n    readonly isVisibleSignal = linkedSignal(() => this.isVisible());\r\n\r\n    readonly confirmed = output<void>();\r\n    readonly cancelled = output<void>();\r\n    readonly closed = output<void>();\r\n\r\n    @HostBinding('class.visible') get visible() {\r\n        return this.isVisibleSignal();\r\n    }\r\n\r\n    @HostBinding('style.display') get display() {\r\n        return this.isVisibleSignal() ? 'block' : 'none';\r\n    }\r\n\r\n    onConfirm() {\r\n        this.confirmed.emit();\r\n        this.close();\r\n    }\r\n\r\n    onCancel() {\r\n        this.cancelled.emit();\r\n        this.close();\r\n    }\r\n\r\n    private close() {\r\n        this.isVisibleSignal.set(false);\r\n        this.closed.emit();\r\n    }\r\n\r\n    show() {\r\n        this.isVisibleSignal.set(true);\r\n        // Prevent body scroll\r\n        document.body.style.overflow = 'hidden';\r\n    }\r\n\r\n    hide() {\r\n        this.isVisibleSignal.set(false);\r\n        // Restore body scroll\r\n        document.body.style.overflow = '';\r\n    }\r\n}","import { Injectable, Renderer2, RendererFactory2, ComponentRef, ViewContainerRef, ApplicationRef, createComponent, EnvironmentInjector, inject } from '@angular/core';\r\nimport { FlexiSwalComponent } from './flexi-swal.component';\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  private appRef = inject(ApplicationRef);\r\n  private injector = inject(EnvironmentInjector);\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    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): ComponentRef<FlexiSwalComponent> {\r\n\r\n    // Create component\r\n    const componentRef = createComponent(FlexiSwalComponent, {\r\n      environmentInjector: this.injector\r\n    });\r\n\r\n    // Set inputs\r\n    componentRef.setInput('title', title);\r\n    componentRef.setInput('question', question);\r\n    componentRef.setInput('confirmBtnText', confirmBtnText);\r\n    componentRef.setInput('cancelBtnText', cancelBtnText);\r\n    componentRef.setInput('showCloseBtn', this.options.showSwalCloseBtn);\r\n    componentRef.setInput('themeClass', this.options.themeClass);\r\n    componentRef.setInput('contentThemeClass', this.options.swalContentThemeClass);\r\n    componentRef.setInput('isVisible', true);\r\n\r\n    // Subscribe to outputs\r\n    componentRef.instance.confirmed.subscribe(() => {\r\n      callBack();\r\n      this.destroySwal(componentRef);\r\n    });\r\n\r\n    componentRef.instance.cancelled.subscribe(() => {\r\n      if (cancelCallBack) {\r\n        cancelCallBack();\r\n      }\r\n      this.destroySwal(componentRef);\r\n    });\r\n\r\n    componentRef.instance.closed.subscribe(() => {\r\n      this.destroySwal(componentRef);\r\n    });\r\n\r\n    // Append to body\r\n    document.body.appendChild(componentRef.location.nativeElement);\r\n\r\n    // Attach to Angular's change detection\r\n    this.appRef.attachView(componentRef.hostView);\r\n\r\n    componentRef.changeDetectorRef.detectChanges();\r\n\r\n    return componentRef;\r\n  }\r\n\r\n  private destroySwal(componentRef: ComponentRef<FlexiSwalComponent>) {\r\n    setTimeout(() => {\r\n      this.appRef.detachView(componentRef.hostView);\r\n      componentRef.destroy();\r\n    }, 200);\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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"}