primeng
Version:
PrimeNG is an open source UI library for Angular featuring a rich set of 80+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with PrimeB
1 lines • 15.3 kB
Source Map (JSON)
{"version":3,"file":"primeng-card.mjs","sources":["../../src/card/style/cardstyle.ts","../../src/card/card.ts","../../src/card/primeng-card.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { style as card_style } from '@primeuix/styles/card';\nimport { BaseStyle } from 'primeng/base';\n\nconst style = /*css*/ `\n ${card_style}\n\n .p-card {\n display: block;\n }\n`;\n\nconst classes = {\n root: 'p-card p-component',\n header: 'p-card-header',\n body: 'p-card-body',\n caption: 'p-card-caption',\n title: 'p-card-title',\n subtitle: 'p-card-subtitle',\n content: 'p-card-content',\n footer: 'p-card-footer'\n};\n\n@Injectable()\nexport class CardStyle extends BaseStyle {\n name = 'card';\n\n style = style;\n\n classes = classes;\n}\n\n/**\n *\n * Card is a flexible container component.\n *\n * [Live Demo](https://www.primeng.org/card/)\n *\n * @module cardstyle\n *\n */\nexport enum CardClasses {\n /**\n * Class name of the root element\n */\n root = 'p-card',\n /**\n * Class name of the header element\n */\n header = 'p-card-header',\n /**\n * Class name of the body element\n */\n body = 'p-card-body',\n /**\n * Class name of the caption element\n */\n caption = 'p-card-caption',\n /**\n * Class name of the title element\n */\n title = 'p-card-title',\n /**\n * Class name of the subtitle element\n */\n subtitle = 'p-card-subtitle',\n /**\n * Class name of the content element\n */\n content = 'p-card-content',\n /**\n * Class name of the footer element\n */\n footer = 'p-card-footer'\n}\n\nexport interface CardStyle extends BaseStyle {}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ContentChild, ContentChildren, inject, InjectionToken, Input, NgModule, QueryList, signal, TemplateRef, ViewEncapsulation } from '@angular/core';\nimport { equals } from '@primeuix/utils';\nimport { BlockableUI, Footer, Header, PrimeTemplate, SharedModule } from 'primeng/api';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { CardStyle } from './style/cardstyle';\nimport { CardPassThrough } from 'primeng/types/card';\n\nconst CARD_INSTANCE = new InjectionToken<Card>('CARD_INSTANCE');\n\n/**\n * Card is a flexible container component.\n * @group Components\n */\n@Component({\n selector: 'p-card',\n standalone: true,\n imports: [CommonModule, SharedModule, BindModule],\n template: `\n <div [pBind]=\"ptm('header')\" [class]=\"cx('header')\" *ngIf=\"headerFacet || headerTemplate || _headerTemplate\">\n <ng-content select=\"p-header\"></ng-content>\n <ng-container *ngTemplateOutlet=\"headerTemplate || _headerTemplate\"></ng-container>\n </div>\n <div [pBind]=\"ptm('body')\" [class]=\"cx('body')\">\n <div [pBind]=\"ptm('title')\" [class]=\"cx('title')\" *ngIf=\"header || titleTemplate || _titleTemplate\">\n <ng-container *ngIf=\"header && !_titleTemplate && !titleTemplate\">{{ header }}</ng-container>\n <ng-container *ngTemplateOutlet=\"titleTemplate || _titleTemplate\"></ng-container>\n </div>\n <div [pBind]=\"ptm('subtitle')\" [class]=\"cx('subtitle')\" *ngIf=\"subheader || subtitleTemplate || _subtitleTemplate\">\n <ng-container *ngIf=\"subheader && !_subtitleTemplate && !subtitleTemplate\">{{ subheader }}</ng-container>\n <ng-container *ngTemplateOutlet=\"subtitleTemplate || _subtitleTemplate\"></ng-container>\n </div>\n <div [pBind]=\"ptm('content')\" [class]=\"cx('content')\">\n <ng-content></ng-content>\n <ng-container *ngTemplateOutlet=\"contentTemplate || _contentTemplate\"></ng-container>\n </div>\n <div [pBind]=\"ptm('footer')\" [class]=\"cx('footer')\" *ngIf=\"footerFacet || footerTemplate || _footerTemplate\">\n <ng-content select=\"p-footer\"></ng-content>\n <ng-container *ngTemplateOutlet=\"footerTemplate || _footerTemplate\"></ng-container>\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [CardStyle, { provide: CARD_INSTANCE, useExisting: Card }, { provide: PARENT_INSTANCE, useExisting: Card }],\n host: {\n '[class]': \"cn(cx('root'), styleClass)\",\n '[style]': '_style()'\n },\n hostDirectives: [Bind]\n})\nexport class Card extends BaseComponent<CardPassThrough> implements BlockableUI {\n $pcCard: Card | undefined = inject(CARD_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n _componentStyle = inject(CardStyle);\n\n onAfterViewChecked(): void {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n /**\n * Header of the card.\n * @group Props\n */\n @Input() header: string | undefined;\n /**\n * Subheader of the card.\n * @group Props\n */\n @Input() subheader: string | undefined;\n /**\n * Inline style of the element.\n * @group Props\n */\n @Input() set style(value: { [klass: string]: any } | null | undefined) {\n if (!equals(this._style(), value)) {\n this._style.set(value);\n // Apply style directly to avoid infinite loop in host binding\n if (this.el?.nativeElement) {\n if (value) {\n Object.keys(value).forEach((key) => {\n this.el.nativeElement.style[key] = value[key];\n });\n }\n }\n }\n }\n\n get style() {\n return this._style();\n }\n /**\n * Class of the element.\n * @deprecated since v20.0.0, use `class` instead.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n\n @ContentChild(Header) headerFacet: TemplateRef<any> | undefined;\n\n @ContentChild(Footer) footerFacet: TemplateRef<any> | undefined;\n\n @ContentChild('header', { descendants: false }) headerTemplate: TemplateRef<any> | undefined;\n\n @ContentChild('title', { descendants: false }) titleTemplate: TemplateRef<any> | undefined;\n\n @ContentChild('subtitle', { descendants: false }) subtitleTemplate: TemplateRef<any> | undefined;\n\n @ContentChild('content', { descendants: false }) contentTemplate: TemplateRef<any> | undefined;\n\n @ContentChild('footer', { descendants: false }) footerTemplate: TemplateRef<any> | undefined;\n\n _headerTemplate: TemplateRef<any> | undefined;\n\n _titleTemplate: TemplateRef<any> | undefined;\n\n _subtitleTemplate: TemplateRef<any> | undefined;\n\n _contentTemplate: TemplateRef<any> | undefined;\n\n _footerTemplate: TemplateRef<any> | undefined;\n\n _style = signal<{ [klass: string]: any } | null | undefined>(null);\n\n getBlockableElement(): HTMLElement {\n return this.el.nativeElement.children[0];\n }\n\n @ContentChildren(PrimeTemplate) templates: QueryList<PrimeTemplate> | undefined;\n\n onAfterContentInit() {\n (this.templates as QueryList<PrimeTemplate>).forEach((item) => {\n switch (item.getType()) {\n case 'header':\n this._headerTemplate = item.template;\n break;\n\n case 'title':\n this._titleTemplate = item.template;\n break;\n\n case 'subtitle':\n this._subtitleTemplate = item.template;\n break;\n\n case 'content':\n this._contentTemplate = item.template;\n break;\n\n case 'footer':\n this._footerTemplate = item.template;\n break;\n\n default:\n this._contentTemplate = item.template;\n break;\n }\n });\n }\n}\n\n@NgModule({\n imports: [Card, SharedModule, BindModule],\n exports: [Card, SharedModule, BindModule]\n})\nexport class CardModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["card_style"],"mappings":"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"}