primeng
Version:
PrimeNG is an open source UI library for Angular featuring a rich set of 80+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with PrimeB
1 lines • 39.9 kB
Source Map (JSON)
{"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 { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-confirmdialog .p-dialog-content {\n display: flex;\n align-items: center;\n gap: ${dt('confirmdialog.content.gap')};\n}\n\n.p-confirmdialog .p-confirmdialog-icon {\n color: ${dt('confirmdialog.icon.color')};\n font-size: ${dt('confirmdialog.icon.size')};\n width: ${dt('confirmdialog.icon.size')};\n height: ${dt('confirmdialog.icon.size')};\n}\n`;\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 theme = theme;\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 { animate, animation, style, transition, trigger, useAnimation } from '@angular/animations';\nimport { CommonModule } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n NgModule,\n NgZone,\n numberAttribute,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n TemplateRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { findSingle, setAttribute, uuid } from '@primeuix/utils';\nimport { Confirmation, ConfirmationService, ConfirmEventType, Footer, PrimeTemplate, SharedModule, TranslationKeys } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { Button } from 'primeng/button';\nimport { Dialog } from 'primeng/dialog';\nimport { Nullable } from 'primeng/ts-helpers';\nimport { Subscription } from 'rxjs';\nimport { ConfirmDialogStyle } from './style/confirmdialogstyle';\n\nconst showAnimation = animation([style({ transform: '{{transform}}', opacity: 0 }), animate('{{transition}}', style({ transform: 'none', opacity: 1 }))]);\n\nconst hideAnimation = animation([animate('{{transition}}', style({ transform: '{{transform}}', opacity: 0 }))]);\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-confirmdialog, p-confirm-dialog',\n standalone: true,\n imports: [CommonModule, Button, Dialog, SharedModule],\n template: `\n <p-dialog\n #dialog\n [visible]=\"visible\"\n (visibleChange)=\"onVisibleChange($event)\"\n role=\"alertdialog\"\n [closable]=\"option('closable')\"\n [styleClass]=\"containerClass\"\n [modal]=\"true\"\n [header]=\"option('header')\"\n [closeOnEscape]=\"option('closeOnEscape')\"\n [blockScroll]=\"option('blockScroll')\"\n [appendTo]=\"option('appendTo')\"\n [position]=\"position\"\n [style]=\"style\"\n [dismissableMask]=\"dismissableMask\"\n >\n @if (headlessTemplate || _headlessTemplate) {\n <ng-template #headless>\n <ng-container\n *ngTemplateOutlet=\"\n headlessTemplate || _headlessTemplate;\n context: {\n $implicit: confirmation,\n onAccept: onAccept.bind(this),\n onReject: onReject.bind(this)\n }\n \"\n ></ng-container>\n </ng-template>\n } @else {\n @if (headerTemplate || _headerTemplate) {\n <ng-template #header>\n <div [ngClass]=\"cx('header')\">\n <ng-container *ngTemplateOutlet=\"headerTemplate || _headerTemplate\"></ng-container>\n </div>\n </ng-template>\n }\n\n <ng-template #content>\n @if (iconTemplate || _iconTemplate) {\n <ng-template *ngTemplateOutlet=\"iconTemplate || _iconTemplate\"></ng-template>\n } @else if (!iconTemplate && !_iconTemplate && !_messageTemplate && !messageTemplate) {\n <i [ngClass]=\"cx('icon')\" [class]=\"option('icon')\" *ngIf=\"option('icon')\"></i>\n }\n @if (messageTemplate || _messageTemplate) {\n <ng-template *ngTemplateOutlet=\"messageTemplate || _messageTemplate; context: { $implicit: confirmation }\"></ng-template>\n } @else {\n <span [ngClass]=\"cx('message')\" [innerHTML]=\"option('message')\"> </span>\n }\n </ng-template>\n }\n <ng-template #footer>\n @if (footerTemplate || _footerTemplate) {\n <ng-content select=\"p-footer\"></ng-content>\n <ng-container *ngTemplateOutlet=\"footerTemplate || _footerTemplate\"></ng-container>\n }\n @if (!footerTemplate && !_footerTemplate) {\n <p-button\n *ngIf=\"option('rejectVisible')\"\n [label]=\"rejectButtonLabel\"\n (onClick)=\"onReject()\"\n [styleClass]=\"getButtonStyleClass('pcRejectButton', 'rejectButtonStyleClass')\"\n [ariaLabel]=\"option('rejectButtonProps', 'ariaLabel')\"\n [buttonProps]=\"getRejectButtonProps()\"\n >\n @if (rejectIcon && !rejectIconTemplate && !_rejectIconTemplate) {\n <i *ngIf=\"option('rejectIcon')\" [class]=\"option('rejectIcon')\"></i>\n }\n <ng-template *ngTemplateOutlet=\"rejectIconTemplate || _rejectIconTemplate\"></ng-template>\n </p-button>\n <p-button\n [label]=\"acceptButtonLabel\"\n (onClick)=\"onAccept()\"\n [styleClass]=\"getButtonStyleClass('pcAcceptButton', 'acceptButtonStyleClass')\"\n *ngIf=\"option('acceptVisible')\"\n [ariaLabel]=\"option('acceptButtonProps', 'ariaLabel')\"\n [buttonProps]=\"getAcceptButtonProps()\"\n >\n @if (acceptIcon && !_acceptIconTemplate && !acceptIconTemplate) {\n <i *ngIf=\"option('acceptIcon')\" [class]=\"option('acceptIcon')\"></i>\n }\n <ng-template *ngTemplateOutlet=\"acceptIconTemplate || _acceptIconTemplate\"></ng-template>\n </p-button>\n }\n </ng-template>\n </p-dialog>\n `,\n animations: [trigger('animation', [transition('void => visible', [useAnimation(showAnimation)]), transition('visible => void', [useAnimation(hideAnimation)])])],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [ConfirmDialogStyle]\n})\nexport class ConfirmDialog extends BaseComponent implements OnInit, OnDestroy {\n /**\n * Title text of the dialog.\n * @group Props\n */\n @Input() header: string | undefined;\n /**\n * Icon to display next to message.\n * @group Props\n */\n @Input() icon: string | undefined;\n /**\n * Message of the confirmation.\n * @group Props\n */\n @Input() message: string | undefined;\n /**\n * Inline style of the element.\n * @group Props\n */\n @Input() get style(): { [klass: string]: any } | null | undefined {\n return this._style;\n }\n set style(value: { [klass: string]: any } | null | undefined) {\n this._style = value;\n this.cd.markForCheck();\n }\n /**\n * Class of the element.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Specify the CSS class(es) for styling the mask element\n * @group Props\n */\n @Input() maskStyleClass: string | undefined;\n /**\n * Icon of the accept button.\n * @group Props\n */\n @Input() acceptIcon: string | undefined;\n /**\n * Label of the accept button.\n * @group Props\n */\n @Input() acceptLabel: string | undefined;\n /**\n * Defines a string that labels the close button for accessibility.\n * @group Props\n */\n @Input() closeAriaLabel: string | undefined;\n /**\n * Defines a string that labels the accept button for accessibility.\n * @group Props\n */\n @Input() acceptAriaLabel: string | undefined;\n /**\n * Visibility of the accept button.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) acceptVisible: boolean = true;\n /**\n * Icon of the reject button.\n * @group Props\n */\n @Input() rejectIcon: string | undefined;\n /**\n * Label of the reject button.\n * @group Props\n */\n @Input() rejectLabel: string | undefined;\n /**\n * Defines a string that labels the reject button for accessibility.\n * @group Props\n */\n @Input() rejectAriaLabel: string | undefined;\n /**\n * Visibility of the reject button.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) rejectVisible: boolean = true;\n /**\n * Style class of the accept button.\n * @group Props\n */\n @Input() acceptButtonStyleClass: string | undefined;\n /**\n * Style class of the reject button.\n * @group Props\n */\n @Input() rejectButtonStyleClass: string | undefined;\n /**\n * Specifies if pressing escape key should hide the dialog.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) closeOnEscape: boolean = true;\n /**\n * Specifies if clicking the modal background should hide the dialog.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) dismissableMask: boolean | undefined;\n /**\n * Determines whether scrolling behavior should be blocked within the component.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) blockScroll: boolean = true;\n /**\n * When enabled dialog is displayed in RTL direction.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) rtl: boolean = false;\n /**\n * Adds a close icon to the header to hide the dialog.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) closable: boolean = true;\n /**\n * Target element to attach the dialog, 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 * @group Props\n */\n @Input() appendTo: HTMLElement | ElementRef | TemplateRef<any> | string | null | undefined | any = '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 @Input() key: string | undefined;\n /**\n * Whether to automatically manage layering.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) autoZIndex: boolean = true;\n /**\n * Base zIndex value to use in layering.\n * @group Props\n */\n @Input({ transform: numberAttribute }) baseZIndex: number = 0;\n /**\n * Transition options of the animation.\n * @group Props\n */\n @Input() transitionOptions: string = '150ms cubic-bezier(0, 0, 0.2, 1)';\n /**\n * When enabled, can only focus on elements inside the confirm dialog.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) focusTrap: boolean = true;\n /**\n * Element to receive the focus when the dialog gets visible.\n * @group Props\n */\n @Input() defaultFocus: 'accept' | 'reject' | 'close' | 'none' = 'accept';\n /**\n * Object literal to define widths per screen size.\n * @group Props\n */\n @Input() breakpoints: any;\n /**\n * Current visible state as a boolean.\n * @group Props\n */\n @Input() get visible(): any {\n return this._visible;\n }\n\n set visible(value: any) {\n this._visible = value;\n\n if (this._visible && !this.maskVisible) {\n this.maskVisible = true;\n }\n\n this.cd.markForCheck();\n }\n /**\n * Allows getting the position of the component.\n * @group Props\n */\n @Input() get position(): string {\n return this._position;\n }\n set position(value: string) {\n this._position = value;\n\n switch (value) {\n case 'topleft':\n case 'bottomleft':\n case 'left':\n this.transformOptions = 'translate3d(-100%, 0px, 0px)';\n break;\n case 'topright':\n case 'bottomright':\n case 'right':\n this.transformOptions = 'translate3d(100%, 0px, 0px)';\n break;\n case 'bottom':\n this.transformOptions = 'translate3d(0px, 100%, 0px)';\n break;\n case 'top':\n this.transformOptions = 'translate3d(0px, -100%, 0px)';\n break;\n default:\n this.transformOptions = 'scale(0.7)';\n break;\n }\n }\n /**\n * Callback to invoke when dialog is hidden.\n * @param {ConfirmEventType} enum - Custom confirm event.\n * @group Emits\n */\n @Output() onHide: EventEmitter<ConfirmEventType> = new EventEmitter<ConfirmEventType>();\n\n @ContentChild(Footer) footer: Nullable<TemplateRef<any>>;\n\n _componentStyle = inject(ConfirmDialogStyle);\n\n @ContentChild('header', { descendants: false }) headerTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('footer', { descendants: false }) footerTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('rejecticon', { descendants: false }) rejectIconTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('accepticon', { descendants: false }) acceptIconTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('message', { descendants: false }) messageTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('icon', { descendants: false }) iconTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('headless', { descendants: false }) headlessTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChildren(PrimeTemplate) templates: QueryList<PrimeTemplate> | undefined;\n\n _headerTemplate: TemplateRef<any> | undefined;\n\n _footerTemplate: TemplateRef<any> | undefined;\n\n _rejectIconTemplate: TemplateRef<any> | undefined;\n\n _acceptIconTemplate: TemplateRef<any> | undefined;\n\n _messageTemplate: TemplateRef<any> | undefined;\n\n _iconTemplate: TemplateRef<any> | undefined;\n\n _headlessTemplate: TemplateRef<any> | undefined;\n\n confirmation: Nullable<Confirmation>;\n\n _visible: boolean | undefined;\n\n _style: { [klass: string]: any } | null | undefined;\n\n maskVisible: boolean | undefined;\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 _position: string = 'center';\n\n transformOptions: any = 'scale(0.7)';\n\n styleElement: any;\n\n id = uuid('pn_id_');\n\n ariaLabelledBy: string = this.getAriaLabelledBy();\n\n translationSubscription: Subscription | undefined;\n\n get containerClass(): string {\n return this.cx('root') + ' ' + this.styleClass || ' ';\n }\n\n constructor(\n private confirmationService: ConfirmationService,\n public zone: NgZone\n ) {\n super();\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 = confirmation;\n\n const keys = Object.keys(confirmation);\n\n keys.forEach((key) => {\n this[key] = confirmation[key];\n });\n\n if (this.confirmation.accept) {\n this.confirmation.acceptEvent = new EventEmitter();\n this.confirmation.acceptEvent.subscribe(this.confirmation.accept);\n }\n\n if (this.confirmation.reject) {\n this.confirmation.rejectEvent = new EventEmitter();\n this.confirmation.rejectEvent.subscribe(this.confirmation.reject);\n }\n\n this.visible = true;\n }\n });\n }\n\n ngOnInit() {\n super.ngOnInit();\n if (this.breakpoints) {\n this.createStyle();\n }\n\n this.translationSubscription = this.config.translationObserver.subscribe(() => {\n if (this.visible) {\n this.cd.markForCheck();\n }\n });\n }\n\n ngAfterContentInit() {\n this.templates?.forEach((item) => {\n switch (item.getType()) {\n case 'header':\n this._headerTemplate = item.template;\n break;\n\n case 'footer':\n this._footerTemplate = item.template;\n break;\n\n case 'message':\n this._messageTemplate = item.template;\n break;\n\n case 'icon':\n this._iconTemplate = item.template;\n break;\n\n case 'rejecticon':\n this._rejectIconTemplate = item.template;\n break;\n\n case 'accepticon':\n this._acceptIconTemplate = item.template;\n break;\n\n case 'headless':\n this._headlessTemplate = item.template;\n break;\n }\n });\n }\n\n getAriaLabelledBy() {\n return this.header !== null ? uuid('pn_id_') + '_header' : null;\n }\n\n option(name: string, k?: string) {\n const source: { [key: string]: any } = this || this;\n if (source.hasOwnProperty(name)) {\n if (k) {\n return source[k];\n }\n return source[name];\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 getElementToFocus() {\n switch (this.option('defaultFocus')) {\n case 'accept':\n return findSingle(this.dialog.el.nativeElement, '.p-confirm-dialog-accept');\n\n case 'reject':\n return findSingle(this.dialog.el.nativeElement, '.p-confirm-dialog-reject');\n\n case 'close':\n return findSingle(this.dialog.el.nativeElement, '.p-dialog-header-close');\n\n case 'none':\n return null;\n\n //backward compatibility\n default:\n return findSingle(this.dialog.el.nativeElement, '.p-confirm-dialog-accept');\n }\n }\n\n createStyle() {\n if (!this.styleElement) {\n this.styleElement = this.document.createElement('style');\n this.styleElement.type = 'text/css';\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 if (this.confirmation?.rejectEvent) {\n this.confirmation.rejectEvent.emit(ConfirmEventType.CANCEL);\n }\n\n this.hide(ConfirmEventType.CANCEL);\n }\n\n hide(type?: ConfirmEventType) {\n this.onHide.emit(type);\n this.visible = false;\n this.confirmation = null;\n }\n\n destroyStyle() {\n if (this.styleElement) {\n this.document.head.removeChild(this.styleElement);\n this.styleElement = null;\n }\n }\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\n\n if (this.translationSubscription) {\n this.translationSubscription.unsubscribe();\n }\n\n this.destroyStyle();\n super.ngOnDestroy();\n }\n\n onVisibleChange(value: boolean) {\n if (!value) {\n this.close();\n } else {\n this.visible = value;\n }\n }\n\n onAccept() {\n if (this.confirmation && this.confirmation.acceptEvent) {\n this.confirmation.acceptEvent.emit();\n }\n this.hide(ConfirmEventType.ACCEPT);\n }\n\n onReject() {\n if (this.confirmation && this.confirmation.rejectEvent) {\n this.confirmation.rejectEvent.emit(ConfirmEventType.REJECT);\n }\n\n this.hide(ConfirmEventType.REJECT);\n }\n\n get acceptButtonLabel(): string {\n return this.option('acceptLabel') || this.config.getTranslation(TranslationKeys.ACCEPT);\n }\n\n get rejectButtonLabel(): string {\n return this.option('rejectLabel') || this.config.getTranslation(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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"}