{"version":3,"file":"primeng-button.mjs","sources":["../../src/button/style/buttonstyle.ts","../../src/button/button.ts","../../src/button/public_api.ts","../../src/button/primeng-button.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { style } from '@primeuix/styles/button';\nimport { BaseStyle } from 'primeng/base';\n\nconst classes = {\n    root: ({ instance }) => [\n        'p-button p-component',\n        {\n            'p-button-icon-only': instance.hasIcon && !instance.label && !instance.buttonProps?.label && !instance.badge,\n            'p-button-vertical': (instance.iconPos === 'top' || instance.iconPos === 'bottom') && instance.label,\n            'p-button-loading': instance.loading || instance.buttonProps?.loading,\n            'p-button-link': instance.link || instance.buttonProps?.link,\n            [`p-button-${instance.severity || instance.buttonProps?.severity}`]: instance.severity || instance.buttonProps?.severity,\n            'p-button-raised': instance.raised || instance.buttonProps?.raised,\n            'p-button-rounded': instance.rounded || instance.buttonProps?.rounded,\n            'p-button-text': instance.text || instance.variant === 'text' || instance.buttonProps?.text || instance.buttonProps?.variant === 'text',\n            'p-button-outlined': instance.outlined || instance.variant === 'outlined' || instance.buttonProps?.outlined || instance.buttonProps?.variant === 'outlined',\n            'p-button-sm': instance.size === 'small' || instance.buttonProps?.size === 'small',\n            'p-button-lg': instance.size === 'large' || instance.buttonProps?.size === 'large',\n            'p-button-plain': instance.plain || instance.buttonProps?.plain,\n            'p-button-fluid': instance.hasFluid\n        }\n    ],\n    loadingIcon: 'p-button-loading-icon',\n    icon: ({ instance }) => [\n        'p-button-icon',\n        {\n            [`p-button-icon-${instance.iconPos || instance.buttonProps?.iconPos}`]: instance.label || instance.buttonProps?.label,\n            'p-button-icon-left': ((instance.iconPos === 'left' || instance.buttonProps?.iconPos === 'left') && instance.label) || instance.buttonProps?.label,\n            'p-button-icon-right': ((instance.iconPos === 'right' || instance.buttonProps?.iconPos === 'right') && instance.label) || instance.buttonProps?.label,\n            'p-button-icon-top': ((instance.iconPos === 'top' || instance.buttonProps?.iconPos === 'top') && instance.label) || instance.buttonProps?.label,\n            'p-button-icon-bottom': ((instance.iconPos === 'bottom' || instance.buttonProps?.iconPos === 'bottom') && instance.label) || instance.buttonProps?.label\n        },\n        instance.icon,\n        instance.buttonProps?.icon\n    ],\n    spinnerIcon: ({ instance }) => {\n        return Object.entries(instance.cx('icon'))\n            .filter(([, value]) => !!value)\n            .reduce((acc, [key]) => acc + ` ${key}`, 'p-button-loading-icon');\n    },\n    label: 'p-button-label'\n};\n\n@Injectable()\nexport class ButtonStyle extends BaseStyle {\n    name = 'button';\n\n    style = style;\n\n    classes = classes;\n}\n\n/**\n *\n * Button is an extension to standard button element with icons and theming.\n *\n * [Live Demo](https://www.primeng.org/button/)\n *\n * @module buttonstyle\n *\n */\nexport enum ButtonClasses {\n    /**\n     * Class name of the root element\n     */\n    root = 'p-button',\n    /**\n     * Class name of the loading icon element\n     */\n    loadingIcon = 'p-button-loading-icon',\n    /**\n     * Class name of the icon element\n     */\n    icon = 'p-button-icon',\n    /**\n     * Class name of the label element\n     */\n    label = 'p-button-label'\n}\n\nexport interface ButtonStyle extends BaseStyle {}\n","import { CommonModule, isPlatformBrowser } from '@angular/common';\nimport {\n    booleanAttribute,\n    ChangeDetectionStrategy,\n    Component,\n    computed,\n    ContentChild,\n    contentChild,\n    ContentChildren,\n    Directive,\n    effect,\n    EventEmitter,\n    inject,\n    InjectionToken,\n    input,\n    Input,\n    NgModule,\n    numberAttribute,\n    Output,\n    QueryList,\n    TemplateRef,\n    ViewEncapsulation\n} from '@angular/core';\nimport { addClass, createElement, findSingle, isEmpty } from '@primeuix/utils';\nimport { PrimeTemplate, SharedModule } from 'primeng/api';\nimport { AutoFocus } from 'primeng/autofocus';\nimport { BadgeModule } from 'primeng/badge';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { Fluid } from 'primeng/fluid';\nimport { SpinnerIcon } from 'primeng/icons';\nimport { Ripple } from 'primeng/ripple';\nimport type { ButtonIconTemplateContext, ButtonLoadingIconTemplateContext, ButtonPassThrough, ButtonProps, ButtonSeverity } from 'primeng/types/button';\nimport { ButtonStyle } from './style/buttonstyle';\n\nconst BUTTON_INSTANCE = new InjectionToken<Button>('BUTTON_INSTANCE');\n\nconst BUTTON_DIRECTIVE_INSTANCE = new InjectionToken<ButtonDirective>('BUTTON_DIRECTIVE_INSTANCE');\n\nconst BUTTON_LABEL_INSTANCE = new InjectionToken<ButtonLabel>('BUTTON_LABEL_INSTANCE');\n\nconst BUTTON_ICON_INSTANCE = new InjectionToken<ButtonIcon>('BUTTON_ICON_INSTANCE');\n\nexport type ButtonIconPosition = 'left' | 'right' | 'top' | 'bottom';\n\nconst INTERNAL_BUTTON_CLASSES = {\n    button: 'p-button',\n    component: 'p-component',\n    iconOnly: 'p-button-icon-only',\n    disabled: 'p-disabled',\n    loading: 'p-button-loading',\n    labelOnly: 'p-button-loading-label-only'\n} as const;\n\n@Directive({\n    selector: '[pButtonLabel]',\n    providers: [ButtonStyle, { provide: BUTTON_LABEL_INSTANCE, useExisting: ButtonLabel }, { provide: PARENT_INSTANCE, useExisting: ButtonLabel }],\n    standalone: true,\n    host: {\n        '[class.p-button-label]': '!$unstyled() && true'\n    },\n    hostDirectives: [Bind]\n})\nexport class ButtonLabel extends BaseComponent {\n    componentName = 'ButtonLabel';\n\n    /**\n     * Used to pass attributes to DOM elements inside the pButtonLabel.\n     * @defaultValue undefined\n     * @deprecated use pButtonLabelPT instead.\n     * @group Props\n     */\n    ptButtonLabel = input<any>();\n    /**\n     * Used to pass attributes to DOM elements inside the pButtonLabel.\n     * @defaultValue undefined\n     * @group Props\n     */\n    pButtonLabelPT = input<any>();\n    /**\n     * Indicates whether the component should be rendered without styles.\n     * @defaultValue undefined\n     * @group Props\n     */\n    pButtonLabelUnstyled = input<boolean | undefined>();\n\n    $pcButtonLabel: ButtonLabel | undefined = inject(BUTTON_LABEL_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    constructor() {\n        super();\n        effect(() => {\n            const pt = this.ptButtonLabel() || this.pButtonLabelPT();\n            pt && this.directivePT.set(pt);\n        });\n\n        effect(() => {\n            this.pButtonLabelUnstyled() && this.directiveUnstyled.set(this.pButtonLabelUnstyled());\n        });\n    }\n\n    onAfterViewChecked(): void {\n        this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n    }\n}\n\n@Directive({\n    selector: '[pButtonIcon]',\n    providers: [ButtonStyle, { provide: BUTTON_ICON_INSTANCE, useExisting: ButtonIcon }, { provide: PARENT_INSTANCE, useExisting: ButtonIcon }],\n    standalone: true,\n    host: {\n        '[class.p-button-icon]': '!$unstyled() && true'\n    },\n    hostDirectives: [Bind]\n})\nexport class ButtonIcon extends BaseComponent {\n    componentName = 'ButtonIcon';\n\n    /**\n     * Used to pass attributes to DOM elements inside the pButtonIcon.\n     * @defaultValue undefined\n     * @deprecated use pButtonIconPT instead.\n     * @group Props\n     */\n    ptButtonIcon = input<any>();\n    /**\n     * Used to pass attributes to DOM elements inside the pButtonIcon.\n     * @defaultValue undefined\n     * @group Props\n     */\n    pButtonIconPT = input<any>();\n    /**\n     * Indicates whether the component should be rendered without styles.\n     * @defaultValue undefined\n     * @group Props\n     */\n    pButtonUnstyled = input<boolean | undefined>();\n\n    $pcButtonIcon: ButtonIcon | undefined = inject(BUTTON_ICON_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    constructor() {\n        super();\n        effect(() => {\n            const pt = this.ptButtonIcon() || this.pButtonIconPT();\n            pt && this.directivePT.set(pt);\n        });\n\n        effect(() => {\n            this.pButtonUnstyled() && this.directiveUnstyled.set(this.pButtonUnstyled());\n        });\n    }\n\n    onAfterViewChecked(): void {\n        this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n    }\n}\n/**\n * Button directive is an extension to button component.\n * @group Components\n */\n@Directive({\n    selector: '[pButton]',\n    standalone: true,\n    providers: [ButtonStyle, { provide: BUTTON_DIRECTIVE_INSTANCE, useExisting: ButtonDirective }, { provide: PARENT_INSTANCE, useExisting: ButtonDirective }],\n    host: {\n        '[class.p-button-icon-only]': '!$unstyled() && isIconOnly()',\n        '[class.p-button-text]': ' !$unstyled() && isTextButton()'\n    },\n    hostDirectives: [Bind]\n})\nexport class ButtonDirective extends BaseComponent {\n    componentName = 'Button';\n\n    $pcButtonDirective: ButtonDirective | undefined = inject(BUTTON_DIRECTIVE_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    _componentStyle = inject(ButtonStyle);\n\n    /**\n     * Used to pass attributes to DOM elements inside the Button component.\n     * @defaultValue undefined\n     * @deprecated use pButtonPT instead.\n     * @group Props\n     */\n    ptButtonDirective = input<ButtonPassThrough>();\n    /**\n     * Used to pass attributes to DOM elements inside the Button component.\n     * @defaultValue undefined\n     * @group Props\n     */\n    pButtonPT = input<ButtonPassThrough>();\n    /**\n     * Indicates whether the component should be rendered without styles.\n     * @defaultValue undefined\n     * @group Props\n     */\n    pButtonUnstyled = input<boolean | undefined>();\n\n    @Input() hostName: any = '';\n\n    onAfterViewChecked(): void {\n        this.bindDirectiveInstance.setAttrs(this.ptm('root'));\n    }\n\n    constructor() {\n        super();\n        effect(() => {\n            const pt = this.ptButtonDirective() || this.pButtonPT();\n            pt && this.directivePT.set(pt);\n        });\n\n        effect(() => {\n            this.pButtonUnstyled() && this.directiveUnstyled.set(this.pButtonUnstyled());\n        });\n\n        effect(() => {\n            const unstyled = this.$unstyled();\n\n            if (this.initialized && unstyled) {\n                this.setStyleClass();\n            }\n        });\n    }\n\n    /**\n     * Add a textual class to the button without a background initially.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) text: boolean = false;\n\n    /**\n     * Add a plain textual class to the button without a background initially.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) plain: boolean = false;\n\n    /**\n     * Add a shadow to indicate elevation.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) raised: boolean = false;\n\n    /**\n     * Defines the size of the button.\n     * @group Props\n     */\n    @Input() size: 'small' | 'large' | undefined;\n\n    /**\n     * Add a border class without a background initially.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) outlined: boolean = false;\n\n    /**\n     * Add a circular border radius to the button.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) rounded: boolean = false;\n\n    /**\n     * Position of the icon.\n     * @group Props\n     */\n    @Input() iconPos: ButtonIconPosition = 'left';\n\n    /**\n     * Icon to display in loading state.\n     * @group Props\n     */\n    @Input() loadingIcon: string | undefined;\n\n    /**\n     * Spans 100% width of the container when enabled.\n     * @defaultValue undefined\n     * @group Props\n     */\n    fluid = input(undefined, { transform: booleanAttribute });\n\n    private iconSignal = contentChild(ButtonIcon);\n\n    private labelSignal = contentChild(ButtonLabel);\n\n    isIconOnly = computed(() => !!(!this.labelSignal() && this.iconSignal()));\n\n    public _label: string | undefined;\n\n    public _icon: string | undefined;\n\n    public _loading: boolean = false;\n\n    private _severity: ButtonSeverity;\n\n    _buttonProps!: ButtonProps;\n\n    public initialized: boolean | undefined;\n\n    private get htmlElement(): HTMLElement {\n        return this.el.nativeElement as HTMLElement;\n    }\n\n    private _internalClasses: string[] = Object.values(INTERNAL_BUTTON_CLASSES);\n\n    pcFluid: Fluid | null = inject(Fluid, { optional: true, host: true, skipSelf: true });\n\n    isTextButton = computed(() => !!(!this.iconSignal() && this.labelSignal() && this.text));\n\n    /**\n     * Text of the button.\n     * @deprecated use pButtonLabel directive instead.\n     * @group Props\n     */\n    @Input() get label(): string | undefined {\n        return this._label as string;\n    }\n\n    set label(val: string) {\n        this._label = val;\n\n        if (this.initialized) {\n            this.updateLabel();\n            this.updateIcon();\n            this.setStyleClass();\n        }\n    }\n\n    /**\n     * Name of the icon.\n     * @deprecated use pButtonIcon directive instead\n     * @group Props\n     */\n    @Input() get icon(): string {\n        return this._icon as string;\n    }\n\n    set icon(val: string) {\n        this._icon = val;\n\n        if (this.initialized) {\n            this.updateIcon();\n            this.setStyleClass();\n        }\n    }\n\n    /**\n     * Whether the button is in loading state.\n     * @group Props\n     */\n    @Input() get loading(): boolean {\n        return this._loading;\n    }\n\n    set loading(val: boolean) {\n        this._loading = val;\n\n        if (this.initialized) {\n            this.updateIcon();\n            this.setStyleClass();\n        }\n    }\n\n    /**\n     * Used to pass all properties of the ButtonProps to the Button component.\n     * @deprecated assign props directly to the button element.\n     * @group Props\n     */\n    @Input() get buttonProps(): ButtonProps {\n        return this._buttonProps;\n    }\n\n    set buttonProps(val: ButtonProps) {\n        this._buttonProps = val;\n\n        if (val && typeof val === 'object') {\n            //@ts-ignore\n            Object.entries(val).forEach(([k, v]) => this[`_${k}`] !== v && (this[`_${k}`] = v));\n        }\n    }\n\n    /**\n     * Defines the style of the button.\n     * @group Props\n     */\n    @Input()\n    get severity(): ButtonSeverity {\n        return this._severity;\n    }\n\n    set severity(value: ButtonSeverity) {\n        this._severity = value;\n\n        if (this.initialized) {\n            this.setStyleClass();\n        }\n    }\n\n    spinnerIcon = `<svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" class=\"p-icon-spin\">\n        <g clip-path=\"url(#clip0_417_21408)\">\n            <path\n                d=\"M6.99701 14C5.85441 13.999 4.72939 13.7186 3.72012 13.1832C2.71084 12.6478 1.84795 11.8737 1.20673 10.9284C0.565504 9.98305 0.165424 8.89526 0.041387 7.75989C-0.0826496 6.62453 0.073125 5.47607 0.495122 4.4147C0.917119 3.35333 1.59252 2.4113 2.46241 1.67077C3.33229 0.930247 4.37024 0.413729 5.4857 0.166275C6.60117 -0.0811796 7.76026 -0.0520535 8.86188 0.251112C9.9635 0.554278 10.9742 1.12227 11.8057 1.90555C11.915 2.01493 11.9764 2.16319 11.9764 2.31778C11.9764 2.47236 11.915 2.62062 11.8057 2.73C11.7521 2.78503 11.688 2.82877 11.6171 2.85864C11.5463 2.8885 11.4702 2.90389 11.3933 2.90389C11.3165 2.90389 11.2404 2.8885 11.1695 2.85864C11.0987 2.82877 11.0346 2.78503 10.9809 2.73C9.9998 1.81273 8.73246 1.26138 7.39226 1.16876C6.05206 1.07615 4.72086 1.44794 3.62279 2.22152C2.52471 2.99511 1.72683 4.12325 1.36345 5.41602C1.00008 6.70879 1.09342 8.08723 1.62775 9.31926C2.16209 10.5513 3.10478 11.5617 4.29713 12.1803C5.48947 12.7989 6.85865 12.988 8.17414 12.7157C9.48963 12.4435 10.6711 11.7264 11.5196 10.6854C12.3681 9.64432 12.8319 8.34282 12.8328 7C12.8328 6.84529 12.8943 6.69692 13.0038 6.58752C13.1132 6.47812 13.2616 6.41667 13.4164 6.41667C13.5712 6.41667 13.7196 6.47812 13.8291 6.58752C13.9385 6.69692 14 6.84529 14 7C14 8.85651 13.2622 10.637 11.9489 11.9497C10.6356 13.2625 8.85432 14 6.99701 14Z\"\n                fill=\"currentColor\"\n            />\n        </g>\n        <defs>\n            <clipPath id=\"clip0_417_21408\">\n                <rect width=\"14\" height=\"14\" fill=\"white\" />\n            </clipPath>\n        </defs>\n    </svg>`;\n\n    onAfterViewInit() {\n        !this.$unstyled() && addClass(this.htmlElement, this.getStyleClass().join(' '));\n\n        if (isPlatformBrowser(this.platformId)) {\n            this.createIcon();\n            this.createLabel();\n            this.initialized = true;\n        }\n    }\n\n    getStyleClass(): string[] {\n        const styleClass: string[] = [INTERNAL_BUTTON_CLASSES.button, INTERNAL_BUTTON_CLASSES.component];\n\n        if (this.icon && !this.label && isEmpty(this.htmlElement.textContent)) {\n            styleClass.push(INTERNAL_BUTTON_CLASSES.iconOnly);\n        }\n\n        if (this.loading) {\n            styleClass.push(INTERNAL_BUTTON_CLASSES.disabled, INTERNAL_BUTTON_CLASSES.loading);\n\n            if (!this.icon && this.label) {\n                styleClass.push(INTERNAL_BUTTON_CLASSES.labelOnly);\n            }\n\n            if (this.icon && !this.label && !isEmpty(this.htmlElement.textContent)) {\n                styleClass.push(INTERNAL_BUTTON_CLASSES.iconOnly);\n            }\n        }\n\n        if (this.text) {\n            styleClass.push('p-button-text');\n        }\n\n        if (this.severity) {\n            styleClass.push(`p-button-${this.severity}`);\n        }\n\n        if (this.plain) {\n            styleClass.push('p-button-plain');\n        }\n\n        if (this.raised) {\n            styleClass.push('p-button-raised');\n        }\n\n        if (this.size) {\n            styleClass.push(`p-button-${this.size}`);\n        }\n\n        if (this.outlined) {\n            styleClass.push('p-button-outlined');\n        }\n\n        if (this.rounded) {\n            styleClass.push('p-button-rounded');\n        }\n\n        if (this.size === 'small') {\n            styleClass.push('p-button-sm');\n        }\n\n        if (this.size === 'large') {\n            styleClass.push('p-button-lg');\n        }\n\n        if (this.hasFluid) {\n            styleClass.push('p-button-fluid');\n        }\n\n        return this.$unstyled() ? [] : styleClass;\n    }\n\n    get hasFluid() {\n        return this.fluid() ?? !!this.pcFluid;\n    }\n\n    setStyleClass() {\n        const styleClass = this.getStyleClass();\n        this.removeExistingSeverityClass();\n\n        this.htmlElement.classList.remove(...this._internalClasses);\n        this.htmlElement.classList.add(...styleClass);\n    }\n\n    removeExistingSeverityClass() {\n        const severityArray = ['success', 'info', 'warn', 'danger', 'help', 'primary', 'secondary', 'contrast'];\n        const existingSeverityClass = this.htmlElement.classList.value.split(' ').find((cls) => severityArray.some((severity) => cls === `p-button-${severity}`));\n\n        if (existingSeverityClass) {\n            this.htmlElement.classList.remove(existingSeverityClass);\n        }\n    }\n\n    createLabel() {\n        const created = findSingle(this.htmlElement, '[data-pc-section=\"buttonlabel\"]');\n        if (!created && this.label) {\n            let labelElement = <HTMLElement>createElement('span', { class: this.cx('label'), 'p-bind': this.ptm('buttonlabel'), 'aria-hidden': this.icon && !this.label ? 'true' : null });\n            labelElement.appendChild(this.document.createTextNode(this.label));\n            this.htmlElement.appendChild(labelElement);\n        }\n    }\n\n    createIcon() {\n        const created = findSingle(this.htmlElement, '[data-pc-section=\"buttonicon\"]');\n        if (!created && (this.icon || this.loading)) {\n            let iconPosClass = this.label && !this.$unstyled() ? 'p-button-icon-' + this.iconPos : null;\n            let iconClass = !this.$unstyled() && this.getIconClass();\n            let iconElement: HTMLElement = <HTMLElement>createElement('span', { class: this.cn(this.cx('icon'), iconPosClass, iconClass), 'aria-hidden': 'true', 'p-bind': this.ptm('buttonicon') });\n\n            if (!this.loadingIcon && this.loading) {\n                iconElement.innerHTML = this.spinnerIcon;\n            }\n\n            this.htmlElement.insertBefore(iconElement, this.htmlElement.firstChild);\n        }\n    }\n\n    updateLabel() {\n        let labelElement = findSingle(this.htmlElement, '[data-pc-section=\"buttonlabel\"]');\n\n        if (!this.label) {\n            labelElement && this.htmlElement.removeChild(labelElement);\n            return;\n        }\n\n        labelElement ? (labelElement.textContent = this.label) : this.createLabel();\n    }\n\n    updateIcon() {\n        let iconElement = findSingle(this.htmlElement, '[data-pc-section=\"buttonicon\"]');\n        let labelElement = findSingle(this.htmlElement, '[data-pc-section=\"buttonlabel\"]');\n\n        if (this.loading && !this.loadingIcon && iconElement) {\n            iconElement.innerHTML = this.spinnerIcon;\n        } else if (iconElement?.innerHTML) {\n            iconElement.innerHTML = '';\n        }\n\n        if (iconElement && !this.$unstyled()) {\n            if (this.iconPos) {\n                iconElement.className = 'p-button-icon ' + (labelElement ? 'p-button-icon-' + this.iconPos : '') + ' ' + this.getIconClass();\n            } else {\n                iconElement.className = 'p-button-icon ' + this.getIconClass();\n            }\n        } else {\n            this.createIcon();\n        }\n    }\n\n    getIconClass() {\n        return this.loading ? 'p-button-loading-icon ' + (this.loadingIcon ? this.loadingIcon : 'p-icon') : this.icon || 'p-hidden';\n    }\n\n    onDestroy() {\n        this.initialized = false;\n    }\n}\n/**\n * Button is an extension to standard button element with icons and theming.\n * @group Components\n */\n@Component({\n    selector: 'p-button',\n    standalone: true,\n    imports: [CommonModule, Ripple, AutoFocus, SpinnerIcon, BadgeModule, SharedModule, Bind],\n    template: `\n        <button\n            [attr.type]=\"type || buttonProps?.type\"\n            [attr.aria-label]=\"ariaLabel || buttonProps?.ariaLabel\"\n            [ngStyle]=\"style || buttonProps?.style\"\n            [disabled]=\"disabled || loading || buttonProps?.disabled\"\n            [class]=\"cn(cx('root'), styleClass, buttonProps?.styleClass)\"\n            (click)=\"onClick.emit($event)\"\n            (focus)=\"onFocus.emit($event)\"\n            (blur)=\"onBlur.emit($event)\"\n            pRipple\n            [attr.tabindex]=\"tabindex || buttonProps?.tabindex\"\n            [pAutoFocus]=\"autofocus || buttonProps?.autofocus\"\n            [pBind]=\"ptm('root')\"\n            [attr.data-p]=\"dataP\"\n            [attr.data-p-disabled]=\"disabled || loading || buttonProps?.disabled\"\n            [attr.data-p-severity]=\"severity || buttonProps?.severity\"\n        >\n            <ng-content></ng-content>\n            <ng-container *ngTemplateOutlet=\"contentTemplate || _contentTemplate\"></ng-container>\n            <ng-container *ngIf=\"loading || buttonProps?.loading\">\n                <ng-container *ngIf=\"!loadingIconTemplate && !_loadingIconTemplate\">\n                    <span *ngIf=\"loadingIcon || buttonProps?.loadingIcon\" [class]=\"cn(cx('loadingIcon'), 'pi-spin', loadingIcon || buttonProps?.loadingIcon)\" [pBind]=\"ptm('loadingIcon')\" [attr.aria-hidden]=\"true\"></span>\n                    <svg data-p-icon=\"spinner\" *ngIf=\"!(loadingIcon || buttonProps?.loadingIcon)\" [class]=\"cn(cx('loadingIcon'), cx('spinnerIcon'))\" [pBind]=\"ptm('loadingIcon')\" [spin]=\"true\" [attr.aria-hidden]=\"true\" />\n                </ng-container>\n                <ng-template [ngIf]=\"loadingIconTemplate || _loadingIconTemplate\" *ngTemplateOutlet=\"loadingIconTemplate || _loadingIconTemplate; context: { class: cx('loadingIcon'), pt: ptm('loadingIcon') }\"></ng-template>\n            </ng-container>\n            <ng-container *ngIf=\"!(loading || buttonProps?.loading)\">\n                <span *ngIf=\"(icon || buttonProps?.icon) && !iconTemplate && !_iconTemplate\" [class]=\"cn(cx('icon'), icon || buttonProps?.icon)\" [pBind]=\"ptm('icon')\" [attr.data-p]=\"dataIconP\"></span>\n                <ng-template [ngIf]=\"!icon && (iconTemplate || _iconTemplate)\" *ngTemplateOutlet=\"iconTemplate || _iconTemplate; context: { class: cx('icon'), pt: ptm('icon') }\"></ng-template>\n            </ng-container>\n            <span\n                [class]=\"cx('label')\"\n                [attr.aria-hidden]=\"(icon || buttonProps?.icon) && !(label || buttonProps?.label)\"\n                *ngIf=\"!contentTemplate && !_contentTemplate && (label || buttonProps?.label)\"\n                [pBind]=\"ptm('label')\"\n                [attr.data-p]=\"dataLabelP\"\n                >{{ label || buttonProps?.label }}</span\n            >\n            <p-badge\n                *ngIf=\"!contentTemplate && !_contentTemplate && (badge || buttonProps?.badge)\"\n                [value]=\"badge || buttonProps?.badge\"\n                [severity]=\"badgeSeverity || buttonProps?.badgeSeverity\"\n                [pt]=\"ptm('pcBadge')\"\n                [unstyled]=\"unstyled()\"\n            ></p-badge>\n        </button>\n    `,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    providers: [ButtonStyle, { provide: BUTTON_INSTANCE, useExisting: Button }, { provide: PARENT_INSTANCE, useExisting: Button }],\n    hostDirectives: [Bind]\n})\nexport class Button extends BaseComponent<ButtonPassThrough> {\n    componentName = 'Button';\n\n    @Input() hostName: any = '';\n\n    $pcButton: Button | undefined = inject(BUTTON_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    _componentStyle = inject(ButtonStyle);\n\n    onAfterViewChecked(): void {\n        this.bindDirectiveInstance.setAttrs(this.ptm('host'));\n    }\n\n    /**\n     * Type of the button.\n     * @group Props\n     */\n    @Input() type: string = 'button';\n\n    /**\n     * Value of the badge.\n     * @group Props\n     */\n    @Input() badge: string | undefined;\n\n    /**\n     * When present, it specifies that the component should be disabled.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) disabled: boolean | undefined;\n\n    /**\n     * Add a shadow to indicate elevation.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) raised: boolean = false;\n\n    /**\n     * Add a circular border radius to the button.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) rounded: boolean = false;\n\n    /**\n     * Add a textual class to the button without a background initially.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) text: boolean = false;\n\n    /**\n     * Add a plain textual class to the button without a background initially.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) plain: boolean = false;\n\n    /**\n     * Add a border class without a background initially.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) outlined: boolean = false;\n\n    /**\n     * Add a link style to the button.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) link: boolean = false;\n\n    /**\n     * Add a tabindex to the button.\n     * @group Props\n     */\n    @Input({ transform: numberAttribute }) tabindex: number | undefined;\n\n    /**\n     * Defines the size of the button.\n     * @group Props\n     */\n    @Input() size: 'small' | 'large' | undefined;\n\n    /**\n     * Specifies the variant of the component.\n     * @group Props\n     */\n    @Input() variant: 'outlined' | 'text' | undefined;\n\n    /**\n     * Inline style of the element.\n     * @group Props\n     */\n    @Input() style: { [klass: string]: any } | null | undefined;\n\n    /**\n     * Class of the element.\n     * @group Props\n     */\n    @Input() styleClass: string | undefined;\n\n    /**\n     * Style class of the badge.\n     * @group Props\n     * @deprecated use badgeSeverity instead.\n     */\n    @Input() badgeClass: string | undefined;\n\n    /**\n     * Severity type of the badge.\n     * @group Props\n     * @defaultValue secondary\n     */\n    @Input() badgeSeverity: 'success' | 'info' | 'warn' | 'danger' | 'help' | 'primary' | 'secondary' | 'contrast' | null | undefined = 'secondary';\n\n    /**\n     * Used to define a string that autocomplete attribute the current element.\n     * @group Props\n     */\n    @Input() ariaLabel: string | undefined;\n\n    /**\n     * When present, it specifies that the component should automatically get focus on load.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) autofocus: boolean | undefined;\n\n    /**\n     * Position of the icon.\n     * @group Props\n     */\n    @Input() iconPos: ButtonIconPosition = 'left';\n\n    /**\n     * Name of the icon.\n     * @group Props\n     */\n    @Input() icon: string | undefined;\n\n    /**\n     * Text of the button.\n     * @group Props\n     */\n    @Input() label: string | undefined;\n\n    /**\n     * Whether the button is in loading state.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) loading: boolean = false;\n\n    /**\n     * Icon to display in loading state.\n     * @group Props\n     */\n    @Input() loadingIcon: string | undefined;\n\n    /**\n     * Defines the style of the button.\n     * @group Props\n     */\n    @Input() severity: ButtonSeverity;\n\n    /**\n     * Used to pass all properties of the ButtonProps to the Button component.\n     * @group Props\n     */\n    @Input() buttonProps: ButtonProps;\n\n    /**\n     * Spans 100% width of the container when enabled.\n     * @defaultValue undefined\n     * @group Props\n     */\n    fluid = input(undefined, { transform: booleanAttribute });\n\n    /**\n     * Callback to execute when button is clicked.\n     * This event is intended to be used with the <p-button> component. Using a regular <button> element, use (click).\n     * @param {MouseEvent} event - Mouse event.\n     * @group Emits\n     */\n    @Output() onClick: EventEmitter<MouseEvent> = new EventEmitter();\n\n    /**\n     * Callback to execute when button is focused.\n     * This event is intended to be used with the <p-button> component. Using a regular <button> element, use (focus).\n     * @param {FocusEvent} event - Focus event.\n     * @group Emits\n     */\n    @Output() onFocus: EventEmitter<FocusEvent> = new EventEmitter<FocusEvent>();\n\n    /**\n     * Callback to execute when button loses focus.\n     * This event is intended to be used with the <p-button> component. Using a regular <button> element, use (blur).\n     * @param {FocusEvent} event - Focus event.\n     * @group Emits\n     */\n    @Output() onBlur: EventEmitter<FocusEvent> = new EventEmitter<FocusEvent>();\n\n    /**\n     * Custom content template.\n     * @group Templates\n     **/\n    @ContentChild('content') contentTemplate: TemplateRef<void> | undefined;\n\n    /**\n     * Custom loading icon template.\n     * @group Templates\n     **/\n    @ContentChild('loadingicon') loadingIconTemplate: TemplateRef<ButtonLoadingIconTemplateContext> | undefined;\n\n    /**\n     * Custom icon template.\n     * @group Templates\n     **/\n    @ContentChild('icon') iconTemplate: TemplateRef<ButtonIconTemplateContext> | undefined;\n\n    @ContentChildren(PrimeTemplate) templates: QueryList<PrimeTemplate> | undefined;\n\n    pcFluid: Fluid | null = inject(Fluid, { optional: true, host: true, skipSelf: true });\n\n    get hasFluid() {\n        return this.fluid() ?? !!this.pcFluid;\n    }\n\n    get hasIcon() {\n        return this.icon || this.buttonProps?.icon || this.iconTemplate || this._iconTemplate || this.loadingIcon || this.loadingIconTemplate || this._loadingIconTemplate;\n    }\n\n    _contentTemplate: TemplateRef<void> | undefined;\n\n    _iconTemplate: TemplateRef<ButtonIconTemplateContext> | undefined;\n\n    _loadingIconTemplate: TemplateRef<ButtonLoadingIconTemplateContext> | undefined;\n\n    onAfterContentInit() {\n        this.templates?.forEach((item) => {\n            switch (item.getType()) {\n                case 'content':\n                    this._contentTemplate = item.template;\n                    break;\n\n                case 'icon':\n                    this._iconTemplate = item.template;\n                    break;\n\n                case 'loadingicon':\n                    this._loadingIconTemplate = item.template;\n                    break;\n\n                default:\n                    this._contentTemplate = item.template;\n                    break;\n            }\n        });\n    }\n\n    get dataP() {\n        return this.cn({\n            [this.size as string]: this.size,\n            'icon-only': this.hasIcon && !this.label && !this.badge,\n            loading: this.loading,\n            fluid: this.hasFluid,\n            rounded: this.rounded,\n            raised: this.raised,\n            outlined: this.outlined || this.variant === 'outlined',\n            text: this.text || this.variant === 'text',\n            link: this.link,\n            vertical: (this.iconPos === 'top' || this.iconPos === 'bottom') && this.label\n        });\n    }\n\n    get dataIconP() {\n        return this.cn({\n            [this.iconPos]: this.iconPos,\n            [this.size as string]: this.size\n        });\n    }\n\n    get dataLabelP() {\n        return this.cn({\n            [this.size as string]: this.size,\n            'icon-only': this.hasIcon && !this.label && !this.badge\n        });\n    }\n}\n\n@NgModule({\n    imports: [CommonModule, ButtonDirective, Button, SharedModule, ButtonLabel, ButtonIcon],\n    exports: [ButtonDirective, Button, ButtonLabel, ButtonIcon, SharedModule]\n})\nexport class ButtonModule {}\n","// Backward compatibility\nexport * from 'primeng/types/button';\nexport * from './button';\nexport * from './style/buttonstyle';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}