{"version":3,"file":"sixbell-telco-sdk-components-toast.mjs","sources":["../../../projects/sdk/components/toast/services/toast.service.ts","../../../projects/sdk/components/toast/toast-message/toast-message.component.ts","../../../projects/sdk/components/toast/toast-message/toast-message.component.html","../../../projects/sdk/components/toast/toasts-container/toasts-container.component.ts","../../../projects/sdk/components/toast/toasts-container/toasts-container.component.html","../../../projects/sdk/components/toast/sixbell-telco-sdk-components-toast.ts"],"sourcesContent":["import { computed, Injectable, signal } from '@angular/core';\nimport { generateUniqueId } from '@sixbell-telco/sdk/utils/generators/uuid';\n\nexport enum ToastTypes {\n\tSUCCESS = 'toast-success',\n\tERROR = 'toast-error',\n\tINFO = 'toast-info',\n\tWARNING = 'toast-warning',\n}\n\nexport type Toast = {\n\tid: string;\n\ttype: ToastTypes;\n\tmessage: string;\n\ttitle: string;\n\tduration: number;\n\tanimate: 'enter' | 'leave';\n};\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class ToastService {\n\tprivate toastsSignal = signal<Toast[]>([]);\n\tprivate expandedSignal = signal(false);\n\n\t// Create computed signals for derived state\n\treadonly toasts = computed(() => this.toastsSignal());\n\treadonly expanded = computed(() => this.expandedSignal());\n\treadonly isEmpty = computed(() => this.toasts().length === 0);\n\n\tnotify(type: ToastTypes, message: string, title: string = '', duration: number = 10000) {\n\t\tconst toast: Toast = {\n\t\t\tid: generateUniqueId(),\n\t\t\ttype,\n\t\t\tmessage,\n\t\t\ttitle,\n\t\t\tduration,\n\t\t\tanimate: 'enter',\n\t\t};\n\n\t\t// Create a new array reference to ensure change detection\n\t\tthis.toastsSignal.update((toasts) => [toast, ...toasts]);\n\n\t\tthis.scheduleDismiss(toast);\n\t}\n\n\tscheduleDismiss(toast: Toast) {\n\t\tsetTimeout(() => {\n\t\t\tthis.remove(toast);\n\t\t}, toast.duration);\n\t}\n\n\tanimateRemoval(toast: Toast) {\n\t\tthis.toastsSignal.update((toasts) => toasts.map((t) => (t.id === toast.id ? { ...t, animate: 'leave' } : t)));\n\t}\n\n\tremove(toast: Toast) {\n\t\tthis.toastsSignal.update((toasts) => toasts.filter((t) => t.id !== toast.id));\n\n\t\tif (this.isEmpty()) {\n\t\t\tthis.collapse();\n\t\t}\n\t}\n\n\tclear() {\n\t\tthis.toastsSignal.set([]);\n\t\tthis.collapse();\n\t}\n\n\ttoggle() {\n\t\tthis.expandedSignal.update((expanded) => !expanded);\n\t}\n\n\tcollapse() {\n\t\tthis.expandedSignal.set(false);\n\t}\n\n\texpand() {\n\t\tthis.expandedSignal.set(true);\n\t}\n}\n","import { NgClass } from '@angular/common';\nimport { Component, computed, input, output } from '@angular/core';\nimport { IconComponent } from '@sixbell-telco/sdk/components/icon';\nimport { matCheckCircleOutline, matErrorOutline, matInfoOutline, matWarningOutline } from '@sixbell-telco/sdk/components/icon/material/outline';\nimport { TypographyDirective } from '@sixbell-telco/sdk/directives/typography';\nimport { cn } from '@sixbell-telco/sdk/utils/cn';\nimport { cva } from 'class-variance-authority';\nimport { Toast, ToastTypes } from '../services/toast.service';\n\nexport const toastComponent = cva(\n\t[\n\t\t'toast-message relative mb-2 flex min-h-20 h-20 w-[400px] cursor-pointer items-center rounded-lg border-2 bg-base-200 p-2 transition-all duration-300 ease-ease-in-and-out-back',\n\t],\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tinfo: ['border-primary', 'text-primary'],\n\t\t\t\tsuccess: ['border-success', 'text-success'],\n\t\t\t\twarning: ['border-warning', 'text-warning'],\n\t\t\t\terror: ['border-error', 'text-error'],\n\t\t\t},\n\t\t},\n\t\tcompoundVariants: [],\n\t\tdefaultVariants: {\n\t\t\tvariant: 'info',\n\t\t},\n\t},\n);\n\nexport type ToastVariantProps = 'info' | 'success' | 'warning' | 'error' | null | undefined;\n\nexport type ToastProps = {\n\tvariant?: ToastVariantProps;\n};\n\n@Component({\n\tselector: 'st-toast-message',\n\timports: [TypographyDirective, IconComponent, NgClass],\n\ttemplateUrl: './toast-message.component.html',\n})\nexport class ToastMessageComponent {\n\tvariant = input<ToastVariantProps>();\n\tclasses = input<string>('');\n\ttypes = ToastTypes;\n\ttoast = input.required<Toast>();\n\ttoastAmount = input.required<number>();\n\ttoastIndex = input.required<number>();\n\tclicked = output<Toast>();\n\ticonCheckCircle = matCheckCircleOutline;\n\ticonWarning = matWarningOutline;\n\ticonError = matErrorOutline;\n\ticonInfo = matInfoOutline;\n\n\tcomponentClass = computed(() => {\n\t\tconst toast = this.toast();\n\t\tconst classes = this.classes();\n\n\t\tswitch (toast.type) {\n\t\t\tcase this.types.SUCCESS:\n\t\t\t\treturn cn(toastComponent({ variant: 'success', class: classes }));\n\t\t\tcase this.types.ERROR:\n\t\t\t\treturn cn(toastComponent({ variant: 'error', class: classes }));\n\t\t\tcase this.types.WARNING:\n\t\t\t\treturn cn(toastComponent({ variant: 'warning', class: classes }));\n\t\t\tcase this.types.INFO:\n\t\t\t\treturn cn(toastComponent({ variant: 'info', class: classes }));\n\t\t\tdefault:\n\t\t\t\treturn cn(toastComponent({ variant: 'info', class: classes }));\n\t\t}\n\t});\n\n\thandleClose() {\n\t\tthis.clicked.emit(this.toast());\n\t}\n}\n","<!-- eslint-disable @angular-eslint/template/click-events-have-key-events -->\n<li\n\t[class]=\"componentClass()\"\n\t[ngClass]=\"{\n\t\t'animate-toast-slide-out bottom-0': toast().animate === 'leave' && toastAmount() > 1,\n\t\t'animate-slide-out': toast().animate === 'leave' && toastAmount() === 1,\n\t\t'animate-fade-out': toast().animate === 'leave' && toastAmount() > 1 && toastIndex() === 0,\n\t\t'animate-slide-in': toast().animate === 'enter',\n\t}\"\n\t(click)=\"handleClose()\"\n\trole=\"button\"\n\ttabindex=\"0\"\n>\n\t<div class=\"flex flex-1 items-center justify-center\">\n\t\t@if (this.toast().type === this.types.SUCCESS) {\n\t\t\t<st-icon [icon]=\"iconCheckCircle\" color=\"inherit\" size=\"md\"></st-icon>\n\t\t} @else if (this.toast().type === this.types.WARNING) {\n\t\t\t<st-icon [icon]=\"iconWarning\" color=\"inherit\" size=\"md\"></st-icon>\n\t\t} @else if (this.toast().type === this.types.ERROR) {\n\t\t\t<st-icon [icon]=\"iconError\" color=\"inherit\" size=\"md\"></st-icon>\n\t\t} @else if (this.toast().type === this.types.INFO) {\n\t\t\t<st-icon [icon]=\"iconInfo\" color=\"inherit\" size=\"md\"></st-icon>\n\t\t}\n\t</div>\n\t<div class=\"flex-4\">\n\t\t<div class=\"grid grid-rows-[min-content_1fr]\">\n\t\t\t<div typography [tyVariant]=\"'body-sm'\" [tyColor]=\"'base'\" [tyFontWeight]=\"'semibold'\">{{ toast().title }}</div>\n\t\t\t<div typography [tyVariant]=\"'body-xs'\" [tyColor]=\"'base'\" [tyFontWeight]=\"'normal'\">\n\t\t\t\t{{ toast().message }}\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</li>\n","import { NgClass } from '@angular/common';\nimport { Component, computed, inject } from '@angular/core';\nimport { Toast, ToastService } from '../services/toast.service';\nimport { ToastMessageComponent } from '../toast-message/toast-message.component';\n\n@Component({\n    selector: 'st-toasts-container',\n    imports: [ToastMessageComponent, NgClass],\n    templateUrl: './toasts-container.component.html'\n})\nexport class ToastsContainerComponent {\n\ttoastService = inject(ToastService);\n\n\tprotected containerClasses = computed(() => {\n\t\tconst toastCount = this.toastService.toasts().length;\n\t\tconst isExpanded = this.toastService.expanded();\n\n\t\treturn {\n\t\t\t'min-h-64': toastCount === 3 && isExpanded,\n\t\t\t'min-h-48': toastCount === 2 && isExpanded,\n\t\t\t'h-24 min-h-24': toastCount === 1 && isExpanded,\n\t\t\t'h-28 min-h-28': toastCount > 0 && !isExpanded,\n\t\t\t'h-0 min-h-0': toastCount === 0 && !isExpanded,\n\t\t};\n\t});\n\n\thandleExpand(): void {\n\t\tthis.toastService.expand();\n\t}\n\n\thandleCollapse(): void {\n\t\tthis.toastService.collapse();\n\t}\n\n\thandleRemove(toast: Toast): void {\n\t\tthis.toastService.animateRemoval(toast);\n\t\tsetTimeout(() => {\n\t\t\tthis.toastService.remove(toast);\n\t\t}, 500);\n\t}\n\n\tgetToastIndex(toast: Toast): number {\n\t\treturn this.toastService.toasts().findIndex((t) => t.id === toast.id);\n\t}\n}\n","<section class=\"fixed bottom-2 right-4 z-10\">\n\t<ol\n\t\tclass=\"toast-container group flex min-w-[400px] flex-col gap-2\"\n\t\t[ngClass]=\"containerClasses()\"\n\t\t[attr.aria-expanded]=\"toastService.expanded()\"\n\t\t(mouseenter)=\"handleExpand()\"\n\t\t(mouseleave)=\"handleCollapse()\"\n\t>\n\t\t@for (toast of toastService.toasts(); track toast.id) {\n\t\t\t<st-toast-message\n\t\t\t\t[toast]=\"toast\"\n\t\t\t\t[toastIndex]=\"getToastIndex(toast)\"\n\t\t\t\t[toastAmount]=\"toastService.toasts().length\"\n\t\t\t\t(clicked)=\"handleRemove($event)\"\n\t\t\t/>\n\t\t}\n\t</ol>\n</section>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}