{"version":3,"file":"primeng-togglebutton.mjs","sources":["../../src/togglebutton/style/togglebuttonstyle.ts","../../src/togglebutton/togglebutton.ts","../../src/togglebutton/primeng-togglebutton.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-togglebutton {\n    display: inline-flex;\n    cursor: pointer;\n    user-select: none;\n    overflow: hidden;\n    position: relative;\n    color: ${dt('togglebutton.color')};\n    background: ${dt('togglebutton.background')};\n    border: 1px solid ${dt('togglebutton.border.color')};\n    padding: ${dt('togglebutton.padding')};\n    font-size: 1rem;\n    font-family: inherit;\n    font-feature-settings: inherit;\n    transition: background ${dt('togglebutton.transition.duration')}, color ${dt('togglebutton.transition.duration')}, border-color ${dt('togglebutton.transition.duration')},\n        outline-color ${dt('togglebutton.transition.duration')}, box-shadow ${dt('togglebutton.transition.duration')};\n    border-radius: ${dt('togglebutton.border.radius')};\n    outline-color: transparent;\n    font-weight: ${dt('togglebutton.font.weight')};\n}\n\n.p-togglebutton-content {\n    display: inline-flex;\n    flex: 1 1 auto;\n    align-items: center;\n    justify-content: center;\n    gap: ${dt('togglebutton.gap')};\n    padding: ${dt('togglebutton.content.padding')};\n    background: transparent;\n    border-radius: ${dt('togglebutton.content.border.radius')};\n    transition: background ${dt('togglebutton.transition.duration')}, color ${dt('togglebutton.transition.duration')}, border-color ${dt('togglebutton.transition.duration')},\n            outline-color ${dt('togglebutton.transition.duration')}, box-shadow ${dt('togglebutton.transition.duration')};\n}\n\n.p-togglebutton:not(:disabled):not(.p-togglebutton-checked):hover {\n    background: ${dt('togglebutton.hover.background')};\n    color: ${dt('togglebutton.hover.color')};\n}\n\n.p-togglebutton.p-togglebutton-checked {\n    background: ${dt('togglebutton.checked.background')};\n    border-color: ${dt('togglebutton.checked.border.color')};\n    color: ${dt('togglebutton.checked.color')};\n}\n\n.p-togglebutton-checked .p-togglebutton-content {\n    background: ${dt('togglebutton.content.checked.background')};\n    box-shadow: ${dt('togglebutton.content.checked.shadow')};\n}\n\n.p-togglebutton:focus-visible {\n    box-shadow: ${dt('togglebutton.focus.ring.shadow')};\n    outline: ${dt('togglebutton.focus.ring.width')} ${dt('togglebutton.focus.ring.style')} ${dt('togglebutton.focus.ring.color')};\n    outline-offset: ${dt('togglebutton.focus.ring.offset')};\n}\n\n.p-togglebutton.p-invalid {\n    border-color: ${dt('togglebutton.invalid.border.color')};\n}\n\n.p-togglebutton:disabled:not(.p-togglebutton-checked) {\n    opacity: 1;\n    cursor: default;\n    background: ${dt('togglebutton.disabled.background')};\n    border-color: ${dt('togglebutton.disabled.border.color')};\n    color: ${dt('togglebutton.disabled.color')};\n}\n\n.p-togglebutton-label,\n.p-togglebutton-icon {\n    position: relative;\n    transition: none;\n}\n\n.p-togglebutton-icon {\n    color: ${dt('togglebutton.icon.color')};\n}\n\n.p-togglebutton:not(:disabled):not(.p-togglebutton-checked):hover .p-togglebutton-icon {\n    color: ${dt('togglebutton.icon.hover.color')};\n}\n\n.p-togglebutton.p-togglebutton-checked .p-togglebutton-icon {\n    color: ${dt('togglebutton.icon.checked.color')};\n}\n\n.p-togglebutton:disabled .p-togglebutton-icon {\n    color: ${dt('togglebutton.icon.disabled.color')};\n}\n\n.p-togglebutton-sm {\n    padding: ${dt('togglebutton.sm.padding')};\n    font-size: ${dt('togglebutton.sm.font.size')};\n}\n\n.p-togglebutton-sm .p-togglebutton-content {\n    padding: ${dt('togglebutton.content.sm.padding')};\n}\n\n.p-togglebutton-lg {\n    padding: ${dt('togglebutton.lg.padding')};\n    font-size: ${dt('togglebutton.lg.font.size')};\n}\n\n.p-togglebutton-lg .p-togglebutton-content {\n    padding: ${dt('togglebutton.content.lg.padding')};\n}\n\n/* For PrimeNG (iconPos) */\n.p-togglebutton-icon-right {\n    order: 1;\n}\n\n.p-togglebutton.ng-invalid.ng-dirty {\n    border-color: ${dt('togglebutton.invalid.border.color')};\n}\n`;\n\nconst classes = {\n    root: ({ instance }) => ({\n        'p-togglebutton p-component': true,\n        'p-togglebutton-checked': instance.checked,\n        'p-disabled': instance.disabled,\n        'p-togglebutton-sm p-inputfield-sm': instance.size === 'small',\n        'p-togglebutton-lg p-inputfield-lg': instance.size === 'large'\n    }),\n    content: 'p-togglebutton-content',\n    icon: 'p-togglebutton-icon',\n    label: 'p-togglebutton-label'\n};\n\n@Injectable()\nexport class ToggleButtonStyle extends BaseStyle {\n    name = 'togglebutton';\n\n    theme = theme;\n\n    classes = classes;\n}\n\n/**\n *\n * ToggleButton is used to select a boolean value using a button.\n *\n * [Live Demo](https://www.primeng.org/togglebutton/)\n *\n * @module togglebuttonstyle\n *\n */\nexport enum ToggleButtonClasses {\n    /**\n     * Class name of the root element\n     */\n    root = 'p-togglebutton',\n    /**\n     * Class name of the icon element\n     */\n    icon = 'p-togglebutton-icon',\n    /**\n     * Class name of the label element\n     */\n    label = 'p-togglebutton-label'\n}\n\nexport interface ToggleButtonStyle extends BaseStyle {}\n","import { CommonModule } from '@angular/common';\nimport {\n    AfterContentInit,\n    booleanAttribute,\n    ChangeDetectionStrategy,\n    Component,\n    ContentChild,\n    ContentChildren,\n    EventEmitter,\n    forwardRef,\n    HostBinding,\n    HostListener,\n    inject,\n    Input,\n    NgModule,\n    numberAttribute,\n    Output,\n    QueryList,\n    TemplateRef\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { PrimeTemplate, SharedModule } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { Ripple } from 'primeng/ripple';\nimport { Nullable } from 'primeng/ts-helpers';\nimport { ToggleButtonStyle } from './style/togglebuttonstyle';\nimport { ToggleButtonChangeEvent } from './togglebutton.interface';\n\nexport const TOGGLEBUTTON_VALUE_ACCESSOR: any = {\n    provide: NG_VALUE_ACCESSOR,\n    useExisting: forwardRef(() => ToggleButton),\n    multi: true\n};\n/**\n * ToggleButton is used to select a boolean value using a button.\n * @group Components\n */\n@Component({\n    selector: 'p-toggleButton, p-togglebutton, p-toggle-button',\n    standalone: true,\n    imports: [CommonModule, SharedModule],\n    hostDirectives: [{ directive: Ripple }],\n    host: {\n        '[tabindex]': 'tabindex',\n        '[disabled]': 'disabled',\n        '[attr.aria-labelledby]': 'ariaLabelledBy',\n        '[attr.aria-pressed]': 'checked',\n        '[attr.data-p-checked]': 'active',\n        '[attr.data-p-disabled]': 'disabled',\n        '[attr.type]': '\"button\"',\n        '[class.p-togglebutton]': 'true',\n        '[class.p-togglebutton-checked]': 'checked',\n        '[class.p-disabled]': 'disabled',\n        '[class.p-togglebutton-sm]': 'size === \"small\"',\n        '[class.p-inputfield-sm]': 'size === \"small\"',\n        '[class.p-togglebutton-lg]': 'size === \"large\"',\n        '[class.p-inputfield-lg]': 'size === \"large\"'\n    },\n    template: `<span [ngClass]=\"cx('content')\">\n        <ng-container *ngTemplateOutlet=\"contentTemplate || _contentTemplate; context: { $implicit: checked }\"></ng-container>\n        @if (!contentTemplate) {\n            @if (!iconTemplate) {\n                @if (onIcon || offIcon) {\n                    <span\n                        [class]=\"checked ? this.onIcon : this.offIcon\"\n                        [ngClass]=\"{\n                            'p-togglebutton-icon': true,\n                            'p-togglebutton-icon-left': iconPos === 'left',\n                            'p-togglebutton-icon-right': iconPos === 'right'\n                        }\"\n                        [attr.data-pc-section]=\"'icon'\"\n                    ></span>\n                }\n            } @else {\n                <ng-container *ngTemplateOutlet=\"iconTemplate || _iconTemplate; context: { $implicit: checked }\"></ng-container>\n            }\n            <span [ngClass]=\"cx('label')\" [attr.data-pc-section]=\"'label'\">{{ checked ? (hasOnLabel ? onLabel : ' ') : hasOffLabel ? offLabel : ' ' }}</span>\n        }\n    </span>`,\n    providers: [TOGGLEBUTTON_VALUE_ACCESSOR, ToggleButtonStyle],\n    changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ToggleButton extends BaseComponent implements AfterContentInit, ControlValueAccessor {\n    @HostBinding('class') get hostClass() {\n        return this.styleClass || '';\n    }\n\n    @HostListener('keydown', ['$event']) onKeyDown(event: KeyboardEvent) {\n        switch (event.code) {\n            case 'Enter':\n                this.toggle(event);\n                event.preventDefault();\n                break;\n            case 'Space':\n                this.toggle(event);\n                event.preventDefault();\n                break;\n        }\n    }\n\n    @HostListener('click', ['$event']) toggle(event: Event) {\n        if (!this.disabled && !(this.allowEmpty === false && this.checked)) {\n            this.checked = !this.checked;\n            this.onModelChange(this.checked);\n            this.onModelTouched();\n            this.onChange.emit({\n                originalEvent: event,\n                checked: this.checked\n            });\n\n            this.cd.markForCheck();\n        }\n    }\n    /**\n     * Label for the on state.\n     * @group Props\n     */\n    @Input() onLabel: string = 'Yes';\n    /**\n     * Label for the off state.\n     * @group Props\n     */\n    @Input() offLabel: string = 'No';\n    /**\n     * Icon for the on state.\n     * @group Props\n     */\n    @Input() onIcon: string | undefined;\n    /**\n     * Icon for the off state.\n     * @group Props\n     */\n    @Input() offIcon: string | undefined;\n    /**\n     * Defines a string that labels the input for accessibility.\n     * @group Props\n     */\n    @Input() ariaLabel: string | undefined;\n    /**\n     * Establishes relationships between the component and label(s) where its value should be one or more element IDs.\n     * @group Props\n     */\n    @Input() ariaLabelledBy: string | undefined;\n    /**\n     * When present, it specifies that the element should be disabled.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) disabled: boolean | undefined;\n    /**\n     * Inline style of the element.\n     * @group Props\n     */\n    @Input() style: any;\n    /**\n     * Style class of the element.\n     * @group Props\n     */\n    @Input() styleClass: string | undefined;\n    /**\n     * Identifier of the focus input to match a label defined for the component.\n     * @group Props\n     */\n    @Input() inputId: string | undefined;\n    /**\n     * Index of the element in tabbing order.\n     * @group Props\n     */\n    @Input({ transform: numberAttribute }) tabindex: number | undefined = 0;\n    /**\n     * Defines the size of the component.\n     * @group Props\n     */\n    @Input() size: 'large' | 'small';\n    /**\n     * Position of the icon.\n     * @group Props\n     */\n    @Input() iconPos: 'left' | 'right' = 'left';\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     * Whether selection can not be cleared.\n     * @group Props\n     */\n    @Input() allowEmpty: boolean | undefined;\n    /**\n     * Callback to invoke on value change.\n     * @param {ToggleButtonChangeEvent} event - Custom change event.\n     * @group Emits\n     */\n    @Output() onChange: EventEmitter<ToggleButtonChangeEvent> = new EventEmitter<ToggleButtonChangeEvent>();\n    /**\n     * Custom icon template.\n     * @group Templates\n     */\n    @ContentChild('icon', { descendants: false }) iconTemplate: Nullable<TemplateRef<any>>;\n    /**\n     * Custom content template.\n     * @group Templates\n     */\n    @ContentChild('content', { descendants: false }) contentTemplate: Nullable<TemplateRef<any>>;\n\n    @ContentChildren(PrimeTemplate) templates!: QueryList<PrimeTemplate>;\n\n    checked: boolean = false;\n\n    onModelChange: Function = () => {};\n\n    onModelTouched: Function = () => {};\n\n    _componentStyle = inject(ToggleButtonStyle);\n\n    onBlur() {\n        this.onModelTouched();\n    }\n\n    writeValue(value: any): void {\n        this.checked = value;\n        this.cd.markForCheck();\n    }\n\n    registerOnChange(fn: Function): void {\n        this.onModelChange = fn;\n    }\n\n    registerOnTouched(fn: Function): void {\n        this.onModelTouched = fn;\n    }\n\n    setDisabledState(val: boolean): void {\n        this.disabled = val;\n        this.cd.markForCheck();\n    }\n\n    get hasOnLabel(): boolean {\n        return (this.onLabel && this.onLabel.length > 0) as boolean;\n    }\n\n    get hasOffLabel(): boolean {\n        return (this.onLabel && this.onLabel.length > 0) as boolean;\n    }\n\n    get active() {\n        return this.checked === true;\n    }\n\n    _iconTemplate: TemplateRef<any> | undefined;\n\n    _contentTemplate: TemplateRef<any> | undefined;\n\n    ngAfterContentInit() {\n        this.templates.forEach((item) => {\n            switch (item.getType()) {\n                case 'icon':\n                    this._iconTemplate = item.template;\n                    break;\n                case 'content':\n                    this._contentTemplate = item.template;\n                    break;\n                default:\n                    this._contentTemplate = item.template;\n                    break;\n            }\n        });\n    }\n}\n\n@NgModule({\n    imports: [ToggleButton, SharedModule],\n    exports: [ToggleButton, SharedModule]\n})\nexport class ToggleButtonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}