primeng
Version:
PrimeNG is a premium UI library for Angular featuring a rich set of 90+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with PrimeBlock,
1 lines • 26.5 kB
Source Map (JSON)
{"version":3,"file":"primeng-metergroup.mjs","sources":["../../src/metergroup/style/metergroupstyle.ts","../../src/metergroup/metergroup.ts","../../src/metergroup/primeng-metergroup.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { style } from '@primeuix/styles/metergroup';\nimport { BaseStyle } from 'primeng/base';\n\nconst classes = {\n root: ({ instance }) => [\n 'p-metergroup p-component',\n {\n 'p-metergroup-horizontal': instance.orientation() === 'horizontal',\n 'p-metergroup-vertical': instance.orientation() === 'vertical'\n }\n ],\n meters: 'p-metergroup-meters',\n meter: 'p-metergroup-meter',\n labelList: ({ instance }) => [\n 'p-metergroup-label-list',\n {\n 'p-metergroup-label-list-vertical': instance.labelOrientation() === 'vertical',\n 'p-metergroup-label-list-horizontal': instance.labelOrientation() === 'horizontal'\n }\n ],\n label: 'p-metergroup-label',\n labelIcon: 'p-metergroup-label-icon',\n labelMarker: 'p-metergroup-label-marker',\n labelText: 'p-metergroup-label-text'\n};\n\n@Injectable()\nexport class MeterGroupStyle extends BaseStyle {\n name = 'metergroup';\n\n style = style;\n\n classes = classes;\n}\n\n/**\n *\n * MeterGroup is a group of process status indicators.\n *\n * [Live Demo](https://www.primeng.org/metergroup)\n *\n * @module metergroupstyle\n *\n */\nexport enum MeterGroupClasses {\n /**\n * Class name of the root element\n */\n root = 'p-metergroup',\n /**\n * Class name of the meters element\n */\n meters = 'p-metergroup-meters',\n /**\n * Class name of the meter element\n */\n meter = 'p-metergroup-meter',\n /**\n * Class name of the label list element\n */\n labelList = 'p-metergroup-label-list',\n /**\n * Class name of the label element\n */\n label = 'p-metergroup-label',\n /**\n * Class name of the label icon element\n */\n labelIcon = 'p-metergroup-label-icon',\n /**\n * Class name of the label marker element\n */\n labelMarker = 'p-metergroup-label-marker',\n /**\n * Class name of the label text element\n */\n labelText = 'p-metergroup-label-text'\n}\n\nexport interface MeterGroupStyle extends BaseStyle {}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { afterNextRender, ChangeDetectionStrategy, Component, computed, contentChild, forwardRef, inject, InjectionToken, input, NgModule, TemplateRef, ViewEncapsulation } from '@angular/core';\nimport { getOuterHeight } from '@primeuix/utils';\nimport { SharedModule } from 'primeng/api';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { MeterGroupIconTemplateContext, MeterGroupLabelPosition, MeterGroupLabelTemplateContext, MeterGroupMeterTemplateContext, MeterGroupOrientation, MeterGroupPassThrough, MeterItem } from 'primeng/types/metergroup';\nimport { MeterGroupStyle } from './style/metergroupstyle';\n\nconst METERGROUP_INSTANCE = new InjectionToken<MeterGroup>('METERGROUP_INSTANCE');\n\n@Component({\n selector: 'p-metergrouplabel',\n standalone: true,\n imports: [NgTemplateOutlet, SharedModule, Bind],\n template: `\n <ol [class]=\"cx('labelList')\" [pBind]=\"ptm('labelList')\" [attr.data-p]=\"dataP()\">\n @for (labelItem of value(); track $index) {\n <li [class]=\"cx('label')\" [pBind]=\"ptm('label')\">\n @if (!iconTemplate()) {\n @if (labelItem.icon) {\n <i [class]=\"cn(cx('labelIcon'), labelItem.icon)\" [pBind]=\"ptm('labelIcon')\" [style]=\"{ color: labelItem.color }\"></i>\n } @else {\n <span [class]=\"cx('labelMarker')\" [pBind]=\"ptm('labelMarker')\" [style]=\"{ backgroundColor: labelItem.color }\"></span>\n }\n }\n <ng-container *ngTemplateOutlet=\"iconTemplate(); context: getIconTemplateContext(labelItem)\"></ng-container>\n <span [class]=\"cx('labelText')\" [pBind]=\"ptm('labelText')\">{{ labelItem.label }} ({{ parentInstance.percentValue(labelItem.value) }})</span>\n </li>\n }\n </ol>\n `\n})\nexport class MeterGroupLabel extends BaseComponent<MeterGroupPassThrough> {\n value = input<MeterItem[]>([]);\n\n labelPosition = input<MeterGroupLabelPosition>('end');\n\n labelOrientation = input<MeterGroupOrientation>('horizontal');\n\n min = input<number>();\n\n max = input<number>();\n\n iconTemplate = input<TemplateRef<MeterGroupIconTemplateContext>>();\n\n parentInstance: MeterGroup = inject(forwardRef(() => MeterGroup));\n\n _componentStyle = inject(MeterGroupStyle);\n\n dataP = computed(() =>\n this.cn({\n [this.labelOrientation()]: this.labelOrientation()\n })\n );\n\n getIconTemplateContext(labelItem: MeterItem): MeterGroupIconTemplateContext {\n return { $implicit: labelItem, icon: labelItem.icon };\n }\n}\n/**\n * MeterGroup displays scalar measurements within a known range.\n * @group Components\n */\n@Component({\n selector: 'p-metergroup, p-meter-group',\n standalone: true,\n imports: [NgTemplateOutlet, MeterGroupLabel, SharedModule, Bind],\n template: `\n @if (isLabelStart()) {\n @if (showDefaultLabel()) {\n <p-metergrouplabel [value]=\"value()\" [labelPosition]=\"labelPosition()\" [labelOrientation]=\"labelOrientation()\" [min]=\"min()\" [max]=\"max()\" [iconTemplate]=\"iconTemplate()\" [pt]=\"pt()\" [unstyled]=\"unstyled()\" />\n }\n <ng-container *ngTemplateOutlet=\"labelTemplate(); context: labelTemplateContext()\"></ng-container>\n }\n <ng-container *ngTemplateOutlet=\"startTemplate(); context: labelTemplateContext()\"></ng-container>\n <div [class]=\"cx('meters')\" [pBind]=\"ptm('meters')\" [attr.data-p]=\"dataP()\">\n @for (meterItem of meterItems(); track $index) {\n <ng-container *ngTemplateOutlet=\"meterTemplate(); context: getMeterTemplateContext(meterItem, $index)\"></ng-container>\n @if (showDefaultMeter(meterItem)) {\n <span [class]=\"cx('meter')\" [attr.data-p]=\"dataP()\" [pBind]=\"ptm('meter')\" [style]=\"meterStyle(meterItem)\"></span>\n }\n }\n </div>\n <ng-container *ngTemplateOutlet=\"endTemplate(); context: labelTemplateContext()\"></ng-container>\n @if (isLabelEnd()) {\n @if (showDefaultLabel()) {\n <p-metergrouplabel [value]=\"value()\" [labelPosition]=\"labelPosition()\" [labelOrientation]=\"labelOrientation()\" [min]=\"min()\" [max]=\"max()\" [iconTemplate]=\"iconTemplate()\" [pt]=\"pt()\" [unstyled]=\"unstyled()\" />\n }\n <ng-container *ngTemplateOutlet=\"labelTemplate(); context: labelTemplateContext()\"></ng-container>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [MeterGroupStyle, { provide: METERGROUP_INSTANCE, useExisting: MeterGroup }, { provide: PARENT_INSTANCE, useExisting: MeterGroup }],\n host: {\n '[attr.aria-valuemin]': 'min()',\n '[attr.role]': '\"meter\"',\n '[attr.aria-valuemax]': 'max()',\n '[attr.aria-valuenow]': 'totalPercent()',\n '[attr.data-p]': 'dataP()',\n '[class]': \"cn(cx('root'))\"\n },\n hostDirectives: [Bind]\n})\nexport class MeterGroup extends BaseComponent<MeterGroupPassThrough> {\n componentName = 'MeterGroup';\n\n $pcMeterGroup: MeterGroup | undefined = inject(METERGROUP_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n /**\n * Current value of the metergroup.\n * @group Props\n */\n value = input<MeterItem[]>();\n /**\n * Mininum boundary value.\n * @group Props\n */\n min = input(0);\n /**\n * Maximum boundary value.\n * @group Props\n */\n max = input(100);\n /**\n * Specifies the layout of the component, valid values are 'horizontal' and 'vertical'.\n * @group Props\n */\n orientation = input<MeterGroupOrientation>('horizontal');\n /**\n * Specifies the label position of the component, valid values are 'start' and 'end'.\n * @group Props\n */\n labelPosition = input<MeterGroupLabelPosition>('end');\n /**\n * Specifies the label orientation of the component, valid values are 'horizontal' and 'vertical'.\n * @group Props\n */\n labelOrientation = input<MeterGroupOrientation>('horizontal');\n\n /**\n * Custom label template.\n * @param {MeterGroupLabelTemplateContext} context - label context.\n * @see {@link MeterGroupLabelTemplateContext}\n * @group Templates\n */\n labelTemplate = contentChild<TemplateRef<MeterGroupLabelTemplateContext>>('label', { descendants: false });\n\n /**\n * Custom meter template.\n * @param {MeterGroupMeterTemplateContext} context - meter context.\n * @see {@link MeterGroupMeterTemplateContext}\n * @group Templates\n */\n meterTemplate = contentChild<TemplateRef<MeterGroupMeterTemplateContext>>('meter', { descendants: false });\n\n /**\n * Custom end template.\n * @param {MeterGroupLabelTemplateContext} context - end context.\n * @see {@link MeterGroupLabelTemplateContext}\n * @group Templates\n */\n endTemplate = contentChild<TemplateRef<MeterGroupLabelTemplateContext>>('end', { descendants: false });\n\n /**\n * Custom start template.\n * @param {MeterGroupLabelTemplateContext} context - start context.\n * @see {@link MeterGroupLabelTemplateContext}\n * @group Templates\n */\n startTemplate = contentChild<TemplateRef<MeterGroupLabelTemplateContext>>('start', { descendants: false });\n\n /**\n * Custom icon template.\n * @param {MeterGroupIconTemplateContext} context - icon context.\n * @see {@link MeterGroupIconTemplateContext}\n * @group Templates\n */\n iconTemplate = contentChild<TemplateRef<MeterGroupIconTemplateContext>>('icon', { descendants: false });\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n\n _componentStyle = inject(MeterGroupStyle);\n\n vertical = computed(() => this.orientation() === 'vertical');\n\n totalPercent = computed(() => {\n const value = this.value();\n if (!value) return 0;\n return this.percent(value.reduce((total, val) => total + (val.value || 0), 0));\n });\n\n percentages = computed(() => {\n const value = this.value();\n if (!value) return [];\n\n let sum = 0;\n const sumsArray: number[] = [];\n\n value.forEach((item) => {\n sum += item.value || 0;\n sumsArray.push(sum);\n });\n\n return sumsArray;\n });\n\n labelTemplateContext = computed<MeterGroupLabelTemplateContext>(() => ({\n $implicit: this.value() ?? [],\n totalPercent: this.totalPercent(),\n percentages: this.percentages()\n }));\n\n meterItems = computed(() => this.value() ?? []);\n\n isLabelStart = computed(() => this.labelPosition() === 'start');\n\n isLabelEnd = computed(() => this.labelPosition() === 'end');\n\n showDefaultLabel = computed(() => !this.labelTemplate());\n\n dataP = computed(() =>\n this.cn({\n [this.orientation()]: this.orientation()\n })\n );\n\n constructor() {\n super();\n afterNextRender(() => {\n const _container = this.el.nativeElement;\n const height = getOuterHeight(_container);\n if (this.vertical()) {\n _container.style.height = height + 'px';\n }\n });\n }\n\n percent(meter = 0) {\n const max = this.max();\n const min = this.min();\n if (max === min) {\n return 100;\n }\n const percentOfItem = ((meter - min) / (max - min)) * 100;\n\n return Math.round(Math.max(0, Math.min(100, percentOfItem)));\n }\n\n percentValue(meter?: number) {\n return this.percent(meter) + '%';\n }\n\n meterStyle(val: MeterItem) {\n const isHorizontal = this.orientation() === 'horizontal';\n return {\n backgroundColor: val.color,\n width: isHorizontal ? this.percentValue(val.value ?? 0) : undefined,\n height: !isHorizontal ? this.percentValue(val.value ?? 0) : undefined\n };\n }\n\n showDefaultMeter(meterItem: MeterItem) {\n return !this.meterTemplate() && (meterItem.value ?? 0) > 0;\n }\n\n getMeterTemplateContext(meterItem: MeterItem, index: number) {\n return {\n $implicit: meterItem,\n index,\n orientation: this.orientation(),\n class: this.cx('meter'),\n size: this.percentValue(meterItem.value),\n totalPercent: this.totalPercent(),\n dataP: this.dataP()\n };\n }\n}\n\n@NgModule({\n imports: [MeterGroup, SharedModule],\n exports: [MeterGroup, SharedModule]\n})\nexport class MeterGroupModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}