@filip.mazev/blocks 1.2.33 → 1.2.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"filip.mazev-blocks-toastr.mjs","sources":["../../../projects/blocks/toastr/classes/toast-ref.ts","../../../projects/blocks/toastr/tokens/toast-data.token.ts","../../../projects/blocks/toastr/services/toastr-global-settings.service.ts","../../../projects/blocks/toastr/components/toast-core.ts","../../../projects/blocks/toastr/components/toast-core.html","../../../projects/blocks/toastr/classes/toast.ts","../../../projects/blocks/toastr/components/views/simple-toast/simple-toast.ts","../../../projects/blocks/toastr/components/views/simple-toast/simple-toast.html","../../../projects/blocks/toastr/services/toastr.service.ts","../../../projects/blocks/toastr/public-api.ts","../../../projects/blocks/toastr/filip.mazev-blocks-toastr.ts"],"sourcesContent":["import { Subject } from 'rxjs';\nimport { IToastConfig } from '../interfaces/itoast-config.interface';\n\nexport class ToastRef<D = undefined, R = unknown> {\n private readonly afterClosedSubject = new Subject<R | undefined>();\n\n private readonly pauseSubject = new Subject<void>();\n private readonly resumeSubject = new Subject<void>();\n\n public readonly afterClosed$ = this.afterClosedSubject.asObservable();\n public readonly onPause$ = this.pauseSubject.asObservable();\n public readonly onResume$ = this.resumeSubject.asObservable();\n public config!: IToastConfig<D>;\n\n public close(result?: R): void {\n this.afterClosedSubject.next(result);\n this.afterClosedSubject.complete();\n }\n\n public pause(): void {\n this.pauseSubject.next();\n }\n\n public resume(): void {\n this.resumeSubject.next();\n }\n}\n","import { InjectionToken } from '@angular/core';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const TOAST_DATA = new InjectionToken<any>('TOAST_DATA');\n","import { Injectable, signal } from '@angular/core';\nimport { ToastPosition } from '../types/toastr.types';\nimport { ThemedColor } from '@filip.mazev/blocks/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ToastrGlobalSettingsService {\n public readonly position = signal<ToastPosition>('top-right');\n public readonly animate = signal<boolean>(true);\n public readonly wrapperClass = signal<string | undefined>(undefined);\n public readonly durationInMs = signal<number>(5000);\n public readonly swipeToDismiss = signal<boolean>(true);\n public readonly maxOpened = signal<number>(4);\n\n public readonly showCloseButton = signal<boolean>(true);\n public readonly closeButtonColor = signal<ThemedColor | undefined>('text-primary');\n \n public readonly showProgressBar = signal<boolean>(true);\n public readonly progressBarColor = signal<ThemedColor | undefined>('text-primary');\n\n public update(\n settings: Partial<{\n position: ToastPosition;\n animate: boolean;\n wrapperClass: string;\n durationInMs: number;\n swipeToDismiss: boolean;\n maxOpened: number;\n showCloseButton: boolean;\n closeButtonColor: ThemedColor;\n showProgressBar: boolean;\n progressBarColor: ThemedColor;\n }>\n ): void {\n if (settings.position !== undefined) this.position.set(settings.position);\n if (settings.animate !== undefined) this.animate.set(settings.animate);\n if (settings.wrapperClass !== undefined) this.wrapperClass.set(settings.wrapperClass);\n if (settings.durationInMs !== undefined) this.durationInMs.set(settings.durationInMs);\n if (settings.swipeToDismiss !== undefined) this.swipeToDismiss.set(settings.swipeToDismiss);\n if (settings.maxOpened !== undefined) this.maxOpened.set(settings.maxOpened);\n \n if (settings.showCloseButton !== undefined) this.showCloseButton.set(settings.showCloseButton);\n if (settings.closeButtonColor !== undefined) this.closeButtonColor.set(settings.closeButtonColor);\n \n if (settings.showProgressBar !== undefined) this.showProgressBar.set(settings.showProgressBar);\n if (settings.progressBarColor !== undefined) this.progressBarColor.set(settings.progressBarColor);\n }\n}\n","import {\n Component,\n ViewChild,\n ViewContainerRef,\n ComponentRef,\n ElementRef,\n OnInit,\n OnDestroy,\n signal,\n computed,\n AfterViewInit,\n HostListener,\n inject\n} from '@angular/core';\nimport { NgClass } from '@angular/common';\nimport { IToastConfig } from '../interfaces/itoast-config.interface';\nimport { ToastRef } from '../classes/toast-ref';\nimport { IToast } from '../interfaces/itoast.interface';\nimport { Icon } from '@filip.mazev/blocks/icons';\nimport { Subscription } from 'rxjs';\nimport { Color, getComplementaryToken, resolveTokenToCssVar } from '@filip.mazev/blocks/core';\nimport { ToastrGlobalSettingsService } from '../services/toastr-global-settings.service';\n\n@Component({\n selector: 'bx-toast-core',\n imports: [NgClass, Icon],\n templateUrl: './toast-core.html',\n styleUrl: './toast-core.scss'\n})\nexport class ToastCore<D, R, C extends IToast<D, R> = IToast<D, R>> implements OnInit, AfterViewInit, OnDestroy {\n private readonly toastrGlobalSettingsService = inject(ToastrGlobalSettingsService);\n \n public componentRef!: ComponentRef<C>;\n public config?: IToastConfig<D>;\n public toastRef!: ToastRef<D, R>;\n\n public isVisible = signal(false);\n public currentTranslateY = signal(0);\n public isSwipingFinished = signal(false);\n\n public isCollapsing = signal(false);\n\n protected showCloseButton = computed(() => this.config?.showCloseButton ?? this.toastrGlobalSettingsService.showCloseButton());\n protected closeButtonColor = computed(() => this.config?.closeButtonColor ?? this.toastrGlobalSettingsService.closeButtonColor());\n \n protected showProgressBar = computed(() => {\n if (this.config?.showProgressBar === false)\n return false;\n\n return this.config?.showProgressBar === true || this.config?.progressBarColor !== undefined;\n });\n\n protected progressBarColor = computed(() => {\n return this.showProgressBar() \n ? ((this.config?.progressBarColor ?? this.toastrGlobalSettingsService.progressBarColor()) as Color) \n : undefined;\n });\n\n protected progressBarCssVar = computed(() => {\n const progressBarColor = this.progressBarColor();\n return progressBarColor ? resolveTokenToCssVar(progressBarColor) : undefined\n });\n\n protected progressBarBgCssVar = computed(() => {\n const progressBarColor = this.progressBarColor();\n return progressBarColor ? resolveTokenToCssVar(getComplementaryToken(progressBarColor)) : undefined\n });\n\n protected isAnimated = computed(() => this.config?.animate !== false);\n protected isBottom = computed(() => (this.config?.position ?? this.toastrGlobalSettingsService.position()).includes('bottom'));\n\n @ViewChild('dynamicContainer', { read: ViewContainerRef, static: true }) protected dynamicContainer!: ViewContainerRef;\n @ViewChild('toastSwipeTarget', { static: true }) protected toastSwipeTarget!: ElementRef;\n @ViewChild('animatorWrapper', { static: true }) protected animatorWrapper!: ElementRef;\n @ViewChild('progressBar') protected progressBar?: ElementRef<HTMLElement>;\n\n protected wrapperClasses = computed(() => {\n const isTop = (this.config?.position ?? 'top-right').includes('top');\n const animClass = isTop ? 'anim-dir-top' : 'anim-dir-bottom';\n const wrapperClass = this.config?.wrapperClass ?? 'default-wrapper' + (this.config?.hasDefaultBackground === false ? ' no-bg' : '');\n return `${animClass} ${wrapperClass}`;\n });\n\n protected toastrTransform = computed(() => {\n if (!this.isAnimated()) return null;\n\n const isTop = (this.config?.position ?? 'top-right').includes('top');\n\n if (this.isSwipingFinished()) {\n return isTop ? 'translateY(-150px)' : 'translateY(150px)';\n }\n\n if (this.currentTranslateY() !== 0) {\n return `translateY(${this.currentTranslateY()}px)`;\n }\n\n return null;\n });\n\n private progressAnimation?: Animation;\n private subs = new Subscription();\n\n private remainingMs = 0;\n\n private timerStartTime = 0;\n\n private originalCloseFn!: (result?: R) => void;\n private closeResult?: R;\n\n private isTrackingSwipe = false;\n private isTouchActive = false;\n private autoCloseTimeout?: ReturnType<typeof setTimeout>;\n private hasEmittedClose = false;\n\n private cleanupListeners: Array<() => void> = [];\n private swipeCleanupListeners: (() => void) | null = null;\n private globalResizeCleanup: (() => void) | null = null;\n\n public ngOnInit(): void {\n this.dynamicContainer.insert(this.componentRef.hostView);\n\n this.originalCloseFn = this.toastRef.close.bind(this.toastRef);\n this.toastRef.close = (result?: R) => {\n this.closeToast(result);\n };\n\n setTimeout(() => this.isVisible.set(true), 10);\n\n if (this.config?.swipeToDismiss !== false) {\n this.startVerticalSwipeDetection();\n this.monitorInputType();\n }\n\n const animatorTarget = this.animatorWrapper.nativeElement;\n\n const onAnimatorTransitionEnd = (event: TransitionEvent) => {\n if (event.target !== animatorTarget || event.propertyName !== 'grid-template-rows') return;\n if (this.isCollapsing() && !this.hasEmittedClose) {\n this.hasEmittedClose = true;\n this.originalCloseFn(this.closeResult);\n }\n };\n\n animatorTarget.addEventListener('transitionend', onAnimatorTransitionEnd);\n this.cleanupListeners.push(() => animatorTarget.removeEventListener('transitionend', onAnimatorTransitionEnd));\n }\n\n public ngAfterViewInit(): void {\n const duration = this.config?.durationInMs;\n\n if (duration) {\n this.remainingMs = duration;\n this.startTimer();\n }\n\n if (duration && this.progressBar?.nativeElement) {\n this.progressAnimation = this.progressBar.nativeElement.animate([{ width: '100%' }, { width: '0%' }], { duration, fill: 'forwards' });\n\n this.subs.add(this.toastRef.onPause$.subscribe(() => this.progressAnimation?.pause()));\n this.subs.add(this.toastRef.onResume$.subscribe(() => this.progressAnimation?.play()));\n }\n }\n\n public ngOnDestroy(): void {\n clearTimeout(this.autoCloseTimeout);\n\n this.stopVerticalSwipeDetection();\n this.globalResizeCleanup?.();\n\n this.cleanupListeners.forEach((fn) => fn());\n this.cleanupListeners = [];\n\n this.progressAnimation?.cancel();\n this.subs.unsubscribe();\n }\n\n public closeToast(result?: R, fromSwipe = false): void {\n this.closeResult = result !== undefined ? result : this.closeResult;\n\n if (!this.isAnimated()) {\n if (!this.hasEmittedClose) {\n this.hasEmittedClose = true;\n this.originalCloseFn(this.closeResult);\n }\n return;\n }\n\n this.isVisible.set(false);\n this.isCollapsing.set(true);\n\n if (fromSwipe) {\n this.isSwipingFinished.set(true);\n }\n }\n\n @HostListener('mouseenter')\n protected onMouseEnter(): void {\n if (!this.isTouchActive && this.config?.durationInMs && !this.isCollapsing()) {\n this.pauseTimer();\n }\n }\n\n @HostListener('mouseleave')\n protected onMouseLeave(): void {\n if (!this.isTouchActive && this.config?.durationInMs && !this.isCollapsing()) {\n this.startTimer();\n this.toastRef.resume();\n }\n }\n \n //#region Swipe Logic\n\n private startVerticalSwipeDetection(): void {\n if (this.isTrackingSwipe) return;\n\n const hasTouch = typeof window !== 'undefined' && (window.matchMedia('(pointer: coarse)').matches || navigator.maxTouchPoints > 0);\n if (!hasTouch) return;\n\n this.isTrackingSwipe = true;\n const target = this.toastSwipeTarget.nativeElement;\n const isTop = (this.config?.position ?? 'top-right').includes('top');\n\n let startY = 0;\n let startTime = 0;\n let isPointerDown = false;\n let limit = 0;\n\n const pointerDown = (event: PointerEvent) => {\n if (event.button !== 0 && event.pointerType === 'mouse') return;\n\n const toastHeight = target.offsetHeight || 0;\n limit = toastHeight / 3;\n\n isPointerDown = true;\n startY = event.clientY;\n startTime = event.timeStamp;\n\n this.pauseTimer();\n target.setPointerCapture(event.pointerId);\n };\n\n const pointerMove = (event: PointerEvent) => {\n if (!isPointerDown) return;\n const currentY = event.clientY - startY;\n\n if ((isTop && currentY < 0) || (!isTop && currentY > 0)) {\n if (event.cancelable) event.preventDefault();\n this.currentTranslateY.set(currentY);\n }\n };\n\n const pointerUp = (event: PointerEvent) => {\n if (!isPointerDown) return;\n isPointerDown = false;\n target.releasePointerCapture(event.pointerId);\n\n const deltaY = event.clientY - startY;\n const duration = event.timeStamp - startTime || 1;\n const velocityY = Math.abs(deltaY / duration);\n\n const crossedLimit = isTop ? deltaY < -limit : deltaY > limit;\n\n if (crossedLimit || velocityY > 0.3) {\n this.closeToast(undefined, true);\n } else {\n this.currentTranslateY.set(0);\n this.startTimer();\n this.toastRef.resume();\n }\n };\n\n target.addEventListener('pointerdown', pointerDown, { passive: false });\n target.addEventListener('pointermove', pointerMove, { passive: false });\n target.addEventListener('pointerup', pointerUp);\n target.addEventListener('pointercancel', pointerUp);\n\n this.swipeCleanupListeners = () => {\n target.removeEventListener('pointerdown', pointerDown);\n target.removeEventListener('pointermove', pointerMove);\n target.removeEventListener('pointerup', pointerUp);\n target.removeEventListener('pointercancel', pointerUp);\n };\n }\n\n private stopVerticalSwipeDetection(): void {\n if (!this.isTrackingSwipe) return;\n\n this.isTrackingSwipe = false;\n\n if (this.swipeCleanupListeners) {\n this.swipeCleanupListeners();\n this.swipeCleanupListeners = null;\n }\n }\n\n private monitorInputType(): void {\n if (this.globalResizeCleanup) return;\n\n const handler = (event: PointerEvent) => {\n const isTouch = event.pointerType === 'touch';\n\n if (isTouch && !this.isTouchActive) {\n this.isTouchActive = true;\n this.startVerticalSwipeDetection();\n } else if (!isTouch && this.isTouchActive) {\n this.isTouchActive = false;\n this.stopVerticalSwipeDetection();\n }\n };\n\n window.addEventListener('pointerdown', handler);\n this.globalResizeCleanup = () => window.removeEventListener('pointerdown', handler);\n }\n\n //#endregion\n\n //#region Timer Logic\n\n private startTimer(): void {\n if (this.remainingMs <= 0) return;\n\n this.timerStartTime = Date.now();\n this.autoCloseTimeout = setTimeout(() => this.closeToast(), this.remainingMs);\n }\n\n private pauseTimer(): void {\n if (!this.autoCloseTimeout) return;\n\n clearTimeout(this.autoCloseTimeout);\n this.autoCloseTimeout = undefined;\n\n const elapsed = Date.now() - this.timerStartTime;\n this.remainingMs -= elapsed;\n\n this.toastRef.pause();\n }\n\n //#endregion\n}\n","<div #animatorWrapper class=\"toast-animator\" [class.collapsing]=\"isCollapsing()\" [class.is-bottom]=\"isBottom()\">\n <div #toastSwipeTarget class=\"toast-wrapper\" [ngClass]=\"wrapperClasses()\" [class.show]=\"isVisible()\"\n [class.no-animate]=\"!isAnimated()\" [style.transform]=\"toastrTransform()\">\n @if(showCloseButton()) {\n <bx-icon name=\"x\" size=\"20\" [color]=\"closeButtonColor()\" class=\"toast-close-button\" (click)=\"closeToast()\"\n aria-label=\"Close toast\" />\n }\n\n <ng-container #dynamicContainer></ng-container>\n\n @if (config?.durationInMs && showProgressBar() && progressBarCssVar() && progressBarBgCssVar()) {\n <div class=\"toast-progress-container\" [style.background]=\"progressBarBgCssVar()\">\n <div class=\"toast-progress-bar\" [style.background]=\"progressBarCssVar()\" #progressBar></div>\n </div>\n }\n </div>\n</div>","import { inject, Injectable } from '@angular/core';\nimport { ToastRef } from './toast-ref';\nimport { TOAST_DATA } from '../tokens/toast-data.token';\nimport { IToast } from '../interfaces/itoast.interface';\n\n@Injectable()\nexport abstract class Toast<D = unknown, R = unknown> implements IToast<D, R> {\n /**\n * Data injected into the toast component.\n */\n public data = inject<D>(TOAST_DATA);\n\n /**\n * Reference to the ToastRef instance associated with this toast.\n */\n public toast!: ToastRef<D, R>;\n\n /**\n * Called when the toast is initialized.\n */\n public onToastInit(): void {}\n\n /**\n * Closes the toast with an optional result.\n * @param result The result to be passed when closing the toast.\n */\n public close(result?: R): void {\n this.toast?.close(result);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, computed, inject } from '@angular/core';\nimport { Toast } from '../../../classes/toast';\nimport { ISimpleToastData } from '../../../interfaces/isimple-toast.interface';\nimport { BX_I18N, isTextWithKey } from '@filip.mazev/blocks/core';\n\n@Component({\n selector: 'bx-simple-toast',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './simple-toast.html',\n styleUrl: './simple-toast.scss'\n})\nexport class SimpleToast extends Toast<ISimpleToastData, undefined> {\n private readonly i18n = inject(BX_I18N, { optional: true });\n \n protected readonly resolvedTitle = computed(() => {\n this.i18n?.version?.();\n\n const title = this.data.title;\n if (!title) return undefined;\n\n if (isTextWithKey(title)) {\n return this.i18n?.translate(title.key) ?? title.key;\n }\n\n return title;\n });\n\n protected readonly resolvedMessage = computed(() => {\n this.i18n?.version?.();\n\n const message = this.data.message;\n if (!message) return undefined;\n\n if (isTextWithKey(message)) {\n return this.i18n?.translate(message.key) ?? message.key;\n }\n\n return message;\n });\n\n protected dismiss(): void {\n this.toast?.close();\n }\n}\n","<div class=\"simple-toast\" [ngClass]=\"data.type\">\n <div class=\"simple-toast-content\">\n @if(resolvedTitle()) {\n <h4 class=\"simple-toast-title\">{{ resolvedTitle() }}</h4>\n <p class=\"simple-toast-message\">{{ resolvedMessage() }}</p>\n } @else {\n <p class=\"simple-toast-message large-message\">{{ resolvedMessage() }}</p>\n }\n </div>\n</div>","import { Injectable, inject, Injector, ApplicationRef, EnvironmentInjector, createComponent, ComponentRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ComponentType } from '@angular/cdk/portal';\nimport { take } from 'rxjs';\nimport { IToastConfig } from '../interfaces/itoast-config.interface';\nimport { ToastRef } from '../classes/toast-ref';\nimport { TOAST_DATA } from '../tokens/toast-data.token';\nimport { IToast } from '../interfaces/itoast.interface';\nimport { ToastrGlobalSettingsService } from './toastr-global-settings.service';\nimport { ToastPosition } from '../types/toastr.types';\nimport { ToastCore } from '../components/toast-core';\nimport { SimpleToast } from '../components/views/simple-toast/simple-toast';\nimport { ISimpleToastData } from '../interfaces/isimple-toast.interface';\nimport { IQueueSimpleToastRequest } from '../interfaces/iqueue-simple-toast-request.interface';\nimport { BxA11yService } from '@filip.mazev/blocks/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ToastrService {\n private readonly injector = inject(Injector);\n private readonly appRef = inject(ApplicationRef);\n private readonly environmentInjector = inject(EnvironmentInjector);\n private readonly document = inject(DOCUMENT);\n private readonly globalSettings = inject(ToastrGlobalSettingsService);\n private readonly a11y = inject(BxA11yService);\n\n private readonly toastQueue: Array<() => void> = [];\n private readonly activeToasts: Array<ComponentRef<ToastCore<unknown, unknown, IToast<unknown, unknown>>>> = [];\n private readonly containers = new Map<ToastPosition, HTMLElement>();\n\n private activePauses = 0;\n\n /**\n * Displays a toast notification with the specified component and configuration.\n * @param componentType\n * @param config\n * @returns\n */\n public queueToast<D, R, C extends IToast<D, R>>(componentType: ComponentType<C>, config?: IToastConfig<D>): ToastRef<D, R> {\n const resolvedConfig = this.resolveConfig(config);\n const toastRef = new ToastRef<D, R>();\n\n this.toastQueue.push(() => this.buildAndAttachToast(componentType, resolvedConfig, toastRef));\n\n this.processQueue();\n\n return toastRef;\n }\n\n /**\n * Queues a simple success toast notification with the specified message and optional title, position, and duration.\n * @param request An object containing the message, optional title, optional position, and duration for the toast notification.\n * @returns A ToastRef instance representing the queued toast.\n */\n public queueSuccess(request: IQueueSimpleToastRequest): ToastRef<ISimpleToastData, undefined> {\n return this.queueToast<ISimpleToastData, undefined, SimpleToast>(SimpleToast, {\n position: request.position ?? this.globalSettings.position(),\n data: {\n title: request.title,\n message: request.message,\n type: 'success'\n },\n closeButtonColor: 'text-success',\n progressBarColor: 'text-success',\n hasDefaultBackground: false,\n durationInMs: request.durationInMs ?? this.globalSettings.durationInMs(),\n animate: request.animate ?? this.globalSettings.animate(),\n showProgressBar: request.showProgessBar ?? this.globalSettings.showProgressBar(),\n showCloseButton: request.showCloseButton ?? this.globalSettings.showCloseButton()\n });\n }\n\n /**\n * Queues a simple info toast notification with the specified message and optional title, position, and duration.\n * @param request An object containing the message, optional title, optional position, and duration for the toast notification.\n * @returns A ToastRef instance representing the queued toast.\n */\n public queueInfo(request: IQueueSimpleToastRequest): ToastRef<ISimpleToastData, undefined> {\n return this.queueToast<ISimpleToastData, undefined, SimpleToast>(SimpleToast, {\n position: request.position ?? this.globalSettings.position(),\n data: {\n title: request.title,\n message: request.message,\n type: 'info'\n },\n closeButtonColor: 'text-info',\n progressBarColor: 'text-info',\n hasDefaultBackground: false,\n durationInMs: request.durationInMs ?? this.globalSettings.durationInMs(),\n animate: request.animate ?? this.globalSettings.animate(),\n showProgressBar: request.showProgessBar ?? this.globalSettings.showProgressBar(),\n showCloseButton: request.showCloseButton ?? this.globalSettings.showCloseButton()\n });\n }\n\n /**\n * Queues a simple warning toast notification with the specified message and optional title, position, and duration.\n * @param request An object containing the message, optional title, optional position, and duration for the toast notification.\n * @returns A ToastRef instance representing the queued toast.\n */\n public queueWarning(request: IQueueSimpleToastRequest): ToastRef<ISimpleToastData, undefined> {\n return this.queueToast<ISimpleToastData, undefined, SimpleToast>(SimpleToast, {\n position: request.position ?? this.globalSettings.position(),\n data: {\n title: request.title,\n message: request.message,\n type: 'warn'\n },\n closeButtonColor: 'text-warn',\n progressBarColor: 'text-warn',\n hasDefaultBackground: false,\n durationInMs: request.durationInMs ?? this.globalSettings.durationInMs(),\n animate: request.animate ?? this.globalSettings.animate(),\n showProgressBar: request.showProgessBar ?? this.globalSettings.showProgressBar(),\n showCloseButton: request.showCloseButton ?? this.globalSettings.showCloseButton()\n });\n }\n\n /**\n * Queues a simple error toast notification with the specified message and optional title, position, and duration.\n * @param request An object containing the message, optional title, optional position, and duration for the toast notification.\n * @returns A ToastRef instance representing the queued toast.\n */\n public queueDanger(request: IQueueSimpleToastRequest): ToastRef<ISimpleToastData, undefined> {\n return this.queueToast<ISimpleToastData, undefined, SimpleToast>(SimpleToast, {\n position: request.position ?? this.globalSettings.position(),\n data: {\n title: request.title,\n message: request.message,\n type: 'danger'\n },\n closeButtonColor: 'text-danger',\n progressBarColor: 'text-danger',\n hasDefaultBackground: false,\n durationInMs: request.durationInMs ?? this.globalSettings.durationInMs(),\n animate: request.animate ?? this.globalSettings.animate(),\n showProgressBar: request.showProgessBar ?? this.globalSettings.showProgressBar(),\n showCloseButton: request.showCloseButton ?? this.globalSettings.showCloseButton()\n });\n }\n\n //#region Helper Methods\n\n private processQueue(): void {\n if (this.activePauses > 0) {\n return;\n }\n\n const max = this.globalSettings.maxOpened();\n\n while (this.activeToasts.length < max && this.toastQueue.length > 0) {\n const buildNext = this.toastQueue.shift();\n if (buildNext) {\n buildNext();\n }\n }\n }\n\n private buildAndAttachToast<D, R, C extends IToast<D, R>>(componentType: ComponentType<C>, config: IToastConfig<D>, toastRef: ToastRef<D, R>): void {\n const dataInjector = Injector.create({\n providers: [{ provide: TOAST_DATA, useValue: config.data }],\n parent: this.injector\n });\n\n const contentRef = createComponent(componentType, {\n environmentInjector: this.environmentInjector,\n elementInjector: dataInjector\n });\n\n if (this.isIToast<D, R, C>(contentRef.instance)) {\n contentRef.instance.toast = toastRef;\n contentRef.instance.onToastInit?.();\n }\n\n const wrapperInjector = Injector.create({\n providers: [{ provide: ToastRef, useValue: toastRef }],\n parent: this.injector\n });\n\n const wrapperRef = createComponent<ToastCore<D, R, C>>(ToastCore, {\n environmentInjector: this.environmentInjector,\n elementInjector: wrapperInjector\n });\n\n wrapperRef.instance.componentRef = contentRef;\n wrapperRef.instance.config = config;\n wrapperRef.instance.toastRef = toastRef;\n\n this.appRef.attachView(wrapperRef.hostView);\n\n const container = this.getContainer(config.position || 'top-right');\n container.appendChild(wrapperRef.location.nativeElement);\n\n this.activeToasts.push(wrapperRef as ComponentRef<ToastCore<unknown, unknown, IToast<unknown, unknown>>>);\n\n let isThisToastPausing = false;\n\n toastRef.config = config;\n\n toastRef.onPause$.subscribe(() => {\n if (!isThisToastPausing) {\n isThisToastPausing = true;\n this.activePauses++;\n }\n });\n\n toastRef.onResume$.subscribe(() => {\n if (isThisToastPausing) {\n isThisToastPausing = false;\n this.activePauses = Math.max(0, this.activePauses - 1);\n\n if (this.activePauses === 0) {\n this.processQueue();\n }\n }\n });\n\n toastRef.afterClosed$.pipe(take(1)).subscribe(() => {\n if (isThisToastPausing) {\n isThisToastPausing = false;\n this.activePauses = Math.max(0, this.activePauses - 1);\n }\n\n this.finalizeToast(wrapperRef);\n });\n }\n\n private finalizeToast<D, R, C extends IToast<D, R>>(wrapperRef: ComponentRef<ToastCore<D, R, C>>): void {\n const index = this.activeToasts.indexOf(wrapperRef as ComponentRef<ToastCore<unknown, unknown, IToast<unknown, unknown>>>);\n\n if (index > -1) {\n this.activeToasts.splice(index, 1);\n }\n\n this.appRef.detachView(wrapperRef.hostView);\n wrapperRef.location.nativeElement.remove();\n wrapperRef.destroy();\n\n this.processQueue();\n }\n\n private getContainer(position: ToastPosition): HTMLElement {\n if (this.containers.has(position)) {\n return this.containers.get(position) as HTMLElement;\n }\n\n const container = this.document.createElement('div');\n container.classList.add('toast-container', `toast-container-${position}`);\n this.document.body.appendChild(container);\n\n this.containers.set(position, container);\n\n return container;\n }\n\n private resolveConfig<D>(config?: IToastConfig<D>): IToastConfig<D> {\n const requestedAnimation = config?.animate ?? this.globalSettings.animate();\n const finalAnimateState = this.a11y.isReducedMotion() ? false : requestedAnimation;\n\n return {\n ...config,\n position: config?.position ?? this.globalSettings.position(),\n animate: finalAnimateState,\n wrapperClass: config?.wrapperClass ?? this.globalSettings.wrapperClass(),\n durationInMs: config?.durationInMs ?? this.globalSettings.durationInMs(),\n swipeToDismiss: config?.swipeToDismiss ?? this.globalSettings.swipeToDismiss(),\n showCloseButton: config?.showCloseButton ?? this.globalSettings.showCloseButton(),\n closeButtonColor: config?.closeButtonColor ?? this.globalSettings.closeButtonColor(),\n showProgressBar: config?.showProgressBar ?? this.globalSettings.showProgressBar(),\n progressBarColor: config?.progressBarColor ?? this.globalSettings?.progressBarColor()\n };\n }\n\n private isIToast<D, R, C extends IToast<D, R>>(component: unknown): component is C {\n return typeof component === 'object' && component !== null && 'toast' in component;\n }\n\n //#endregion\n}","/*\n * Public API Surface of toastr\n */\n\nexport * from './services/toastr.service';\nexport * from './services/toastr-global-settings.service';\n\nexport * from './components/toast-core';\nexport * from './components/views/simple-toast/simple-toast';\n\nexport * from './interfaces/itoast-config.interface';\nexport * from './interfaces/itoast.interface';\nexport * from './interfaces/isimple-toast.interface';\n\nexport * from './types/toastr.types';\n\nexport * from './tokens/toast-data.token';\n\nexport * from './classes/toast-ref';\nexport * from './classes/toast';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filip.mazev-blocks-toastr.mjs","sources":["../../../projects/blocks/toastr/classes/toast-ref.ts","../../../projects/blocks/toastr/tokens/toast-data.token.ts","../../../projects/blocks/toastr/services/toastr-global-settings.service.ts","../../../projects/blocks/toastr/components/toast-core.ts","../../../projects/blocks/toastr/components/toast-core.html","../../../projects/blocks/toastr/classes/toast.ts","../../../projects/blocks/toastr/components/views/simple-toast/simple-toast.ts","../../../projects/blocks/toastr/components/views/simple-toast/simple-toast.html","../../../projects/blocks/toastr/services/toastr.service.ts","../../../projects/blocks/toastr/public-api.ts","../../../projects/blocks/toastr/filip.mazev-blocks-toastr.ts"],"sourcesContent":["import { Subject } from 'rxjs';\nimport { IToastConfig } from '../interfaces/itoast-config.interface';\n\nexport class ToastRef<D = undefined, R = unknown> {\n private readonly afterClosedSubject = new Subject<R | undefined>();\n\n private readonly pauseSubject = new Subject<void>();\n private readonly resumeSubject = new Subject<void>();\n\n public readonly afterClosed$ = this.afterClosedSubject.asObservable();\n public readonly onPause$ = this.pauseSubject.asObservable();\n public readonly onResume$ = this.resumeSubject.asObservable();\n public config!: IToastConfig<D>;\n\n public close(result?: R): void {\n this.afterClosedSubject.next(result);\n this.afterClosedSubject.complete();\n }\n\n public pause(): void {\n this.pauseSubject.next();\n }\n\n public resume(): void {\n this.resumeSubject.next();\n }\n}\n","import { InjectionToken } from '@angular/core';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const TOAST_DATA = new InjectionToken<any>('TOAST_DATA');\n","import { Injectable, signal } from '@angular/core';\nimport { ToastPosition } from '../types/toastr.types';\nimport { ThemedColor } from '@filip.mazev/blocks/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ToastrGlobalSettingsService {\n public readonly position = signal<ToastPosition>('top-right');\n public readonly animate = signal<boolean>(true);\n public readonly wrapperClass = signal<string | undefined>(undefined);\n public readonly durationInMs = signal<number>(5000);\n public readonly swipeToDismiss = signal<boolean>(true);\n public readonly maxOpened = signal<number>(4);\n\n public readonly showCloseButton = signal<boolean>(true);\n public readonly closeButtonColor = signal<ThemedColor | undefined>('text-primary');\n \n public readonly showProgressBar = signal<boolean>(true);\n public readonly progressBarColor = signal<ThemedColor | undefined>('text-primary');\n\n public update(\n settings: Partial<{\n position: ToastPosition;\n animate: boolean;\n wrapperClass: string;\n durationInMs: number;\n swipeToDismiss: boolean;\n maxOpened: number;\n showCloseButton: boolean;\n closeButtonColor: ThemedColor;\n showProgressBar: boolean;\n progressBarColor: ThemedColor;\n }>\n ): void {\n if (settings.position !== undefined) this.position.set(settings.position);\n if (settings.animate !== undefined) this.animate.set(settings.animate);\n if (settings.wrapperClass !== undefined) this.wrapperClass.set(settings.wrapperClass);\n if (settings.durationInMs !== undefined) this.durationInMs.set(settings.durationInMs);\n if (settings.swipeToDismiss !== undefined) this.swipeToDismiss.set(settings.swipeToDismiss);\n if (settings.maxOpened !== undefined) this.maxOpened.set(settings.maxOpened);\n \n if (settings.showCloseButton !== undefined) this.showCloseButton.set(settings.showCloseButton);\n if (settings.closeButtonColor !== undefined) this.closeButtonColor.set(settings.closeButtonColor);\n \n if (settings.showProgressBar !== undefined) this.showProgressBar.set(settings.showProgressBar);\n if (settings.progressBarColor !== undefined) this.progressBarColor.set(settings.progressBarColor);\n }\n}\n","import {\n Component,\n ViewChild,\n ViewContainerRef,\n ComponentRef,\n ElementRef,\n OnInit,\n OnDestroy,\n signal,\n computed,\n AfterViewInit,\n HostListener,\n inject\n} from '@angular/core';\nimport { NgClass } from '@angular/common';\nimport { IToastConfig } from '../interfaces/itoast-config.interface';\nimport { ToastRef } from '../classes/toast-ref';\nimport { IToast } from '../interfaces/itoast.interface';\nimport { Icon } from '@filip.mazev/blocks/icons';\nimport { Subscription } from 'rxjs';\nimport { Color, getComplementaryToken, resolveTokenToCssVar } from '@filip.mazev/blocks/core';\nimport { ToastrGlobalSettingsService } from '../services/toastr-global-settings.service';\n\n@Component({\n selector: 'bx-toast-core',\n imports: [NgClass, Icon],\n templateUrl: './toast-core.html',\n styleUrl: './toast-core.scss'\n})\nexport class ToastCore<D, R, C extends IToast<D, R> = IToast<D, R>> implements OnInit, AfterViewInit, OnDestroy {\n private readonly toastrGlobalSettingsService = inject(ToastrGlobalSettingsService);\n \n public componentRef!: ComponentRef<C>;\n public config?: IToastConfig<D>;\n public toastRef!: ToastRef<D, R>;\n\n public isVisible = signal(false);\n public currentTranslateY = signal(0);\n public isSwipingFinished = signal(false);\n\n public isCollapsing = signal(false);\n\n protected showCloseButton = computed(() => this.config?.showCloseButton ?? this.toastrGlobalSettingsService.showCloseButton());\n protected closeButtonColor = computed(() => this.config?.closeButtonColor ?? this.toastrGlobalSettingsService.closeButtonColor());\n \n protected showProgressBar = computed(() => {\n if (this.config?.showProgressBar === false)\n return false;\n\n return this.config?.showProgressBar === true || this.config?.progressBarColor !== undefined;\n });\n\n protected progressBarColor = computed(() => {\n return this.showProgressBar() \n ? ((this.config?.progressBarColor ?? this.toastrGlobalSettingsService.progressBarColor()) as Color) \n : undefined;\n });\n\n protected progressBarCssVar = computed(() => {\n const progressBarColor = this.progressBarColor();\n return progressBarColor ? resolveTokenToCssVar(progressBarColor) : undefined\n });\n\n protected progressBarBgCssVar = computed(() => {\n const progressBarColor = this.progressBarColor();\n return progressBarColor ? resolveTokenToCssVar(getComplementaryToken(progressBarColor)) : undefined\n });\n\n protected isAnimated = computed(() => this.config?.animate !== false);\n protected isBottom = computed(() => (this.config?.position ?? this.toastrGlobalSettingsService.position()).includes('bottom'));\n\n @ViewChild('dynamicContainer', { read: ViewContainerRef, static: true }) protected dynamicContainer!: ViewContainerRef;\n @ViewChild('toastSwipeTarget', { static: true }) protected toastSwipeTarget!: ElementRef;\n @ViewChild('animatorWrapper', { static: true }) protected animatorWrapper!: ElementRef;\n @ViewChild('progressBar') protected progressBar?: ElementRef<HTMLElement>;\n\n protected wrapperClasses = computed(() => {\n const isTop = (this.config?.position ?? 'top-right').includes('top');\n const animClass = isTop ? 'anim-dir-top' : 'anim-dir-bottom';\n const wrapperClass = this.config?.wrapperClass ?? 'default-wrapper' + (this.config?.hasDefaultBackground === false ? ' no-bg' : '');\n return `${animClass} ${wrapperClass}`;\n });\n\n protected toastrTransform = computed(() => {\n if (!this.isAnimated()) return null;\n\n const isTop = (this.config?.position ?? 'top-right').includes('top');\n\n if (this.isSwipingFinished()) {\n return isTop ? 'translateY(-150px)' : 'translateY(150px)';\n }\n\n if (this.currentTranslateY() !== 0) {\n return `translateY(${this.currentTranslateY()}px)`;\n }\n\n return null;\n });\n\n private progressAnimation?: Animation;\n private subs = new Subscription();\n\n private remainingMs = 0;\n\n private timerStartTime = 0;\n\n private originalCloseFn!: (result?: R) => void;\n private closeResult?: R;\n\n private isTrackingSwipe = false;\n private isTouchActive = false;\n private autoCloseTimeout?: ReturnType<typeof setTimeout>;\n private hasEmittedClose = false;\n\n private cleanupListeners: Array<() => void> = [];\n private swipeCleanupListeners: (() => void) | null = null;\n private globalResizeCleanup: (() => void) | null = null;\n\n public ngOnInit(): void {\n this.dynamicContainer.insert(this.componentRef.hostView);\n\n this.originalCloseFn = this.toastRef.close.bind(this.toastRef);\n this.toastRef.close = (result?: R) => {\n this.closeToast(result);\n };\n\n setTimeout(() => this.isVisible.set(true), 10);\n\n if (this.config?.swipeToDismiss !== false) {\n this.startVerticalSwipeDetection();\n this.monitorInputType();\n }\n\n const animatorTarget = this.animatorWrapper.nativeElement;\n\n const onAnimatorTransitionEnd = (event: TransitionEvent) => {\n if (event.target !== animatorTarget || event.propertyName !== 'grid-template-rows') return;\n if (this.isCollapsing() && !this.hasEmittedClose) {\n this.hasEmittedClose = true;\n this.originalCloseFn(this.closeResult);\n }\n };\n\n animatorTarget.addEventListener('transitionend', onAnimatorTransitionEnd);\n this.cleanupListeners.push(() => animatorTarget.removeEventListener('transitionend', onAnimatorTransitionEnd));\n }\n\n public ngAfterViewInit(): void {\n const duration = this.config?.durationInMs;\n\n if (duration) {\n this.remainingMs = duration;\n this.startTimer();\n }\n\n if (duration && this.progressBar?.nativeElement) {\n this.progressAnimation = this.progressBar.nativeElement.animate([{ width: '100%' }, { width: '0%' }], { duration, fill: 'forwards' });\n\n this.subs.add(this.toastRef.onPause$.subscribe(() => this.progressAnimation?.pause()));\n this.subs.add(this.toastRef.onResume$.subscribe(() => this.progressAnimation?.play()));\n }\n }\n\n public ngOnDestroy(): void {\n clearTimeout(this.autoCloseTimeout);\n\n this.stopVerticalSwipeDetection();\n this.globalResizeCleanup?.();\n\n this.cleanupListeners.forEach((fn) => fn());\n this.cleanupListeners = [];\n\n this.progressAnimation?.cancel();\n this.subs.unsubscribe();\n }\n\n public closeToast(result?: R, fromSwipe = false): void {\n this.closeResult = result !== undefined ? result : this.closeResult;\n\n if (!this.isAnimated()) {\n if (!this.hasEmittedClose) {\n this.hasEmittedClose = true;\n this.originalCloseFn(this.closeResult);\n }\n return;\n }\n\n this.isVisible.set(false);\n this.isCollapsing.set(true);\n\n if (fromSwipe) {\n this.isSwipingFinished.set(true);\n }\n }\n\n @HostListener('mouseenter')\n protected onMouseEnter(): void {\n if (!this.isTouchActive && this.config?.durationInMs && !this.isCollapsing()) {\n this.pauseTimer();\n }\n }\n\n @HostListener('mouseleave')\n protected onMouseLeave(): void {\n if (!this.isTouchActive && this.config?.durationInMs && !this.isCollapsing()) {\n this.startTimer();\n this.toastRef.resume();\n }\n }\n \n //#region Swipe Logic\n\n private startVerticalSwipeDetection(): void {\n if (this.isTrackingSwipe) return;\n\n const hasTouch = typeof window !== 'undefined' && (window.matchMedia('(pointer: coarse)').matches || navigator.maxTouchPoints > 0);\n if (!hasTouch) return;\n\n this.isTrackingSwipe = true;\n const target = this.toastSwipeTarget.nativeElement;\n const isTop = (this.config?.position ?? 'top-right').includes('top');\n\n let startY = 0;\n let startTime = 0;\n let isPointerDown = false;\n let limit = 0;\n\n const pointerDown = (event: PointerEvent) => {\n if (event.button !== 0 && event.pointerType === 'mouse') return;\n\n const toastHeight = target.offsetHeight || 0;\n limit = toastHeight / 3;\n\n isPointerDown = true;\n startY = event.clientY;\n startTime = event.timeStamp;\n\n this.pauseTimer();\n target.setPointerCapture(event.pointerId);\n };\n\n const pointerMove = (event: PointerEvent) => {\n if (!isPointerDown) return;\n const currentY = event.clientY - startY;\n\n if ((isTop && currentY < 0) || (!isTop && currentY > 0)) {\n if (event.cancelable) event.preventDefault();\n this.currentTranslateY.set(currentY);\n }\n };\n\n const pointerUp = (event: PointerEvent) => {\n if (!isPointerDown) return;\n isPointerDown = false;\n target.releasePointerCapture(event.pointerId);\n\n const deltaY = event.clientY - startY;\n const duration = event.timeStamp - startTime || 1;\n const velocityY = Math.abs(deltaY / duration);\n\n const crossedLimit = isTop ? deltaY < -limit : deltaY > limit;\n\n if (crossedLimit || velocityY > 0.3) {\n this.closeToast(undefined, true);\n } else {\n this.currentTranslateY.set(0);\n this.startTimer();\n this.toastRef.resume();\n }\n };\n\n target.addEventListener('pointerdown', pointerDown, { passive: false });\n target.addEventListener('pointermove', pointerMove, { passive: false });\n target.addEventListener('pointerup', pointerUp);\n target.addEventListener('pointercancel', pointerUp);\n\n this.swipeCleanupListeners = () => {\n target.removeEventListener('pointerdown', pointerDown);\n target.removeEventListener('pointermove', pointerMove);\n target.removeEventListener('pointerup', pointerUp);\n target.removeEventListener('pointercancel', pointerUp);\n };\n }\n\n private stopVerticalSwipeDetection(): void {\n if (!this.isTrackingSwipe) return;\n\n this.isTrackingSwipe = false;\n\n if (this.swipeCleanupListeners) {\n this.swipeCleanupListeners();\n this.swipeCleanupListeners = null;\n }\n }\n\n private monitorInputType(): void {\n if (this.globalResizeCleanup) return;\n\n const handler = (event: PointerEvent) => {\n const isTouch = event.pointerType === 'touch';\n\n if (isTouch && !this.isTouchActive) {\n this.isTouchActive = true;\n this.startVerticalSwipeDetection();\n } else if (!isTouch && this.isTouchActive) {\n this.isTouchActive = false;\n this.stopVerticalSwipeDetection();\n }\n };\n\n window.addEventListener('pointerdown', handler);\n this.globalResizeCleanup = () => window.removeEventListener('pointerdown', handler);\n }\n\n //#endregion\n\n //#region Timer Logic\n\n private startTimer(): void {\n if (this.remainingMs <= 0) return;\n\n this.timerStartTime = Date.now();\n this.autoCloseTimeout = setTimeout(() => this.closeToast(), this.remainingMs);\n }\n\n private pauseTimer(): void {\n if (!this.autoCloseTimeout) return;\n\n clearTimeout(this.autoCloseTimeout);\n this.autoCloseTimeout = undefined;\n\n const elapsed = Date.now() - this.timerStartTime;\n this.remainingMs -= elapsed;\n\n this.toastRef.pause();\n }\n\n //#endregion\n}\n","<div #animatorWrapper class=\"toast-animator\" [class.collapsing]=\"isCollapsing()\" [class.is-bottom]=\"isBottom()\">\n <div #toastSwipeTarget class=\"toast-wrapper\" [ngClass]=\"wrapperClasses()\" [class.show]=\"isVisible()\"\n [class.no-animate]=\"!isAnimated()\" [style.transform]=\"toastrTransform()\">\n @if(showCloseButton()) {\n <bx-icon name=\"x\" size=\"20\" [color]=\"closeButtonColor()\" class=\"toast-close-button\" (click)=\"closeToast()\"\n aria-label=\"Close toast\" />\n }\n\n <ng-container #dynamicContainer></ng-container>\n\n @if (config?.durationInMs && showProgressBar() && progressBarCssVar() && progressBarBgCssVar()) {\n <div class=\"toast-progress-container\" [style.background]=\"progressBarBgCssVar()\">\n <div class=\"toast-progress-bar\" [style.background]=\"progressBarCssVar()\" #progressBar></div>\n </div>\n }\n </div>\n</div>","import { inject, Injectable } from '@angular/core';\nimport { ToastRef } from './toast-ref';\nimport { TOAST_DATA } from '../tokens/toast-data.token';\nimport { IToast } from '../interfaces/itoast.interface';\n\n@Injectable()\nexport abstract class Toast<D = unknown, R = unknown> implements IToast<D, R> {\n /**\n * Data injected into the toast component.\n */\n public data = inject<D>(TOAST_DATA);\n\n /**\n * Reference to the ToastRef instance associated with this toast.\n */\n public toast!: ToastRef<D, R>;\n\n /**\n * Called when the toast is initialized.\n */\n public onToastInit(): void {}\n\n /**\n * Closes the toast with an optional result.\n * @param result The result to be passed when closing the toast.\n */\n public close(result?: R): void {\n this.toast?.close(result);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, computed, inject } from '@angular/core';\nimport { Toast } from '../../../classes/toast';\nimport { ISimpleToastData } from '../../../interfaces/isimple-toast.interface';\nimport { BX_I18N, isTextWithKey } from '@filip.mazev/blocks/core';\n\n@Component({\n selector: 'bx-simple-toast',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './simple-toast.html',\n styleUrl: './simple-toast.scss'\n})\nexport class SimpleToast extends Toast<ISimpleToastData, undefined> {\n private readonly i18n = inject(BX_I18N, { optional: true });\n \n protected readonly resolvedTitle = computed(() => {\n this.i18n?.version?.();\n\n const title = this.data.title;\n if (!title) return undefined;\n\n if (isTextWithKey(title)) {\n return this.i18n?.translate(title.key) ?? title.key;\n }\n\n return title;\n });\n\n protected readonly resolvedMessage = computed(() => {\n this.i18n?.version?.();\n\n const message = this.data.message;\n if (!message) return undefined;\n\n if (isTextWithKey(message)) {\n return this.i18n?.translate(message.key) ?? message.key;\n }\n\n return message;\n });\n\n protected dismiss(): void {\n this.toast?.close();\n }\n}\n","<div class=\"simple-toast\" [ngClass]=\"data.type\">\n <div class=\"simple-toast-content\">\n @if(resolvedTitle()) {\n <h4 class=\"simple-toast-title\">{{ resolvedTitle() }}</h4>\n <p class=\"simple-toast-message\">{{ resolvedMessage() }}</p>\n } @else {\n <p class=\"simple-toast-message large-message\">{{ resolvedMessage() }}</p>\n }\n </div>\n</div>","import { Injectable, inject, Injector, ApplicationRef, EnvironmentInjector, createComponent, ComponentRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ComponentType } from '@angular/cdk/portal';\nimport { take } from 'rxjs';\nimport { IToastConfig } from '../interfaces/itoast-config.interface';\nimport { ToastRef } from '../classes/toast-ref';\nimport { TOAST_DATA } from '../tokens/toast-data.token';\nimport { IToast } from '../interfaces/itoast.interface';\nimport { ToastrGlobalSettingsService } from './toastr-global-settings.service';\nimport { ToastPosition } from '../types/toastr.types';\nimport { ToastCore } from '../components/toast-core';\nimport { SimpleToast } from '../components/views/simple-toast/simple-toast';\nimport { ISimpleToastData } from '../interfaces/isimple-toast.interface';\nimport { IQueueSimpleToastRequest } from '../interfaces/iqueue-simple-toast-request.interface';\nimport { BxA11yService } from '@filip.mazev/blocks/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ToastrService {\n private readonly injector = inject(Injector);\n private readonly appRef = inject(ApplicationRef);\n private readonly environmentInjector = inject(EnvironmentInjector);\n private readonly document = inject(DOCUMENT);\n private readonly globalSettings = inject(ToastrGlobalSettingsService);\n private readonly a11y = inject(BxA11yService);\n\n private readonly toastQueue: Array<() => void> = [];\n private readonly activeToasts: Array<ComponentRef<ToastCore<unknown, unknown, IToast<unknown, unknown>>>> = [];\n private readonly containers = new Map<ToastPosition, HTMLElement>();\n\n private activePauses = 0;\n\n /**\n * Displays a toast notification with the specified component and configuration.\n * @param componentType\n * @param config\n * @returns\n */\n public queueToast<D, R, C extends IToast<D, R>>(componentType: ComponentType<C>, config?: IToastConfig<D>): ToastRef<D, R> {\n const resolvedConfig = this.resolveConfig(config);\n const toastRef = new ToastRef<D, R>();\n\n this.toastQueue.push(() => this.buildAndAttachToast(componentType, resolvedConfig, toastRef));\n\n this.processQueue();\n\n return toastRef;\n }\n\n /**\n * Queues a simple success toast notification with the specified message and optional title, position, and duration.\n * @param request An object containing the message, optional title, optional position, and duration for the toast notification.\n * @returns A ToastRef instance representing the queued toast.\n */\n public queueSuccess(request: IQueueSimpleToastRequest): ToastRef<ISimpleToastData, undefined> {\n return this.queueToast<ISimpleToastData, undefined, SimpleToast>(SimpleToast, {\n position: request.position ?? this.globalSettings.position(),\n data: {\n title: request.title,\n message: request.message,\n type: 'success'\n },\n closeButtonColor: 'text-success',\n progressBarColor: 'text-success',\n hasDefaultBackground: false,\n durationInMs: request.durationInMs ?? this.globalSettings.durationInMs(),\n animate: request.animate ?? this.globalSettings.animate(),\n showProgressBar: request.showProgessBar ?? this.globalSettings.showProgressBar(),\n showCloseButton: request.showCloseButton ?? this.globalSettings.showCloseButton()\n });\n }\n\n /**\n * Queues a simple info toast notification with the specified message and optional title, position, and duration.\n * @param request An object containing the message, optional title, optional position, and duration for the toast notification.\n * @returns A ToastRef instance representing the queued toast.\n */\n public queueInfo(request: IQueueSimpleToastRequest): ToastRef<ISimpleToastData, undefined> {\n return this.queueToast<ISimpleToastData, undefined, SimpleToast>(SimpleToast, {\n position: request.position ?? this.globalSettings.position(),\n data: {\n title: request.title,\n message: request.message,\n type: 'info'\n },\n closeButtonColor: 'text-info',\n progressBarColor: 'text-info',\n hasDefaultBackground: false,\n durationInMs: request.durationInMs ?? this.globalSettings.durationInMs(),\n animate: request.animate ?? this.globalSettings.animate(),\n showProgressBar: request.showProgessBar ?? this.globalSettings.showProgressBar(),\n showCloseButton: request.showCloseButton ?? this.globalSettings.showCloseButton()\n });\n }\n\n /**\n * Queues a simple warning toast notification with the specified message and optional title, position, and duration.\n * @param request An object containing the message, optional title, optional position, and duration for the toast notification.\n * @returns A ToastRef instance representing the queued toast.\n */\n public queueWarning(request: IQueueSimpleToastRequest): ToastRef<ISimpleToastData, undefined> {\n return this.queueToast<ISimpleToastData, undefined, SimpleToast>(SimpleToast, {\n position: request.position ?? this.globalSettings.position(),\n data: {\n title: request.title,\n message: request.message,\n type: 'warn'\n },\n closeButtonColor: 'text-warn',\n progressBarColor: 'text-warn',\n hasDefaultBackground: false,\n durationInMs: request.durationInMs ?? this.globalSettings.durationInMs(),\n animate: request.animate ?? this.globalSettings.animate(),\n showProgressBar: request.showProgessBar ?? this.globalSettings.showProgressBar(),\n showCloseButton: request.showCloseButton ?? this.globalSettings.showCloseButton()\n });\n }\n\n /**\n * Queues a simple error toast notification with the specified message and optional title, position, and duration.\n * @param request An object containing the message, optional title, optional position, and duration for the toast notification.\n * @returns A ToastRef instance representing the queued toast.\n */\n public queueDanger(request: IQueueSimpleToastRequest): ToastRef<ISimpleToastData, undefined> {\n return this.queueToast<ISimpleToastData, undefined, SimpleToast>(SimpleToast, {\n position: request.position ?? this.globalSettings.position(),\n data: {\n title: request.title,\n message: request.message,\n type: 'danger'\n },\n closeButtonColor: 'text-danger',\n progressBarColor: 'text-danger',\n hasDefaultBackground: false,\n durationInMs: request.durationInMs ?? this.globalSettings.durationInMs(),\n animate: request.animate ?? this.globalSettings.animate(),\n showProgressBar: request.showProgessBar ?? this.globalSettings.showProgressBar(),\n showCloseButton: request.showCloseButton ?? this.globalSettings.showCloseButton()\n });\n }\n\n //#region Helper Methods\n\n private processQueue(): void {\n if (this.activePauses > 0) {\n return;\n }\n\n const max = this.globalSettings.maxOpened();\n\n while (this.activeToasts.length < max && this.toastQueue.length > 0) {\n const buildNext = this.toastQueue.shift();\n if (buildNext) {\n buildNext();\n }\n }\n }\n\n private buildAndAttachToast<D, R, C extends IToast<D, R>>(componentType: ComponentType<C>, config: IToastConfig<D>, toastRef: ToastRef<D, R>): void {\n const dataInjector = Injector.create({\n providers: [{ provide: TOAST_DATA, useValue: config.data }],\n parent: this.injector\n });\n\n const contentRef = createComponent(componentType, {\n environmentInjector: this.environmentInjector,\n elementInjector: dataInjector\n });\n\n if (this.isIToast<D, R, C>(contentRef.instance)) {\n contentRef.instance.toast = toastRef;\n contentRef.instance.onToastInit?.();\n }\n\n const wrapperInjector = Injector.create({\n providers: [{ provide: ToastRef, useValue: toastRef }],\n parent: this.injector\n });\n\n const wrapperRef = createComponent<ToastCore<D, R, C>>(ToastCore, {\n environmentInjector: this.environmentInjector,\n elementInjector: wrapperInjector\n });\n\n wrapperRef.instance.componentRef = contentRef;\n wrapperRef.instance.config = config;\n wrapperRef.instance.toastRef = toastRef;\n\n this.appRef.attachView(wrapperRef.hostView);\n\n const container = this.getContainer(config.position || 'top-right');\n container.appendChild(wrapperRef.location.nativeElement);\n\n this.activeToasts.push(wrapperRef as ComponentRef<ToastCore<unknown, unknown, IToast<unknown, unknown>>>);\n\n let isThisToastPausing = false;\n\n toastRef.config = config;\n\n toastRef.onPause$.subscribe(() => {\n if (!isThisToastPausing) {\n isThisToastPausing = true;\n this.activePauses++;\n }\n });\n\n toastRef.onResume$.subscribe(() => {\n if (isThisToastPausing) {\n isThisToastPausing = false;\n this.activePauses = Math.max(0, this.activePauses - 1);\n\n if (this.activePauses === 0) {\n this.processQueue();\n }\n }\n });\n\n toastRef.afterClosed$.pipe(take(1)).subscribe(() => {\n if (isThisToastPausing) {\n isThisToastPausing = false;\n this.activePauses = Math.max(0, this.activePauses - 1);\n }\n\n this.finalizeToast(wrapperRef);\n });\n }\n\n private finalizeToast<D, R, C extends IToast<D, R>>(wrapperRef: ComponentRef<ToastCore<D, R, C>>): void {\n const index = this.activeToasts.indexOf(wrapperRef as ComponentRef<ToastCore<unknown, unknown, IToast<unknown, unknown>>>);\n\n if (index > -1) {\n this.activeToasts.splice(index, 1);\n }\n\n this.appRef.detachView(wrapperRef.hostView);\n wrapperRef.location.nativeElement.remove();\n wrapperRef.destroy();\n\n this.processQueue();\n }\n\n private getContainer(position: ToastPosition): HTMLElement {\n if (this.containers.has(position)) {\n return this.containers.get(position) as HTMLElement;\n }\n\n const container = this.document.createElement('div');\n container.classList.add('toast-container', `toast-container-${position}`);\n this.document.body.appendChild(container);\n\n this.containers.set(position, container);\n\n return container;\n }\n\n private resolveConfig<D>(config?: IToastConfig<D>): IToastConfig<D> {\n const requestedAnimation = config?.animate ?? this.globalSettings.animate();\n const finalAnimateState = this.a11y.isReducedMotion() ? false : requestedAnimation;\n\n return {\n ...config,\n position: config?.position ?? this.globalSettings.position(),\n animate: finalAnimateState,\n wrapperClass: config?.wrapperClass ?? this.globalSettings.wrapperClass(),\n durationInMs: config?.durationInMs ?? this.globalSettings.durationInMs(),\n swipeToDismiss: config?.swipeToDismiss ?? this.globalSettings.swipeToDismiss(),\n showCloseButton: config?.showCloseButton ?? this.globalSettings.showCloseButton(),\n closeButtonColor: config?.closeButtonColor ?? this.globalSettings.closeButtonColor(),\n showProgressBar: config?.showProgressBar ?? this.globalSettings.showProgressBar(),\n progressBarColor: config?.progressBarColor ?? this.globalSettings?.progressBarColor()\n };\n }\n\n private isIToast<D, R, C extends IToast<D, R>>(component: unknown): component is C {\n return typeof component === 'object' && component !== null && 'toast' in component;\n }\n\n //#endregion\n}","/*\n * Public API Surface of toastr\n */\n\nexport * from './services/toastr.service';\nexport * from './services/toastr-global-settings.service';\n\nexport * from './components/toast-core';\nexport * from './components/views/simple-toast/simple-toast';\n\nexport * from './interfaces/itoast-config.interface';\nexport * from './interfaces/itoast.interface';\nexport * from './interfaces/isimple-toast.interface';\n\nexport * from './types/toastr.types';\n\nexport * from './tokens/toast-data.token';\n\nexport * from './classes/toast-ref';\nexport * from './classes/toast';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  /* * Public API Surface of blocks
2
2
  * This file is auto-generated. Do not edit directly.
3
3
  */
4
- const BLOCKS_VERSION = '1.2.33';
4
+ const BLOCKS_VERSION = '1.2.35';
5
5
 
6
6
  /**
7
7
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"filip.mazev-blocks.mjs","sources":["../../../projects/blocks/src/public-api.ts","../../../projects/blocks/src/filip.mazev-blocks.ts"],"sourcesContent":["/* * Public API Surface of blocks\n * This file is auto-generated. Do not edit directly.\n */\n\nexport const BLOCKS_VERSION = '1.2.33';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"AAAA;;AAEG;AAEI,MAAM,cAAc,GAAG;;ACJ9B;;AAEG;;;;"}
1
+ {"version":3,"file":"filip.mazev-blocks.mjs","sources":["../../../projects/blocks/src/public-api.ts","../../../projects/blocks/src/filip.mazev-blocks.ts"],"sourcesContent":["/* * Public API Surface of blocks\n * This file is auto-generated. Do not edit directly.\n */\n\nexport const BLOCKS_VERSION = '1.2.35';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"AAAA;;AAEG;AAEI,MAAM,cAAc,GAAG;;ACJ9B;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@filip.mazev/blocks",
3
- "version": "1.2.33",
3
+ "version": "1.2.35",
4
4
  "license": "MIT",
5
5
  "schematics": "./schematics/collection.json",
6
6
  "exports": {
@@ -39,6 +39,10 @@
39
39
  "types": "./types/filip.mazev-blocks-navigation.d.ts",
40
40
  "default": "./fesm2022/filip.mazev-blocks-navigation.mjs"
41
41
  },
42
+ "./primitives": {
43
+ "types": "./types/filip.mazev-blocks-primitives.d.ts",
44
+ "default": "./fesm2022/filip.mazev-blocks-primitives.mjs"
45
+ },
42
46
  "./toastr": {
43
47
  "types": "./types/filip.mazev-blocks-toastr.d.ts",
44
48
  "default": "./fesm2022/filip.mazev-blocks-toastr.mjs"
@@ -1,6 +1,7 @@
1
- import * as _angular_core from '@angular/core';
1
+ import * as i0 from '@angular/core';
2
2
  import { OnDestroy, NgZone, Signal, InjectionToken } from '@angular/core';
3
3
  import * as rxjs from 'rxjs';
4
+ import { FlexibleConnectedPositionStrategy } from '@angular/cdk/overlay';
4
5
 
5
6
  declare enum DesktopOS {
6
7
  Linux = "linux",
@@ -48,8 +49,8 @@ declare class DeviceTypeService {
48
49
  private getMobileOS;
49
50
  private getDesktopOS;
50
51
  private getDeviceOS;
51
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<DeviceTypeService, never>;
52
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<DeviceTypeService>;
52
+ static ɵfac: i0.ɵɵFactoryDeclaration<DeviceTypeService, never>;
53
+ static ɵprov: i0.ɵɵInjectableDeclaration<DeviceTypeService>;
53
54
  }
54
55
 
55
56
  interface IScrollLockConfig {
@@ -68,8 +69,8 @@ declare class ScrollLockService implements OnDestroy {
68
69
  private readonly activeLocks;
69
70
  private readonly boundHandleTouchMove;
70
71
  private readonly boundPreventDefault;
71
- readonly _isScrollDisabled: _angular_core.WritableSignal<boolean>;
72
- readonly isScrollDisabled: _angular_core.Signal<boolean>;
72
+ readonly _isScrollDisabled: i0.WritableSignal<boolean>;
73
+ readonly isScrollDisabled: i0.Signal<boolean>;
73
74
  private previousBodyPadding;
74
75
  private pendingListenerTimeout;
75
76
  ngOnDestroy(): void;
@@ -82,8 +83,8 @@ declare class ScrollLockService implements OnDestroy {
82
83
  private handleTouchMove;
83
84
  private isAllowedToScroll;
84
85
  private preventDefault;
85
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<ScrollLockService, never>;
86
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<ScrollLockService>;
86
+ static ɵfac: i0.ɵɵFactoryDeclaration<ScrollLockService, never>;
87
+ static ɵprov: i0.ɵɵInjectableDeclaration<ScrollLockService>;
87
88
  }
88
89
 
89
90
  interface IWindowDimensions {
@@ -95,11 +96,11 @@ declare class WindowDimensionsService {
95
96
  readonly ngZone: NgZone;
96
97
  readonly platformId: Object;
97
98
  readonly isBrowser: boolean;
98
- readonly _dimensions: _angular_core.WritableSignal<IWindowDimensions>;
99
- readonly dimensions: _angular_core.Signal<IWindowDimensions>;
100
- readonly isMobile: _angular_core.Signal<boolean>;
101
- readonly isTablet: _angular_core.Signal<boolean>;
102
- readonly isDesktop: _angular_core.Signal<boolean>;
99
+ readonly _dimensions: i0.WritableSignal<IWindowDimensions>;
100
+ readonly dimensions: i0.Signal<IWindowDimensions>;
101
+ readonly isMobile: i0.Signal<boolean>;
102
+ readonly isTablet: i0.Signal<boolean>;
103
+ readonly isDesktop: i0.Signal<boolean>;
103
104
  readonly breakpoints: {
104
105
  readonly xs: 360;
105
106
  readonly sm: 640;
@@ -113,8 +114,8 @@ declare class WindowDimensionsService {
113
114
  constructor();
114
115
  private getCurrentDimensions;
115
116
  private initResizeListener;
116
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<WindowDimensionsService, never>;
117
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<WindowDimensionsService>;
117
+ static ɵfac: i0.ɵɵFactoryDeclaration<WindowDimensionsService, never>;
118
+ static ɵprov: i0.ɵɵInjectableDeclaration<WindowDimensionsService>;
118
119
  }
119
120
 
120
121
  type DeviceTheme = 'light' | 'dark';
@@ -136,15 +137,16 @@ type Strict<T, Expected> = T & {
136
137
  type ResolvableText = string | {
137
138
  key: string;
138
139
  };
140
+ type BxPlacement = 'top' | 'bottom' | 'left' | 'right';
139
141
 
140
142
  declare class ThemingService implements OnDestroy {
141
143
  private readonly platformId;
142
144
  private readonly isBrowser;
143
145
  private readonly _systemTheme;
144
146
  private readonly _applicationTheme;
145
- readonly systemTheme: _angular_core.Signal<DeviceTheme>;
146
- readonly applicationTheme: _angular_core.Signal<DeviceTheme | null>;
147
- readonly activeTheme: _angular_core.Signal<DeviceTheme>;
147
+ readonly systemTheme: i0.Signal<DeviceTheme>;
148
+ readonly applicationTheme: i0.Signal<DeviceTheme | null>;
149
+ readonly activeTheme: i0.Signal<DeviceTheme>;
148
150
  private readonly systemTheme$;
149
151
  private readonly applicationTheme$;
150
152
  private mediaQueryList?;
@@ -156,8 +158,8 @@ declare class ThemingService implements OnDestroy {
156
158
  getApplicationTheme$(): rxjs.Observable<DeviceTheme | null>;
157
159
  private detectInitialSystemTheme;
158
160
  private initSystemThemeListener;
159
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThemingService, never>;
160
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<ThemingService>;
161
+ static ɵfac: i0.ɵɵFactoryDeclaration<ThemingService, never>;
162
+ static ɵprov: i0.ɵɵInjectableDeclaration<ThemingService>;
161
163
  }
162
164
 
163
165
  declare class BxA11yService {
@@ -165,13 +167,22 @@ declare class BxA11yService {
165
167
  private readonly platformId;
166
168
  private readonly osPrefersReducedMotion;
167
169
  private readonly manualOverride;
168
- readonly isReducedMotion: _angular_core.Signal<boolean>;
170
+ readonly isReducedMotion: i0.Signal<boolean>;
169
171
  constructor();
170
172
  setReducedMotion(reduce: boolean | null): void;
171
173
  private initMediaMatcher;
172
174
  private syncWithDOM;
173
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<BxA11yService, never>;
174
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<BxA11yService>;
175
+ static ɵfac: i0.ɵɵFactoryDeclaration<BxA11yService, never>;
176
+ static ɵprov: i0.ɵɵInjectableDeclaration<BxA11yService>;
177
+ }
178
+
179
+ declare class BxOverlayPositionService {
180
+ private readonly overlay;
181
+ getElementStrategy(element: HTMLElement, placement: BxPlacement, offset?: number): FlexibleConnectedPositionStrategy;
182
+ getCoordinateStrategy(x: number, y: number): FlexibleConnectedPositionStrategy;
183
+ private getPositions;
184
+ static ɵfac: i0.ɵɵFactoryDeclaration<BxOverlayPositionService, never>;
185
+ static ɵprov: i0.ɵɵInjectableDeclaration<BxOverlayPositionService>;
175
186
  }
176
187
 
177
188
  interface IBxI18nAdapter {
@@ -243,5 +254,5 @@ declare function invertPaletteToken(token: Color): Color;
243
254
 
244
255
  declare function uuidv4(): string;
245
256
 
246
- export { BREAKPOINTS, BX_I18N, BxA11yService, DesktopOS, DeviceTypeService, FALLBACK_COLOR, MobileOS, PALETTE_NAMES, SCROLL_LOCK_INSTANCE_IDENTIFIER, SEMANTIC_PAIRS, SHADE_NUMBERS, ScrollLockService, TOKEN_COLOR_DELIMITER, TOKEN_DELIMITER, TOKEN_PREFIX, ThemingService, WindowDimensionsService, getComplementaryToken, invertPaletteToken, isPaletteToken, isTextWithKey, isThemedColor, resolveTokenToCssVar, uuidv4 };
247
- export type { Color, DeviceOS, DeviceOrientationType, DeviceTheme, IBxI18nAdapter, IDeviceState, IScrollLockConfig, IWindowDimensions, LegacyScreenOrientation, MSStreamWindow, OperaCapableWindow, ResolvableText, SemanticColorToken, Strict, ThemeColorToken, ThemePalette, ThemeShade, ThemedColor };
257
+ export { BREAKPOINTS, BX_I18N, BxA11yService, BxOverlayPositionService, DesktopOS, DeviceTypeService, FALLBACK_COLOR, MobileOS, PALETTE_NAMES, SCROLL_LOCK_INSTANCE_IDENTIFIER, SEMANTIC_PAIRS, SHADE_NUMBERS, ScrollLockService, TOKEN_COLOR_DELIMITER, TOKEN_DELIMITER, TOKEN_PREFIX, ThemingService, WindowDimensionsService, getComplementaryToken, invertPaletteToken, isPaletteToken, isTextWithKey, isThemedColor, resolveTokenToCssVar, uuidv4 };
258
+ export type { BxPlacement, Color, DeviceOS, DeviceOrientationType, DeviceTheme, IBxI18nAdapter, IDeviceState, IScrollLockConfig, IWindowDimensions, LegacyScreenOrientation, MSStreamWindow, OperaCapableWindow, ResolvableText, SemanticColorToken, Strict, ThemeColorToken, ThemePalette, ThemeShade, ThemedColor };