UNPKG

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 37.3 kB
{"version":3,"file":"primeng-compare.mjs","sources":["../../src/compare/compare-token.ts","../../src/compare/style/comparestyle.ts","../../src/compare/compare-handle.ts","../../src/compare/compare-indicator.ts","../../src/compare/compare-item.ts","../../src/compare/compare.ts","../../src/compare/primeng-compare.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const COMPARE_INSTANCE = new InjectionToken<any>('COMPARE_INSTANCE');\n","import { Injectable } from '@angular/core';\nimport { style } from '@primeuix/styles/compare';\nimport { BaseStyle } from 'primeng/base';\n\nconst classes = {\n root: 'p-compare p-component',\n item: 'p-compare-item',\n handle: ({ instance }: any) => ['p-compare-handle', { 'p-disabled': instance.pcCompare?.disabled() }],\n indicator: ({ instance }: any) => ['p-compare-indicator', { 'p-disabled': instance.pcCompare?.disabled() }],\n input: 'p-compare-input'\n};\n\n@Injectable()\nexport class CompareStyle extends BaseStyle {\n name = 'compare';\n\n style = style;\n\n classes = classes;\n}\n\n/**\n *\n * Compare allows comparing two items side by side with a slider.\n *\n * [Live Demo](https://www.primeng.org/compare)\n *\n * @module comparestyle\n *\n */\nexport enum CompareClasses {\n /**\n * Class name of the root element\n */\n root = 'p-compare',\n /**\n * Class name of the item element\n */\n item = 'p-compare-item',\n /**\n * Class name of the handle element\n */\n handle = 'p-compare-handle',\n /**\n * Class name of the indicator element\n */\n indicator = 'p-compare-indicator',\n /**\n * Class name of the input element\n */\n input = 'p-compare-input'\n}\n\nexport interface CompareStyle extends BaseStyle {}\n","import { ChangeDetectionStrategy, Component, computed, ElementRef, inject, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport type { Compare } from './compare';\nimport { COMPARE_INSTANCE } from './compare-token';\nimport { CompareStyle } from './style/comparestyle';\n\n/**\n * CompareHandle is a helper component for Compare component.\n * @group Components\n */\n@Component({\n selector: 'p-compare-handle',\n standalone: true,\n imports: [BindModule],\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: PARENT_INSTANCE, useExisting: CompareHandle }],\n host: {\n '[class]': 'cx(\"handle\")',\n '[attr.tabindex]': '\"-1\"',\n '[attr.data-orientation]': 'pcCompare.orientation()',\n '[attr.data-disabled]': 'pcCompare.dataDisabled()',\n '[attr.data-dragging]': 'pcCompare.dataDragging()',\n '[style]': 'handleStyle()',\n '(pointerdown)': 'onPointerDown($event)'\n },\n hostDirectives: [Bind]\n})\nexport class CompareHandle extends BaseComponent {\n componentName = 'CompareHandle';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n pcCompare = inject<Compare>(COMPARE_INSTANCE);\n\n _componentStyle = inject(CompareStyle);\n\n private hostEl = inject(ElementRef);\n\n handleStyle = computed(() => this.pcCompare.getHandleStyle());\n\n onAfterViewChecked(): void {\n this.bindDirectiveInstance.setAttrs(this.pcCompare.ptms(['handle']));\n }\n\n onAfterViewInit() {\n this.pcCompare.handleEl = this.hostEl.nativeElement;\n }\n\n onPointerDown(event: PointerEvent) {\n this.pcCompare.onThumbPointerDown(event);\n }\n}\n","import { ChangeDetectionStrategy, Component, inject, input, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport type { Compare } from './compare';\nimport { COMPARE_INSTANCE } from './compare-token';\nimport { CompareStyle } from './style/comparestyle';\n\n/**\n * CompareIndicator is a helper component for Compare component.\n * @group Components\n */\n@Component({\n selector: 'p-compare-indicator',\n standalone: true,\n imports: [BindModule],\n template: `\n <input\n type=\"range\"\n [class]=\"cx('input')\"\n [min]=\"pcCompare.min()\"\n [max]=\"pcCompare.max()\"\n [step]=\"pcCompare.step()\"\n [value]=\"pcCompare.currentValue()\"\n [disabled]=\"pcCompare.disabled()\"\n [attr.aria-orientation]=\"pcCompare.orientation()\"\n [attr.aria-valuemin]=\"pcCompare.min()\"\n [attr.aria-valuemax]=\"pcCompare.max()\"\n [attr.aria-valuenow]=\"pcCompare.currentValue()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n (input)=\"pcCompare.onInputChange($event)\"\n />\n <ng-content></ng-content>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: PARENT_INSTANCE, useExisting: CompareIndicator }],\n host: {\n '[class]': 'cx(\"indicator\")',\n '[attr.data-orientation]': 'pcCompare.orientation()',\n '[attr.data-disabled]': 'pcCompare.dataDisabled()',\n '[attr.data-dragging]': 'pcCompare.dataDragging()'\n },\n hostDirectives: [Bind]\n})\nexport class CompareIndicator extends BaseComponent {\n componentName = 'CompareIndicator';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n pcCompare = inject<Compare>(COMPARE_INSTANCE);\n\n _componentStyle = inject(CompareStyle);\n\n /**\n * Used to define a string that labels the input element.\n * @group Props\n */\n ariaLabel = input<string | undefined>(undefined);\n\n /**\n * Establishes relationships between the component and label(s) where its value should be one or more element IDs.\n * @group Props\n */\n ariaLabelledby = input<string | undefined>(undefined);\n\n onAfterViewChecked(): void {\n this.bindDirectiveInstance.setAttrs(this.pcCompare.ptms(['indicator']));\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, input, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport type { Compare } from './compare';\nimport { COMPARE_INSTANCE } from './compare-token';\nimport { CompareStyle } from './style/comparestyle';\n\n/**\n * CompareItem is a helper component for Compare component.\n * @group Components\n */\n@Component({\n selector: 'p-compare-item',\n standalone: true,\n imports: [BindModule],\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: PARENT_INSTANCE, useExisting: CompareItem }],\n host: {\n '[class]': 'cx(\"item\")',\n '[style.position]': '\"absolute\"',\n '[style.inset]': '\"0\"',\n '[style.clip-path]': 'clipPath()',\n '[attr.data-position]': 'position()',\n '[attr.data-orientation]': 'pcCompare.orientation()',\n '[attr.data-disabled]': 'pcCompare.dataDisabled()',\n '[attr.data-dragging]': 'pcCompare.dataDragging()'\n },\n hostDirectives: [Bind]\n})\nexport class CompareItem extends BaseComponent {\n componentName = 'CompareItem';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n pcCompare = inject<Compare>(COMPARE_INSTANCE);\n\n _componentStyle = inject(CompareStyle);\n\n /**\n * Position of the item.\n * @group Props\n */\n position = input<'before' | 'after'>('before');\n\n clipPath = computed(() => this.pcCompare.getItemStyle(this.position()).clipPath);\n\n onAfterViewChecked(): void {\n this.bindDirectiveInstance.setAttrs(this.pcCompare.ptms(['item']));\n }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, ElementRef, inject, input, NgModule, numberAttribute, output, signal, ViewEncapsulation } from '@angular/core';\nimport { isRTL } from '@primeuix/utils/dom';\nimport { SharedModule } from 'primeng/api';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { ComparePassThrough, CompareValueChangeEvent } from 'primeng/types/compare';\nimport { CompareHandle } from './compare-handle';\nimport { CompareIndicator } from './compare-indicator';\nimport { CompareItem } from './compare-item';\nimport { COMPARE_INSTANCE } from './compare-token';\nimport { CompareStyle } from './style/comparestyle';\n\n/**\n * Compare allows comparing two items side by side with a slider.\n * @group Components\n */\n@Component({\n selector: 'p-compare',\n standalone: true,\n imports: [SharedModule, BindModule],\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [CompareStyle, { provide: COMPARE_INSTANCE, useExisting: Compare }, { provide: PARENT_INSTANCE, useExisting: Compare }],\n host: {\n '[class]': 'cx(\"root\")',\n '[attr.data-orientation]': 'orientation()',\n '[attr.data-disabled]': 'dataDisabled()',\n '[attr.data-dragging]': 'dataDragging()',\n '[style.display]': '\"flex\"',\n '[style.position]': '\"relative\"',\n '[style.touch-action]': '\"none\"',\n '(pointerdown)': 'onRootPointerDown($event)',\n '(pointermove)': 'onRootPointerMove($event)',\n '(pointerup)': 'onRootPointerUp($event)'\n },\n hostDirectives: [Bind]\n})\nexport class Compare extends BaseComponent<ComparePassThrough> {\n componentName = 'Compare';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n _componentStyle = inject(CompareStyle);\n\n private hostEl = inject(ElementRef);\n\n /**\n * Current value of the slider position (0-100).\n * @group Props\n */\n value = input<number | undefined>(undefined);\n\n /**\n * Default value when uncontrolled.\n * @group Props\n */\n defaultValue = input(50, { transform: numberAttribute });\n\n /**\n * Orientation of the comparison slider.\n * @group Props\n */\n orientation = input<'horizontal' | 'vertical'>('horizontal');\n\n /**\n * Minimum value.\n * @group Props\n */\n min = input(0, { transform: numberAttribute });\n\n /**\n * Maximum value.\n * @group Props\n */\n max = input(100, { transform: numberAttribute });\n\n /**\n * Step increment.\n * @group Props\n */\n step = input(1, { transform: numberAttribute });\n\n /**\n * Whether the slider updates on hover.\n * @group Props\n */\n slideOnHover = input(false, { transform: booleanAttribute });\n\n /**\n * Whether the component is disabled.\n * @group Props\n */\n disabled = input(false, { transform: booleanAttribute });\n\n /**\n * Callback to invoke when value changes.\n * @param {CompareValueChangeEvent} event - Custom value change event.\n * @group Emits\n */\n onValueChange = output<CompareValueChangeEvent>();\n\n /**\n * Callback to invoke when dragging ends.\n * @param {CompareValueChangeEvent} event - Custom value change event.\n * @group Emits\n */\n onValueChangeEnd = output<CompareValueChangeEvent>();\n\n isDragging = signal(false);\n\n dataDisabled = computed(() => (this.disabled() ? '' : null));\n\n dataDragging = computed(() => (this.isDragging() ? '' : null));\n\n isThumbPointerDown = false;\n\n private internalValue = signal(50);\n\n currentValue = computed(() => {\n const v = this.value();\n return v !== undefined ? v : this.internalValue();\n });\n\n private isHorizontal = computed(() => this.orientation() === 'horizontal');\n\n private dragOffsetPx = 0;\n\n handleEl: HTMLElement | null = null;\n\n onAfterViewChecked(): void {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n\n onAfterViewInit() {\n if (isPlatformBrowser(this.platformId)) {\n this.internalValue.set(this.defaultValue());\n }\n }\n\n private getRootRect(event: PointerEvent): DOMRect {\n return this.hostEl.nativeElement.getBoundingClientRect();\n }\n\n private clamp(value: number, minValue: number, maxValue: number): number {\n return Math.min(Math.max(value, minValue), maxValue);\n }\n\n private roundToStep(value: number): number {\n const stepVal = this.step();\n const minVal = this.min();\n if (!stepVal) return value;\n const stepStr = stepVal.toString();\n const dotIndex = stepStr.indexOf('.');\n const precision = dotIndex >= 0 ? stepStr.length - dotIndex - 1 : 0;\n const rounded = Math.round((value - minVal) / stepVal) * stepVal + minVal;\n return Number(rounded.toFixed(precision));\n }\n\n private normalizeValue(value: number): number {\n return this.clamp(this.roundToStep(value), this.min(), this.max());\n }\n\n private getValueFromPointer(event: PointerEvent, offsetPx: number = 0): number {\n const rect = this.getRootRect(event);\n const horizontal = this.isHorizontal();\n const size = horizontal ? rect.width : rect.height;\n if (!size) return this.min();\n\n const pointerPosition = horizontal ? event.clientX - rect.left : event.clientY - rect.top;\n const position = (pointerPosition - offsetPx) / size;\n const clampedPosition = this.clamp(position, 0, 1);\n const isRtl = horizontal && isRTL(this.hostEl.nativeElement);\n const orientedPosition = horizontal ? (isRtl ? 1 - clampedPosition : clampedPosition) : 1 - clampedPosition;\n const value = this.min() + orientedPosition * (this.max() - this.min());\n\n return this.normalizeValue(value);\n }\n\n private getValuePercent(value: number): number {\n const range = this.max() - this.min();\n if (!range) return 0;\n return this.clamp(((value - this.min()) / range) * 100, 0, 100);\n }\n\n private updateValue(nextValue: number, originalEvent: Event) {\n const normalized = this.normalizeValue(nextValue);\n this.internalValue.set(normalized);\n this.onValueChange.emit({ originalEvent, value: normalized });\n }\n\n private updateValueFromPointer(event: PointerEvent) {\n const nextValue = this.getValueFromPointer(event, this.dragOffsetPx);\n this.dragOffsetPx = 0;\n this.updateValue(nextValue, event);\n }\n\n getItemStyle(position: 'before' | 'after'): { clipPath: string } {\n const horizontal = this.isHorizontal();\n const positionValue = horizontal ? this.currentValue() : 100 - this.currentValue();\n\n const clipPath = horizontal\n ? position === 'before'\n ? `inset(0 ${Math.max(0, 100 - positionValue)}% 0 0)`\n : `inset(0 0 0 ${Math.max(0, positionValue)}%)`\n : position === 'before'\n ? `inset(0 0 ${Math.max(0, 100 - positionValue)}% 0)`\n : `inset(${Math.max(0, positionValue)}% 0 0 0)`;\n\n return { clipPath };\n }\n\n getHandleStyle(): Record<string, string | number> {\n const percent = this.getValuePercent(this.currentValue());\n const horizontal = this.isHorizontal();\n\n if (horizontal) {\n return { position: 'absolute', insetInlineStart: `${percent}%`, translate: '-50% 0', insetBlockStart: '0' };\n } else {\n return { position: 'absolute', bottom: `${percent}%`, translate: '0 50%', insetInlineStart: '0' };\n }\n }\n\n onRootPointerDown(event: PointerEvent) {\n if (this.disabled()) return;\n if (event.pointerType === 'mouse' && event.button !== 0) return;\n\n event.preventDefault();\n (event.currentTarget as HTMLElement).setPointerCapture(event.pointerId);\n this.isDragging.set(true);\n\n if (this.isThumbPointerDown) {\n this.isThumbPointerDown = false;\n return;\n }\n\n this.dragOffsetPx = 0;\n this.updateValueFromPointer(event);\n this.cd.markForCheck();\n }\n\n onRootPointerMove(event: PointerEvent) {\n if (this.disabled()) return;\n\n if (this.slideOnHover()) {\n this.updateValueFromPointer(event);\n this.cd.markForCheck();\n return;\n }\n\n if (!this.isDragging()) return;\n\n event.preventDefault();\n const nextValue = this.getValueFromPointer(event, this.dragOffsetPx);\n this.updateValue(nextValue, event);\n this.cd.markForCheck();\n }\n\n onRootPointerUp(event: PointerEvent) {\n if (this.disabled()) return;\n\n event.preventDefault();\n (event.currentTarget as HTMLElement).releasePointerCapture(event.pointerId);\n this.isDragging.set(false);\n this.isThumbPointerDown = false;\n this.dragOffsetPx = 0;\n\n this.onValueChangeEnd.emit({ originalEvent: event, value: this.currentValue() });\n this.cd.markForCheck();\n }\n\n onThumbPointerDown(event: PointerEvent) {\n if (this.disabled()) return;\n if (event.pointerType === 'mouse' && event.button !== 0) return;\n\n event.preventDefault();\n this.hostEl.nativeElement.setPointerCapture(event.pointerId);\n\n const handle = this.handleEl;\n if (handle) {\n const handleRect = handle.getBoundingClientRect();\n const horizontal = this.isHorizontal();\n const handleCenter = horizontal ? handleRect.left + handleRect.width / 2 : handleRect.top + handleRect.height / 2;\n const pointerAxis = horizontal ? event.clientX : event.clientY;\n this.dragOffsetPx = pointerAxis - handleCenter;\n } else {\n this.dragOffsetPx = 0;\n }\n\n this.isThumbPointerDown = true;\n }\n\n onInputChange(event: Event) {\n if (this.disabled()) return;\n const target = event.target as HTMLInputElement;\n const nextValue = this.normalizeValue(Number(target.value));\n this.updateValue(nextValue, event);\n this.onValueChangeEnd.emit({ originalEvent: event, value: nextValue });\n this.cd.markForCheck();\n }\n}\n\n@NgModule({\n imports: [Compare, CompareItem, CompareHandle, CompareIndicator, SharedModule, BindModule],\n exports: [Compare, CompareItem, CompareHandle, CompareIndicator, SharedModule, BindModule]\n})\nexport class CompareModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}