{"version":3,"file":"primeicons-angular-core.mjs","sources":["../../src/core/index.ts","../../src/core/primeicons-angular-core.ts"],"sourcesContent":["import { computed, Directive, HostBinding, input, signal } from '@angular/core';\nimport type { IconProps as CoreIconProps, IconData, IconNodes } from '@primeicons/core/types';\nimport { cn } from '@primeuix/utils/classnames';\n\n// Shared template for all icon components\nexport const ICON_TEMPLATE = `\n        @for (node of iconNodes(); track node[1]['key'] || $index) {\n            @switch (node[0]) {\n                @case ('path') {\n                    <svg:path\n                        [attr.d]=\"node[1]['d']\"\n                        [attr.fill]=\"node[1]['fill']\"\n                        [attr.fill-opacity]=\"node[1]['fillOpacity']\"\n                        [attr.fill-rule]=\"node[1]['fillRule']\"\n                        [attr.clip-rule]=\"node[1]['clipRule']\"\n                        [attr.stroke]=\"node[1]['stroke']\"\n                        [attr.stroke-width]=\"node[1]['strokeWidth']\"\n                        [attr.stroke-opacity]=\"node[1]['strokeOpacity']\"\n                        [attr.opacity]=\"node[1]['opacity']\"\n                    />\n                }\n                @case ('circle') {\n                    <svg:circle\n                        [attr.cx]=\"node[1]['cx']\"\n                        [attr.cy]=\"node[1]['cy']\"\n                        [attr.r]=\"node[1]['r']\"\n                        [attr.fill]=\"node[1]['fill']\"\n                        [attr.fill-opacity]=\"node[1]['fillOpacity']\"\n                        [attr.opacity]=\"node[1]['opacity']\"\n                    />\n                }\n                @case ('rect') {\n                    <svg:rect\n                        [attr.x]=\"node[1]['x']\"\n                        [attr.y]=\"node[1]['y']\"\n                        [attr.width]=\"node[1]['width']\"\n                        [attr.height]=\"node[1]['height']\"\n                        [attr.rx]=\"node[1]['rx']\"\n                        [attr.ry]=\"node[1]['ry']\"\n                        [attr.fill]=\"node[1]['fill']\"\n                        [attr.fill-opacity]=\"node[1]['fillOpacity']\"\n                        [attr.opacity]=\"node[1]['opacity']\"\n                    />\n                }\n                @case ('line') {\n                    <svg:line\n                        [attr.x1]=\"node[1]['x1']\"\n                        [attr.y1]=\"node[1]['y1']\"\n                        [attr.x2]=\"node[1]['x2']\"\n                        [attr.y2]=\"node[1]['y2']\"\n                        [attr.stroke]=\"node[1]['stroke']\"\n                        [attr.stroke-opacity]=\"node[1]['strokeOpacity']\"\n                        [attr.opacity]=\"node[1]['opacity']\"\n                    />\n                }\n                @case ('polyline') {\n                    <svg:polyline\n                        [attr.points]=\"node[1]['points']\"\n                        [attr.fill]=\"node[1]['fill']\"\n                        [attr.fill-opacity]=\"node[1]['fillOpacity']\"\n                        [attr.opacity]=\"node[1]['opacity']\"\n                    />\n                }\n                @case ('polygon') {\n                    <svg:polygon\n                        [attr.points]=\"node[1]['points']\"\n                        [attr.fill]=\"node[1]['fill']\"\n                        [attr.fill-opacity]=\"node[1]['fillOpacity']\"\n                        [attr.opacity]=\"node[1]['opacity']\"\n                    />\n                }\n                @case ('ellipse') {\n                    <svg:ellipse\n                        [attr.cx]=\"node[1]['cx']\"\n                        [attr.cy]=\"node[1]['cy']\"\n                        [attr.rx]=\"node[1]['rx']\"\n                        [attr.ry]=\"node[1]['ry']\"\n                        [attr.fill]=\"node[1]['fill']\"\n                        [attr.fill-opacity]=\"node[1]['fillOpacity']\"\n                        [attr.opacity]=\"node[1]['opacity']\"\n                    />\n                }\n            }\n        }\n`;\n\n@Directive()\nexport class CoreIcon {\n    protected _iconSignal = signal<IconData | null>(null);\n\n    get _icon(): IconData | null {\n        return this._iconSignal();\n    }\n    set _icon(value: IconData | null) {\n        this._iconSignal.set(value);\n    }\n\n    size = input<number | string | undefined>(undefined);\n    color = input<string | undefined>(undefined);\n    styleClass = input<string | undefined>(undefined);\n    spin = input<boolean | undefined>(undefined);\n\n    iconNodes = computed<IconNodes>(() => this._iconSignal()?.nodes ?? []);\n\n    computedSize = computed(() => this.size() ?? 20);\n    computedClass = computed(() => {\n        const icon = this._iconSignal();\n\n        return cn('p-icon', icon?.name && `p-icon-${icon.name}`, this.spin() && 'p-icon-spin', this.styleClass());\n    });\n\n    @HostBinding('attr.width') get hostWidth() {\n        return this.computedSize();\n    }\n    @HostBinding('attr.height') get hostHeight() {\n        return this.computedSize();\n    }\n    @HostBinding('attr.viewBox') get hostViewBox() {\n        return this._iconSignal()?.svg?.viewBox;\n    }\n    @HostBinding('attr.fill') get hostFill() {\n        return this._iconSignal()?.svg?.fill;\n    }\n    @HostBinding('attr.xmlns') get hostXmlns() {\n        return this._iconSignal()?.svg?.xmlns;\n    }\n    @HostBinding('attr.aria-hidden') hostAriaHidden = 'true';\n    @HostBinding('class') get hostClass() {\n        return this.computedClass();\n    }\n    @HostBinding('style.color') get hostColor() {\n        return this.color() || null;\n    }\n    @HostBinding('style.--px-icon-size') get hostIconSize() {\n        return this.size() ? `${this.size()}px` : null;\n    }\n}\n\nexport type { CoreIconProps, IconData };\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}