{"version":3,"file":"primeng-selectbutton.mjs","sources":["../../src/selectbutton/style/selectbuttonstyle.ts","../../src/selectbutton/selectbutton.ts","../../src/selectbutton/primeng-selectbutton.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-selectbutton {\n    display: inline-flex;\n    user-select: none;\n    vertical-align: bottom;\n    outline-color: transparent;\n    border-radius: ${dt('selectbutton.border.radius')};\n}\n\n.p-selectbutton .p-togglebutton {\n    border-radius: 0;\n    border-width: 1px 1px 1px 0;\n}\n\n.p-selectbutton .p-togglebutton:focus-visible {\n    position: relative;\n    z-index: 1;\n}\n\n.p-selectbutton p-togglebutton:first-child .p-togglebutton {\n    border-left-width: 1px;\n    border-start-start-radius: ${dt('selectbutton.border.radius')};\n    border-end-start-radius: ${dt('selectbutton.border.radius')};\n}\n\n.p-selectbutton p-togglebutton:last-child .p-togglebutton{\n    border-start-end-radius: ${dt('selectbutton.border.radius')};\n    border-end-end-radius: ${dt('selectbutton.border.radius')};\n}\n\n.p-selectbutton.ng-invalid.ng-dirty {\n    outline: 1px solid ${dt('selectbutton.invalid.border.color')};\n    outline-offset: 0;\n}\n`;\n\nconst classes = {\n    root: ({ props }) => [\n        'p-selectbutton p-component',\n        {\n            'p-invalid': props.invalid\n        }\n    ]\n};\n\n@Injectable()\nexport class SelectButtonStyle extends BaseStyle {\n    name = 'selectbutton';\n\n    theme = theme;\n\n    classes = classes;\n}\n\n/**\n *\n * SelectButton is used to choose single or multiple items from a list using buttons.\n *\n * [Live Demo](https://www.primeng.org/selectbutton/)\n *\n * @module selectbuttonstyle\n *\n */\nexport enum SelectButtonClasses {\n    /**\n     * Class name of the root element\n     */\n    root = 'p-selectbutton'\n}\n\nexport interface SelectButtonStyle 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    inject,\n    Input,\n    NgModule,\n    numberAttribute,\n    Output,\n    QueryList,\n    TemplateRef,\n    ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { equals, resolveFieldData } from '@primeuix/utils';\nimport { PrimeTemplate, SharedModule } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { ToggleButton } from 'primeng/togglebutton';\nimport { SelectButtonChangeEvent, SelectButtonOptionClickEvent } from './selectbutton.interface';\nimport { SelectButtonStyle } from './style/selectbuttonstyle';\n\nexport const SELECTBUTTON_VALUE_ACCESSOR: any = {\n    provide: NG_VALUE_ACCESSOR,\n    useExisting: forwardRef(() => SelectButton),\n    multi: true\n};\n/**\n * SelectButton is used to choose single or multiple items from a list using buttons.\n * @group Components\n */\n@Component({\n    selector: 'p-selectButton, p-selectbutton, p-select-button',\n    standalone: true,\n    imports: [ToggleButton, FormsModule, CommonModule, SharedModule],\n    template: `\n        @for (option of options; track option; let i = $index) {\n            <p-toggleButton\n                [autofocus]=\"autofocus\"\n                [styleClass]=\"styleClass\"\n                [ngModel]=\"isSelected(option)\"\n                [onLabel]=\"this.getOptionLabel(option)\"\n                [offLabel]=\"this.getOptionLabel(option)\"\n                [disabled]=\"disabled || isOptionDisabled(option)\"\n                (onChange)=\"onOptionSelect($event, option, i)\"\n                [allowEmpty]=\"allowEmpty\"\n                [size]=\"size\"\n            >\n                @if (itemTemplate || _itemTemplate) {\n                    <ng-template #content>\n                        <ng-container *ngTemplateOutlet=\"itemTemplate || _itemTemplate; context: { $implicit: option, index: i }\"></ng-container>\n                    </ng-template>\n                }\n            </p-toggleButton>\n        }\n    `,\n    providers: [SELECTBUTTON_VALUE_ACCESSOR, SelectButtonStyle],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    host: {\n        '[class.p-selectbutton]': 'true',\n        '[class.p-component]': 'true',\n        '[style]': 'style',\n        '[attr.role]': '\"group\"',\n        '[attr.aria-labelledby]': 'ariaLabelledBy',\n        '[attr.data-pc-section]': \"'root'\",\n        '[attr.data-pc-name]': \"'selectbutton'\"\n    }\n})\nexport class SelectButton extends BaseComponent implements AfterContentInit, ControlValueAccessor {\n    /**\n     * An array of selectitems to display as the available options.\n     * @group Props\n     */\n    @Input() options: any[] | undefined;\n    /**\n     * Name of the label field of an option.\n     * @group Props\n     */\n    @Input() optionLabel: string | undefined;\n    /**\n     * Name of the value field of an option.\n     * @group Props\n     */\n    @Input() optionValue: string | undefined;\n    /**\n     * Name of the disabled field of an option.\n     * @group Props\n     */\n    @Input() optionDisabled: string | undefined;\n    /**\n     * Whether selection can be cleared.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) unselectable: boolean = false;\n    /**\n     * Index of the element in tabbing order.\n     * @group Props\n     */\n    @Input({ transform: numberAttribute }) tabindex: number = 0;\n    /**\n     * When specified, allows selecting multiple values.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) multiple: boolean | undefined;\n    /**\n     * Whether selection can not be cleared.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) allowEmpty: boolean = true;\n    /**\n     * Inline style of the component.\n     * @group Props\n     */\n    @Input() style: any;\n    /**\n     * Style class of the component.\n     * @group Props\n     */\n    @Input() styleClass: 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     * Defines the size of the component.\n     * @group Props\n     */\n    @Input() size: 'large' | 'small';\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     * A property to uniquely identify a value in options.\n     * @group Props\n     */\n    @Input() dataKey: string | undefined;\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     * Callback to invoke on input click.\n     * @param {SelectButtonOptionClickEvent} event - Custom click event.\n     * @group Emits\n     */\n    @Output() onOptionClick: EventEmitter<SelectButtonOptionClickEvent> = new EventEmitter<SelectButtonOptionClickEvent>();\n    /**\n     * Callback to invoke on selection change.\n     * @param {SelectButtonChangeEvent} event - Custom change event.\n     * @group Emits\n     */\n    @Output() onChange: EventEmitter<SelectButtonChangeEvent> = new EventEmitter<SelectButtonChangeEvent>();\n    /**\n     * Template of an item in the list.\n     * @group Templates\n     */\n    @ContentChild('item', { descendants: false }) itemTemplate: TemplateRef<any>;\n\n    _itemTemplate: TemplateRef<any> | undefined;\n\n    get equalityKey() {\n        return this.optionValue ? null : this.dataKey;\n    }\n\n    value: any;\n\n    onModelChange: Function = () => {};\n\n    onModelTouched: Function = () => {};\n\n    focusedIndex: number = 0;\n\n    _componentStyle = inject(SelectButtonStyle);\n\n    getOptionLabel(option: any) {\n        return this.optionLabel ? resolveFieldData(option, this.optionLabel) : option.label != undefined ? option.label : option;\n    }\n\n    getOptionValue(option: any) {\n        return this.optionValue ? resolveFieldData(option, this.optionValue) : this.optionLabel || option.value === undefined ? option : option.value;\n    }\n\n    isOptionDisabled(option: any) {\n        return this.optionDisabled ? resolveFieldData(option, this.optionDisabled) : option.disabled !== undefined ? option.disabled : false;\n    }\n\n    writeValue(value: any): void {\n        this.value = 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    onOptionSelect(event, option, index) {\n        if (this.disabled || this.isOptionDisabled(option)) {\n            return;\n        }\n\n        let selected = this.isSelected(option);\n\n        if (selected && this.unselectable) {\n            return;\n        }\n\n        let optionValue = this.getOptionValue(option);\n        let newValue;\n\n        if (this.multiple) {\n            if (selected) newValue = this.value.filter((val) => !equals(val, optionValue, this.equalityKey));\n            else newValue = this.value ? [...this.value, optionValue] : [optionValue];\n        } else {\n            if (selected && !this.allowEmpty) {\n                return;\n            }\n            newValue = selected ? null : optionValue;\n        }\n\n        this.focusedIndex = index;\n        this.value = newValue;\n        this.onModelChange(this.value);\n\n        this.onChange.emit({\n            originalEvent: event,\n            value: this.value\n        });\n\n        this.onOptionClick.emit({\n            originalEvent: event,\n            option: option,\n            index: index\n        });\n    }\n\n    changeTabIndexes(event, direction) {\n        let firstTabableChild, index;\n\n        for (let i = 0; i <= this.el.nativeElement.children.length - 1; i++) {\n            if (this.el.nativeElement.children[i].getAttribute('tabindex') === '0') firstTabableChild = { elem: this.el.nativeElement.children[i], index: i };\n        }\n\n        if (direction === 'prev') {\n            if (firstTabableChild.index === 0) index = this.el.nativeElement.children.length - 1;\n            else index = firstTabableChild.index - 1;\n        } else {\n            if (firstTabableChild.index === this.el.nativeElement.children.length - 1) index = 0;\n            else index = firstTabableChild.index + 1;\n        }\n\n        this.focusedIndex = index;\n        this.el.nativeElement.children[index].focus();\n    }\n\n    onFocus(event: Event, index: number) {\n        this.focusedIndex = index;\n    }\n\n    onBlur() {\n        this.onModelTouched();\n    }\n\n    removeOption(option: any): void {\n        this.value = this.value.filter((val: any) => !equals(val, this.getOptionValue(option), this.dataKey));\n    }\n\n    isSelected(option: any) {\n        let selected = false;\n        const optionValue = this.getOptionValue(option);\n\n        if (this.multiple) {\n            if (this.value && Array.isArray(this.value)) {\n                for (let val of this.value) {\n                    if (equals(val, optionValue, this.dataKey)) {\n                        selected = true;\n                        break;\n                    }\n                }\n            }\n        } else {\n            selected = equals(this.getOptionValue(option), this.value, this.equalityKey);\n        }\n\n        return selected;\n    }\n\n    @ContentChildren(PrimeTemplate) templates: QueryList<PrimeTemplate> | undefined;\n\n    ngAfterContentInit() {\n        (this.templates as QueryList<PrimeTemplate>).forEach((item) => {\n            switch (item.getType()) {\n                case 'item':\n                    this._itemTemplate = item.template;\n                    break;\n            }\n        });\n    }\n}\n\n@NgModule({\n    imports: [SelectButton, SharedModule],\n    exports: [SelectButton, SharedModule]\n})\nexport class SelectButtonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}