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 • 25.7 kB
Source Map (JSON)
{"version":3,"file":"primeng-badge.mjs","sources":["../../src/badge/style/badgestyle.ts","../../src/badge/badge.ts","../../src/badge/primeng-badge.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { isEmpty, isNotEmpty } from '@primeuix/utils';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-badge {\n display: inline-flex;\n border-radius: ${dt('badge.border.radius')};\n justify-content: center;\n padding: ${dt('badge.padding')};\n background: ${dt('badge.primary.background')};\n color: ${dt('badge.primary.color')};\n font-size: ${dt('badge.font.size')};\n font-weight: ${dt('badge.font.weight')};\n min-width: ${dt('badge.min.width')};\n height: ${dt('badge.height')};\n line-height: ${dt('badge.height')};\n}\n\n.p-badge-dot {\n width: ${dt('badge.dot.size')};\n min-width: ${dt('badge.dot.size')};\n height: ${dt('badge.dot.size')};\n border-radius: 50%;\n padding: 0;\n}\n\n.p-badge-circle {\n padding: 0;\n border-radius: 50%;\n}\n\n.p-badge-secondary {\n background: ${dt('badge.secondary.background')};\n color: ${dt('badge.secondary.color')};\n}\n\n.p-badge-success {\n background: ${dt('badge.success.background')};\n color: ${dt('badge.success.color')};\n}\n\n.p-badge-info {\n background: ${dt('badge.info.background')};\n color: ${dt('badge.info.color')};\n}\n\n.p-badge-warn {\n background: ${dt('badge.warn.background')};\n color: ${dt('badge.warn.color')};\n}\n\n.p-badge-danger {\n background: ${dt('badge.danger.background')};\n color: ${dt('badge.danger.color')};\n}\n\n.p-badge-contrast {\n background: ${dt('badge.contrast.background')};\n color: ${dt('badge.contrast.color')};\n}\n\n.p-badge-sm {\n font-size: ${dt('badge.sm.font.size')};\n min-width: ${dt('badge.sm.min.width')};\n height: ${dt('badge.sm.height')};\n line-height: ${dt('badge.sm.height')};\n}\n\n.p-badge-lg {\n font-size: ${dt('badge.lg.font.size')};\n min-width: ${dt('badge.lg.min.width')};\n height: ${dt('badge.lg.height')};\n line-height: ${dt('badge.lg.height')};\n}\n\n.p-badge-xl {\n font-size: ${dt('badge.xl.font.size')};\n min-width: ${dt('badge.xl.min.width')};\n height: ${dt('badge.xl.height')};\n line-height: ${dt('badge.xl.height')};\n}\n\n/* For PrimeNG (directive)*/\n\n.p-overlay-badge {\n position: relative;\n}\n\n.p-overlay-badge > .p-badge {\n position: absolute;\n top: 0;\n inset-inline-end: 0;\n transform: translate(50%, -50%);\n transform-origin: 100% 0;\n margin: 0;\n}\n`;\n\nconst classes = {\n root: ({ props, instance }) => [\n 'p-badge p-component',\n {\n 'p-badge-circle': isNotEmpty(props.value) && String(props.value).length === 1,\n 'p-badge-dot': isEmpty(props.value) && !instance.$slots.default,\n 'p-badge-sm': props.size === 'small',\n 'p-badge-lg': props.size === 'large',\n 'p-badge-xl': props.size === 'xlarge',\n 'p-badge-info': props.severity === 'info',\n 'p-badge-success': props.severity === 'success',\n 'p-badge-warn': props.severity === 'warn',\n 'p-badge-danger': props.severity === 'danger',\n 'p-badge-secondary': props.severity === 'secondary',\n 'p-badge-contrast': props.severity === 'contrast'\n }\n ]\n};\n\n@Injectable()\nexport class BadgeStyle extends BaseStyle {\n name = 'badge';\n\n theme = theme;\n\n classes = classes;\n}\n\n/**\n *\n * Badge represents people using icons, labels and images.\n *\n * [Live Demo](https://www.primeng.org/badge)\n *\n * @module badgestyle\n *\n */\nexport enum BadgeClasses {\n /**\n * Class name of the root element\n */\n root = 'p-badge'\n}\n\nexport interface BadgeStyle extends BaseStyle {}\n","import { CommonModule } from '@angular/common';\nimport { AfterViewInit, booleanAttribute, ChangeDetectionStrategy, Component, computed, Directive, inject, Input, input, NgModule, OnChanges, SimpleChanges, ViewEncapsulation } from '@angular/core';\nimport { addClass, hasClass, isEmpty, isNotEmpty, removeClass, uuid } from '@primeuix/utils';\nimport { SharedModule } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { BadgeStyle } from './style/badgestyle';\n\n/**\n * Badge Directive is directive usage of badge component.\n * @group Components\n */\n@Directive({\n selector: '[pBadge]',\n providers: [BadgeStyle],\n standalone: true\n})\nexport class BadgeDirective extends BaseComponent implements OnChanges, AfterViewInit {\n /**\n * When specified, disables the component.\n * @group Props\n */\n @Input('badgeDisabled') public disabled: boolean;\n /**\n * Size of the badge, valid options are \"large\" and \"xlarge\".\n * @group Props\n */\n @Input() public badgeSize: 'large' | 'xlarge' | 'small' | null | undefined;\n /**\n * Size of the badge, valid options are \"large\" and \"xlarge\".\n * @group Props\n * @deprecated use badgeSize instead.\n */\n @Input() public set size(value: 'large' | 'xlarge' | 'small' | null | undefined) {\n this._size = value;\n console.log('size property is deprecated and will removed in v18, use badgeSize instead.');\n }\n get size() {\n return this._size;\n }\n _size: 'large' | 'xlarge' | 'small' | null | undefined;\n /**\n * Severity type of the badge.\n * @group Props\n */\n @Input() severity: 'secondary' | 'info' | 'success' | 'warn' | 'danger' | 'contrast' | null | undefined;\n /**\n * Value to display inside the badge.\n * @group Props\n */\n @Input() public value: string | number;\n /**\n * Inline style of the element.\n * @group Props\n */\n @Input() badgeStyle: { [klass: string]: any } | null | undefined;\n /**\n * Class of the element.\n * @group Props\n */\n @Input() badgeStyleClass: string;\n\n private id!: string;\n\n badgeEl: HTMLElement;\n\n _componentStyle = inject(BadgeStyle);\n\n private get activeElement(): HTMLElement {\n return this.el.nativeElement.nodeName.indexOf('-') != -1 ? this.el.nativeElement.firstChild : this.el.nativeElement;\n }\n\n private get canUpdateBadge(): boolean {\n return this.id && !this.disabled;\n }\n\n constructor() {\n super();\n }\n\n public ngOnChanges({ value, size, severity, disabled, badgeStyle, badgeStyleClass }: SimpleChanges): void {\n super.ngOnChanges({ value, size, severity, disabled });\n if (disabled) {\n this.toggleDisableState();\n }\n\n if (!this.canUpdateBadge) {\n return;\n }\n\n if (severity) {\n this.setSeverity(severity.previousValue);\n }\n\n if (size) {\n this.setSizeClasses();\n }\n\n if (value) {\n this.setValue();\n }\n\n if (badgeStyle || badgeStyleClass) {\n this.applyStyles();\n }\n }\n\n public ngAfterViewInit(): void {\n super.ngAfterViewInit();\n this.id = uuid('pn_id_') + '_badge';\n this.renderBadgeContent();\n }\n\n private setValue(element?: HTMLElement): void {\n const badge = element ?? this.document.getElementById(this.id);\n\n if (!badge) {\n return;\n }\n\n if (this.value != null) {\n if (hasClass(badge, 'p-badge-dot')) {\n removeClass(badge, 'p-badge-dot');\n }\n\n if (this.value && String(this.value).length === 1) {\n addClass(badge, 'p-badge-circle');\n } else {\n removeClass(badge, 'p-badge-circle');\n }\n } else {\n if (!hasClass(badge, 'p-badge-dot')) {\n addClass(badge, 'p-badge-dot');\n }\n\n removeClass(badge, 'p-badge-circle');\n }\n\n badge.innerHTML = '';\n const badgeValue = this.value != null ? String(this.value) : '';\n this.renderer.appendChild(badge, this.document.createTextNode(badgeValue));\n }\n\n private setSizeClasses(element?: HTMLElement): void {\n const badge = element ?? this.document.getElementById(this.id);\n\n if (!badge) {\n return;\n }\n\n if (this.badgeSize) {\n if (this.badgeSize === 'large') {\n addClass(badge, 'p-badge-lg');\n removeClass(badge, 'p-badge-xl');\n }\n\n if (this.badgeSize === 'xlarge') {\n addClass(badge, 'p-badge-xl');\n removeClass(badge, 'p-badge-lg');\n }\n } else if (this.size && !this.badgeSize) {\n if (this.size === 'large') {\n addClass(badge, 'p-badge-lg');\n removeClass(badge, 'p-badge-xl');\n }\n\n if (this.size === 'xlarge') {\n addClass(badge, 'p-badge-xl');\n removeClass(badge, 'p-badge-lg');\n }\n } else {\n removeClass(badge, 'p-badge-lg');\n removeClass(badge, 'p-badge-xl');\n }\n }\n\n private renderBadgeContent(): void {\n if (this.disabled) {\n return null;\n }\n\n const el = this.activeElement;\n const badge = this.document.createElement('span');\n badge.id = this.id;\n badge.className = 'p-badge p-component';\n\n this.setSeverity(null, badge);\n this.setSizeClasses(badge);\n this.setValue(badge);\n addClass(el, 'p-overlay-badge');\n this.renderer.appendChild(el, badge);\n this.badgeEl = badge;\n this.applyStyles();\n }\n\n private applyStyles(): void {\n if (this.badgeEl && this.badgeStyle && typeof this.badgeStyle === 'object') {\n for (const [key, value] of Object.entries(this.badgeStyle)) {\n this.renderer.setStyle(this.badgeEl, key, value);\n }\n }\n if (this.badgeEl && this.badgeStyleClass) {\n this.badgeEl.classList.add(...this.badgeStyleClass.split(' '));\n }\n }\n\n private setSeverity(oldSeverity?: 'success' | 'info' | 'warn' | 'danger' | null, element?: HTMLElement): void {\n const badge = element ?? this.document.getElementById(this.id);\n\n if (!badge) {\n return;\n }\n\n if (this.severity) {\n addClass(badge, `p-badge-${this.severity}`);\n }\n\n if (oldSeverity) {\n removeClass(badge, `p-badge-${oldSeverity}`);\n }\n }\n\n private toggleDisableState(): void {\n if (!this.id) {\n return;\n }\n\n if (this.disabled) {\n const badge = this.activeElement?.querySelector(`#${this.id}`);\n\n if (badge) {\n this.renderer.removeChild(this.activeElement, badge);\n }\n } else {\n this.renderBadgeContent();\n }\n }\n}\n/**\n * Badge is a small status indicator for another element.\n * @group Components\n */\n@Component({\n selector: 'p-badge',\n template: `{{ value() }}`,\n standalone: true,\n imports: [CommonModule, SharedModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [BadgeStyle],\n host: {\n '[class]': 'containerClass()',\n '[style.display]': 'badgeDisabled() ? \"none\" : null',\n '[style]': 'style()'\n }\n})\nexport class Badge extends BaseComponent {\n /**\n * Class of the element.\n * @group Props\n */\n styleClass = input<string>();\n /**\n * Inline style of the element.\n * @group Props\n */\n style = input<{ [klass: string]: any } | null>();\n /**\n * Size of the badge, valid options are \"large\" and \"xlarge\".\n * @group Props\n */\n badgeSize = input<'small' | 'large' | 'xlarge' | null>();\n /**\n * Size of the badge, valid options are \"large\" and \"xlarge\".\n * @group Props\n */\n size = input<'small' | 'large' | 'xlarge' | null>();\n /**\n * Severity type of the badge.\n * @group Props\n */\n severity = input<'secondary' | 'info' | 'success' | 'warn' | 'danger' | 'contrast' | null>();\n /**\n * Value to display inside the badge.\n * @group Props\n */\n value = input<string | number | null>();\n /**\n * When specified, disables the component.\n * @group Props\n */\n badgeDisabled = input<boolean, boolean>(false, { transform: booleanAttribute });\n\n _componentStyle = inject(BadgeStyle);\n\n /**\n * Computes the container class for the badge element based on its properties.\n * @returns An object representing the CSS classes to be applied to the badge container.\n */\n containerClass = computed<string>(() => {\n let classes = 'p-badge p-component';\n\n if (isNotEmpty(this.value()) && String(this.value()).length === 1) {\n classes += ' p-badge-circle';\n }\n\n if (this.badgeSize() === 'large') {\n classes += ' p-badge-lg';\n } else if (this.badgeSize() === 'xlarge') {\n classes += ' p-badge-xl';\n } else if (this.badgeSize() === 'small') {\n classes += ' p-badge-sm';\n }\n\n if (isEmpty(this.value())) {\n classes += ' p-badge-dot';\n }\n\n if (this.styleClass()) {\n classes += ` ${this.styleClass()}`;\n }\n\n if (this.severity()) {\n classes += ` p-badge-${this.severity()}`;\n }\n\n return classes;\n });\n}\n\n@NgModule({\n imports: [Badge, BadgeDirective, SharedModule],\n exports: [Badge, BadgeDirective, SharedModule]\n})\nexport class BadgeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}