{"version":3,"file":"primeng-rating.mjs","sources":["../../src/rating/style/ratingstyle.ts","../../src/rating/rating.ts","../../src/rating/primeng-rating.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-rating {\n    position: relative;\n    display: flex;\n    align-items: center;\n    gap: ${dt('rating.gap')};\n}\n\n.p-rating-option {\n    display: inline-flex;\n    align-items: center;\n    cursor: pointer;\n    outline-color: transparent;\n    border-radius: 50%;\n    transition: background ${dt('rating.transition.duration')}, color ${dt('rating.transition.duration')}, border-color ${dt('rating.transition.duration')}, outline-color ${dt('rating.transition.duration')}, box-shadow ${dt(\n        'rating.transition.duration'\n    )};\n}\n\n.p-rating-option.p-focus-visible {\n    box-shadow: ${dt('rating.focus.ring.shadow')};\n    outline: ${dt('rating.focus.ring.width')} ${dt('rating.focus.ring.style')} ${dt('rating.focus.ring.color')};\n    outline-offset: ${dt('rating.focus.ring.offset')};\n}\n\n.p-rating-icon {\n    color: ${dt('rating.icon.color')};\n    transition: background ${dt('rating.transition.duration')}, color ${dt('rating.transition.duration')}, border-color ${dt('rating.transition.duration')}, outline-color ${dt('rating.transition.duration')}, box-shadow ${dt(\n        'rating.transition.duration'\n    )};\n    font-size: ${dt('rating.icon.size')};\n    width: ${dt('rating.icon.size')};\n    height: ${dt('rating.icon.size')};\n}\n\n.p-rating:not(.p-disabled):not(.p-readonly) .p-rating-option:hover .p-rating-icon {\n    color: ${dt('rating.icon.hover.color')};\n}\n\n.p-rating-option-active .p-rating-icon {\n    color: ${dt('rating.icon.active.color')};\n}\n\n/* For PrimeNG */\np-rating.ng-invalid.ng-dirty > .p-rating > .p-rating-icon {\n    stroke: ${dt('rating.invalid.icon.color')};\n}`;\n\nconst classes = {\n    root: ({ props }) => [\n        'p-rating',\n        {\n            'p-readonly': props.readonly,\n            'p-disabled': props.disabled\n        }\n    ],\n    option: ({ instance, props, value }) => [\n        'p-rating-option',\n        {\n            'p-rating-option-active': value <= props.modelValue,\n            'p-focus-visible': value === instance.focusedOptionIndex() && instance.isFocusVisibleItem\n        }\n    ],\n    onIcon: 'p-rating-icon p-rating-on-icon',\n    offIcon: 'p-rating-icon p-rating-off-icon'\n};\n\n@Injectable()\nexport class RatingStyle extends BaseStyle {\n    name = 'rating';\n\n    theme = theme;\n\n    classes = classes;\n}\n\n/**\n *\n * Rating component is a star based selection input.\n *\n * [Live Demo](https://www.primeng.org/rating/)\n *\n * @module ratingstyle\n *\n */\nexport enum RatingClasses {\n    /**\n     * Class name of the root element\n     */\n    root = 'p-rating',\n    /**\n     * Class name of the option element\n     */\n    option = 'p-rating-option',\n    /**\n     * Class name of the on icon element\n     */\n    onIcon = 'p-rating-on-icon',\n    /**\n     * Class name of the off icon element\n     */\n    offIcon = 'p-rating-off-icon'\n}\n\nexport interface RatingStyle extends BaseStyle {}\n","import { CommonModule } from '@angular/common';\nimport {\n    booleanAttribute,\n    ChangeDetectionStrategy,\n    Component,\n    ContentChild,\n    ContentChildren,\n    EventEmitter,\n    forwardRef,\n    inject,\n    Input,\n    NgModule,\n    numberAttribute,\n    OnInit,\n    Output,\n    QueryList,\n    signal,\n    TemplateRef,\n    ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { focus, getFirstFocusableElement, uuid } from '@primeuix/utils';\nimport { PrimeTemplate, SharedModule } from 'primeng/api';\nimport { AutoFocus } from 'primeng/autofocus';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { BanIcon, StarFillIcon, StarIcon } from 'primeng/icons';\nimport { Nullable } from 'primeng/ts-helpers';\nimport { RatingRateEvent } from './rating.interface';\nimport { RatingStyle } from './style/ratingstyle';\n\nexport const RATING_VALUE_ACCESSOR: any = {\n    provide: NG_VALUE_ACCESSOR,\n    useExisting: forwardRef(() => Rating),\n    multi: true\n};\n/**\n * Rating is an extension to standard radio button element with theming.\n * @group Components\n */\n@Component({\n    selector: 'p-rating',\n    imports: [CommonModule, AutoFocus, StarFillIcon, StarIcon, SharedModule],\n    standalone: true,\n    template: `\n        <ng-container *ngIf=\"!isCustomIcon; else customTemplate\">\n            <ng-template ngFor [ngForOf]=\"starsArray\" let-star let-i=\"index\">\n                <div\n                    class=\"p-rating-option\"\n                    [ngClass]=\"{\n                        'p-rating-option-active': star + 1 <= value,\n                        'p-focus-visible': star + 1 === focusedOptionIndex() && isFocusVisibleItem\n                    }\"\n                    (click)=\"onOptionClick($event, star + 1)\"\n                >\n                    <span class=\"p-hidden-accessible\" [attr.data-p-hidden-accessible]=\"true\">\n                        <input\n                            type=\"radio\"\n                            value=\"0\"\n                            [name]=\"nameattr\"\n                            [checked]=\"value === 0\"\n                            [disabled]=\"disabled\"\n                            [readonly]=\"readonly\"\n                            [attr.aria-label]=\"starAriaLabel(star + 1)\"\n                            (focus)=\"onInputFocus($event, star + 1)\"\n                            (blur)=\"onInputBlur($event)\"\n                            (change)=\"onChange($event, star + 1)\"\n                            [pAutoFocus]=\"autofocus\"\n                        />\n                    </span>\n                    <ng-container *ngIf=\"!value || i >= value\">\n                        <span class=\"p-rating-icon\" *ngIf=\"iconOffClass\" [ngStyle]=\"iconOffStyle\" [ngClass]=\"iconOffClass\" [attr.data-pc-section]=\"'offIcon'\"></span>\n                        <StarIcon *ngIf=\"!iconOffClass\" [ngStyle]=\"iconOffStyle\" [styleClass]=\"'p-rating-icon'\" [attr.data-pc-section]=\"'offIcon'\" />\n                    </ng-container>\n                    <ng-container *ngIf=\"value && i < value\">\n                        <span class=\"p-rating-icon p-rating-icon-active\" *ngIf=\"iconOnClass\" [ngStyle]=\"iconOnStyle\" [ngClass]=\"iconOnClass\" [attr.data-pc-section]=\"'onIcon'\"></span>\n                        <StarFillIcon *ngIf=\"!iconOnClass\" [ngStyle]=\"iconOnStyle\" [styleClass]=\"'p-rating-icon p-rating-icon-active'\" [attr.data-pc-section]=\"'onIcon'\" />\n                    </ng-container>\n                </div>\n            </ng-template>\n        </ng-container>\n        <ng-template #customTemplate>\n            <span *ngFor=\"let star of starsArray; let i = index\" (click)=\"onOptionClick($event, star + 1)\" [attr.data-pc-section]=\"'onIcon'\">\n                <ng-container *ngTemplateOutlet=\"getIconTemplate(i)\"></ng-container>\n            </span>\n        </ng-template>\n    `,\n    providers: [RATING_VALUE_ACCESSOR, RatingStyle],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    host: {\n        class: 'p-rating',\n        '[attr.data-pc-name]': '\"rating\"',\n        '[attr.data-pc-section]': '\"root\"',\n        '[class.p-readonly]': 'readonly',\n        '[class.p-disabled]': 'disabled'\n    }\n})\nexport class Rating extends BaseComponent implements OnInit, ControlValueAccessor {\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     * When present, changing the value is not possible.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) readonly: boolean | undefined;\n    /**\n     * Number of stars.\n     * @group Props\n     */\n    @Input({ transform: numberAttribute }) stars: number = 5;\n    /**\n     * Style class of the on icon.\n     * @group Props\n     */\n    @Input() iconOnClass: string | undefined;\n    /**\n     * Inline style of the on icon.\n     * @group Props\n     */\n    @Input() iconOnStyle: { [klass: string]: any } | null | undefined;\n    /**\n     * Style class of the off icon.\n     * @group Props\n     */\n    @Input() iconOffClass: string | undefined;\n    /**\n     * Inline style of the off icon.\n     * @group Props\n     */\n    @Input() iconOffStyle: { [klass: string]: any } | null | 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     * Emitted on value change.\n     * @param {RatingRateEvent} value - Custom rate event.\n     * @group Emits\n     */\n    @Output() onRate: EventEmitter<RatingRateEvent> = new EventEmitter<RatingRateEvent>();\n    /**\n     * Emitted when the rating is cancelled.\n     * @param {Event} value - Browser event.\n     * @group Emits\n     */\n    @Output() onCancel: EventEmitter<Event> = new EventEmitter<Event>();\n    /**\n     * Emitted when the rating receives focus.\n     * @param {Event} value - Browser event.\n     * @group Emits\n     */\n    @Output() onFocus: EventEmitter<FocusEvent> = new EventEmitter<FocusEvent>();\n    /**\n     * Emitted when the rating loses focus.\n     * @param {Event} value - Browser event.\n     * @group Emits\n     */\n    @Output() onBlur: EventEmitter<FocusEvent> = new EventEmitter<FocusEvent>();\n    /**\n     * Custom on icon template.\n     * @group Templates\n     */\n    @ContentChild('onicon', { descendants: false }) onIconTemplate: Nullable<TemplateRef<any>>;\n    /**\n     * Custom off icon template.\n     * @group Templates\n     */\n    @ContentChild('officon', { descendants: false }) offIconTemplate: Nullable<TemplateRef<any>>;\n    /**\n     * Custom cancel icon template.\n     * @group Templates\n     */\n    @ContentChild('cancelicon', { descendants: false }) cancelIconTemplate: Nullable<TemplateRef<any>>;\n\n    @ContentChildren(PrimeTemplate) templates!: QueryList<PrimeTemplate>;\n\n    value: Nullable<number>;\n\n    onModelChange: Function = () => {};\n\n    onModelTouched: Function = () => {};\n\n    public starsArray: Nullable<number[]>;\n\n    isFocusVisibleItem: boolean = true;\n\n    focusedOptionIndex = signal<number>(-1);\n\n    nameattr: string | undefined;\n\n    _componentStyle = inject(RatingStyle);\n\n    _onIconTemplate: TemplateRef<any> | undefined;\n\n    _offIconTemplate: TemplateRef<any> | undefined;\n\n    _cancelIconTemplate: TemplateRef<any> | undefined;\n\n    ngOnInit() {\n        super.ngOnInit();\n        this.nameattr = this.nameattr || uuid('pn_id_');\n        this.starsArray = [];\n        for (let i = 0; i < this.stars; i++) {\n            this.starsArray[i] = i;\n        }\n    }\n\n    ngAfterContentInit() {\n        this.templates.forEach((item) => {\n            switch (item.getType()) {\n                case 'onicon':\n                    this._onIconTemplate = item.template;\n                    break;\n\n                case 'officon':\n                    this._offIconTemplate = item.template;\n                    break;\n\n                case 'cancelicon':\n                    this._cancelIconTemplate = item.template;\n                    break;\n            }\n        });\n    }\n\n    onOptionClick(event, value) {\n        if (!this.readonly && !this.disabled) {\n            this.onOptionSelect(event, value);\n            this.isFocusVisibleItem = false;\n            const firstFocusableEl = <any>getFirstFocusableElement(event.currentTarget, '');\n\n            firstFocusableEl && focus(firstFocusableEl);\n        }\n    }\n\n    onOptionSelect(event, value) {\n        if (!this.readonly && !this.disabled) {\n            if (this.focusedOptionIndex() === value || value === this.value) {\n                this.focusedOptionIndex.set(-1);\n                this.updateModel(event, null);\n            } else {\n                this.focusedOptionIndex.set(value);\n                this.updateModel(event, value || null);\n            }\n        }\n    }\n\n    onChange(event, value) {\n        this.onOptionSelect(event, value);\n        this.isFocusVisibleItem = true;\n    }\n\n    onInputBlur(event) {\n        this.focusedOptionIndex.set(-1);\n        this.onBlur.emit(event);\n    }\n\n    onInputFocus(event, value) {\n        if (!this.readonly && !this.disabled) {\n            this.focusedOptionIndex.set(value);\n            this.onFocus.emit(event);\n        }\n    }\n\n    updateModel(event, value) {\n        this.value = value;\n        this.onModelChange(this.value);\n        this.onModelTouched();\n\n        if (!value) {\n            this.onCancel.emit();\n        } else {\n            this.onRate.emit({\n                originalEvent: event,\n                value\n            });\n        }\n    }\n\n    starAriaLabel(value) {\n        return value === 1 ? this.config.translation.aria.star : this.config.translation.aria.stars.replace(/{star}/g, value);\n    }\n\n    getIconTemplate(i: number): Nullable<TemplateRef<any>> {\n        return !this.value || i >= this.value ? this.offIconTemplate || this._offIconTemplate : this.onIconTemplate || this.offIconTemplate;\n    }\n\n    writeValue(value: any): void {\n        this.value = value;\n        this.cd.detectChanges();\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 isCustomIcon(): boolean {\n        return !!(this.onIconTemplate || this._onIconTemplate || this.offIconTemplate || this._offIconTemplate || this.cancelIconTemplate || this._cancelIconTemplate);\n    }\n}\n\n@NgModule({\n    imports: [Rating, SharedModule],\n    exports: [Rating, SharedModule]\n})\nexport class RatingModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}