{"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 { style as rating_style } from '@primeuix/styles/rating';\nimport { BaseStyle } from 'primeng/base';\n\nconst style = /*css*/ `\n    ${rating_style}\n\n    /* For PrimeNG */\n    p-rating.ng-invalid.ng-dirty > .p-rating > .p-rating-icon {\n        stroke: dt('rating.invalid.icon.color');\n    }\n`;\n\nconst classes = {\n    root: ({ instance }) => [\n        'p-rating',\n        {\n            'p-readonly': instance.readonly,\n            'p-disabled': instance.$disabled()\n        }\n    ],\n    option: ({ instance, star, value }) => [\n        'p-rating-option',\n\n        {\n            'p-rating-option-active': star + 1 <= value,\n            'p-focus-visible': star + 1 === instance.focusedOptionIndex() && instance.isFocusVisibleItem\n        }\n    ],\n    onIcon: ({ instance }) => ['p-rating-icon p-rating-on-icon', { 'p-invalid': instance.invalid() }],\n    offIcon: ({ instance }) => ['p-rating-icon p-rating-off-icon', { 'p-invalid': instance.invalid() }]\n};\n\n@Injectable()\nexport class RatingStyle extends BaseStyle {\n    name = 'rating';\n\n    style = style;\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    InjectionToken,\n    Input,\n    NgModule,\n    numberAttribute,\n    Output,\n    QueryList,\n    signal,\n    TemplateRef,\n    ViewEncapsulation\n} from '@angular/core';\nimport { 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 { PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { BaseEditableHolder } from 'primeng/baseeditableholder';\nimport { Bind } from 'primeng/bind';\nimport { BindModule } from 'primeng/bind';\nimport { StarFillIcon, StarIcon } from 'primeng/icons';\nimport { Nullable } from 'primeng/ts-helpers';\nimport { RatingIconTemplateContext, RatingPassThrough } from 'primeng/types/rating';\nimport type { RatingRateEvent } from 'primeng/types/rating';\nimport { RatingStyle } from './style/ratingstyle';\n\nconst RATING_INSTANCE = new InjectionToken<Rating>('RATING_INSTANCE');\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, BindModule],\n    standalone: true,\n    template: `\n        <ng-template ngFor [ngForOf]=\"starsArray\" let-star let-i=\"index\">\n            <div [class]=\"cx('option', { star, value })\" (click)=\"onOptionClick($event, star + 1)\" [pBind]=\"ptm('option')\">\n                <span class=\"p-hidden-accessible\" [attr.data-p-hidden-accessible]=\"true\" [pBind]=\"ptm('hiddenOptionInputContainer')\">\n                    <input\n                        type=\"radio\"\n                        [value]=\"star + 1\"\n                        [attr.name]=\"name() || nameattr + '_name'\"\n                        [attr.value]=\"modelValue()\"\n                        [attr.required]=\"required() ? '' : undefined\"\n                        [attr.readonly]=\"readonly ? '' : undefined\"\n                        [attr.disabled]=\"$disabled() ? '' : undefined\"\n                        [checked]=\"value === star + 1\"\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                        [pBind]=\"ptm('hiddenOptionInput')\"\n                    />\n                </span>\n                @if (star + 1 <= value) {\n                    @if (onIconTemplate || _onIconTemplate) {\n                        <ng-container *ngTemplateOutlet=\"onIconTemplate || _onIconTemplate; context: { $implicit: star + 1, class: cx('onIcon') }\"></ng-container>\n                    } @else {\n                        <span [class]=\"cx('onIcon')\" *ngIf=\"iconOnClass\" [ngStyle]=\"iconOnStyle\" [ngClass]=\"iconOnClass\" [pBind]=\"ptm('onIcon')\"></span>\n                        <svg data-p-icon=\"star-fill\" *ngIf=\"!iconOnClass\" [ngStyle]=\"iconOnStyle\" [class]=\"cx('onIcon')\" [pBind]=\"ptm('onIcon')\" />\n                    }\n                } @else {\n                    @if (offIconTemplate || _offIconTemplate) {\n                        <ng-container *ngTemplateOutlet=\"offIconTemplate || _offIconTemplate; context: { $implicit: star + 1, class: cx('offIcon') }\"></ng-container>\n                    } @else {\n                        <span [class]=\"cx('offIcon')\" *ngIf=\"iconOffClass\" [ngStyle]=\"iconOffStyle\" [ngClass]=\"iconOffClass\" [pBind]=\"ptm('offIcon')\"></span>\n                        <svg data-p-icon=\"star\" *ngIf=\"!iconOffClass\" [ngStyle]=\"iconOffStyle\" [class]=\"cx('offIcon')\" [pBind]=\"ptm('offIcon')\" />\n                    }\n                }\n            </div>\n        </ng-template>\n    `,\n    providers: [RATING_VALUE_ACCESSOR, RatingStyle, { provide: RATING_INSTANCE, useExisting: Rating }, { provide: PARENT_INSTANCE, useExisting: Rating }],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    host: {\n        '[class]': \"cx('root')\",\n        '[attr.data-p]': 'dataP'\n    },\n    hostDirectives: [Bind]\n})\nexport class Rating extends BaseEditableHolder<RatingPassThrough> {\n    componentName = 'Rating';\n\n    $pcRating: Rating | undefined = inject(RATING_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    onAfterViewChecked(): void {\n        this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n    }\n\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 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     * @param {RatingIconTemplateContext} context - icon context.\n     * @see {@link RatingIconTemplateContext}\n     * @group Templates\n     */\n    @ContentChild('onicon', { descendants: false }) onIconTemplate: Nullable<TemplateRef<RatingIconTemplateContext>>;\n    /**\n     * Custom off icon template.\n     * @param {RatingIconTemplateContext} context - icon context.\n     * @see {@link RatingIconTemplateContext}\n     * @group Templates\n     */\n    @ContentChild('officon', { descendants: false }) offIconTemplate: Nullable<TemplateRef<RatingIconTemplateContext>>;\n\n    @ContentChildren(PrimeTemplate) templates!: QueryList<PrimeTemplate>;\n\n    value: Nullable<number>;\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<RatingIconTemplateContext> | undefined;\n\n    _offIconTemplate: TemplateRef<RatingIconTemplateContext> | undefined;\n\n    onInit() {\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    onAfterContentInit() {\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        });\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.isFocusVisibleItem = event.sourceCapabilities?.firesTouchEvents === false;\n\n            this.onFocus.emit(event);\n        }\n    }\n\n    updateModel(event, value) {\n        this.writeValue(value);\n        this.onModelChange(this.value);\n        this.onModelTouched();\n\n        this.onRate.emit({\n            originalEvent: event,\n            value\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<RatingIconTemplateContext>> {\n        return !this.value || i >= this.value ? this.offIconTemplate || this._offIconTemplate : this.onIconTemplate || this.offIconTemplate;\n    }\n\n    /**\n     * @override\n     *\n     * @see {@link BaseEditableHolder.writeControlValue}\n     * Writes the value to the control.\n     */\n    writeControlValue(value: any, setModelValue: (value: any) => void): void {\n        this.value = value;\n        setModelValue(value);\n    }\n\n    get isCustomIcon(): boolean {\n        return !!(this.onIconTemplate || this._onIconTemplate || this.offIconTemplate || this._offIconTemplate);\n    }\n\n    get dataP() {\n        return this.cn({\n            readonly: this.readonly,\n            disabled: this.$disabled()\n        });\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":["rating_style"],"mappings":"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"}