@shival99/z-ui 1.3.17 → 1.3.19
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.
- package/fesm2022/shival99-z-ui-components-z-drawer.mjs +2 -3
- package/fesm2022/shival99-z-ui-components-z-drawer.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-empty.mjs +1 -0
- package/fesm2022/shival99-z-ui-components-z-empty.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-icon.mjs +2 -1
- package/fesm2022/shival99-z-ui-components-z-icon.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-modal.mjs +2 -2
- package/fesm2022/shival99-z-ui-components-z-modal.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-i18n.mjs +6 -15
- package/fesm2022/shival99-z-ui-i18n.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-services.mjs +20 -1
- package/fesm2022/shival99-z-ui-services.mjs.map +1 -1
- package/package.json +1 -1
- package/types/shival99-z-ui-components-z-breadcrumb.d.ts +2 -2
- package/types/shival99-z-ui-components-z-button.d.ts +1 -1
- package/types/shival99-z-ui-components-z-calendar.d.ts +4 -4
- package/types/shival99-z-ui-components-z-dropdown-menu.d.ts +1 -1
- package/types/shival99-z-ui-components-z-empty.d.ts +1 -1
- package/types/shival99-z-ui-components-z-filter.d.ts +1 -1
- package/types/shival99-z-ui-components-z-icon.d.ts +2 -1
- package/types/shival99-z-ui-components-z-modal.d.ts +1 -1
- package/types/shival99-z-ui-components-z-select.d.ts +2 -2
- package/types/shival99-z-ui-i18n.d.ts +14 -24
- package/types/shival99-z-ui-services.d.ts +15 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shival99-z-ui-components-z-modal.mjs","sources":["../../../../libs/core-ui/components/z-modal/directives/z-modal-content.directive.ts","../../../../libs/core-ui/components/z-modal/directives/z-modal-footer.directive.ts","../../../../libs/core-ui/components/z-modal/directives/z-modal-header.directive.ts","../../../../libs/core-ui/components/z-modal/z-modal.types.ts","../../../../libs/core-ui/components/z-modal/z-modal.utils.ts","../../../../libs/core-ui/components/z-modal/z-modal.variants.ts","../../../../libs/core-ui/components/z-modal/z-modal.component.ts","../../../../libs/core-ui/components/z-modal/z-modal.component.html","../../../../libs/core-ui/components/z-modal/z-modal.ref.ts","../../../../libs/core-ui/components/z-modal/z-modal.service.ts","../../../../libs/core-ui/components/z-modal/shival99-z-ui-components-z-modal.ts"],"sourcesContent":["import { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n selector: '[z-modal-content], [zModalContent]',\n standalone: true,\n})\nexport class ZModalContentDirective {\n public readonly templateRef = inject(TemplateRef<unknown>);\n}\n","import { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n selector: '[z-modal-footer], [zModalFooter]',\n standalone: true,\n})\nexport class ZModalFooterDirective {\n public readonly templateRef = inject(TemplateRef<unknown>);\n}\n","import { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n selector: '[z-modal-header], [zModalHeader]',\n standalone: true,\n})\nexport class ZModalHeaderDirective {\n public readonly templateRef = inject(TemplateRef<unknown>);\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { type ComponentType } from '@angular/cdk/overlay';\nimport {\n type EventEmitter,\n InjectionToken,\n type TemplateRef,\n type Type,\n type ViewContainerRef,\n type WritableSignal,\n} from '@angular/core';\nimport type { ZIcon } from '@shival99/z-ui/components/z-icon';\nimport type { ClassValue } from 'clsx';\nimport type { Observable } from 'rxjs';\n\nexport type ZModalContentType<T> = ComponentType<T> | TemplateRef<T> | string;\nexport const Z_MODAL_DATA = new InjectionToken<any>('Z_MODAL_DATA');\nexport const Z_MODAL_ANIMATION_DURATION = 200;\nexport enum ZModalTriggerAction {\n CANCEL = 'cancel',\n OK = 'ok',\n}\n\nexport type ZModalOnClickCallBack<T> = (instance: T, modalRef?: unknown) => false | void | object;\nexport type ZModalConfirmType = 'show' | 'info' | 'warning' | 'danger';\n\nconst noopFun = (): void => {};\n\n/**\n * Configuration options for z-modal component.\n *\n * @template T - The type of the content component\n * @template U - The type of the data passed to the modal\n */\nexport class ZModalOptions<T, U> {\n /** Icon for the cancel button */\n public zCancelIcon?: ZIcon;\n /** Text for the cancel button. Set to null to hide the button */\n public zCancelText?: string | null;\n /** Whether the modal is closable (shows close button) */\n public zClosable?: boolean;\n /** Confirm type for preset styling (show, info, warning, danger) */\n public zConfirmType?: 'show' | 'info' | 'warning' | 'danger';\n /** Icon for the confirm modal */\n public zConfirmIcon?: ZIcon;\n /** Modal content - can be a component, template, or string */\n public zContent?: string | TemplateRef<T> | Type<T>;\n /** Custom CSS classes for the modal */\n public class?: ClassValue;\n /** Data to be passed to the content component via Z_MODAL_DATA token */\n public zData?: U;\n /**\n * Observable for deferred data loading before showing modal content.\n * Modal will show a loading spinner until the Observable completes.\n * The resolved data will be available via Z_MODAL_DATA.\n *\n * @example\n * ```typescript\n * this.modalService.create({\n * zDefer: this.userService.getUser(userId),\n * zContent: UserFormComponent,\n * });\n * ```\n */\n public zDefer?: Observable<U>;\n /** Description text shown below the title */\n public zDescription?: string;\n /** Whether to hide the default footer */\n public zHideFooter?: boolean;\n /**\n * WritableSignal to control loading state of the OK button.\n * Use this when submitting forms or calling APIs.\n *\n * @example Using with confirm modal (delete action)\n * ```typescript\n * const modalRef = this.modalService.danger({\n * zTitle: 'Delete Item',\n * zContent: 'Are you sure you want to delete this item?',\n * zOkText: 'Delete',\n * zOnOk: () => {\n * modalRef.setLoading(true);\n * this.api.delete(itemId).subscribe({\n * next: () => {\n * modalRef.setLoading(false);\n * modalRef.close();\n * },\n * error: () => modalRef.setLoading(false),\n * });\n * return false; // Prevent auto-close\n * },\n * });\n * ```\n */\n public readonly zLoading?: WritableSignal<boolean>;\n /** Whether clicking mask closes the modal */\n public zMaskClosable?: boolean;\n /** Whether OK button has destructive (red) style */\n public zOkDestructive?: boolean;\n /** Whether OK button is disabled */\n public zOkDisabled?: boolean;\n /** Overlay style: 'dark' (black overlay) or 'blur' (backdrop blur) */\n public zOverlay?: 'dark' | 'blur';\n /** Icon for the OK button */\n public zOkIcon?: ZIcon;\n /** Text for the OK button. Set to null to hide the button */\n public zOkText?: string | null;\n /** Callback or EventEmitter when cancel is clicked */\n public zOnCancel?: EventEmitter<T> | ZModalOnClickCallBack<T> = noopFun;\n /** Callback or EventEmitter when OK is clicked */\n public zOnOk?: EventEmitter<T> | ZModalOnClickCallBack<T> = noopFun;\n /** Modal title - supports string, HTML string, or TemplateRef */\n public zTitle?: string | TemplateRef<T>;\n /** ViewContainerRef for the modal portal */\n public zViewContainerRef?: ViewContainerRef;\n /** Modal width (e.g., '425px', '80%') */\n public zWidth?: string;\n /** WritableSignal to control content loading state (shows skeleton when true) */\n public readonly zContentLoading?: WritableSignal<boolean>;\n /** Number of skeleton rows to show when content is loading */\n public zSkeletonRows?: number;\n}\n\nexport interface ZModalConfirmOptions<U = unknown> {\n zTitle: string;\n zContent?: string;\n zIcon?: ZIcon;\n zOkText?: string;\n zCancelText?: string | null;\n /** Callback when OK is clicked. Return false to prevent auto-close */\n zOnOk?: () => void | false | Promise<void>;\n zOnCancel?: () => void;\n zMaskClosable?: boolean;\n zWidth?: string;\n zData?: U;\n}\n\nexport interface ZModalConfirmIconColors {\n ring: string;\n bg: string;\n icon: string;\n}\n\nexport interface ZModalConfirmConfig {\n icon: ZIcon;\n okDestructive?: boolean;\n colors: ZModalConfirmIconColors;\n}\n","import { zDetectBrowser } from '@shival99/z-ui/utils';\nimport type { ZModalConfirmConfig, ZModalConfirmType } from './z-modal.types';\n\nexport type ZModalOverlayType = 'dark' | 'blur';\nexport const getOverlayType = (): ZModalOverlayType => {\n const browser = zDetectBrowser();\n return browser.name === 'Chrome' ? 'dark' : 'blur';\n};\n\nexport const Z_MODAL_CONFIRM_CONFIG: Record<ZModalConfirmType, ZModalConfirmConfig> = {\n show: {\n icon: 'lucideMessageCircleQuestion',\n colors: {\n ring: 'bg-gray-500/10',\n bg: 'bg-gray-500/15',\n icon: 'text-gray-600!',\n },\n },\n info: {\n icon: 'lucideInfo',\n colors: {\n ring: 'bg-blue-500/10',\n bg: 'bg-blue-500/15',\n icon: 'text-blue-500!',\n },\n },\n warning: {\n icon: 'lucideTriangleAlert',\n colors: {\n ring: 'bg-amber-500/10',\n bg: 'bg-amber-500/15',\n icon: 'text-amber-500!',\n },\n },\n danger: {\n icon: 'lucideX',\n okDestructive: true,\n colors: {\n ring: 'bg-red-500/10',\n bg: 'bg-red-500/15',\n icon: 'text-red-500!',\n },\n },\n};\n","import { cva } from 'class-variance-authority';\n\nexport const zModalVariants = cva(\n [\n 'fixed left-[50%] top-[50%] z-50 flex flex-col w-full translate-x-[-50%]',\n 'translate-y-[-50%] border bg-background py-4 shadow-lg rounded-lg',\n 'max-w-[calc(100%-2rem)] overflow-hidden',\n 'max-h-[80dvh]',\n ].join(' ')\n);\n","import { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport {\n BasePortalOutlet,\n CdkPortalOutlet,\n type ComponentPortal,\n PortalModule,\n TemplatePortal,\n} from '@angular/cdk/portal';\nimport { CdkScrollable } from '@angular/cdk/scrolling';\nimport { isPlatformBrowser, NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewChecked,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n type ComponentRef,\n computed,\n contentChild,\n effect,\n ElementRef,\n type EmbeddedViewRef,\n inject,\n input,\n model,\n OnDestroy,\n output,\n PLATFORM_ID,\n signal,\n type TemplateRef,\n viewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { ZButtonComponent, ZButtonVariants } from '@shival99/z-ui/components/z-button';\nimport { ZIconComponent } from '@shival99/z-ui/components/z-icon';\nimport { ZSkeletonComponent } from '@shival99/z-ui/components/z-skeleton';\nimport { ZTooltipDirective } from '@shival99/z-ui/components/z-tooltip';\nimport { ZContentTypePipe, ZSafeHtmlPipe } from '@shival99/z-ui/pipes';\nimport { ZTranslateService } from '@shival99/z-ui/services';\nimport { zMergeClasses } from '@shival99/z-ui/utils';\nimport type { ClassValue } from 'clsx';\nimport { NgScrollbar } from 'ngx-scrollbar';\nimport { Subscription } from 'rxjs';\nimport { ZModalContentDirective } from './directives/z-modal-content.directive';\nimport { ZModalFooterDirective } from './directives/z-modal-footer.directive';\nimport { ZModalHeaderDirective } from './directives/z-modal-header.directive';\nimport { ZModalRef } from './z-modal.ref';\nimport { Z_MODAL_ANIMATION_DURATION, ZModalOptions } from './z-modal.types';\nimport { getOverlayType, Z_MODAL_CONFIRM_CONFIG } from './z-modal.utils';\nimport { zModalVariants } from './z-modal.variants';\n\n@Component({\n selector: 'z-modal',\n imports: [\n PortalModule,\n NgTemplateOutlet,\n ZButtonComponent,\n ZIconComponent,\n ZContentTypePipe,\n ZTooltipDirective,\n ZSkeletonComponent,\n NgScrollbar,\n ZSafeHtmlPipe,\n TranslatePipe,\n CdkScrollable,\n ],\n standalone: true,\n templateUrl: './z-modal.component.html',\n styleUrl: './z-modal.component.scss',\n providers: [TranslatePipe],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'hostClasses()',\n '[style.width]': 'effectiveWidth()',\n },\n exportAs: 'zModal',\n})\nexport class ZModalComponent<T, U> extends BasePortalOutlet implements OnDestroy, AfterViewChecked {\n public zOk = output<void>();\n public zCancel = output<void>();\n public readonly zScrollbar = output<NgScrollbar>();\n\n public readonly class = input<ClassValue>('');\n public readonly zVisible = model<boolean>(false);\n public readonly zTitle = input<string | TemplateRef<unknown>>();\n public readonly zDescription = input<string | TemplateRef<unknown>>();\n public readonly zWidth = input<string>('500px');\n public readonly zClosable = input<boolean>(true);\n public readonly zMaskClosable = input<boolean>(true);\n public readonly zHideFooter = input<boolean>(false);\n public readonly zOkText = input<string | null>(null);\n public readonly zCancelText = input<string | null>(null);\n public readonly zOkDestructive = input<boolean>(false);\n public readonly zOkDisabled = input<boolean>(false);\n public readonly zLoading = input<boolean>(false);\n public readonly zContentLoading = input<boolean>(false);\n public readonly zSkeletonRows = input<number>(3);\n public readonly zOverlay = input<'dark' | 'blur'>(getOverlayType());\n\n protected readonly customHeader = contentChild(ZModalHeaderDirective);\n protected readonly customContent = contentChild(ZModalContentDirective);\n protected readonly customFooter = contentChild(ZModalFooterDirective);\n\n public modalRef?: ZModalRef<T>;\n public readonly portalOutlet = viewChild(CdkPortalOutlet);\n protected readonly dummyTemplateRef = viewChild<TemplateRef<unknown>>('dummyTemplate');\n protected readonly mainContentRef = viewChild<NgScrollbar>('mainContent');\n\n protected readonly config = inject(ZModalOptions<T, U>, { optional: true }) || new ZModalOptions<T, U>();\n private readonly _platformId = inject(PLATFORM_ID);\n private readonly _host = inject(ElementRef<HTMLElement>);\n private readonly _overlay = inject(Overlay);\n private readonly _viewContainerRef = inject(ViewContainerRef);\n private readonly _cdr = inject(ChangeDetectorRef);\n private readonly _zTranslate = inject(ZTranslateService);\n\n private _templateOverlayRef: OverlayRef | null = null;\n private _originalParent: HTMLElement | null = null;\n private _originalNextSibling: Node | null = null;\n private _backdropSubscription: Subscription | null = null;\n\n protected readonly isLeaving = signal(false);\n protected readonly hasScrollableContent = signal(false);\n protected readonly isScrolledFromTop = signal(false);\n protected readonly isScrolledToBottom = signal(false);\n protected readonly isServiceMode = computed(() => !!this.modalRef);\n protected readonly isTemplateMode = computed(() => !this.isServiceMode());\n protected readonly isConfirmMode = computed(() => !!this.config.zConfirmType);\n protected readonly shouldRenderContent = computed(() => this.zVisible() || this.isLeaving());\n protected readonly isStringContent = computed(\n () => typeof this.config.zContent === 'string' && !this.isConfirmMode()\n );\n\n protected readonly shouldShowShadow = computed(() => true);\n\n private _lastScrollHeight = 0;\n\n public ngAfterViewChecked(): void {\n this._checkScrollState();\n }\n\n private _checkScrollState(): void {\n const scrollbar = this.mainContentRef();\n if (!scrollbar) {\n return;\n }\n\n const viewport = scrollbar.nativeElement.querySelector('.ng-scroll-viewport') as HTMLElement;\n if (!viewport) {\n return;\n }\n\n if (viewport.scrollHeight === this._lastScrollHeight) {\n return;\n }\n this._lastScrollHeight = viewport.scrollHeight;\n\n const hasVerticalScroll = viewport.scrollHeight > viewport.clientHeight;\n this.hasScrollableContent.set(hasVerticalScroll);\n }\n\n public onContentScroll(event: Event): void {\n const target = event.target as HTMLElement;\n if (!target) {\n return;\n }\n\n const { scrollTop } = target;\n const { scrollHeight } = target;\n const { clientHeight } = target;\n\n this.isScrolledFromTop.set(scrollTop > 0);\n this.isScrolledToBottom.set(scrollTop + clientHeight >= scrollHeight - 1);\n }\n\n protected readonly confirmIconColors = computed(() => {\n const type = this.config.zConfirmType ?? 'show';\n return Z_MODAL_CONFIRM_CONFIG[type].colors;\n });\n\n protected readonly effectiveTitle = computed(() => (this.isServiceMode() ? this.config.zTitle : this.zTitle()));\n\n protected readonly effectiveDescription = computed(() =>\n this.isServiceMode() ? this.config.zDescription : this.zDescription()\n );\n\n protected readonly effectiveClosable = computed(() =>\n this.isServiceMode() ? (this.config.zClosable ?? true) : this.zClosable()\n );\n\n protected readonly effectiveHideFooter = computed(() =>\n this.isServiceMode() ? this.config.zHideFooter : this.zHideFooter()\n );\n\n protected readonly effectiveOkText = computed(() => (this.isServiceMode() ? this.config.zOkText : this.zOkText()));\n\n protected readonly effectiveCancelText = computed(() =>\n this.isServiceMode() ? this.config.zCancelText : this.zCancelText()\n );\n\n protected readonly effectiveOkDestructive = computed(() =>\n this.isServiceMode() ? this.config.zOkDestructive : this.zOkDestructive()\n );\n\n protected readonly effectiveTypeOk = computed((): ZButtonVariants['zType'] => {\n if (!this.isServiceMode()) {\n return 'default';\n }\n\n const typeMap: Record<string, ZButtonVariants['zType']> = {\n show: 'default',\n info: 'info',\n warning: 'warning',\n danger: 'error',\n };\n\n const confirmType = this.config.zConfirmType;\n return confirmType ? (typeMap[confirmType] ?? 'default') : 'default';\n });\n\n protected readonly effectiveOkDisabled = computed(() =>\n this.isServiceMode() ? this.config.zOkDisabled : this.zOkDisabled()\n );\n\n protected readonly effectiveLoading = computed(() => {\n if (this.isServiceMode()) {\n return this.modalRef?.loading() || (this.config.zLoading?.() ?? false);\n }\n return this.zLoading();\n });\n\n protected readonly effectiveContentLoading = computed(() => {\n if (this.isServiceMode()) {\n return this.config.zContentLoading?.() ?? false;\n }\n return this.zContentLoading();\n });\n\n protected readonly effectiveSkeletonRows = computed(() => {\n if (this.isServiceMode()) {\n return this.config.zSkeletonRows ?? 3;\n }\n return this.zSkeletonRows();\n });\n\n protected readonly effectiveWidth = computed(() => {\n if (this.isServiceMode()) {\n return this.zWidth() || this.config.zWidth || null;\n }\n return this.shouldRenderContent() ? this.zWidth() : null;\n });\n\n protected readonly isDeferLoading = computed(() => {\n if (!this.isServiceMode()) {\n return false;\n }\n return !!this.config.zDefer && !this.portalOutlet()?.hasAttached();\n });\n\n protected readonly classes = computed(() =>\n zMergeClasses(zModalVariants(), this.isServiceMode() ? this.config.class : this.class())\n );\n\n protected readonly hostClasses = computed(() => {\n const baseClasses = this.classes();\n if (this.isServiceMode()) {\n return `${baseClasses} z-modal-service-mode`.trim();\n }\n if (this.shouldRenderContent()) {\n return `${baseClasses} z-modal-template-mode`.trim();\n }\n return 'z-modal-template-host';\n });\n\n constructor() {\n super();\n effect(() => {\n this._zTranslate.currentLang();\n this._cdr.markForCheck();\n });\n\n effect(() => {\n const scrollbar = this.mainContentRef();\n if (scrollbar) {\n this.zScrollbar.emit(scrollbar);\n }\n });\n\n effect(() => {\n const visible = this.zVisible();\n if (visible && this.isTemplateMode() && !this._templateOverlayRef) {\n this._openTemplateOverlay();\n return;\n }\n\n if (!visible && this.isTemplateMode() && this._templateOverlayRef && !this.isLeaving()) {\n this._closeWithAnimation();\n }\n });\n }\n\n public ngOnDestroy(): void {\n this._disposeTemplateOverlay();\n }\n\n public getNativeElement(): HTMLElement {\n return this._host.nativeElement;\n }\n\n public attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n this._cdr.detectChanges();\n const outlet = this.portalOutlet();\n if (outlet?.hasAttached()) {\n throw new Error('Attempting to attach modal content after content is already attached');\n }\n return outlet?.attachComponentPortal(portal) as ComponentRef<T>;\n }\n\n public attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n const outlet = this.portalOutlet();\n if (outlet?.hasAttached()) {\n throw new Error('Attempting to attach modal content after content is already attached');\n }\n return outlet?.attachTemplatePortal(portal) as EmbeddedViewRef<C>;\n }\n\n public onOkClick(): void {\n if (this.effectiveLoading()) {\n return;\n }\n this.zOk.emit();\n }\n\n public onCloseClick(): void {\n this.zCancel.emit();\n if (this.isTemplateMode() && !this.effectiveLoading()) {\n this._closeWithAnimation();\n }\n }\n\n public onBackdropClick(): void {\n if (this.zMaskClosable() && !this.effectiveLoading()) {\n this._closeWithAnimation();\n }\n }\n\n public open(): void {\n this.isLeaving.set(false);\n this.zVisible.set(true);\n }\n\n public close(): void {\n this._closeWithAnimation();\n }\n\n private _createOverlay(): OverlayRef | null {\n if (!isPlatformBrowser(this._platformId)) {\n return null;\n }\n\n const overlayType = getOverlayType();\n const backdropClass = overlayType === 'blur' ? 'z-modal-backdrop-blur' : 'z-modal-backdrop-dark';\n const overlayConfig = new OverlayConfig({\n hasBackdrop: true,\n backdropClass,\n positionStrategy: this._overlay.position().global(),\n scrollStrategy: this._overlay.scrollStrategies.block(),\n });\n\n return this._overlay.create(overlayConfig);\n }\n\n private _openTemplateOverlay(): void {\n if (this._templateOverlayRef) {\n return;\n }\n\n const dummyRef = this.dummyTemplateRef();\n if (!dummyRef) {\n return;\n }\n\n this._templateOverlayRef = this._createOverlay();\n if (!this._templateOverlayRef) {\n return;\n }\n\n const hostElement = this._host.nativeElement;\n this._originalParent = hostElement.parentElement;\n this._originalNextSibling = hostElement.nextSibling;\n\n const portal = new TemplatePortal(dummyRef, this._viewContainerRef);\n this._templateOverlayRef.attach(portal);\n\n const overlayPane = this._templateOverlayRef.overlayElement;\n overlayPane.style.position = 'static';\n overlayPane.appendChild(hostElement);\n\n this._backdropSubscription = this._templateOverlayRef.backdropClick().subscribe(() => {\n this.onBackdropClick();\n });\n }\n\n private _closeWithAnimation(): void {\n if (this.isLeaving()) {\n return;\n }\n\n this.isLeaving.set(true);\n this.zVisible.set(false);\n\n const hostElement = this._host.nativeElement;\n const { backdropElement } = this._templateOverlayRef ?? {};\n\n if (backdropElement) {\n backdropElement.classList.add('z-backdrop-leaving');\n }\n\n hostElement.classList.add('modal-leave');\n\n setTimeout(() => {\n this.isLeaving.set(false);\n this._disposeTemplateOverlay();\n }, Z_MODAL_ANIMATION_DURATION);\n }\n\n private _disposeTemplateOverlay(): void {\n const hostElement = this._host.nativeElement;\n\n if (this._originalParent && this._originalNextSibling) {\n this._originalParent.insertBefore(hostElement, this._originalNextSibling);\n }\n\n if (this._originalParent && !this._originalNextSibling) {\n this._originalParent.appendChild(hostElement);\n }\n\n hostElement.classList.remove('modal-leave');\n if (this._templateOverlayRef) {\n this._templateOverlayRef.dispose();\n this._templateOverlayRef = null;\n }\n\n this._originalParent = null;\n this._originalNextSibling = null;\n\n if (this._backdropSubscription) {\n this._backdropSubscription.unsubscribe();\n this._backdropSubscription = null;\n }\n }\n}\n","<!-- Dummy template to trigger CDK backdrop creation -->\n<ng-template #dummyTemplate />\n\n<!-- Template mode content (rendered in host element, which is moved to overlay) -->\n@if (isTemplateMode() && shouldRenderContent()) {\n @defer (when !effectiveContentLoading()) {\n @if (customHeader(); as headerDir) {\n <header [class.z-modal-header-shadow]=\"shouldShowShadow()\">\n <div class=\"flex items-start justify-between px-4\">\n <ng-container *ngTemplateOutlet=\"headerDir.templateRef\" />\n </div>\n </header>\n } @else if (effectiveTitle()) {\n <header [class.z-modal-header-shadow]=\"shouldShowShadow()\">\n <div class=\"flex w-full items-start justify-between overflow-hidden px-4\">\n <div class=\"min-w-0 flex-1 overflow-hidden pr-2\">\n @if (effectiveTitle(); as title) {\n @switch (title | zContentType) {\n @case ('template') {\n <ng-container *ngTemplateOutlet=\"$any(title)\" />\n }\n @case ('html') {\n <h4\n data-testid=\"z-modal-title\"\n class=\"m-0 truncate text-base leading-snug font-semibold\"\n z-tooltip\n [zContent]=\"title\"\n [innerHTML]=\"$any(title) | zSafeHtml\"></h4>\n }\n @default {\n <h4\n data-testid=\"z-modal-title\"\n class=\"m-0 truncate text-base leading-snug font-semibold\"\n z-tooltip\n [zContent]=\"title\">\n {{ title }}\n </h4>\n }\n }\n }\n @if (effectiveDescription(); as description) {\n @switch (description | zContentType) {\n @case ('template') {\n <ng-container *ngTemplateOutlet=\"$any(description)\" />\n }\n @case ('html') {\n <p\n data-testid=\"z-modal-description\"\n class=\"text-muted-foreground m-0 mt-1 text-sm\"\n [innerHTML]=\"$any(description) | zSafeHtml\"></p>\n }\n @default {\n <p data-testid=\"z-modal-description\" class=\"text-muted-foreground m-0 mt-1 text-sm\">\n {{ description }}\n </p>\n }\n }\n }\n </div>\n @if (effectiveClosable()) {\n <button\n type=\"button\"\n data-testid=\"z-modal-close-header-button\"\n z-button\n zType=\"subtle\"\n zSize=\"xs\"\n [zWave]=\"false\"\n (click)=\"onCloseClick()\">\n <z-icon zType=\"lucideX\" />\n </button>\n }\n </div>\n </header>\n } @else if (effectiveClosable()) {\n <header [class.z-modal-header-shadow]=\"shouldShowShadow()\">\n <div class=\"flex justify-end px-4\">\n <button\n type=\"button\"\n data-testid=\"z-modal-close-header-button\"\n z-button\n zType=\"subtle\"\n zSize=\"xs\"\n [zWave]=\"false\"\n (click)=\"onCloseClick()\">\n <z-icon zType=\"lucideX\" />\n </button>\n </div>\n </header>\n }\n\n <ng-scrollbar\n class=\"z-modal-scrollbar flex-1\"\n #mainContent\n track=\"vertical\"\n cdkScrollable\n (scroll)=\"onContentScroll($event)\">\n <main class=\"flex min-h-0 flex-col gap-4 px-4 py-4\">\n @if (customContent(); as contentDir) {\n <ng-container *ngTemplateOutlet=\"contentDir.templateRef\" />\n } @else {\n <ng-content />\n }\n </main>\n </ng-scrollbar>\n\n @if (customFooter(); as footerDir) {\n <footer [class.z-modal-footer-shadow]=\"shouldShowShadow()\">\n <div class=\"flex flex-row justify-end gap-2 px-4\">\n <ng-container *ngTemplateOutlet=\"footerDir.templateRef\" />\n </div>\n </footer>\n } @else if (!effectiveHideFooter()) {\n <footer [class.z-modal-footer-shadow]=\"shouldShowShadow()\">\n <div class=\"flex flex-row justify-end gap-2 px-4\">\n @if (effectiveCancelText() !== null) {\n <button type=\"button\" data-testid=\"z-modal-cancel-button\" z-button zType=\"outline\" (click)=\"onCloseClick()\">\n {{ effectiveCancelText() ?? ('i18n_z_ui_modal_cancel' | translate) }}\n </button>\n }\n\n @if (effectiveOkText() !== null) {\n <button\n type=\"button\"\n data-testid=\"z-modal-ok-button\"\n z-button\n [zType]=\"effectiveOkDestructive() ? 'destructive' : 'default'\"\n [disabled]=\"effectiveOkDisabled() || effectiveLoading()\"\n [zLoading]=\"effectiveLoading()\"\n (click)=\"onOkClick()\">\n {{ effectiveOkText() ?? ('i18n_z_ui_common_ok' | translate) }}\n </button>\n }\n </div>\n </footer>\n }\n } @placeholder {\n <div class=\"flex h-[200px] flex-col gap-4 px-4\">\n <z-skeleton [zRows]=\"effectiveSkeletonRows()\" />\n </div>\n }\n}\n\n<!-- Service mode content -->\n@if (isServiceMode()) {\n <!-- Confirm Modal Layout (no skeleton) -->\n @if (isConfirmMode()) {\n <div class=\"flex flex-col items-center px-4 pt-2 text-center\">\n @if (config.zConfirmIcon) {\n <div class=\"relative mb-4 flex size-20 items-center justify-center\">\n <div class=\"absolute inset-0 rounded-full\" [class]=\"confirmIconColors().ring\"></div>\n <div class=\"relative flex size-14 items-center justify-center rounded-full\" [class]=\"confirmIconColors().bg\">\n <z-icon [zType]=\"config.zConfirmIcon\" zSize=\"30\" [zStrokeWidth]=\"2.6\" [class]=\"confirmIconColors().icon\" />\n </div>\n </div>\n }\n\n <!-- Title centered -->\n @if (effectiveTitle(); as title) {\n @switch (title | zContentType) {\n @case ('template') {\n <ng-container *ngTemplateOutlet=\"$any(title)\" />\n }\n @case ('html') {\n <h4\n data-testid=\"z-modal-title\"\n class=\"m-0 text-lg leading-snug font-semibold\"\n [innerHTML]=\"$any(title) | zSafeHtml\"></h4>\n }\n @default {\n <h4 data-testid=\"z-modal-title\" class=\"m-0 text-lg leading-snug font-semibold\">\n {{ title }}\n </h4>\n }\n }\n }\n\n <!-- Description centered -->\n @if (config.zContent; as content) {\n <p\n data-testid=\"z-modal-description\"\n class=\"text-muted-foreground m-0 mt-2 text-sm\"\n [innerHTML]=\"$any(content) | zSafeHtml\"></p>\n }\n </div>\n\n <!-- Footer centered -->\n @if (!effectiveHideFooter()) {\n <footer class=\"mt-4 flex flex-row justify-center gap-3 pb-2\">\n @if (effectiveCancelText() !== null) {\n <button type=\"button\" data-testid=\"z-modal-cancel-button\" z-button zType=\"outline\" (click)=\"onCloseClick()\">\n {{ effectiveCancelText() ?? ('i18n_z_ui_modal_cancel' | translate) }}\n </button>\n }\n\n @if (effectiveOkText() !== null) {\n <button\n type=\"button\"\n data-testid=\"z-modal-ok-button\"\n z-button\n [zType]=\"effectiveTypeOk()\"\n [disabled]=\"effectiveOkDisabled() || effectiveLoading()\"\n [zLoading]=\"effectiveLoading()\"\n (click)=\"onOkClick()\">\n {{ effectiveOkText() ?? ('i18n_z_ui_common_ok' | translate) }}\n </button>\n }\n </footer>\n }\n } @else {\n <!-- Normal Modal Layout with defer -->\n @defer (when !effectiveContentLoading()) {\n @if (effectiveTitle()) {\n <header [class.z-modal-header-shadow]=\"shouldShowShadow()\">\n <div class=\"flex w-full items-start justify-between overflow-hidden px-4\">\n <div class=\"min-w-0 flex-1 overflow-hidden pr-2\">\n @if (effectiveTitle(); as title) {\n @switch (title | zContentType) {\n @case ('template') {\n <ng-container *ngTemplateOutlet=\"$any(title)\" />\n }\n @case ('html') {\n <h4\n data-testid=\"z-modal-title\"\n class=\"m-0 truncate text-base leading-snug font-semibold\"\n z-tooltip\n [zContent]=\"title\"\n [innerHTML]=\"$any(title) | zSafeHtml\"></h4>\n }\n @default {\n <h4\n data-testid=\"z-modal-title\"\n class=\"m-0 truncate text-base leading-snug font-semibold\"\n z-tooltip\n [zContent]=\"title\">\n {{ title }}\n </h4>\n }\n }\n }\n </div>\n @if (effectiveClosable()) {\n <button\n type=\"button\"\n data-testid=\"z-modal-close-header-button\"\n z-button\n zType=\"subtle\"\n zSize=\"xs\"\n [zWave]=\"false\"\n (click)=\"onCloseClick()\">\n <z-icon zType=\"lucideX\" />\n </button>\n }\n </div>\n </header>\n } @else if (effectiveClosable()) {\n <header [class.z-modal-header-shadow]=\"shouldShowShadow()\">\n <div class=\"flex justify-end px-4\">\n <button\n type=\"button\"\n data-testid=\"z-modal-close-header-button\"\n z-button\n zType=\"subtle\"\n zSize=\"xs\"\n [zWave]=\"false\"\n (click)=\"onCloseClick()\">\n <z-icon zType=\"lucideX\" />\n </button>\n </div>\n </header>\n }\n\n <ng-scrollbar\n class=\"z-modal-scrollbar flex-1\"\n #mainContent\n track=\"vertical\"\n cdkScrollable\n (scroll)=\"onContentScroll($event)\">\n <main class=\"flex min-h-0 flex-col gap-4 px-4 py-4\">\n <ng-template cdkPortalOutlet />\n\n @if (isStringContent()) {\n <div data-testid=\"z-modal-content\" [innerHTML]=\"$any(config.zContent) | zSafeHtml\"></div>\n }\n </main>\n </ng-scrollbar>\n\n @if (!effectiveHideFooter()) {\n <footer [class.z-modal-footer-shadow]=\"shouldShowShadow()\">\n <div class=\"flex flex-row justify-end gap-2 px-4\">\n @if (effectiveCancelText() !== null) {\n <button\n type=\"button\"\n data-testid=\"z-modal-cancel-button\"\n z-button\n zType=\"outline\"\n (click)=\"onCloseClick()\">\n @if (config.zCancelIcon) {\n <z-icon [zType]=\"config.zCancelIcon\" />\n }\n {{ effectiveCancelText() ?? ('i18n_z_ui_modal_cancel' | translate) }}\n </button>\n }\n\n @if (effectiveOkText() !== null) {\n <button\n type=\"button\"\n data-testid=\"z-modal-ok-button\"\n z-button\n [zType]=\"effectiveOkDestructive() ? 'destructive' : 'default'\"\n [disabled]=\"effectiveOkDisabled() || effectiveLoading()\"\n [zLoading]=\"effectiveLoading()\"\n (click)=\"onOkClick()\">\n @if (config.zOkIcon && !effectiveLoading()) {\n <z-icon [zType]=\"config.zOkIcon\" />\n }\n {{ effectiveOkText() ?? ('i18n_z_ui_common_ok' | translate) }}\n </button>\n }\n </div>\n </footer>\n }\n } @placeholder {\n <div class=\"flex h-[200px] flex-col gap-4 px-4\">\n <z-skeleton [zRows]=\"effectiveSkeletonRows()\" />\n </div>\n }\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { isPlatformBrowser } from '@angular/common';\nimport { EventEmitter, Inject, PLATFORM_ID, signal } from '@angular/core';\nimport { filter, fromEvent, Subject, takeUntil } from 'rxjs';\nimport { ZModalComponent } from './z-modal.component';\nimport { Z_MODAL_ANIMATION_DURATION, ZModalOptions, ZModalTriggerAction } from './z-modal.types';\n\nexport class ZModalRef<T = any, R = any, U = any> {\n private readonly _destroy$ = new Subject<void>();\n private _isClosing = false;\n private _result?: R;\n\n public componentInstance: T | null = null;\n public readonly loading = signal(false);\n\n public constructor(\n private readonly _overlayRef: OverlayRef,\n private readonly _config: ZModalOptions<T, U>,\n private readonly _containerInstance: ZModalComponent<T, U>,\n @Inject(PLATFORM_ID) private readonly _platformId: object\n ) {\n this._containerInstance.zCancel.subscribe(() => this._trigger(ZModalTriggerAction.CANCEL));\n this._containerInstance.zOk.subscribe(() => this._trigger(ZModalTriggerAction.OK));\n\n if ((this._config.zMaskClosable ?? true) && isPlatformBrowser(this._platformId)) {\n this._overlayRef\n .outsidePointerEvents()\n .pipe(takeUntil(this._destroy$))\n .subscribe(() => {\n if (!this.loading()) {\n this.close();\n }\n });\n }\n\n if (isPlatformBrowser(this._platformId)) {\n fromEvent<KeyboardEvent>(document, 'keydown')\n .pipe(\n filter(event => event.key === 'Escape'),\n takeUntil(this._destroy$)\n )\n .subscribe(() => {\n if (!this.loading()) {\n this.close();\n }\n });\n }\n }\n\n public setLoading(value: boolean): void {\n this.loading.set(value);\n }\n\n public close(result?: R): void {\n if (this._isClosing) {\n return;\n }\n\n this._isClosing = true;\n this._result = result;\n\n if (isPlatformBrowser(this._platformId)) {\n const hostElement = this._containerInstance.getNativeElement();\n hostElement.classList.add('modal-leave');\n const { backdropElement } = this._overlayRef;\n if (backdropElement) {\n backdropElement.classList.add('z-backdrop-leaving');\n }\n }\n\n setTimeout(() => {\n if (this._overlayRef) {\n if (this._overlayRef.hasAttached()) {\n this._overlayRef.detachBackdrop();\n }\n this._overlayRef.dispose();\n }\n\n if (!this._destroy$.closed) {\n this._destroy$.next();\n this._destroy$.complete();\n }\n }, Z_MODAL_ANIMATION_DURATION);\n }\n\n private _trigger(action: ZModalTriggerAction): void {\n if (this.loading()) {\n return;\n }\n\n const trigger = {\n ok: this._config.zOnOk,\n cancel: this._config.zOnCancel,\n }[action];\n\n if (trigger instanceof EventEmitter) {\n trigger.emit(this._getContentComponent());\n return;\n }\n\n if (typeof trigger === 'function') {\n const result = trigger(this._getContentComponent(), this) as R;\n this._closeWithResult(result);\n return;\n }\n\n this.close();\n }\n\n private _getContentComponent(): T {\n return this.componentInstance as T;\n }\n\n private _closeWithResult(result: R): void {\n if (result !== false) {\n this.close(result);\n }\n }\n}\n","import { type ComponentType, Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\nimport { isPlatformBrowser } from '@angular/common';\nimport { inject, Injectable, Injector, PLATFORM_ID, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { ZTranslateService } from '@shival99/z-ui/services';\nimport { ZModalComponent } from './z-modal.component';\nimport { ZModalRef } from './z-modal.ref';\nimport {\n Z_MODAL_DATA,\n ZModalConfirmOptions,\n ZModalConfirmType,\n ZModalContentType,\n ZModalOptions,\n} from './z-modal.types';\nimport { getOverlayType, Z_MODAL_CONFIRM_CONFIG } from './z-modal.utils';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ZModalService {\n private readonly _overlay = inject(Overlay);\n private readonly _injector = inject(Injector);\n private readonly _platformId = inject(PLATFORM_ID);\n private readonly _zTranslate = inject(ZTranslateService);\n\n public create<T, U>(config: ZModalOptions<T, U>): ZModalRef<T> {\n return this._open<T, U>(config.zContent as ComponentType<T>, config);\n }\n\n public show<U = unknown>(options: ZModalConfirmOptions<U>): ZModalRef<unknown> {\n return this._confirmModal('show', options);\n }\n\n public info<U = unknown>(options: ZModalConfirmOptions<U>): ZModalRef<unknown> {\n return this._confirmModal('info', options);\n }\n\n public warning<U = unknown>(options: ZModalConfirmOptions<U>): ZModalRef<unknown> {\n return this._confirmModal('warning', options);\n }\n\n public danger<U = unknown>(options: ZModalConfirmOptions<U>): ZModalRef<unknown> {\n return this._confirmModal('danger', options);\n }\n\n private _confirmModal<U>(type: ZModalConfirmType, options: ZModalConfirmOptions<U>): ZModalRef<unknown> {\n const typeConfig = Z_MODAL_CONFIRM_CONFIG[type];\n this._zTranslate.currentLang();\n\n const config: ZModalOptions<unknown, U> = {\n zTitle: options.zTitle,\n zContent: options.zContent,\n zOkText: options.zOkText ?? this._zTranslate.instant('i18n_z_ui_modal_confirm'),\n zCancelText: options.zCancelText ?? this._zTranslate.instant('i18n_z_ui_modal_cancel'),\n zOkDestructive: typeConfig.okDestructive,\n zConfirmIcon: options.zIcon ?? typeConfig.icon,\n zMaskClosable: options.zMaskClosable ?? true,\n zWidth: options.zWidth ?? '500px',\n zConfirmType: type,\n zData: options.zData,\n zOnOk: () => options.zOnOk?.(),\n zOnCancel: () => {\n options.zOnCancel?.();\n },\n };\n\n return this.create(config);\n }\n\n private _open<T, U>(componentOrTemplateRef: ZModalContentType<T>, config: ZModalOptions<T, U>) {\n const overlayRef = this._createOverlay(config);\n\n if (!overlayRef) {\n return new ZModalRef(\n undefined as unknown as OverlayRef,\n config,\n undefined as unknown as ZModalComponent<T, U>,\n this._platformId\n );\n }\n\n const modalContainer = this._attachModalContainer<T, U>(overlayRef, config);\n const modalRef = this._attachModalContent<T, U>(componentOrTemplateRef, modalContainer, overlayRef, config);\n\n return modalRef;\n }\n\n private _createOverlay<T, U>(config: ZModalOptions<T, U>): OverlayRef | undefined {\n if (!isPlatformBrowser(this._platformId)) {\n return undefined;\n }\n\n const overlayType = config.zOverlay ?? getOverlayType();\n const backdropClass = overlayType === 'blur' ? 'z-modal-backdrop-blur' : 'z-modal-backdrop-dark';\n const overlayConfig = new OverlayConfig({\n hasBackdrop: true,\n backdropClass,\n positionStrategy: this._overlay.position().global(),\n });\n\n return this._overlay.create(overlayConfig);\n }\n\n private _attachModalContainer<T, U>(overlayRef: OverlayRef, config: ZModalOptions<T, U>) {\n const injector = Injector.create({\n parent: this._injector,\n providers: [\n { provide: OverlayRef, useValue: overlayRef },\n { provide: ZModalOptions, useValue: config },\n ],\n });\n\n const containerPortal = new ComponentPortal<ZModalComponent<T, U>>(\n ZModalComponent,\n config.zViewContainerRef,\n injector\n );\n const containerRef = overlayRef.attach<ZModalComponent<T, U>>(containerPortal);\n\n return containerRef.instance;\n }\n\n private _attachModalContent<T, U>(\n componentOrTemplateRef: ZModalContentType<T>,\n modalContainer: ZModalComponent<T, U>,\n overlayRef: OverlayRef,\n config: ZModalOptions<T, U>\n ) {\n const modalRef = new ZModalRef<T>(overlayRef, config, modalContainer, this._platformId);\n modalContainer.modalRef = modalRef;\n\n if (componentOrTemplateRef instanceof TemplateRef) {\n modalContainer.attachTemplatePortal(\n new TemplatePortal<T>(componentOrTemplateRef, null as unknown as ViewContainerRef, { modalRef } as T)\n );\n return modalRef;\n }\n\n if (typeof componentOrTemplateRef !== 'string') {\n const injector = this._createInjector<T, U>(modalRef, config);\n const contentRef = modalContainer.attachComponentPortal<T>(\n new ComponentPortal(componentOrTemplateRef, config.zViewContainerRef, injector)\n );\n\n if (contentRef) {\n modalRef.componentInstance = contentRef.instance;\n }\n }\n\n return modalRef;\n }\n\n private _createInjector<T, U>(modalRef: ZModalRef<T>, config: ZModalOptions<T, U>) {\n return Injector.create({\n parent: this._injector,\n providers: [\n { provide: ZModalRef, useValue: modalRef },\n { provide: Z_MODAL_DATA, useValue: config.zData },\n ],\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"shival99-z-ui-components-z-modal.mjs","sources":["../../../../libs/core-ui/components/z-modal/directives/z-modal-content.directive.ts","../../../../libs/core-ui/components/z-modal/directives/z-modal-footer.directive.ts","../../../../libs/core-ui/components/z-modal/directives/z-modal-header.directive.ts","../../../../libs/core-ui/components/z-modal/z-modal.types.ts","../../../../libs/core-ui/components/z-modal/z-modal.utils.ts","../../../../libs/core-ui/components/z-modal/z-modal.variants.ts","../../../../libs/core-ui/components/z-modal/z-modal.component.ts","../../../../libs/core-ui/components/z-modal/z-modal.component.html","../../../../libs/core-ui/components/z-modal/z-modal.ref.ts","../../../../libs/core-ui/components/z-modal/z-modal.service.ts","../../../../libs/core-ui/components/z-modal/shival99-z-ui-components-z-modal.ts"],"sourcesContent":["import { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n selector: '[z-modal-content], [zModalContent]',\n standalone: true,\n})\nexport class ZModalContentDirective {\n public readonly templateRef = inject(TemplateRef<unknown>);\n}\n","import { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n selector: '[z-modal-footer], [zModalFooter]',\n standalone: true,\n})\nexport class ZModalFooterDirective {\n public readonly templateRef = inject(TemplateRef<unknown>);\n}\n","import { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n selector: '[z-modal-header], [zModalHeader]',\n standalone: true,\n})\nexport class ZModalHeaderDirective {\n public readonly templateRef = inject(TemplateRef<unknown>);\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { type ComponentType } from '@angular/cdk/overlay';\nimport {\n type EventEmitter,\n InjectionToken,\n type TemplateRef,\n type Type,\n type ViewContainerRef,\n type WritableSignal,\n} from '@angular/core';\nimport type { ZIcon } from '@shival99/z-ui/components/z-icon';\nimport type { ClassValue } from 'clsx';\nimport type { Observable } from 'rxjs';\n\nexport type ZModalContentType<T> = ComponentType<T> | TemplateRef<T> | string;\nexport const Z_MODAL_DATA = new InjectionToken<any>('Z_MODAL_DATA');\nexport const Z_MODAL_ANIMATION_DURATION = 200;\nexport enum ZModalTriggerAction {\n CANCEL = 'cancel',\n OK = 'ok',\n}\n\nexport type ZModalOnClickCallBack<T> = (instance: T, modalRef?: unknown) => false | void | object;\nexport type ZModalConfirmType = 'show' | 'info' | 'warning' | 'danger';\n\nconst noopFun = (): void => {};\n\n/**\n * Configuration options for z-modal component.\n *\n * @template T - The type of the content component\n * @template U - The type of the data passed to the modal\n */\nexport class ZModalOptions<T, U> {\n /** Icon for the cancel button */\n public zCancelIcon?: ZIcon;\n /** Text for the cancel button. Set to null to hide the button */\n public zCancelText?: string | null;\n /** Whether the modal is closable (shows close button) */\n public zClosable?: boolean;\n /** Confirm type for preset styling (show, info, warning, danger) */\n public zConfirmType?: 'show' | 'info' | 'warning' | 'danger';\n /** Icon for the confirm modal */\n public zConfirmIcon?: ZIcon;\n /** Modal content - can be a component, template, or string */\n public zContent?: string | TemplateRef<T> | Type<T>;\n /** Custom CSS classes for the modal */\n public class?: ClassValue;\n /** Data to be passed to the content component via Z_MODAL_DATA token */\n public zData?: U;\n /**\n * Observable for deferred data loading before showing modal content.\n * Modal will show a loading spinner until the Observable completes.\n * The resolved data will be available via Z_MODAL_DATA.\n *\n * @example\n * ```typescript\n * this.modalService.create({\n * zDefer: this.userService.getUser(userId),\n * zContent: UserFormComponent,\n * });\n * ```\n */\n public zDefer?: Observable<U>;\n /** Description text shown below the title */\n public zDescription?: string;\n /** Whether to hide the default footer */\n public zHideFooter?: boolean;\n /**\n * WritableSignal to control loading state of the OK button.\n * Use this when submitting forms or calling APIs.\n *\n * @example Using with confirm modal (delete action)\n * ```typescript\n * const modalRef = this.modalService.danger({\n * zTitle: 'Delete Item',\n * zContent: 'Are you sure you want to delete this item?',\n * zOkText: 'Delete',\n * zOnOk: () => {\n * modalRef.setLoading(true);\n * this.api.delete(itemId).subscribe({\n * next: () => {\n * modalRef.setLoading(false);\n * modalRef.close();\n * },\n * error: () => modalRef.setLoading(false),\n * });\n * return false; // Prevent auto-close\n * },\n * });\n * ```\n */\n public readonly zLoading?: WritableSignal<boolean>;\n /** Whether clicking mask closes the modal */\n public zMaskClosable?: boolean;\n /** Whether OK button has destructive (red) style */\n public zOkDestructive?: boolean;\n /** Whether OK button is disabled */\n public zOkDisabled?: boolean;\n /** Overlay style: 'dark' (black overlay) or 'blur' (backdrop blur) */\n public zOverlay?: 'dark' | 'blur';\n /** Icon for the OK button */\n public zOkIcon?: ZIcon;\n /** Text for the OK button. Set to null to hide the button */\n public zOkText?: string | null;\n /** Callback or EventEmitter when cancel is clicked */\n public zOnCancel?: EventEmitter<T> | ZModalOnClickCallBack<T> = noopFun;\n /** Callback or EventEmitter when OK is clicked */\n public zOnOk?: EventEmitter<T> | ZModalOnClickCallBack<T> = noopFun;\n /** Modal title - supports string, HTML string, or TemplateRef */\n public zTitle?: string | TemplateRef<T>;\n /** ViewContainerRef for the modal portal */\n public zViewContainerRef?: ViewContainerRef;\n /** Modal width (e.g., '425px', '80%') */\n public zWidth?: string;\n /** WritableSignal to control content loading state (shows skeleton when true) */\n public readonly zContentLoading?: WritableSignal<boolean>;\n /** Number of skeleton rows to show when content is loading */\n public zSkeletonRows?: number;\n}\n\nexport interface ZModalConfirmOptions<U = unknown> {\n zTitle: string;\n zContent?: string;\n zIcon?: ZIcon;\n zOkText?: string;\n zCancelText?: string | null;\n /** Callback when OK is clicked. Return false to prevent auto-close */\n zOnOk?: () => void | false | Promise<void>;\n zOnCancel?: () => void;\n zMaskClosable?: boolean;\n zWidth?: string;\n zData?: U;\n}\n\nexport interface ZModalConfirmIconColors {\n ring: string;\n bg: string;\n icon: string;\n}\n\nexport interface ZModalConfirmConfig {\n icon: ZIcon;\n okDestructive?: boolean;\n colors: ZModalConfirmIconColors;\n}\n","import { zDetectBrowser } from '@shival99/z-ui/utils';\nimport type { ZModalConfirmConfig, ZModalConfirmType } from './z-modal.types';\n\nexport type ZModalOverlayType = 'dark' | 'blur';\nexport const getOverlayType = (): ZModalOverlayType => {\n const browser = zDetectBrowser();\n return browser.name === 'Chrome' ? 'dark' : 'blur';\n};\n\nexport const Z_MODAL_CONFIRM_CONFIG: Record<ZModalConfirmType, ZModalConfirmConfig> = {\n show: {\n icon: 'lucideMessageCircleQuestion',\n colors: {\n ring: 'bg-gray-500/10',\n bg: 'bg-gray-500/15',\n icon: 'text-gray-600!',\n },\n },\n info: {\n icon: 'lucideInfo',\n colors: {\n ring: 'bg-blue-500/10',\n bg: 'bg-blue-500/15',\n icon: 'text-blue-500!',\n },\n },\n warning: {\n icon: 'lucideTriangleAlert',\n colors: {\n ring: 'bg-amber-500/10',\n bg: 'bg-amber-500/15',\n icon: 'text-amber-500!',\n },\n },\n danger: {\n icon: 'lucideX',\n okDestructive: true,\n colors: {\n ring: 'bg-red-500/10',\n bg: 'bg-red-500/15',\n icon: 'text-red-500!',\n },\n },\n};\n","import { cva } from 'class-variance-authority';\n\nexport const zModalVariants = cva(\n [\n 'fixed left-[50%] top-[50%] z-50 flex flex-col w-full translate-x-[-50%]',\n 'translate-y-[-50%] border bg-background py-4 shadow-lg rounded-lg',\n 'max-w-[calc(100%-2rem)] overflow-hidden',\n 'max-h-[80dvh]',\n ].join(' ')\n);\n","import { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport {\n BasePortalOutlet,\n CdkPortalOutlet,\n type ComponentPortal,\n PortalModule,\n TemplatePortal,\n} from '@angular/cdk/portal';\nimport { CdkScrollable } from '@angular/cdk/scrolling';\nimport { isPlatformBrowser, NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewChecked,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n type ComponentRef,\n computed,\n contentChild,\n effect,\n ElementRef,\n type EmbeddedViewRef,\n inject,\n input,\n model,\n OnDestroy,\n output,\n PLATFORM_ID,\n signal,\n type TemplateRef,\n viewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { ZButtonComponent, ZButtonVariants } from '@shival99/z-ui/components/z-button';\nimport { ZIconComponent } from '@shival99/z-ui/components/z-icon';\nimport { ZSkeletonComponent } from '@shival99/z-ui/components/z-skeleton';\nimport { ZTooltipDirective } from '@shival99/z-ui/components/z-tooltip';\nimport { ZContentTypePipe, ZSafeHtmlPipe } from '@shival99/z-ui/pipes';\nimport { ZTranslateService } from '@shival99/z-ui/services';\nimport { zMergeClasses } from '@shival99/z-ui/utils';\nimport type { ClassValue } from 'clsx';\nimport { NgScrollbar } from 'ngx-scrollbar';\nimport { Subscription } from 'rxjs';\nimport { ZModalContentDirective } from './directives/z-modal-content.directive';\nimport { ZModalFooterDirective } from './directives/z-modal-footer.directive';\nimport { ZModalHeaderDirective } from './directives/z-modal-header.directive';\nimport { ZModalRef } from './z-modal.ref';\nimport { Z_MODAL_ANIMATION_DURATION, ZModalOptions } from './z-modal.types';\nimport { getOverlayType, Z_MODAL_CONFIRM_CONFIG } from './z-modal.utils';\nimport { zModalVariants } from './z-modal.variants';\n\n@Component({\n selector: 'z-modal',\n imports: [\n PortalModule,\n NgTemplateOutlet,\n ZButtonComponent,\n ZIconComponent,\n ZContentTypePipe,\n ZTooltipDirective,\n ZSkeletonComponent,\n NgScrollbar,\n ZSafeHtmlPipe,\n TranslatePipe,\n CdkScrollable,\n ],\n standalone: true,\n templateUrl: './z-modal.component.html',\n styleUrl: './z-modal.component.scss',\n providers: [TranslatePipe],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'hostClasses()',\n '[style.width]': 'effectiveWidth()',\n },\n exportAs: 'zModal',\n})\nexport class ZModalComponent<T, U> extends BasePortalOutlet implements OnDestroy, AfterViewChecked {\n public zOk = output<void>();\n public zCancel = output<void>();\n public readonly zScrollbar = output<NgScrollbar>();\n\n public readonly class = input<ClassValue>('');\n public readonly zVisible = model<boolean>(false);\n public readonly zTitle = input<string | TemplateRef<unknown>>();\n public readonly zDescription = input<string | TemplateRef<unknown>>();\n public readonly zWidth = input<string>('500px');\n public readonly zClosable = input<boolean>(true);\n public readonly zMaskClosable = input<boolean>(true);\n public readonly zHideFooter = input<boolean>(false);\n public readonly zOkText = input<string | null>(null);\n public readonly zCancelText = input<string | null>(null);\n public readonly zOkDestructive = input<boolean>(false);\n public readonly zOkDisabled = input<boolean>(false);\n public readonly zLoading = input<boolean>(false);\n public readonly zContentLoading = input<boolean>(false);\n public readonly zSkeletonRows = input<number>(3);\n public readonly zOverlay = input<'dark' | 'blur'>(getOverlayType());\n\n protected readonly customHeader = contentChild(ZModalHeaderDirective);\n protected readonly customContent = contentChild(ZModalContentDirective);\n protected readonly customFooter = contentChild(ZModalFooterDirective);\n\n public modalRef?: ZModalRef<T>;\n public readonly portalOutlet = viewChild(CdkPortalOutlet);\n protected readonly dummyTemplateRef = viewChild<TemplateRef<unknown>>('dummyTemplate');\n protected readonly mainContentRef = viewChild<NgScrollbar>('mainContent');\n\n protected readonly config = inject(ZModalOptions<T, U>, { optional: true }) || new ZModalOptions<T, U>();\n private readonly _platformId = inject(PLATFORM_ID);\n private readonly _host = inject(ElementRef<HTMLElement>);\n private readonly _overlay = inject(Overlay);\n private readonly _viewContainerRef = inject(ViewContainerRef);\n private readonly _cdr = inject(ChangeDetectorRef);\n private readonly _zTranslate = inject(ZTranslateService);\n\n private _templateOverlayRef: OverlayRef | null = null;\n private _originalParent: HTMLElement | null = null;\n private _originalNextSibling: Node | null = null;\n private _backdropSubscription: Subscription | null = null;\n\n protected readonly isLeaving = signal(false);\n protected readonly hasScrollableContent = signal(false);\n protected readonly isScrolledFromTop = signal(false);\n protected readonly isScrolledToBottom = signal(false);\n protected readonly isServiceMode = computed(() => !!this.modalRef);\n protected readonly isTemplateMode = computed(() => !this.isServiceMode());\n protected readonly isConfirmMode = computed(() => !!this.config.zConfirmType);\n protected readonly shouldRenderContent = computed(() => this.zVisible() || this.isLeaving());\n protected readonly isStringContent = computed(\n () => typeof this.config.zContent === 'string' && !this.isConfirmMode()\n );\n\n protected readonly shouldShowShadow = computed(() => true);\n\n private _lastScrollHeight = 0;\n\n public ngAfterViewChecked(): void {\n this._checkScrollState();\n }\n\n private _checkScrollState(): void {\n const scrollbar = this.mainContentRef();\n if (!scrollbar) {\n return;\n }\n\n const viewport = scrollbar.nativeElement.querySelector('.ng-scroll-viewport') as HTMLElement;\n if (!viewport) {\n return;\n }\n\n if (viewport.scrollHeight === this._lastScrollHeight) {\n return;\n }\n this._lastScrollHeight = viewport.scrollHeight;\n\n const hasVerticalScroll = viewport.scrollHeight > viewport.clientHeight;\n this.hasScrollableContent.set(hasVerticalScroll);\n }\n\n public onContentScroll(event: Event): void {\n const target = event.target as HTMLElement;\n if (!target) {\n return;\n }\n\n const { scrollTop } = target;\n const { scrollHeight } = target;\n const { clientHeight } = target;\n\n this.isScrolledFromTop.set(scrollTop > 0);\n this.isScrolledToBottom.set(scrollTop + clientHeight >= scrollHeight - 1);\n }\n\n protected readonly confirmIconColors = computed(() => {\n const type = this.config.zConfirmType ?? 'show';\n return Z_MODAL_CONFIRM_CONFIG[type].colors;\n });\n\n protected readonly effectiveTitle = computed(() => (this.isServiceMode() ? this.config.zTitle : this.zTitle()));\n\n protected readonly effectiveDescription = computed(() =>\n this.isServiceMode() ? this.config.zDescription : this.zDescription()\n );\n\n protected readonly effectiveClosable = computed(() =>\n this.isServiceMode() ? (this.config.zClosable ?? true) : this.zClosable()\n );\n\n protected readonly effectiveHideFooter = computed(() =>\n this.isServiceMode() ? this.config.zHideFooter : this.zHideFooter()\n );\n\n protected readonly effectiveOkText = computed(() => (this.isServiceMode() ? this.config.zOkText : this.zOkText()));\n\n protected readonly effectiveCancelText = computed(() =>\n this.isServiceMode() ? this.config.zCancelText : this.zCancelText()\n );\n\n protected readonly effectiveOkDestructive = computed(() =>\n this.isServiceMode() ? this.config.zOkDestructive : this.zOkDestructive()\n );\n\n protected readonly effectiveTypeOk = computed((): ZButtonVariants['zType'] => {\n if (!this.isServiceMode()) {\n return 'default';\n }\n\n const typeMap: Record<string, ZButtonVariants['zType']> = {\n show: 'default',\n info: 'info',\n warning: 'warning',\n danger: 'error',\n };\n\n const confirmType = this.config.zConfirmType;\n return confirmType ? (typeMap[confirmType] ?? 'default') : 'default';\n });\n\n protected readonly effectiveOkDisabled = computed(() =>\n this.isServiceMode() ? this.config.zOkDisabled : this.zOkDisabled()\n );\n\n protected readonly effectiveLoading = computed(() => {\n if (this.isServiceMode()) {\n return this.modalRef?.loading() || (this.config.zLoading?.() ?? false);\n }\n return this.zLoading();\n });\n\n protected readonly effectiveContentLoading = computed(() => {\n if (this.isServiceMode()) {\n return this.config.zContentLoading?.() ?? false;\n }\n return this.zContentLoading();\n });\n\n protected readonly effectiveSkeletonRows = computed(() => {\n if (this.isServiceMode()) {\n return this.config.zSkeletonRows ?? 3;\n }\n return this.zSkeletonRows();\n });\n\n protected readonly effectiveWidth = computed(() => {\n if (this.isServiceMode()) {\n return this.zWidth() || this.config.zWidth || null;\n }\n return this.shouldRenderContent() ? this.zWidth() : null;\n });\n\n protected readonly isDeferLoading = computed(() => {\n if (!this.isServiceMode()) {\n return false;\n }\n return !!this.config.zDefer && !this.portalOutlet()?.hasAttached();\n });\n\n protected readonly classes = computed(() =>\n zMergeClasses(zModalVariants(), this.isServiceMode() ? this.config.class : this.class())\n );\n\n protected readonly hostClasses = computed(() => {\n const baseClasses = this.classes();\n if (this.isServiceMode()) {\n return `${baseClasses} z-modal-service-mode`.trim();\n }\n if (this.shouldRenderContent()) {\n return `${baseClasses} z-modal-template-mode`.trim();\n }\n return 'z-modal-template-host';\n });\n\n constructor() {\n super();\n effect(() => {\n this._zTranslate.currentLang();\n this._cdr.markForCheck();\n });\n\n effect(() => {\n const scrollbar = this.mainContentRef();\n if (scrollbar) {\n this.zScrollbar.emit(scrollbar);\n }\n });\n\n effect(() => {\n const visible = this.zVisible();\n if (visible && this.isTemplateMode() && !this._templateOverlayRef) {\n this._openTemplateOverlay();\n return;\n }\n\n if (!visible && this.isTemplateMode() && this._templateOverlayRef && !this.isLeaving()) {\n this._closeWithAnimation();\n }\n });\n }\n\n public ngOnDestroy(): void {\n this._disposeTemplateOverlay();\n }\n\n public getNativeElement(): HTMLElement {\n return this._host.nativeElement;\n }\n\n public attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n this._cdr.detectChanges();\n const outlet = this.portalOutlet();\n if (outlet?.hasAttached()) {\n throw new Error('Attempting to attach modal content after content is already attached');\n }\n return outlet?.attachComponentPortal(portal) as ComponentRef<T>;\n }\n\n public attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n const outlet = this.portalOutlet();\n if (outlet?.hasAttached()) {\n throw new Error('Attempting to attach modal content after content is already attached');\n }\n return outlet?.attachTemplatePortal(portal) as EmbeddedViewRef<C>;\n }\n\n public onOkClick(): void {\n if (this.effectiveLoading()) {\n return;\n }\n this.zOk.emit();\n }\n\n public onCloseClick(): void {\n this.zCancel.emit();\n if (this.isTemplateMode() && !this.effectiveLoading()) {\n this._closeWithAnimation();\n }\n }\n\n public onBackdropClick(): void {\n if (this.zMaskClosable() && !this.effectiveLoading()) {\n this._closeWithAnimation();\n }\n }\n\n public open(): void {\n this.isLeaving.set(false);\n this.zVisible.set(true);\n }\n\n public close(): void {\n this._closeWithAnimation();\n }\n\n private _createOverlay(): OverlayRef | null {\n if (!isPlatformBrowser(this._platformId)) {\n return null;\n }\n\n const overlayType = getOverlayType();\n const backdropClass = overlayType === 'blur' ? 'z-modal-backdrop-blur' : 'z-modal-backdrop-dark';\n const overlayConfig = new OverlayConfig({\n hasBackdrop: true,\n backdropClass,\n positionStrategy: this._overlay.position().global(),\n scrollStrategy: this._overlay.scrollStrategies.block(),\n });\n\n return this._overlay.create(overlayConfig);\n }\n\n private _openTemplateOverlay(): void {\n if (this._templateOverlayRef) {\n return;\n }\n\n const dummyRef = this.dummyTemplateRef();\n if (!dummyRef) {\n return;\n }\n\n this._templateOverlayRef = this._createOverlay();\n if (!this._templateOverlayRef) {\n return;\n }\n\n const hostElement = this._host.nativeElement;\n this._originalParent = hostElement.parentElement;\n this._originalNextSibling = hostElement.nextSibling;\n\n const portal = new TemplatePortal(dummyRef, this._viewContainerRef);\n this._templateOverlayRef.attach(portal);\n\n const overlayPane = this._templateOverlayRef.overlayElement;\n overlayPane.style.position = 'static';\n overlayPane.appendChild(hostElement);\n\n this._backdropSubscription = this._templateOverlayRef.backdropClick().subscribe(() => {\n this.onBackdropClick();\n });\n }\n\n private _closeWithAnimation(): void {\n if (this.isLeaving()) {\n return;\n }\n\n this.isLeaving.set(true);\n this.zVisible.set(false);\n\n const hostElement = this._host.nativeElement;\n const { backdropElement } = this._templateOverlayRef ?? {};\n\n if (backdropElement) {\n backdropElement.classList.add('z-backdrop-leaving');\n }\n\n hostElement.classList.add('modal-leave');\n\n setTimeout(() => {\n this.isLeaving.set(false);\n this._disposeTemplateOverlay();\n }, Z_MODAL_ANIMATION_DURATION);\n }\n\n private _disposeTemplateOverlay(): void {\n const hostElement = this._host.nativeElement;\n\n if (this._originalParent && this._originalNextSibling) {\n this._originalParent.insertBefore(hostElement, this._originalNextSibling);\n }\n\n if (this._originalParent && !this._originalNextSibling) {\n this._originalParent.appendChild(hostElement);\n }\n\n hostElement.classList.remove('modal-leave');\n if (this._templateOverlayRef) {\n this._templateOverlayRef.dispose();\n this._templateOverlayRef = null;\n }\n\n this._originalParent = null;\n this._originalNextSibling = null;\n\n if (this._backdropSubscription) {\n this._backdropSubscription.unsubscribe();\n this._backdropSubscription = null;\n }\n }\n}\n","<!-- Dummy template to trigger CDK backdrop creation -->\n<ng-template #dummyTemplate />\n\n<!-- Template mode content (rendered in host element, which is moved to overlay) -->\n@if (isTemplateMode() && shouldRenderContent()) {\n @defer (when !effectiveContentLoading()) {\n @if (customHeader(); as headerDir) {\n <header [class.z-modal-header-shadow]=\"shouldShowShadow()\">\n <div class=\"flex items-start justify-between px-4\">\n <ng-container *ngTemplateOutlet=\"headerDir.templateRef\" />\n </div>\n </header>\n } @else if (effectiveTitle()) {\n <header [class.z-modal-header-shadow]=\"shouldShowShadow()\">\n <div class=\"flex w-full items-start justify-between overflow-hidden px-4\">\n <div class=\"min-w-0 flex-1 overflow-hidden pr-2\">\n @if (effectiveTitle(); as title) {\n @switch (title | zContentType) {\n @case ('template') {\n <ng-container *ngTemplateOutlet=\"$any(title)\" />\n }\n @case ('html') {\n <h4\n data-testid=\"z-modal-title\"\n class=\"m-0 truncate text-base leading-snug font-semibold\"\n z-tooltip\n [zContent]=\"title\"\n [innerHTML]=\"$any(title) | zSafeHtml\"></h4>\n }\n @default {\n <h4\n data-testid=\"z-modal-title\"\n class=\"m-0 truncate text-base leading-snug font-semibold\"\n z-tooltip\n [zContent]=\"title\">\n {{ title }}\n </h4>\n }\n }\n }\n @if (effectiveDescription(); as description) {\n @switch (description | zContentType) {\n @case ('template') {\n <ng-container *ngTemplateOutlet=\"$any(description)\" />\n }\n @case ('html') {\n <p\n data-testid=\"z-modal-description\"\n class=\"text-muted-foreground m-0 mt-1 text-sm\"\n [innerHTML]=\"$any(description) | zSafeHtml\"></p>\n }\n @default {\n <p data-testid=\"z-modal-description\" class=\"text-muted-foreground m-0 mt-1 text-sm\">\n {{ $any(description) | translate }}\n </p>\n }\n }\n }\n </div>\n @if (effectiveClosable()) {\n <button\n type=\"button\"\n data-testid=\"z-modal-close-header-button\"\n z-button\n zType=\"subtle\"\n zSize=\"xs\"\n [zWave]=\"false\"\n (click)=\"onCloseClick()\">\n <z-icon zType=\"lucideX\" />\n </button>\n }\n </div>\n </header>\n } @else if (effectiveClosable()) {\n <header [class.z-modal-header-shadow]=\"shouldShowShadow()\">\n <div class=\"flex justify-end px-4\">\n <button\n type=\"button\"\n data-testid=\"z-modal-close-header-button\"\n z-button\n zType=\"subtle\"\n zSize=\"xs\"\n [zWave]=\"false\"\n (click)=\"onCloseClick()\">\n <z-icon zType=\"lucideX\" />\n </button>\n </div>\n </header>\n }\n\n <ng-scrollbar\n class=\"z-modal-scrollbar flex-1\"\n #mainContent\n track=\"vertical\"\n cdkScrollable\n (scroll)=\"onContentScroll($event)\">\n <main class=\"flex min-h-0 flex-col gap-4 px-4 py-4\">\n @if (customContent(); as contentDir) {\n <ng-container *ngTemplateOutlet=\"contentDir.templateRef\" />\n } @else {\n <ng-content />\n }\n </main>\n </ng-scrollbar>\n\n @if (customFooter(); as footerDir) {\n <footer [class.z-modal-footer-shadow]=\"shouldShowShadow()\">\n <div class=\"flex flex-row justify-end gap-2 px-4\">\n <ng-container *ngTemplateOutlet=\"footerDir.templateRef\" />\n </div>\n </footer>\n } @else if (!effectiveHideFooter()) {\n <footer [class.z-modal-footer-shadow]=\"shouldShowShadow()\">\n <div class=\"flex flex-row justify-end gap-2 px-4\">\n @if (effectiveCancelText() !== null) {\n <button type=\"button\" data-testid=\"z-modal-cancel-button\" z-button zType=\"outline\" (click)=\"onCloseClick()\">\n {{ effectiveCancelText() ?? ('i18n_z_ui_modal_cancel' | translate) }}\n </button>\n }\n\n @if (effectiveOkText() !== null) {\n <button\n type=\"button\"\n data-testid=\"z-modal-ok-button\"\n z-button\n [zType]=\"effectiveOkDestructive() ? 'destructive' : 'default'\"\n [disabled]=\"effectiveOkDisabled() || effectiveLoading()\"\n [zLoading]=\"effectiveLoading()\"\n (click)=\"onOkClick()\">\n {{ effectiveOkText() ?? ('i18n_z_ui_common_ok' | translate) }}\n </button>\n }\n </div>\n </footer>\n }\n } @placeholder {\n <div class=\"flex h-[200px] flex-col gap-4 px-4\">\n <z-skeleton [zRows]=\"effectiveSkeletonRows()\" />\n </div>\n }\n}\n\n<!-- Service mode content -->\n@if (isServiceMode()) {\n <!-- Confirm Modal Layout (no skeleton) -->\n @if (isConfirmMode()) {\n <div class=\"flex flex-col items-center px-4 pt-2 text-center\">\n @if (config.zConfirmIcon) {\n <div class=\"relative mb-4 flex size-20 items-center justify-center\">\n <div class=\"absolute inset-0 rounded-full\" [class]=\"confirmIconColors().ring\"></div>\n <div class=\"relative flex size-14 items-center justify-center rounded-full\" [class]=\"confirmIconColors().bg\">\n <z-icon [zType]=\"config.zConfirmIcon\" zSize=\"30\" [zStrokeWidth]=\"2.6\" [class]=\"confirmIconColors().icon\" />\n </div>\n </div>\n }\n\n <!-- Title centered -->\n @if (effectiveTitle(); as title) {\n @switch (title | zContentType) {\n @case ('template') {\n <ng-container *ngTemplateOutlet=\"$any(title)\" />\n }\n @case ('html') {\n <h4\n data-testid=\"z-modal-title\"\n class=\"m-0 text-lg leading-snug font-semibold\"\n [innerHTML]=\"$any(title) | zSafeHtml\"></h4>\n }\n @default {\n <h4 data-testid=\"z-modal-title\" class=\"m-0 text-lg leading-snug font-semibold\">\n {{ $any(title) | translate }}\n </h4>\n }\n }\n }\n\n <!-- Description centered -->\n @if (config.zContent; as content) {\n <p\n data-testid=\"z-modal-description\"\n class=\"text-muted-foreground m-0 mt-2 text-sm\"\n [innerHTML]=\"$any(content) | translate | zSafeHtml\"></p>\n }\n </div>\n\n <!-- Footer centered -->\n @if (!effectiveHideFooter()) {\n <footer class=\"mt-4 flex flex-row justify-center gap-3 pb-2\">\n @if (effectiveCancelText() !== null) {\n <button type=\"button\" data-testid=\"z-modal-cancel-button\" z-button zType=\"outline\" (click)=\"onCloseClick()\">\n {{ effectiveCancelText() ?? 'i18n_z_ui_modal_cancel' | translate }}\n </button>\n }\n\n @if (effectiveOkText() !== null) {\n <button\n type=\"button\"\n data-testid=\"z-modal-ok-button\"\n z-button\n [zType]=\"effectiveTypeOk()\"\n [disabled]=\"effectiveOkDisabled() || effectiveLoading()\"\n [zLoading]=\"effectiveLoading()\"\n (click)=\"onOkClick()\">\n {{ effectiveOkText() ?? 'i18n_z_ui_common_ok' | translate }}\n </button>\n }\n </footer>\n }\n } @else {\n <!-- Normal Modal Layout with defer -->\n @defer (when !effectiveContentLoading()) {\n @if (effectiveTitle()) {\n <header [class.z-modal-header-shadow]=\"shouldShowShadow()\">\n <div class=\"flex w-full items-start justify-between overflow-hidden px-4\">\n <div class=\"min-w-0 flex-1 overflow-hidden pr-2\">\n @if (effectiveTitle(); as title) {\n @switch (title | zContentType) {\n @case ('template') {\n <ng-container *ngTemplateOutlet=\"$any(title)\" />\n }\n @case ('html') {\n <h4\n data-testid=\"z-modal-title\"\n class=\"m-0 truncate text-base leading-snug font-semibold\"\n z-tooltip\n [zContent]=\"title\"\n [innerHTML]=\"$any(title) | zSafeHtml\"></h4>\n }\n @default {\n <h4\n data-testid=\"z-modal-title\"\n class=\"m-0 truncate text-base leading-snug font-semibold\"\n z-tooltip\n [zContent]=\"$any(title) | translate\">\n {{ $any(title) | translate }}\n </h4>\n }\n }\n }\n </div>\n @if (effectiveClosable()) {\n <button\n type=\"button\"\n data-testid=\"z-modal-close-header-button\"\n z-button\n zType=\"subtle\"\n zSize=\"xs\"\n [zWave]=\"false\"\n (click)=\"onCloseClick()\">\n <z-icon zType=\"lucideX\" />\n </button>\n }\n </div>\n </header>\n } @else if (effectiveClosable()) {\n <header [class.z-modal-header-shadow]=\"shouldShowShadow()\">\n <div class=\"flex justify-end px-4\">\n <button\n type=\"button\"\n data-testid=\"z-modal-close-header-button\"\n z-button\n zType=\"subtle\"\n zSize=\"xs\"\n [zWave]=\"false\"\n (click)=\"onCloseClick()\">\n <z-icon zType=\"lucideX\" />\n </button>\n </div>\n </header>\n }\n\n <ng-scrollbar\n class=\"z-modal-scrollbar flex-1\"\n #mainContent\n track=\"vertical\"\n cdkScrollable\n (scroll)=\"onContentScroll($event)\">\n <main class=\"flex min-h-0 flex-col gap-4 px-4 py-4\">\n <ng-template cdkPortalOutlet />\n\n @if (isStringContent()) {\n <div data-testid=\"z-modal-content\" [innerHTML]=\"$any(config.zContent) | zSafeHtml\"></div>\n }\n </main>\n </ng-scrollbar>\n\n @if (!effectiveHideFooter()) {\n <footer [class.z-modal-footer-shadow]=\"shouldShowShadow()\">\n <div class=\"flex flex-row justify-end gap-2 px-4\">\n @if (effectiveCancelText() !== null) {\n <button\n type=\"button\"\n data-testid=\"z-modal-cancel-button\"\n z-button\n zType=\"outline\"\n (click)=\"onCloseClick()\">\n @if (config.zCancelIcon) {\n <z-icon [zType]=\"config.zCancelIcon\" />\n }\n {{ effectiveCancelText() ?? 'i18n_z_ui_modal_cancel' | translate }}\n </button>\n }\n\n @if (effectiveOkText() !== null) {\n <button\n type=\"button\"\n data-testid=\"z-modal-ok-button\"\n z-button\n [zType]=\"effectiveOkDestructive() ? 'destructive' : 'default'\"\n [disabled]=\"effectiveOkDisabled() || effectiveLoading()\"\n [zLoading]=\"effectiveLoading()\"\n (click)=\"onOkClick()\">\n @if (config.zOkIcon && !effectiveLoading()) {\n <z-icon [zType]=\"config.zOkIcon\" />\n }\n {{ effectiveOkText() ?? 'i18n_z_ui_common_ok' | translate }}\n </button>\n }\n </div>\n </footer>\n }\n } @placeholder {\n <div class=\"flex h-[200px] flex-col gap-4 px-4\">\n <z-skeleton [zRows]=\"effectiveSkeletonRows()\" />\n </div>\n }\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { isPlatformBrowser } from '@angular/common';\nimport { EventEmitter, Inject, PLATFORM_ID, signal } from '@angular/core';\nimport { filter, fromEvent, Subject, takeUntil } from 'rxjs';\nimport { ZModalComponent } from './z-modal.component';\nimport { Z_MODAL_ANIMATION_DURATION, ZModalOptions, ZModalTriggerAction } from './z-modal.types';\n\nexport class ZModalRef<T = any, R = any, U = any> {\n private readonly _destroy$ = new Subject<void>();\n private _isClosing = false;\n private _result?: R;\n\n public componentInstance: T | null = null;\n public readonly loading = signal(false);\n\n public constructor(\n private readonly _overlayRef: OverlayRef,\n private readonly _config: ZModalOptions<T, U>,\n private readonly _containerInstance: ZModalComponent<T, U>,\n @Inject(PLATFORM_ID) private readonly _platformId: object\n ) {\n this._containerInstance.zCancel.subscribe(() => this._trigger(ZModalTriggerAction.CANCEL));\n this._containerInstance.zOk.subscribe(() => this._trigger(ZModalTriggerAction.OK));\n\n if ((this._config.zMaskClosable ?? true) && isPlatformBrowser(this._platformId)) {\n this._overlayRef\n .outsidePointerEvents()\n .pipe(takeUntil(this._destroy$))\n .subscribe(() => {\n if (!this.loading()) {\n this.close();\n }\n });\n }\n\n if (isPlatformBrowser(this._platformId)) {\n fromEvent<KeyboardEvent>(document, 'keydown')\n .pipe(\n filter(event => event.key === 'Escape'),\n takeUntil(this._destroy$)\n )\n .subscribe(() => {\n if (!this.loading()) {\n this.close();\n }\n });\n }\n }\n\n public setLoading(value: boolean): void {\n this.loading.set(value);\n }\n\n public close(result?: R): void {\n if (this._isClosing) {\n return;\n }\n\n this._isClosing = true;\n this._result = result;\n\n if (isPlatformBrowser(this._platformId)) {\n const hostElement = this._containerInstance.getNativeElement();\n hostElement.classList.add('modal-leave');\n const { backdropElement } = this._overlayRef;\n if (backdropElement) {\n backdropElement.classList.add('z-backdrop-leaving');\n }\n }\n\n setTimeout(() => {\n if (this._overlayRef) {\n if (this._overlayRef.hasAttached()) {\n this._overlayRef.detachBackdrop();\n }\n this._overlayRef.dispose();\n }\n\n if (!this._destroy$.closed) {\n this._destroy$.next();\n this._destroy$.complete();\n }\n }, Z_MODAL_ANIMATION_DURATION);\n }\n\n private _trigger(action: ZModalTriggerAction): void {\n if (this.loading()) {\n return;\n }\n\n const trigger = {\n ok: this._config.zOnOk,\n cancel: this._config.zOnCancel,\n }[action];\n\n if (trigger instanceof EventEmitter) {\n trigger.emit(this._getContentComponent());\n return;\n }\n\n if (typeof trigger === 'function') {\n const result = trigger(this._getContentComponent(), this) as R;\n this._closeWithResult(result);\n return;\n }\n\n this.close();\n }\n\n private _getContentComponent(): T {\n return this.componentInstance as T;\n }\n\n private _closeWithResult(result: R): void {\n if (result !== false) {\n this.close(result);\n }\n }\n}\n","import { type ComponentType, Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\nimport { isPlatformBrowser } from '@angular/common';\nimport { inject, Injectable, Injector, PLATFORM_ID, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { ZTranslateService } from '@shival99/z-ui/services';\nimport { ZModalComponent } from './z-modal.component';\nimport { ZModalRef } from './z-modal.ref';\nimport {\n Z_MODAL_DATA,\n ZModalConfirmOptions,\n ZModalConfirmType,\n ZModalContentType,\n ZModalOptions,\n} from './z-modal.types';\nimport { getOverlayType, Z_MODAL_CONFIRM_CONFIG } from './z-modal.utils';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ZModalService {\n private readonly _overlay = inject(Overlay);\n private readonly _injector = inject(Injector);\n private readonly _platformId = inject(PLATFORM_ID);\n private readonly _zTranslate = inject(ZTranslateService);\n\n public create<T, U>(config: ZModalOptions<T, U>): ZModalRef<T> {\n return this._open<T, U>(config.zContent as ComponentType<T>, config);\n }\n\n public show<U = unknown>(options: ZModalConfirmOptions<U>): ZModalRef<unknown> {\n return this._confirmModal('show', options);\n }\n\n public info<U = unknown>(options: ZModalConfirmOptions<U>): ZModalRef<unknown> {\n return this._confirmModal('info', options);\n }\n\n public warning<U = unknown>(options: ZModalConfirmOptions<U>): ZModalRef<unknown> {\n return this._confirmModal('warning', options);\n }\n\n public danger<U = unknown>(options: ZModalConfirmOptions<U>): ZModalRef<unknown> {\n return this._confirmModal('danger', options);\n }\n\n private _confirmModal<U>(type: ZModalConfirmType, options: ZModalConfirmOptions<U>): ZModalRef<unknown> {\n const typeConfig = Z_MODAL_CONFIRM_CONFIG[type];\n this._zTranslate.currentLang();\n\n const config: ZModalOptions<unknown, U> = {\n zTitle: options.zTitle,\n zContent: options.zContent,\n zOkText: options.zOkText ?? this._zTranslate.instant('i18n_z_ui_modal_confirm'),\n zCancelText: options.zCancelText ?? this._zTranslate.instant('i18n_z_ui_modal_cancel'),\n zOkDestructive: typeConfig.okDestructive,\n zConfirmIcon: options.zIcon ?? typeConfig.icon,\n zMaskClosable: options.zMaskClosable ?? true,\n zWidth: options.zWidth ?? '500px',\n zConfirmType: type,\n zData: options.zData,\n zOnOk: () => options.zOnOk?.(),\n zOnCancel: () => {\n options.zOnCancel?.();\n },\n };\n\n return this.create(config);\n }\n\n private _open<T, U>(componentOrTemplateRef: ZModalContentType<T>, config: ZModalOptions<T, U>) {\n const overlayRef = this._createOverlay(config);\n\n if (!overlayRef) {\n return new ZModalRef(\n undefined as unknown as OverlayRef,\n config,\n undefined as unknown as ZModalComponent<T, U>,\n this._platformId\n );\n }\n\n const modalContainer = this._attachModalContainer<T, U>(overlayRef, config);\n const modalRef = this._attachModalContent<T, U>(componentOrTemplateRef, modalContainer, overlayRef, config);\n\n return modalRef;\n }\n\n private _createOverlay<T, U>(config: ZModalOptions<T, U>): OverlayRef | undefined {\n if (!isPlatformBrowser(this._platformId)) {\n return undefined;\n }\n\n const overlayType = config.zOverlay ?? getOverlayType();\n const backdropClass = overlayType === 'blur' ? 'z-modal-backdrop-blur' : 'z-modal-backdrop-dark';\n const overlayConfig = new OverlayConfig({\n hasBackdrop: true,\n backdropClass,\n positionStrategy: this._overlay.position().global(),\n });\n\n return this._overlay.create(overlayConfig);\n }\n\n private _attachModalContainer<T, U>(overlayRef: OverlayRef, config: ZModalOptions<T, U>) {\n const injector = Injector.create({\n parent: this._injector,\n providers: [\n { provide: OverlayRef, useValue: overlayRef },\n { provide: ZModalOptions, useValue: config },\n ],\n });\n\n const containerPortal = new ComponentPortal<ZModalComponent<T, U>>(\n ZModalComponent,\n config.zViewContainerRef,\n injector\n );\n const containerRef = overlayRef.attach<ZModalComponent<T, U>>(containerPortal);\n\n return containerRef.instance;\n }\n\n private _attachModalContent<T, U>(\n componentOrTemplateRef: ZModalContentType<T>,\n modalContainer: ZModalComponent<T, U>,\n overlayRef: OverlayRef,\n config: ZModalOptions<T, U>\n ) {\n const modalRef = new ZModalRef<T>(overlayRef, config, modalContainer, this._platformId);\n modalContainer.modalRef = modalRef;\n\n if (componentOrTemplateRef instanceof TemplateRef) {\n modalContainer.attachTemplatePortal(\n new TemplatePortal<T>(componentOrTemplateRef, null as unknown as ViewContainerRef, { modalRef } as T)\n );\n return modalRef;\n }\n\n if (typeof componentOrTemplateRef !== 'string') {\n const injector = this._createInjector<T, U>(modalRef, config);\n const contentRef = modalContainer.attachComponentPortal<T>(\n new ComponentPortal(componentOrTemplateRef, config.zViewContainerRef, injector)\n );\n\n if (contentRef) {\n modalRef.componentInstance = contentRef.instance;\n }\n }\n\n return modalRef;\n }\n\n private _createInjector<T, U>(modalRef: ZModalRef<T>, config: ZModalOptions<T, U>) {\n return Injector.create({\n parent: this._injector,\n providers: [\n { provide: ZModalRef, useValue: modalRef },\n { provide: Z_MODAL_DATA, useValue: config.zData },\n ],\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Z-UI Internationalization Types
|
|
3
|
+
*/
|
|
4
|
+
|
|
1
5
|
const Z_UI_EN_TRANSLATIONS = {
|
|
2
6
|
// Table
|
|
3
7
|
i18n_z_ui_table_filter_min: 'Min',
|
|
@@ -345,24 +349,13 @@ const Z_UI_VI_TRANSLATIONS = {
|
|
|
345
349
|
* Key format: i18n_z_ui_{component}_{key}
|
|
346
350
|
* Example: i18n_z_ui_table_noData
|
|
347
351
|
*/
|
|
348
|
-
/**
|
|
349
|
-
* Default translations for Z-UI components
|
|
350
|
-
*/
|
|
351
352
|
const Z_UI_TRANSLATIONS = {
|
|
352
353
|
en: Z_UI_EN_TRANSLATIONS,
|
|
353
354
|
vi: Z_UI_VI_TRANSLATIONS,
|
|
354
355
|
};
|
|
355
|
-
/**
|
|
356
|
-
* Get translations for a specific language
|
|
357
|
-
* Falls back to English if language not found
|
|
358
|
-
*/
|
|
359
356
|
function getZUITranslations(lang) {
|
|
360
357
|
return Z_UI_TRANSLATIONS[lang] ?? Z_UI_TRANSLATIONS['en'];
|
|
361
358
|
}
|
|
362
|
-
/**
|
|
363
|
-
* Merge custom translations with Z-UI defaults
|
|
364
|
-
* Custom translations take precedence
|
|
365
|
-
*/
|
|
366
359
|
function mergeTranslations(lang, customTranslations) {
|
|
367
360
|
const defaults = getZUITranslations(lang);
|
|
368
361
|
if (!customTranslations) {
|
|
@@ -370,14 +363,12 @@ function mergeTranslations(lang, customTranslations) {
|
|
|
370
363
|
}
|
|
371
364
|
return { ...defaults, ...customTranslations };
|
|
372
365
|
}
|
|
373
|
-
/**
|
|
374
|
-
* Get all Z-UI translation keys
|
|
375
|
-
* Useful for documentation or tooling
|
|
376
|
-
*/
|
|
377
366
|
function getZUITranslationKeys() {
|
|
378
367
|
return Object.keys(Z_UI_EN_TRANSLATIONS);
|
|
379
368
|
}
|
|
380
369
|
|
|
370
|
+
// Types
|
|
371
|
+
|
|
381
372
|
/**
|
|
382
373
|
* Generated bundle index. Do not edit.
|
|
383
374
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shival99-z-ui-i18n.mjs","sources":["../../../../libs/core-ui/i18n/en.ts","../../../../libs/core-ui/i18n/vi.ts","../../../../libs/core-ui/i18n/index.ts","../../../../libs/core-ui/i18n/shival99-z-ui-i18n.ts"],"sourcesContent":["export const Z_UI_EN_TRANSLATIONS: Record<string, string> = {\n // Table\n i18n_z_ui_table_filter_min: 'Min',\n i18n_z_ui_table_filter_max: 'Max',\n i18n_z_ui_table_filter_all: 'All',\n i18n_z_ui_table_filter_search: 'Search...',\n i18n_z_ui_table_filter_date: 'Select date',\n i18n_z_ui_table_filter_date_range: 'Select date range',\n i18n_z_ui_table_no_data: 'No data available',\n i18n_z_ui_table_no_results: 'No results found',\n i18n_z_ui_table_loading: 'Loading...',\n i18n_z_ui_table_search: 'Search...',\n i18n_z_ui_table_settings: 'Settings',\n i18n_z_ui_table_columns: 'Columns',\n i18n_z_ui_table_show_all: 'Show all',\n i18n_z_ui_table_hide_all: 'Hide all',\n i18n_z_ui_table_move_left: 'Move left',\n i18n_z_ui_table_move_right: 'Move right',\n i18n_z_ui_table_pin_left: 'Pin left',\n i18n_z_ui_table_pin_right: 'Pin right',\n i18n_z_ui_table_pin_top: 'Pin top',\n i18n_z_ui_table_pin_bottom: 'Pin bottom',\n i18n_z_ui_table_unpin: 'Unpin',\n i18n_z_ui_table_sort_asc: 'Sort ascending',\n i18n_z_ui_table_sort_desc: 'Sort descending',\n i18n_z_ui_table_clear_sort: 'Clear sort',\n i18n_z_ui_table_filter: 'Filter',\n i18n_z_ui_table_clear_filter: 'Clear filter',\n i18n_z_ui_table_rows_per_page: 'Rows per page',\n i18n_z_ui_table_total_rows: '{total} total rows',\n i18n_z_ui_table_of: 'of',\n i18n_z_ui_table_selected: 'selected',\n i18n_z_ui_table_expand_all: 'Expand all',\n i18n_z_ui_table_collapse_all: 'Collapse all',\n i18n_z_ui_table_settings_title: 'Table Settings',\n i18n_z_ui_table_display_settings: 'Display Settings',\n i18n_z_ui_table_display_settings_desc: 'Customize table appearance',\n i18n_z_ui_table_horizontal_border: 'Horizontal Border',\n i18n_z_ui_table_vertical_border: 'Vertical Border',\n i18n_z_ui_table_header_footer_shadow: 'Header/Footer Shadow',\n i18n_z_ui_table_column_settings: 'Column Settings',\n i18n_z_ui_table_column_settings_desc: 'Toggle visibility, drag to reorder, and pin columns',\n i18n_z_ui_table_pinned_columns: 'Pinned Columns',\n i18n_z_ui_table_left: 'LEFT',\n i18n_z_ui_table_right: 'RIGHT',\n\n // Calendar\n i18n_z_ui_calendar_today: 'Today',\n i18n_z_ui_calendar_clear: 'Clear',\n i18n_z_ui_calendar_ok: 'OK',\n i18n_z_ui_calendar_cancel: 'Cancel',\n i18n_z_ui_calendar_start_date: 'Start date',\n i18n_z_ui_calendar_end_date: 'End date',\n i18n_z_ui_calendar_select_date: 'Select date',\n i18n_z_ui_calendar_select_time: 'Select time',\n i18n_z_ui_calendar_this_week: 'This week',\n i18n_z_ui_calendar_last_week: 'Last week',\n i18n_z_ui_calendar_this_month: 'This month',\n i18n_z_ui_calendar_last_month: 'Last month',\n i18n_z_ui_calendar_last_7_days: 'Last 7 days',\n i18n_z_ui_calendar_last_30_days: 'Last 30 days',\n i18n_z_ui_calendar_last_90_days: 'Last 90 days',\n i18n_z_ui_calendar_this_year: 'This year',\n i18n_z_ui_calendar_last_year: 'Last year',\n i18n_z_ui_calendar_this_quarter: 'This quarter',\n i18n_z_ui_calendar_now: 'Now',\n i18n_z_ui_calendar_required: 'Please select a date',\n i18n_z_ui_calendar_start: 'Start',\n i18n_z_ui_calendar_end: 'End',\n i18n_z_ui_calendar_time: 'Time',\n\n // Editor\n i18n_z_ui_editor_placeholder: 'Enter content...',\n i18n_z_ui_editor_required: 'This field is required',\n i18n_z_ui_editor_min_length: 'Minimum {min} characters',\n i18n_z_ui_editor_max_length: 'Maximum {max} characters',\n i18n_z_ui_editor_invalid: 'Invalid value',\n\n // Checkbox\n i18n_z_ui_checkbox_check_all: 'Check All',\n\n // Code\n i18n_z_ui_code_copied: 'Code copied!',\n\n // Input\n i18n_z_ui_input_required: 'This field is required',\n i18n_z_ui_input_min_length: 'Minimum {min} characters',\n i18n_z_ui_input_max_length: 'Maximum {max} characters',\n i18n_z_ui_input_email: 'Invalid email format',\n i18n_z_ui_input_pattern: 'Invalid format',\n i18n_z_ui_input_min: 'Minimum value is {min}',\n i18n_z_ui_input_max: 'Maximum value is {max}',\n\n // Select\n i18n_z_ui_select_placeholder: 'Select...',\n i18n_z_ui_select_no_options: 'No options available',\n i18n_z_ui_select_no_results: 'No results found',\n i18n_z_ui_select_loading: 'Loading...',\n i18n_z_ui_select_select_all: 'Select all',\n i18n_z_ui_select_clear_all: 'Clear all',\n i18n_z_ui_select_selected: '{count} selected',\n i18n_z_ui_select_search: 'Search...',\n i18n_z_ui_select_required: 'Please select a value',\n\n // Modal\n i18n_z_ui_modal_close: 'Close',\n i18n_z_ui_modal_confirm: 'Confirm',\n i18n_z_ui_modal_cancel: 'Cancel',\n\n // Drawer\n i18n_z_ui_drawer_close: 'Close',\n\n // Upload\n i18n_z_ui_upload_drag_drop: 'Drag files here',\n i18n_z_ui_upload_drop_here: 'Drop files here',\n i18n_z_ui_upload_or: 'or',\n i18n_z_ui_upload_browse: 'browse',\n i18n_z_ui_upload_uploading: 'Uploading...',\n i18n_z_ui_upload_uploaded: 'Uploaded',\n i18n_z_ui_upload_failed: 'Upload failed',\n i18n_z_ui_upload_remove: 'Remove',\n i18n_z_ui_upload_max_size: 'File size exceeds {size} limit',\n i18n_z_ui_upload_max_files: 'Maximum {count} files allowed',\n i18n_z_ui_upload_invalid_type: 'File type not allowed',\n i18n_z_ui_upload_accepted: 'Accepted',\n i18n_z_ui_upload_required: 'Please select a file',\n\n // Pagination\n i18n_z_ui_pagination_first: 'First',\n i18n_z_ui_pagination_last: 'Last',\n i18n_z_ui_pagination_next: 'Next',\n i18n_z_ui_pagination_previous: 'Previous',\n i18n_z_ui_pagination_page: 'Page',\n i18n_z_ui_pagination_of: 'of',\n i18n_z_ui_pagination_total_label: 'Total {total} items',\n i18n_z_ui_pagination_per_page: '/ page',\n i18n_z_ui_pagination_go_to: 'Go to',\n\n // Common\n i18n_z_ui_common_select: 'Select value...',\n i18n_z_ui_common_loading: 'Loading...',\n i18n_z_ui_common_save: 'Save',\n i18n_z_ui_common_cancel: 'Cancel',\n i18n_z_ui_common_confirm: 'Confirm',\n i18n_z_ui_common_delete: 'Delete',\n i18n_z_ui_common_edit: 'Edit',\n i18n_z_ui_common_add: 'Add',\n i18n_z_ui_common_search: 'Search',\n i18n_z_ui_common_clear: 'Clear',\n i18n_z_ui_common_reset: 'Reset',\n i18n_z_ui_common_apply: 'Apply',\n i18n_z_ui_common_yes: 'Yes',\n i18n_z_ui_common_no: 'No',\n i18n_z_ui_common_ok: 'OK',\n i18n_z_ui_common_error: 'Error',\n i18n_z_ui_common_success: 'Success',\n i18n_z_ui_common_warning: 'Warning',\n i18n_z_ui_common_info: 'Info',\n\n // Toast\n i18n_z_ui_toast_close: 'Close',\n\n // Tags\n i18n_z_ui_tags_add: 'Add',\n i18n_z_ui_tags_placeholder: 'New tag',\n\n // Empty\n i18n_z_ui_empty_no_data: 'No data available',\n i18n_z_ui_empty_no_results: 'No results found',\n\n // Steps\n i18n_z_ui_steps_title: 'Steps',\n\n // HTTP\n i18n_z_ui_http_network_offline: 'Network is offline',\n i18n_z_ui_http_error_default: 'An error occurred',\n i18n_z_ui_http_error_failed_to_fetch: 'Failed to connect to {url}',\n i18n_z_ui_http_error_400: 'Bad request',\n i18n_z_ui_http_error_401_permission: 'You do not have permission',\n i18n_z_ui_http_error_401_expired: 'Session expired',\n i18n_z_ui_http_error_403: 'Access forbidden',\n i18n_z_ui_http_error_404: 'Resource not found',\n i18n_z_ui_http_error_500: 'Internal server error',\n};\n","export const Z_UI_VI_TRANSLATIONS: Record<string, string> = {\n // Table\n i18n_z_ui_table_filter_min: 'Tối thiểu',\n i18n_z_ui_table_filter_max: 'Tối đa',\n i18n_z_ui_table_filter_all: 'Tất cả',\n i18n_z_ui_table_filter_search: 'Tìm kiếm...',\n i18n_z_ui_table_filter_date: 'Chọn ngày',\n i18n_z_ui_table_filter_date_range: 'Chọn khoảng ngày',\n i18n_z_ui_table_no_data: 'Không có dữ liệu',\n i18n_z_ui_table_no_results: 'Không tìm thấy kết quả',\n i18n_z_ui_table_loading: 'Đang tải...',\n i18n_z_ui_table_search: 'Tìm kiếm...',\n i18n_z_ui_table_settings: 'Cài đặt',\n i18n_z_ui_table_columns: 'Cột',\n i18n_z_ui_table_show_all: 'Hiện tất cả',\n i18n_z_ui_table_hide_all: 'Ẩn tất cả',\n i18n_z_ui_table_move_left: 'Di chuyển trái',\n i18n_z_ui_table_move_right: 'Di chuyển phải',\n i18n_z_ui_table_pin_left: 'Ghim trái',\n i18n_z_ui_table_pin_right: 'Ghim phải',\n i18n_z_ui_table_pin_top: 'Ghim lên đầu',\n i18n_z_ui_table_pin_bottom: 'Ghim xuống cuối',\n i18n_z_ui_table_unpin: 'Bỏ ghim',\n i18n_z_ui_table_sort_asc: 'Sắp xếp tăng dần',\n i18n_z_ui_table_sort_desc: 'Sắp xếp giảm dần',\n i18n_z_ui_table_clear_sort: 'Bỏ sắp xếp',\n i18n_z_ui_table_filter: 'Lọc',\n i18n_z_ui_table_clear_filter: 'Xóa bộ lọc',\n i18n_z_ui_table_rows_per_page: 'Số dòng mỗi trang',\n i18n_z_ui_table_total_rows: '{total} tổng số dòng',\n i18n_z_ui_table_of: 'của',\n i18n_z_ui_table_selected: 'đã chọn',\n i18n_z_ui_table_expand_all: 'Mở rộng tất cả',\n i18n_z_ui_table_collapse_all: 'Thu gọn tất cả',\n i18n_z_ui_table_settings_title: 'Cài đặt bảng',\n i18n_z_ui_table_display_settings: 'Cài đặt hiển thị',\n i18n_z_ui_table_display_settings_desc: 'Tùy chỉnh giao diện bảng',\n i18n_z_ui_table_horizontal_border: 'Viền ngang',\n i18n_z_ui_table_vertical_border: 'Viền dọc',\n i18n_z_ui_table_header_footer_shadow: 'Đổ bóng Header/Footer',\n i18n_z_ui_table_column_settings: 'Cài đặt cột',\n i18n_z_ui_table_column_settings_desc: 'Bật/tắt hiển thị, kéo thả để sắp xếp, và ghim cột',\n i18n_z_ui_table_pinned_columns: 'Cột đã ghim',\n i18n_z_ui_table_left: 'TRÁI',\n i18n_z_ui_table_right: 'PHẢI',\n\n // Calendar\n i18n_z_ui_calendar_today: 'Hôm nay',\n i18n_z_ui_calendar_clear: 'Xóa',\n i18n_z_ui_calendar_ok: 'Đồng ý',\n i18n_z_ui_calendar_cancel: 'Hủy',\n i18n_z_ui_calendar_start_date: 'Từ ngày',\n i18n_z_ui_calendar_end_date: 'Đến ngày',\n i18n_z_ui_calendar_select_date: 'Chọn ngày',\n i18n_z_ui_calendar_select_time: 'Chọn giờ',\n i18n_z_ui_calendar_this_week: 'Tuần này',\n i18n_z_ui_calendar_last_week: 'Tuần trước',\n i18n_z_ui_calendar_this_month: 'Tháng này',\n i18n_z_ui_calendar_last_month: 'Tháng trước',\n i18n_z_ui_calendar_last_7_days: '7 ngày qua',\n i18n_z_ui_calendar_last_30_days: '30 ngày qua',\n i18n_z_ui_calendar_last_90_days: '90 ngày qua',\n i18n_z_ui_calendar_this_year: 'Năm nay',\n i18n_z_ui_calendar_last_year: 'Năm trước',\n i18n_z_ui_calendar_this_quarter: 'Quý này',\n i18n_z_ui_calendar_now: 'Bây giờ',\n i18n_z_ui_calendar_required: 'Vui lòng chọn ngày',\n i18n_z_ui_calendar_start: 'Bắt đầu',\n i18n_z_ui_calendar_end: 'Kết thúc',\n i18n_z_ui_calendar_time: 'Giờ',\n\n // Editor\n i18n_z_ui_editor_placeholder: 'Nhập nội dung...',\n i18n_z_ui_editor_required: 'Trường này là bắt buộc',\n i18n_z_ui_editor_min_length: 'Tối thiểu {min} ký tự',\n i18n_z_ui_editor_max_length: 'Tối đa {max} ký tự',\n i18n_z_ui_editor_invalid: 'Giá trị không hợp lệ',\n\n // Checkbox\n i18n_z_ui_checkbox_check_all: 'Chọn tất cả',\n\n // Code\n i18n_z_ui_code_copied: 'Đã sao chép code!',\n\n // Input\n i18n_z_ui_input_required: 'Trường này là bắt buộc',\n i18n_z_ui_input_min_length: 'Tối thiểu {min} ký tự',\n i18n_z_ui_input_max_length: 'Tối đa {max} ký tự',\n i18n_z_ui_input_email: 'Định dạng email không hợp lệ',\n i18n_z_ui_input_pattern: 'Định dạng không hợp lệ',\n i18n_z_ui_input_min: 'Giá trị tối thiểu là {min}',\n i18n_z_ui_input_max: 'Giá trị tối đa là {max}',\n\n // Select\n i18n_z_ui_select_placeholder: 'Chọn...',\n i18n_z_ui_select_no_options: 'Không có tùy chọn',\n i18n_z_ui_select_no_results: 'Không tìm thấy kết quả',\n i18n_z_ui_select_loading: 'Đang tải...',\n i18n_z_ui_select_select_all: 'Chọn tất cả',\n i18n_z_ui_select_clear_all: 'Bỏ chọn tất cả',\n i18n_z_ui_select_selected: 'Đã chọn {count}',\n i18n_z_ui_select_search: 'Tìm kiếm...',\n i18n_z_ui_select_required: 'Vui lòng chọn giá trị',\n\n // Modal\n i18n_z_ui_modal_close: 'Đóng',\n i18n_z_ui_modal_confirm: 'Xác nhận',\n i18n_z_ui_modal_cancel: 'Hủy',\n\n // Drawer\n i18n_z_ui_drawer_close: 'Đóng',\n\n // Upload\n i18n_z_ui_upload_drag_drop: 'Kéo file vào đây',\n i18n_z_ui_upload_drop_here: 'Thả file vào đây',\n i18n_z_ui_upload_or: 'hoặc',\n i18n_z_ui_upload_browse: 'chọn file',\n i18n_z_ui_upload_uploading: 'Đang tải lên...',\n i18n_z_ui_upload_uploaded: 'Đã tải lên',\n i18n_z_ui_upload_failed: 'Tải lên thất bại',\n i18n_z_ui_upload_remove: 'Xóa',\n i18n_z_ui_upload_max_size: 'Kích thước file vượt quá {size}',\n i18n_z_ui_upload_max_files: 'Tối đa {count} file được phép',\n i18n_z_ui_upload_invalid_type: 'Loại file không được phép',\n i18n_z_ui_upload_accepted: 'Chấp nhận',\n i18n_z_ui_upload_required: 'Vui lòng chọn file',\n\n // Pagination\n i18n_z_ui_pagination_first: 'Đầu',\n i18n_z_ui_pagination_last: 'Cuối',\n i18n_z_ui_pagination_next: 'Tiếp',\n i18n_z_ui_pagination_previous: 'Trước',\n i18n_z_ui_pagination_page: 'Trang',\n i18n_z_ui_pagination_of: 'của',\n i18n_z_ui_pagination_total_label: 'Tổng {total} mục',\n i18n_z_ui_pagination_per_page: '/ trang',\n i18n_z_ui_pagination_go_to: 'Đến trang',\n\n // Common\n i18n_z_ui_common_select: 'Chọn giá trị...',\n i18n_z_ui_common_loading: 'Đang tải...',\n i18n_z_ui_common_save: 'Lưu',\n i18n_z_ui_common_cancel: 'Hủy',\n i18n_z_ui_common_confirm: 'Xác nhận',\n i18n_z_ui_common_delete: 'Xóa',\n i18n_z_ui_common_edit: 'Sửa',\n i18n_z_ui_common_add: 'Thêm',\n i18n_z_ui_common_search: 'Tìm kiếm',\n i18n_z_ui_common_clear: 'Xóa',\n i18n_z_ui_common_reset: 'Đặt lại',\n i18n_z_ui_common_apply: 'Áp dụng',\n i18n_z_ui_common_yes: 'Có',\n i18n_z_ui_common_no: 'Không',\n i18n_z_ui_common_ok: 'OK',\n i18n_z_ui_common_error: 'Lỗi',\n i18n_z_ui_common_success: 'Thành công',\n i18n_z_ui_common_warning: 'Cảnh báo',\n i18n_z_ui_common_info: 'Thông tin',\n\n // Toast\n i18n_z_ui_toast_close: 'Đóng',\n\n // Tags\n i18n_z_ui_tags_add: 'Thêm',\n i18n_z_ui_tags_placeholder: 'Tag mới',\n\n // Empty\n i18n_z_ui_empty_no_data: 'Không có dữ liệu',\n i18n_z_ui_empty_no_results: 'Không tìm thấy kết quả',\n\n // Steps\n i18n_z_ui_steps_title: 'Các bước',\n\n // HTTP\n i18n_z_ui_http_network_offline: 'Không có kết nối mạng',\n i18n_z_ui_http_error_default: 'Đã xảy ra lỗi',\n i18n_z_ui_http_error_failed_to_fetch: 'Không thể kết nối đến {url}',\n i18n_z_ui_http_error_400: 'Yêu cầu không hợp lệ',\n i18n_z_ui_http_error_401_permission: 'Bạn không có quyền truy cập',\n i18n_z_ui_http_error_401_expired: 'Phiên đăng nhập đã hết hạn',\n i18n_z_ui_http_error_403: 'Truy cập bị từ chối',\n i18n_z_ui_http_error_404: 'Không tìm thấy tài nguyên',\n i18n_z_ui_http_error_500: 'Lỗi máy chủ nội bộ',\n};\n","/**\n * Z-UI Internationalization\n *\n * This module provides default translations for all Z-UI components.\n * Users can override any translation by providing their own values.\n *\n * Key format: i18n_z_ui_{component}_{key}\n * Example: i18n_z_ui_table_noData\n */\n\nimport { Z_UI_EN_TRANSLATIONS } from './en';\nimport { Z_UI_VI_TRANSLATIONS } from './vi';\n\nexport type ZUILanguage = 'en' | 'vi' | string;\n\nexport interface ZUITranslations {\n [key: string]: string;\n}\n\nexport interface ZUITranslationSet {\n en: ZUITranslations;\n vi: ZUITranslations;\n [lang: string]: ZUITranslations;\n}\n\n/**\n * Default translations for Z-UI components\n */\nexport const Z_UI_TRANSLATIONS: ZUITranslationSet = {\n en: Z_UI_EN_TRANSLATIONS,\n vi: Z_UI_VI_TRANSLATIONS,\n};\n\n/**\n * Get translations for a specific language\n * Falls back to English if language not found\n */\nexport function getZUITranslations(lang: ZUILanguage): ZUITranslations {\n return Z_UI_TRANSLATIONS[lang] ?? Z_UI_TRANSLATIONS['en'];\n}\n\n/**\n * Merge custom translations with Z-UI defaults\n * Custom translations take precedence\n */\nexport function mergeTranslations(lang: ZUILanguage, customTranslations?: ZUITranslations): ZUITranslations {\n const defaults = getZUITranslations(lang);\n if (!customTranslations) {\n return defaults;\n }\n return { ...defaults, ...customTranslations };\n}\n\n/**\n * Get all Z-UI translation keys\n * Useful for documentation or tooling\n */\nexport function getZUITranslationKeys(): string[] {\n return Object.keys(Z_UI_EN_TRANSLATIONS);\n}\n\n// Re-export individual translations\nexport { Z_UI_EN_TRANSLATIONS } from './en';\nexport { Z_UI_VI_TRANSLATIONS } from './vi';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"shival99-z-ui-i18n.mjs","sources":["../../../../libs/core-ui/i18n/types/i18n.types.ts","../../../../libs/core-ui/i18n/en.ts","../../../../libs/core-ui/i18n/vi.ts","../../../../libs/core-ui/i18n/i18n.ts","../../../../libs/core-ui/i18n/index.ts","../../../../libs/core-ui/i18n/shival99-z-ui-i18n.ts"],"sourcesContent":["/**\n * Z-UI Internationalization Types\n */\n\nexport type ZUILanguage = 'en' | 'vi' | string;\n\nexport interface ZUITranslations {\n [key: string]: string;\n}\n\nexport interface ZUITranslationSet {\n en: ZUITranslations;\n vi: ZUITranslations;\n [lang: string]: ZUITranslations;\n}\n","export const Z_UI_EN_TRANSLATIONS: Record<string, string> = {\n // Table\n i18n_z_ui_table_filter_min: 'Min',\n i18n_z_ui_table_filter_max: 'Max',\n i18n_z_ui_table_filter_all: 'All',\n i18n_z_ui_table_filter_search: 'Search...',\n i18n_z_ui_table_filter_date: 'Select date',\n i18n_z_ui_table_filter_date_range: 'Select date range',\n i18n_z_ui_table_no_data: 'No data available',\n i18n_z_ui_table_no_results: 'No results found',\n i18n_z_ui_table_loading: 'Loading...',\n i18n_z_ui_table_search: 'Search...',\n i18n_z_ui_table_settings: 'Settings',\n i18n_z_ui_table_columns: 'Columns',\n i18n_z_ui_table_show_all: 'Show all',\n i18n_z_ui_table_hide_all: 'Hide all',\n i18n_z_ui_table_move_left: 'Move left',\n i18n_z_ui_table_move_right: 'Move right',\n i18n_z_ui_table_pin_left: 'Pin left',\n i18n_z_ui_table_pin_right: 'Pin right',\n i18n_z_ui_table_pin_top: 'Pin top',\n i18n_z_ui_table_pin_bottom: 'Pin bottom',\n i18n_z_ui_table_unpin: 'Unpin',\n i18n_z_ui_table_sort_asc: 'Sort ascending',\n i18n_z_ui_table_sort_desc: 'Sort descending',\n i18n_z_ui_table_clear_sort: 'Clear sort',\n i18n_z_ui_table_filter: 'Filter',\n i18n_z_ui_table_clear_filter: 'Clear filter',\n i18n_z_ui_table_rows_per_page: 'Rows per page',\n i18n_z_ui_table_total_rows: '{total} total rows',\n i18n_z_ui_table_of: 'of',\n i18n_z_ui_table_selected: 'selected',\n i18n_z_ui_table_expand_all: 'Expand all',\n i18n_z_ui_table_collapse_all: 'Collapse all',\n i18n_z_ui_table_settings_title: 'Table Settings',\n i18n_z_ui_table_display_settings: 'Display Settings',\n i18n_z_ui_table_display_settings_desc: 'Customize table appearance',\n i18n_z_ui_table_horizontal_border: 'Horizontal Border',\n i18n_z_ui_table_vertical_border: 'Vertical Border',\n i18n_z_ui_table_header_footer_shadow: 'Header/Footer Shadow',\n i18n_z_ui_table_column_settings: 'Column Settings',\n i18n_z_ui_table_column_settings_desc: 'Toggle visibility, drag to reorder, and pin columns',\n i18n_z_ui_table_pinned_columns: 'Pinned Columns',\n i18n_z_ui_table_left: 'LEFT',\n i18n_z_ui_table_right: 'RIGHT',\n\n // Calendar\n i18n_z_ui_calendar_today: 'Today',\n i18n_z_ui_calendar_clear: 'Clear',\n i18n_z_ui_calendar_ok: 'OK',\n i18n_z_ui_calendar_cancel: 'Cancel',\n i18n_z_ui_calendar_start_date: 'Start date',\n i18n_z_ui_calendar_end_date: 'End date',\n i18n_z_ui_calendar_select_date: 'Select date',\n i18n_z_ui_calendar_select_time: 'Select time',\n i18n_z_ui_calendar_this_week: 'This week',\n i18n_z_ui_calendar_last_week: 'Last week',\n i18n_z_ui_calendar_this_month: 'This month',\n i18n_z_ui_calendar_last_month: 'Last month',\n i18n_z_ui_calendar_last_7_days: 'Last 7 days',\n i18n_z_ui_calendar_last_30_days: 'Last 30 days',\n i18n_z_ui_calendar_last_90_days: 'Last 90 days',\n i18n_z_ui_calendar_this_year: 'This year',\n i18n_z_ui_calendar_last_year: 'Last year',\n i18n_z_ui_calendar_this_quarter: 'This quarter',\n i18n_z_ui_calendar_now: 'Now',\n i18n_z_ui_calendar_required: 'Please select a date',\n i18n_z_ui_calendar_start: 'Start',\n i18n_z_ui_calendar_end: 'End',\n i18n_z_ui_calendar_time: 'Time',\n\n // Editor\n i18n_z_ui_editor_placeholder: 'Enter content...',\n i18n_z_ui_editor_required: 'This field is required',\n i18n_z_ui_editor_min_length: 'Minimum {min} characters',\n i18n_z_ui_editor_max_length: 'Maximum {max} characters',\n i18n_z_ui_editor_invalid: 'Invalid value',\n\n // Checkbox\n i18n_z_ui_checkbox_check_all: 'Check All',\n\n // Code\n i18n_z_ui_code_copied: 'Code copied!',\n\n // Input\n i18n_z_ui_input_required: 'This field is required',\n i18n_z_ui_input_min_length: 'Minimum {min} characters',\n i18n_z_ui_input_max_length: 'Maximum {max} characters',\n i18n_z_ui_input_email: 'Invalid email format',\n i18n_z_ui_input_pattern: 'Invalid format',\n i18n_z_ui_input_min: 'Minimum value is {min}',\n i18n_z_ui_input_max: 'Maximum value is {max}',\n\n // Select\n i18n_z_ui_select_placeholder: 'Select...',\n i18n_z_ui_select_no_options: 'No options available',\n i18n_z_ui_select_no_results: 'No results found',\n i18n_z_ui_select_loading: 'Loading...',\n i18n_z_ui_select_select_all: 'Select all',\n i18n_z_ui_select_clear_all: 'Clear all',\n i18n_z_ui_select_selected: '{count} selected',\n i18n_z_ui_select_search: 'Search...',\n i18n_z_ui_select_required: 'Please select a value',\n\n // Modal\n i18n_z_ui_modal_close: 'Close',\n i18n_z_ui_modal_confirm: 'Confirm',\n i18n_z_ui_modal_cancel: 'Cancel',\n\n // Drawer\n i18n_z_ui_drawer_close: 'Close',\n\n // Upload\n i18n_z_ui_upload_drag_drop: 'Drag files here',\n i18n_z_ui_upload_drop_here: 'Drop files here',\n i18n_z_ui_upload_or: 'or',\n i18n_z_ui_upload_browse: 'browse',\n i18n_z_ui_upload_uploading: 'Uploading...',\n i18n_z_ui_upload_uploaded: 'Uploaded',\n i18n_z_ui_upload_failed: 'Upload failed',\n i18n_z_ui_upload_remove: 'Remove',\n i18n_z_ui_upload_max_size: 'File size exceeds {size} limit',\n i18n_z_ui_upload_max_files: 'Maximum {count} files allowed',\n i18n_z_ui_upload_invalid_type: 'File type not allowed',\n i18n_z_ui_upload_accepted: 'Accepted',\n i18n_z_ui_upload_required: 'Please select a file',\n\n // Pagination\n i18n_z_ui_pagination_first: 'First',\n i18n_z_ui_pagination_last: 'Last',\n i18n_z_ui_pagination_next: 'Next',\n i18n_z_ui_pagination_previous: 'Previous',\n i18n_z_ui_pagination_page: 'Page',\n i18n_z_ui_pagination_of: 'of',\n i18n_z_ui_pagination_total_label: 'Total {total} items',\n i18n_z_ui_pagination_per_page: '/ page',\n i18n_z_ui_pagination_go_to: 'Go to',\n\n // Common\n i18n_z_ui_common_select: 'Select value...',\n i18n_z_ui_common_loading: 'Loading...',\n i18n_z_ui_common_save: 'Save',\n i18n_z_ui_common_cancel: 'Cancel',\n i18n_z_ui_common_confirm: 'Confirm',\n i18n_z_ui_common_delete: 'Delete',\n i18n_z_ui_common_edit: 'Edit',\n i18n_z_ui_common_add: 'Add',\n i18n_z_ui_common_search: 'Search',\n i18n_z_ui_common_clear: 'Clear',\n i18n_z_ui_common_reset: 'Reset',\n i18n_z_ui_common_apply: 'Apply',\n i18n_z_ui_common_yes: 'Yes',\n i18n_z_ui_common_no: 'No',\n i18n_z_ui_common_ok: 'OK',\n i18n_z_ui_common_error: 'Error',\n i18n_z_ui_common_success: 'Success',\n i18n_z_ui_common_warning: 'Warning',\n i18n_z_ui_common_info: 'Info',\n\n // Toast\n i18n_z_ui_toast_close: 'Close',\n\n // Tags\n i18n_z_ui_tags_add: 'Add',\n i18n_z_ui_tags_placeholder: 'New tag',\n\n // Empty\n i18n_z_ui_empty_no_data: 'No data available',\n i18n_z_ui_empty_no_results: 'No results found',\n\n // Steps\n i18n_z_ui_steps_title: 'Steps',\n\n // HTTP\n i18n_z_ui_http_network_offline: 'Network is offline',\n i18n_z_ui_http_error_default: 'An error occurred',\n i18n_z_ui_http_error_failed_to_fetch: 'Failed to connect to {url}',\n i18n_z_ui_http_error_400: 'Bad request',\n i18n_z_ui_http_error_401_permission: 'You do not have permission',\n i18n_z_ui_http_error_401_expired: 'Session expired',\n i18n_z_ui_http_error_403: 'Access forbidden',\n i18n_z_ui_http_error_404: 'Resource not found',\n i18n_z_ui_http_error_500: 'Internal server error',\n};\n","export const Z_UI_VI_TRANSLATIONS: Record<string, string> = {\n // Table\n i18n_z_ui_table_filter_min: 'Tối thiểu',\n i18n_z_ui_table_filter_max: 'Tối đa',\n i18n_z_ui_table_filter_all: 'Tất cả',\n i18n_z_ui_table_filter_search: 'Tìm kiếm...',\n i18n_z_ui_table_filter_date: 'Chọn ngày',\n i18n_z_ui_table_filter_date_range: 'Chọn khoảng ngày',\n i18n_z_ui_table_no_data: 'Không có dữ liệu',\n i18n_z_ui_table_no_results: 'Không tìm thấy kết quả',\n i18n_z_ui_table_loading: 'Đang tải...',\n i18n_z_ui_table_search: 'Tìm kiếm...',\n i18n_z_ui_table_settings: 'Cài đặt',\n i18n_z_ui_table_columns: 'Cột',\n i18n_z_ui_table_show_all: 'Hiện tất cả',\n i18n_z_ui_table_hide_all: 'Ẩn tất cả',\n i18n_z_ui_table_move_left: 'Di chuyển trái',\n i18n_z_ui_table_move_right: 'Di chuyển phải',\n i18n_z_ui_table_pin_left: 'Ghim trái',\n i18n_z_ui_table_pin_right: 'Ghim phải',\n i18n_z_ui_table_pin_top: 'Ghim lên đầu',\n i18n_z_ui_table_pin_bottom: 'Ghim xuống cuối',\n i18n_z_ui_table_unpin: 'Bỏ ghim',\n i18n_z_ui_table_sort_asc: 'Sắp xếp tăng dần',\n i18n_z_ui_table_sort_desc: 'Sắp xếp giảm dần',\n i18n_z_ui_table_clear_sort: 'Bỏ sắp xếp',\n i18n_z_ui_table_filter: 'Lọc',\n i18n_z_ui_table_clear_filter: 'Xóa bộ lọc',\n i18n_z_ui_table_rows_per_page: 'Số dòng mỗi trang',\n i18n_z_ui_table_total_rows: '{total} tổng số dòng',\n i18n_z_ui_table_of: 'của',\n i18n_z_ui_table_selected: 'đã chọn',\n i18n_z_ui_table_expand_all: 'Mở rộng tất cả',\n i18n_z_ui_table_collapse_all: 'Thu gọn tất cả',\n i18n_z_ui_table_settings_title: 'Cài đặt bảng',\n i18n_z_ui_table_display_settings: 'Cài đặt hiển thị',\n i18n_z_ui_table_display_settings_desc: 'Tùy chỉnh giao diện bảng',\n i18n_z_ui_table_horizontal_border: 'Viền ngang',\n i18n_z_ui_table_vertical_border: 'Viền dọc',\n i18n_z_ui_table_header_footer_shadow: 'Đổ bóng Header/Footer',\n i18n_z_ui_table_column_settings: 'Cài đặt cột',\n i18n_z_ui_table_column_settings_desc: 'Bật/tắt hiển thị, kéo thả để sắp xếp, và ghim cột',\n i18n_z_ui_table_pinned_columns: 'Cột đã ghim',\n i18n_z_ui_table_left: 'TRÁI',\n i18n_z_ui_table_right: 'PHẢI',\n\n // Calendar\n i18n_z_ui_calendar_today: 'Hôm nay',\n i18n_z_ui_calendar_clear: 'Xóa',\n i18n_z_ui_calendar_ok: 'Đồng ý',\n i18n_z_ui_calendar_cancel: 'Hủy',\n i18n_z_ui_calendar_start_date: 'Từ ngày',\n i18n_z_ui_calendar_end_date: 'Đến ngày',\n i18n_z_ui_calendar_select_date: 'Chọn ngày',\n i18n_z_ui_calendar_select_time: 'Chọn giờ',\n i18n_z_ui_calendar_this_week: 'Tuần này',\n i18n_z_ui_calendar_last_week: 'Tuần trước',\n i18n_z_ui_calendar_this_month: 'Tháng này',\n i18n_z_ui_calendar_last_month: 'Tháng trước',\n i18n_z_ui_calendar_last_7_days: '7 ngày qua',\n i18n_z_ui_calendar_last_30_days: '30 ngày qua',\n i18n_z_ui_calendar_last_90_days: '90 ngày qua',\n i18n_z_ui_calendar_this_year: 'Năm nay',\n i18n_z_ui_calendar_last_year: 'Năm trước',\n i18n_z_ui_calendar_this_quarter: 'Quý này',\n i18n_z_ui_calendar_now: 'Bây giờ',\n i18n_z_ui_calendar_required: 'Vui lòng chọn ngày',\n i18n_z_ui_calendar_start: 'Bắt đầu',\n i18n_z_ui_calendar_end: 'Kết thúc',\n i18n_z_ui_calendar_time: 'Giờ',\n\n // Editor\n i18n_z_ui_editor_placeholder: 'Nhập nội dung...',\n i18n_z_ui_editor_required: 'Trường này là bắt buộc',\n i18n_z_ui_editor_min_length: 'Tối thiểu {min} ký tự',\n i18n_z_ui_editor_max_length: 'Tối đa {max} ký tự',\n i18n_z_ui_editor_invalid: 'Giá trị không hợp lệ',\n\n // Checkbox\n i18n_z_ui_checkbox_check_all: 'Chọn tất cả',\n\n // Code\n i18n_z_ui_code_copied: 'Đã sao chép code!',\n\n // Input\n i18n_z_ui_input_required: 'Trường này là bắt buộc',\n i18n_z_ui_input_min_length: 'Tối thiểu {min} ký tự',\n i18n_z_ui_input_max_length: 'Tối đa {max} ký tự',\n i18n_z_ui_input_email: 'Định dạng email không hợp lệ',\n i18n_z_ui_input_pattern: 'Định dạng không hợp lệ',\n i18n_z_ui_input_min: 'Giá trị tối thiểu là {min}',\n i18n_z_ui_input_max: 'Giá trị tối đa là {max}',\n\n // Select\n i18n_z_ui_select_placeholder: 'Chọn...',\n i18n_z_ui_select_no_options: 'Không có tùy chọn',\n i18n_z_ui_select_no_results: 'Không tìm thấy kết quả',\n i18n_z_ui_select_loading: 'Đang tải...',\n i18n_z_ui_select_select_all: 'Chọn tất cả',\n i18n_z_ui_select_clear_all: 'Bỏ chọn tất cả',\n i18n_z_ui_select_selected: 'Đã chọn {count}',\n i18n_z_ui_select_search: 'Tìm kiếm...',\n i18n_z_ui_select_required: 'Vui lòng chọn giá trị',\n\n // Modal\n i18n_z_ui_modal_close: 'Đóng',\n i18n_z_ui_modal_confirm: 'Xác nhận',\n i18n_z_ui_modal_cancel: 'Hủy',\n\n // Drawer\n i18n_z_ui_drawer_close: 'Đóng',\n\n // Upload\n i18n_z_ui_upload_drag_drop: 'Kéo file vào đây',\n i18n_z_ui_upload_drop_here: 'Thả file vào đây',\n i18n_z_ui_upload_or: 'hoặc',\n i18n_z_ui_upload_browse: 'chọn file',\n i18n_z_ui_upload_uploading: 'Đang tải lên...',\n i18n_z_ui_upload_uploaded: 'Đã tải lên',\n i18n_z_ui_upload_failed: 'Tải lên thất bại',\n i18n_z_ui_upload_remove: 'Xóa',\n i18n_z_ui_upload_max_size: 'Kích thước file vượt quá {size}',\n i18n_z_ui_upload_max_files: 'Tối đa {count} file được phép',\n i18n_z_ui_upload_invalid_type: 'Loại file không được phép',\n i18n_z_ui_upload_accepted: 'Chấp nhận',\n i18n_z_ui_upload_required: 'Vui lòng chọn file',\n\n // Pagination\n i18n_z_ui_pagination_first: 'Đầu',\n i18n_z_ui_pagination_last: 'Cuối',\n i18n_z_ui_pagination_next: 'Tiếp',\n i18n_z_ui_pagination_previous: 'Trước',\n i18n_z_ui_pagination_page: 'Trang',\n i18n_z_ui_pagination_of: 'của',\n i18n_z_ui_pagination_total_label: 'Tổng {total} mục',\n i18n_z_ui_pagination_per_page: '/ trang',\n i18n_z_ui_pagination_go_to: 'Đến trang',\n\n // Common\n i18n_z_ui_common_select: 'Chọn giá trị...',\n i18n_z_ui_common_loading: 'Đang tải...',\n i18n_z_ui_common_save: 'Lưu',\n i18n_z_ui_common_cancel: 'Hủy',\n i18n_z_ui_common_confirm: 'Xác nhận',\n i18n_z_ui_common_delete: 'Xóa',\n i18n_z_ui_common_edit: 'Sửa',\n i18n_z_ui_common_add: 'Thêm',\n i18n_z_ui_common_search: 'Tìm kiếm',\n i18n_z_ui_common_clear: 'Xóa',\n i18n_z_ui_common_reset: 'Đặt lại',\n i18n_z_ui_common_apply: 'Áp dụng',\n i18n_z_ui_common_yes: 'Có',\n i18n_z_ui_common_no: 'Không',\n i18n_z_ui_common_ok: 'OK',\n i18n_z_ui_common_error: 'Lỗi',\n i18n_z_ui_common_success: 'Thành công',\n i18n_z_ui_common_warning: 'Cảnh báo',\n i18n_z_ui_common_info: 'Thông tin',\n\n // Toast\n i18n_z_ui_toast_close: 'Đóng',\n\n // Tags\n i18n_z_ui_tags_add: 'Thêm',\n i18n_z_ui_tags_placeholder: 'Tag mới',\n\n // Empty\n i18n_z_ui_empty_no_data: 'Không có dữ liệu',\n i18n_z_ui_empty_no_results: 'Không tìm thấy kết quả',\n\n // Steps\n i18n_z_ui_steps_title: 'Các bước',\n\n // HTTP\n i18n_z_ui_http_network_offline: 'Không có kết nối mạng',\n i18n_z_ui_http_error_default: 'Đã xảy ra lỗi',\n i18n_z_ui_http_error_failed_to_fetch: 'Không thể kết nối đến {url}',\n i18n_z_ui_http_error_400: 'Yêu cầu không hợp lệ',\n i18n_z_ui_http_error_401_permission: 'Bạn không có quyền truy cập',\n i18n_z_ui_http_error_401_expired: 'Phiên đăng nhập đã hết hạn',\n i18n_z_ui_http_error_403: 'Truy cập bị từ chối',\n i18n_z_ui_http_error_404: 'Không tìm thấy tài nguyên',\n i18n_z_ui_http_error_500: 'Lỗi máy chủ nội bộ',\n};\n","/**\n * Z-UI Internationalization\n *\n * This module provides default translations for all Z-UI components.\n * Users can override any translation by providing their own values.\n *\n * Key format: i18n_z_ui_{component}_{key}\n * Example: i18n_z_ui_table_noData\n */\n\nimport { Z_UI_EN_TRANSLATIONS } from './en';\nimport { type ZUILanguage, type ZUITranslations, type ZUITranslationSet } from './types';\nimport { Z_UI_VI_TRANSLATIONS } from './vi';\n\nexport const Z_UI_TRANSLATIONS: ZUITranslationSet = {\n en: Z_UI_EN_TRANSLATIONS,\n vi: Z_UI_VI_TRANSLATIONS,\n};\n\nexport function getZUITranslations(lang: ZUILanguage): ZUITranslations {\n return Z_UI_TRANSLATIONS[lang] ?? Z_UI_TRANSLATIONS['en'];\n}\n\nexport function mergeTranslations(lang: ZUILanguage, customTranslations?: ZUITranslations): ZUITranslations {\n const defaults = getZUITranslations(lang);\n if (!customTranslations) {\n return defaults;\n }\n return { ...defaults, ...customTranslations };\n}\n\nexport function getZUITranslationKeys(): string[] {\n return Object.keys(Z_UI_EN_TRANSLATIONS);\n}\n","// Types\nexport * from './types';\n\n// Translations\nexport { Z_UI_EN_TRANSLATIONS } from './en';\nexport { Z_UI_VI_TRANSLATIONS } from './vi';\n\n// Functions and constants\nexport { Z_UI_TRANSLATIONS, getZUITranslations, mergeTranslations, getZUITranslationKeys } from './i18n';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable, InjectionToken, inject, signal, PLATFORM_ID, effect } from '@angular/core';
|
|
2
|
+
import { Injectable, InjectionToken, inject, signal, computed, PLATFORM_ID, effect } from '@angular/core';
|
|
3
3
|
import { zFormatNumExcel, zConvertColorToArgb } from '@shival99/z-ui/utils';
|
|
4
4
|
import * as ExcelJS from 'exceljs';
|
|
5
5
|
import { saveAs } from 'file-saver';
|
|
@@ -1409,6 +1409,25 @@ class ZTranslateService {
|
|
|
1409
1409
|
}
|
|
1410
1410
|
return this._translate.instant(key, params);
|
|
1411
1411
|
}
|
|
1412
|
+
/**
|
|
1413
|
+
* Returns a computed signal that automatically updates when language changes.
|
|
1414
|
+
* Use this instead of instant() when you need reactive translations.
|
|
1415
|
+
*
|
|
1416
|
+
* @example
|
|
1417
|
+
* ```typescript
|
|
1418
|
+
* // In component
|
|
1419
|
+
* protected readonly title = this._zTranslate.translate('my_title_key');
|
|
1420
|
+
*
|
|
1421
|
+
* // In template
|
|
1422
|
+
* <h1>{{ title() }}</h1>
|
|
1423
|
+
* ```
|
|
1424
|
+
*/
|
|
1425
|
+
translate(key, params) {
|
|
1426
|
+
return computed(() => {
|
|
1427
|
+
this.currentLang();
|
|
1428
|
+
return this.instant(key, params);
|
|
1429
|
+
});
|
|
1430
|
+
}
|
|
1412
1431
|
async get(key, params) {
|
|
1413
1432
|
if (!key) {
|
|
1414
1433
|
return '';
|