UNPKG

primeng

Version:

PrimeNG is a premium UI library for Angular featuring a rich set of 90+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with PrimeBlock,

1 lines 47.5 kB
{"version":3,"file":"primeng-confirmdialog.mjs","sources":["../../src/confirmdialog/style/confirmdialogstyle.ts","../../src/confirmdialog/confirmdialog.ts","../../src/confirmdialog/primeng-confirmdialog.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { style } from '@primeuix/styles/confirmdialog';\nimport { BaseStyle } from 'primeng/base';\n\nconst classes = {\n root: 'p-confirmdialog',\n icon: 'p-confirmdialog-icon',\n message: 'p-confirmdialog-message',\n pcRejectButton: 'p-confirmdialog-reject-button',\n pcAcceptButton: 'p-confirmdialog-accept-button'\n};\n\n@Injectable()\nexport class ConfirmDialogStyle extends BaseStyle {\n name = 'confirmdialog';\n\n style = style;\n\n classes = classes;\n}\n\n/**\n *\n * ConfirmDialog uses a Dialog UI with confirmDialog method or <ConfirmDialog> tag.\n *\n * [Live Demo](https://www.primeng.org/confirmdialog)\n *\n * @module confirmdialogstyle\n *\n */\nexport enum ConfirmDialogClasses {\n /**\n * Class name of the root element\n */\n root = 'p-confirmdialog',\n /**\n * Class name of the icon element\n */\n icon = 'p-confirmdialog-icon',\n /**\n * Class name of the message element\n */\n message = 'p-confirmdialog-message',\n /**\n * Class name of the reject button element\n */\n pcRejectButton = 'p-confirmdialog-reject-button',\n /**\n * Class name of the accept button element\n */\n pcAcceptButton = 'p-confirmdialog-accept-button'\n}\n\nexport interface ConfirmDialogStyle extends BaseStyle {}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, contentChild, effect, EventEmitter, inject, InjectionToken, input, model, NgModule, numberAttribute, output, signal, TemplateRef, ViewEncapsulation } from '@angular/core';\nimport { MotionOptions } from '@primeuix/motion';\nimport { setAttribute, uuid } from '@primeuix/utils';\nimport { Confirmation, ConfirmationService, ConfirmEventType, Footer, SharedModule, TranslationKeys } from 'primeng/api';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { ButtonDirective } from 'primeng/button';\nimport { AutoFocus } from 'primeng/autofocus';\nimport { Dialog } from 'primeng/dialog';\nimport type { AppendTo, CSSProperties } from 'primeng/types/shared';\nimport { Nullable } from 'primeng/ts-helpers';\nimport { ConfirmDialogDefaultFocus, ConfirmDialogHeadlessTemplateContext, ConfirmDialogMessageTemplateContext, ConfirmDialogPassThrough } from 'primeng/types/confirmdialog';\nimport type { DialogPosition } from 'primeng/types/dialog';\nimport { Subscription } from 'rxjs';\nimport { ConfirmDialogStyle } from './style/confirmdialogstyle';\n\nconst CONFIRMDIALOG_INSTANCE = new InjectionToken<ConfirmDialog>('CONFIRMDIALOG_INSTANCE');\n\n/**\n * ConfirmDialog uses a Dialog UI that is integrated with the Confirmation API.\n * @group Components\n */\n@Component({\n selector: 'p-confirmdialog, p-confirm-dialog',\n standalone: true,\n imports: [NgTemplateOutlet, ButtonDirective, AutoFocus, Dialog, SharedModule, Bind],\n template: `\n <p-dialog\n [pt]=\"pt\"\n #dialog\n [visible]=\"visible()\"\n (visibleChange)=\"onVisibleChange($event)\"\n role=\"alertdialog\"\n [closable]=\"option('closable')\"\n [styleClass]=\"cn(cx('root'), styleClass())\"\n [modal]=\"option('modal')\"\n [header]=\"option('header')\"\n [closeOnEscape]=\"option('closeOnEscape')\"\n [blockScroll]=\"option('blockScroll')\"\n [appendTo]=\"$appendTo()\"\n [position]=\"position()\"\n [style]=\"style()\"\n [dismissableMask]=\"dismissableMask()\"\n [draggable]=\"draggable()\"\n [baseZIndex]=\"baseZIndex()\"\n [autoZIndex]=\"autoZIndex()\"\n [focusOnShow]=\"false\"\n [motionOptions]=\"computedMotionOptions()\"\n [maskMotionOptions]=\"computedMaskMotionOptions()\"\n [maskStyleClass]=\"cn(cx('mask'), maskStyleClass())\"\n [unstyled]=\"unstyled()\"\n (onHide)=\"onDialogHide()\"\n >\n @if (headlessTemplate()) {\n <ng-template #headless>\n <ng-container *ngTemplateOutlet=\"headlessTemplate(); context: headlessContext()\"></ng-container>\n </ng-template>\n } @else {\n @if (headerTemplate()) {\n <ng-template #header>\n <ng-container *ngTemplateOutlet=\"headerTemplate()\"></ng-container>\n </ng-template>\n }\n\n <ng-template #content>\n @if (iconTemplate()) {\n <ng-container *ngTemplateOutlet=\"iconTemplate()\"></ng-container>\n } @else if (!iconTemplate() && !messageTemplate()) {\n @if (option('icon')) {\n <i [class]=\"cn(cx('icon'), option('icon'))\" [pBind]=\"ptm('icon')\"></i>\n }\n }\n @if (messageTemplate()) {\n <ng-container *ngTemplateOutlet=\"messageTemplate(); context: messageContext()\"></ng-container>\n } @else {\n <span [class]=\"cx('message')\" [pBind]=\"ptm('message')\" [innerHTML]=\"option('message')\"> </span>\n }\n </ng-template>\n }\n <ng-template #footer>\n @if (footerTemplate()) {\n <ng-content select=\"p-footer\"></ng-content>\n <ng-container *ngTemplateOutlet=\"footerTemplate()\"></ng-container>\n }\n @if (!footerTemplate()) {\n @if (option('rejectVisible')) {\n <button\n type=\"button\"\n [pButton]=\"getRejectButtonProps()\"\n [class]=\"getButtonStyleClass('pcRejectButton', 'rejectButtonStyleClass')\"\n [attr.aria-label]=\"option('rejectButtonProps', 'ariaLabel')\"\n [pAutoFocus]=\"autoFocusReject\"\n [pButtonPT]=\"ptm('pcRejectButton')\"\n [pButtonUnstyled]=\"unstyled()\"\n (click)=\"onReject()\"\n >\n @if (rejectIcon() && !rejectIconTemplate()) {\n @if (option('rejectIcon')) {\n <i [class]=\"option('rejectIcon')\" [pBind]=\"ptm('pcRejectButton')['icon']\"></i>\n }\n }\n @if (rejectIconTemplate()) {\n <ng-container *ngTemplateOutlet=\"rejectIconTemplate()\"></ng-container>\n }\n {{ rejectButtonLabel }}\n </button>\n }\n @if (option('acceptVisible')) {\n <button\n type=\"button\"\n [pButton]=\"getAcceptButtonProps()\"\n [class]=\"getButtonStyleClass('pcAcceptButton', 'acceptButtonStyleClass')\"\n [attr.aria-label]=\"option('acceptButtonProps', 'ariaLabel')\"\n [pAutoFocus]=\"autoFocusAccept\"\n [pButtonPT]=\"ptm('pcAcceptButton')\"\n [pButtonUnstyled]=\"unstyled()\"\n (click)=\"onAccept()\"\n >\n @if (acceptIcon() && !acceptIconTemplate()) {\n @if (option('acceptIcon')) {\n <i [class]=\"option('acceptIcon')\" [pBind]=\"ptm('pcAcceptButton')['icon']\"></i>\n }\n }\n @if (acceptIconTemplate()) {\n <ng-container *ngTemplateOutlet=\"acceptIconTemplate()\"></ng-container>\n }\n {{ acceptButtonLabel }}\n </button>\n }\n }\n </ng-template>\n </p-dialog>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [ConfirmDialogStyle, { provide: CONFIRMDIALOG_INSTANCE, useExisting: ConfirmDialog }, { provide: PARENT_INSTANCE, useExisting: ConfirmDialog }],\n hostDirectives: [Bind]\n})\nexport class ConfirmDialog extends BaseComponent<ConfirmDialogPassThrough> {\n componentName = 'ConfirmDialog';\n\n $pcConfirmDialog: ConfirmDialog | undefined = inject(CONFIRMDIALOG_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n onAfterViewChecked(): void {\n this.bindDirectiveInstance.setAttrs(this.ptm('host'));\n }\n\n /**\n * Title text of the dialog.\n * @group Props\n */\n header = input<string>();\n /**\n * Icon to display next to message.\n * @group Props\n */\n icon = input<string>();\n /**\n * Message of the confirmation.\n * @group Props\n */\n message = input<string>();\n /**\n * Inline style of the element.\n * @group Props\n */\n style = input<CSSProperties>();\n /**\n * Class of the element.\n * @group Props\n */\n styleClass = input<string>();\n /**\n * Specify the CSS class(es) for styling the mask element\n * @group Props\n */\n maskStyleClass = input<string>();\n /**\n * Icon of the accept button.\n * @group Props\n */\n acceptIcon = input<string>();\n /**\n * Label of the accept button.\n * @group Props\n */\n acceptLabel = input<string>();\n /**\n * Defines a string that labels the close button for accessibility.\n * @group Props\n */\n closeAriaLabel = input<string>();\n /**\n * Defines a string that labels the accept button for accessibility.\n * @group Props\n */\n acceptAriaLabel = input<string>();\n /**\n * Visibility of the accept button.\n * @group Props\n */\n acceptVisible = input(true, { transform: booleanAttribute });\n /**\n * Icon of the reject button.\n * @group Props\n */\n rejectIcon = input<string>();\n /**\n * Label of the reject button.\n * @group Props\n */\n rejectLabel = input<string>();\n /**\n * Defines a string that labels the reject button for accessibility.\n * @group Props\n */\n rejectAriaLabel = input<string>();\n /**\n * Visibility of the reject button.\n * @group Props\n */\n rejectVisible = input(true, { transform: booleanAttribute });\n /**\n * Style class of the accept button.\n * @group Props\n */\n acceptButtonStyleClass = input<string>();\n /**\n * Style class of the reject button.\n * @group Props\n */\n rejectButtonStyleClass = input<string>();\n /**\n * Specifies if pressing escape key should hide the dialog.\n * @group Props\n */\n closeOnEscape = input(true, { transform: booleanAttribute });\n /**\n * Specifies if clicking the modal background should hide the dialog.\n * @group Props\n */\n dismissableMask = input(undefined, { transform: booleanAttribute });\n /**\n * Determines whether scrolling behavior should be blocked within the component.\n * @group Props\n */\n blockScroll = input(true, { transform: booleanAttribute });\n /**\n * When enabled dialog is displayed in RTL direction.\n * @group Props\n */\n rtl = input(false, { transform: booleanAttribute });\n /**\n * Adds a close icon to the header to hide the dialog.\n * @group Props\n */\n closable = input(true, { transform: booleanAttribute });\n /**\n * Target element to attach the overlay, valid values are \"body\" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]=\"mydiv\" for a div element having #mydiv as variable name).\n * @defaultValue 'body'\n * @group Props\n */\n appendTo = input<AppendTo>('body');\n /**\n * Optional key to match the key of confirm object, necessary to use when component tree has multiple confirm dialogs.\n * @group Props\n */\n key = input<string>();\n /**\n * Whether to automatically manage layering.\n * @group Props\n */\n autoZIndex = input(true, { transform: booleanAttribute });\n /**\n * Base zIndex value to use in layering.\n * @group Props\n */\n baseZIndex = input(0, { transform: numberAttribute });\n /**\n * The motion options.\n * @group Props\n */\n motionOptions = input<MotionOptions>();\n /**\n * The motion options for the mask.\n * @group Props\n */\n maskMotionOptions = input<MotionOptions>();\n /**\n * When enabled, can only focus on elements inside the confirm dialog.\n * @group Props\n */\n focusTrap = input(true, { transform: booleanAttribute });\n /**\n * Element to receive the focus when the dialog gets visible.\n * @group Props\n */\n defaultFocus = input<ConfirmDialogDefaultFocus>('accept');\n /**\n * Object literal to define widths per screen size.\n * @group Props\n */\n breakpoints = input<Record<string, string>>();\n /**\n * Defines if background should be blocked when dialog is displayed.\n * @group Props\n */\n modal = input(true, { transform: booleanAttribute });\n /**\n * Current visible state as a boolean.\n * @group Props\n */\n visible = model<boolean>(false);\n /**\n * Allows getting the position of the component.\n * @group Props\n */\n position = input<DialogPosition>('center');\n /**\n * Enables dragging to change the position using header.\n * @group Props\n */\n draggable = input(true, { transform: booleanAttribute });\n /**\n * Callback to invoke when dialog is hidden.\n * @param {ConfirmEventType} enum - Custom confirm event.\n * @group Emits\n */\n onHide = output<ConfirmEventType | undefined>();\n\n footer = contentChild(Footer, { descendants: false });\n\n _componentStyle = inject(ConfirmDialogStyle);\n\n /**\n * Custom header template.\n * @group Templates\n */\n headerTemplate = contentChild<TemplateRef<void>>('header', { descendants: false });\n\n /**\n * Custom footer template.\n * @group Templates\n */\n footerTemplate = contentChild<TemplateRef<void>>('footer', { descendants: false });\n\n /**\n * Custom reject icon template.\n * @group Templates\n */\n rejectIconTemplate = contentChild<TemplateRef<void>>('rejecticon', { descendants: false });\n\n /**\n * Custom accept icon template.\n * @group Templates\n */\n acceptIconTemplate = contentChild<TemplateRef<void>>('accepticon', { descendants: false });\n\n /**\n * Custom message template.\n * @group Templates\n */\n messageTemplate = contentChild<TemplateRef<ConfirmDialogMessageTemplateContext>>('message', { descendants: false });\n\n /**\n * Custom icon template.\n * @group Templates\n */\n iconTemplate = contentChild<TemplateRef<void>>('icon', { descendants: false });\n\n /**\n * Custom headless template.\n * @group Templates\n */\n headlessTemplate = contentChild<TemplateRef<ConfirmDialogHeadlessTemplateContext>>('headless', { descendants: false });\n\n private onAcceptCallback = this.onAccept.bind(this);\n\n private onRejectCallback = this.onReject.bind(this);\n\n headlessContext = computed<ConfirmDialogHeadlessTemplateContext>(() => ({\n $implicit: this.confirmation(),\n onAccept: this.onAcceptCallback,\n onReject: this.onRejectCallback\n }));\n\n messageContext = computed<ConfirmDialogMessageTemplateContext>(() => ({ $implicit: this.confirmation() }));\n\n $appendTo = computed(() => this.appendTo() || this.config.overlayAppendTo());\n\n computedMotionOptions = computed<MotionOptions>(() => {\n return {\n ...this.ptm('motion'),\n ...this.motionOptions()\n };\n });\n\n computedMaskMotionOptions = computed<MotionOptions>(() => {\n return {\n ...this.ptm('maskMotion'),\n ...this.maskMotionOptions()\n };\n });\n\n get focusTarget(): ConfirmDialogDefaultFocus {\n return this.option('defaultFocus') ?? this.defaultFocus();\n }\n\n get autoFocusAccept(): boolean {\n return this.focusTarget === 'accept';\n }\n\n get autoFocusReject(): boolean {\n return this.focusTarget === 'reject';\n }\n\n confirmation = signal<Nullable<Confirmation>>(null);\n\n maskVisible = signal(false);\n\n dialog: Nullable<Dialog>;\n\n wrapper: Nullable<HTMLElement>;\n\n contentContainer: Nullable<HTMLDivElement>;\n\n subscription: Subscription;\n\n preWidth: number | undefined;\n\n styleElement: HTMLStyleElement | null = null;\n\n id = uuid('pn_id_');\n\n ariaLabelledBy: string | null = this.getAriaLabelledBy();\n\n translationSubscription: Subscription | undefined;\n\n private confirmationService = inject(ConfirmationService);\n\n constructor() {\n super();\n\n effect(() => {\n if (this.visible() && !this.maskVisible()) {\n this.maskVisible.set(true);\n }\n });\n\n this.subscription = this.confirmationService.requireConfirmation$.subscribe((confirmation) => {\n if (!confirmation) {\n this.hide();\n return;\n }\n if (confirmation.key === this.key()) {\n this.confirmation.set(confirmation);\n\n this.visible.set(true);\n\n if (confirmation.accept) {\n confirmation.acceptEvent = new EventEmitter();\n confirmation.acceptEvent.subscribe(confirmation.accept);\n }\n\n if (confirmation.reject) {\n confirmation.rejectEvent = new EventEmitter();\n confirmation.rejectEvent.subscribe(confirmation.reject);\n }\n }\n });\n }\n\n onInit() {\n if (this.breakpoints()) {\n this.createStyle();\n }\n }\n\n getAriaLabelledBy() {\n return this.option('header') ? uuid('pn_id_') + '_header' : null;\n }\n\n option(name: string, k?: string) {\n const confirmation = this.confirmation();\n if (confirmation && confirmation.hasOwnProperty(name)) {\n return k ? confirmation[k] : confirmation[name];\n }\n\n const source: { [key: string]: any } = this;\n if (source.hasOwnProperty(name)) {\n const value = k ? source[k] : source[name];\n return typeof value === 'function' ? value() : value;\n }\n\n return undefined;\n }\n\n getButtonStyleClass(cx: string, opt: string): string {\n const cxClass = this.cx(cx);\n const optionClass = this.option(opt);\n\n return [cxClass, optionClass].filter(Boolean).join(' ');\n }\n\n createStyle() {\n if (!this.styleElement) {\n this.styleElement = this.document.createElement('style');\n this.styleElement.type = 'text/css';\n setAttribute(this.styleElement, 'nonce', this.config?.csp()?.nonce);\n this.document.head.appendChild(this.styleElement);\n let innerHTML = '';\n for (let breakpoint in this.breakpoints) {\n innerHTML += `\n @media screen and (max-width: ${breakpoint}) {\n .p-dialog[${this.id}] {\n width: ${this.breakpoints[breakpoint]} !important;\n }\n }\n `;\n }\n\n this.styleElement.innerHTML = innerHTML;\n setAttribute(this.styleElement, 'nonce', this.config?.csp()?.nonce);\n }\n }\n\n close() {\n this.confirmation()?.rejectEvent?.emit(ConfirmEventType.CANCEL);\n this.hide(ConfirmEventType.CANCEL);\n }\n\n hide(type?: ConfirmEventType) {\n this.onHide.emit(type);\n this.visible.set(false);\n // Unsubscribe from confirmation events when the dialogue is closed, because events are created when the dialogue is opened.\n this.unsubscribeConfirmationEvents();\n }\n\n onDialogHide() {\n this.confirmation.set(null);\n }\n\n destroyStyle() {\n if (this.styleElement) {\n this.document.head.removeChild(this.styleElement);\n this.styleElement = null;\n }\n }\n\n onDestroy() {\n this.subscription.unsubscribe();\n // Unsubscribe from confirmation events if the dialogue is opened and this component is somehow destroyed.\n this.unsubscribeConfirmationEvents();\n\n if (this.translationSubscription) {\n this.translationSubscription.unsubscribe();\n }\n\n this.destroyStyle();\n }\n\n onVisibleChange(value: boolean) {\n if (!value) {\n this.close();\n } else {\n this.visible.set(value);\n }\n }\n\n onAccept() {\n this.confirmation()?.acceptEvent?.emit();\n this.hide(ConfirmEventType.ACCEPT);\n }\n\n onReject() {\n this.confirmation()?.rejectEvent?.emit(ConfirmEventType.REJECT);\n this.hide(ConfirmEventType.REJECT);\n }\n\n unsubscribeConfirmationEvents() {\n this.confirmation()?.acceptEvent?.unsubscribe();\n this.confirmation()?.rejectEvent?.unsubscribe();\n }\n\n get acceptButtonLabel(): string {\n return this.option('acceptLabel') || this.getAcceptButtonProps()?.label || this.translate(TranslationKeys.ACCEPT);\n }\n\n get rejectButtonLabel(): string {\n return this.option('rejectLabel') || this.getRejectButtonProps()?.label || this.translate(TranslationKeys.REJECT);\n }\n\n getAcceptButtonProps() {\n return this.option('acceptButtonProps');\n }\n\n getRejectButtonProps() {\n return this.option('rejectButtonProps');\n }\n}\n\n@NgModule({\n imports: [ConfirmDialog, SharedModule],\n exports: [ConfirmDialog, SharedModule]\n})\nexport class ConfirmDialogModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}