@radix-ng/primitives 0.39.2 → 0.39.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"radix-ng-primitives-slider.mjs","sources":["../../../packages/primitives/slider/src/utils.ts","../../../packages/primitives/slider/src/slider-impl.directive.ts","../../../packages/primitives/slider/src/slider-horizontal.component.ts","../../../packages/primitives/slider/src/slider-orientation-context.service.ts","../../../packages/primitives/slider/src/slider-vertical.component.ts","../../../packages/primitives/slider/src/slider-root.component.ts","../../../packages/primitives/slider/src/slider-range.component.ts","../../../packages/primitives/slider/src/slider-thumb-impl.directive.ts","../../../packages/primitives/slider/src/slider-thumb.component.ts","../../../packages/primitives/slider/src/slider-track.component.ts","../../../packages/primitives/slider/index.ts","../../../packages/primitives/slider/radix-ng-primitives-slider.ts"],"sourcesContent":["// https://github.com/tmcw-up-for-adoption/simple-linear-scale/blob/master/index.js\nexport function linearScale(input: readonly [number, number], output: readonly [number, number]) {\n return (value: number) => {\n if (input[0] === input[1] || output[0] === output[1]) return output[0];\n const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\n\n/**\n * Verifies the minimum steps between all values is greater than or equal\n * to the expected minimum steps.\n *\n * @example\n * // returns false\n * hasMinStepsBetweenValues([1,2,3], 2);\n *\n * @example\n * // returns true\n * hasMinStepsBetweenValues([1,2,3], 1);\n */\nexport function hasMinStepsBetweenValues(values: number[], minStepsBetweenValues: number) {\n if (minStepsBetweenValues > 0) {\n const stepsBetweenValues = getStepsBetweenValues(values);\n const actualMinStepsBetweenValues = Math.min(...stepsBetweenValues);\n return actualMinStepsBetweenValues >= minStepsBetweenValues;\n }\n return true;\n}\n\n/**\n * Given a `values` array and a `nextValue`, determine which value in\n * the array is closest to `nextValue` and return its index.\n *\n * @example\n * // returns 1\n * getClosestValueIndex([10, 30], 25);\n */\nexport function getClosestValueIndex(values: number[], nextValue: number) {\n if (values.length === 1) return 0;\n const distances = values.map((value) => Math.abs(value - nextValue));\n const closestDistance = Math.min(...distances);\n return distances.indexOf(closestDistance);\n}\n\n/**\n * Gets an array of steps between each value.\n *\n * @example\n * // returns [1, 9]\n * getStepsBetweenValues([10, 11, 20]);\n */\nexport function getStepsBetweenValues(values: number[]) {\n return values.slice(0, -1).map((value, index) => values[index + 1] - value);\n}\n\n/**\n * Offsets the thumb centre point while sliding to ensure it remains\n * within the bounds of the slider when reaching the edges\n */\nexport function getThumbInBoundsOffset(width: number, left: number, direction: number) {\n const halfWidth = width / 2;\n const halfPercent = 50;\n const offset = linearScale([0, halfPercent], [0, halfWidth]);\n return (halfWidth - offset(left) * direction) * direction;\n}\n\nexport function convertValueToPercentage(value: number, min: number, max: number) {\n const maxSteps = max - min;\n const percentPerStep = 100 / maxSteps;\n const percentage = percentPerStep * (value - min);\n return clamp(percentage, 0, 100);\n}\n\nexport function getDecimalCount(value: number) {\n return (String(value).split('.')[1] || '').length;\n}\n\nexport function roundValue(value: number, decimalCount: number) {\n const rounder = 10 ** decimalCount;\n return Math.round(value * rounder) / rounder;\n}\n\nexport function getNextSortedValues(prevValues: number[] = [], nextValue: number, atIndex: number) {\n const nextValues = [...prevValues];\n nextValues[atIndex] = nextValue;\n return nextValues.sort((a, b) => a - b);\n}\n\nexport const PAGE_KEYS = ['PageUp', 'PageDown'];\nexport const ARROW_KEYS = ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'];\n\ntype SlideDirection = 'from-left' | 'from-right' | 'from-bottom' | 'from-top';\nexport const BACK_KEYS: Record<SlideDirection, string[]> = {\n 'from-left': ['Home', 'PageDown', 'ArrowDown', 'ArrowLeft'],\n 'from-right': ['Home', 'PageDown', 'ArrowDown', 'ArrowRight'],\n 'from-bottom': ['Home', 'PageDown', 'ArrowDown', 'ArrowLeft'],\n 'from-top': ['Home', 'PageDown', 'ArrowUp', 'ArrowLeft']\n};\n\nexport interface OrientationContext {\n direction: number;\n size: 'width' | 'height';\n startEdge: 'left' | 'top';\n endEdge: 'right' | 'bottom';\n}\n\nexport function clamp(\n value: number,\n min: number = Number.NEGATIVE_INFINITY,\n max: number = Number.POSITIVE_INFINITY\n): number {\n return Math.min(Math.max(value, min), max);\n}\n","import { Directive, inject, output } from '@angular/core';\nimport { RdxSliderRootComponent } from './slider-root.component';\nimport { ARROW_KEYS, PAGE_KEYS } from './utils';\n\n@Directive({\n selector: '[rdxSliderImpl]',\n host: {\n role: 'slider',\n tabindex: '0',\n '(keydown)': 'onKeyDown($event)',\n '(pointerdown)': 'onPointerDown($event)',\n '(pointermove)': 'onPointerMove($event)',\n '(pointerup)': 'onPointerUp($event)'\n }\n})\nexport class RdxSliderImplDirective {\n protected readonly rootContext = inject(RdxSliderRootComponent);\n\n readonly slideStart = output<PointerEvent>();\n readonly slideMove = output<PointerEvent>();\n readonly slideEnd = output<PointerEvent>();\n readonly homeKeyDown = output<KeyboardEvent>();\n readonly endKeyDown = output<KeyboardEvent>();\n readonly stepKeyDown = output<KeyboardEvent>();\n\n onKeyDown(event: KeyboardEvent) {\n if (event.key === 'Home') {\n this.homeKeyDown.emit(event);\n // Prevent scrolling to page start\n event.preventDefault();\n } else if (event.key === 'End') {\n this.endKeyDown.emit(event);\n // Prevent scrolling to page end\n event.preventDefault();\n } else if (PAGE_KEYS.concat(ARROW_KEYS).includes(event.key)) {\n this.stepKeyDown.emit(event);\n // Prevent scrolling for directional key presses\n event.preventDefault();\n }\n }\n\n onPointerDown(event: PointerEvent) {\n const target = event.target as HTMLElement;\n target.setPointerCapture(event.pointerId);\n\n // Prevent browser focus behaviour because we focus a thumb manually when values change.\n event.preventDefault();\n\n // Touch devices have a delay before focusing so won't focus if touch immediately moves\n // away from target (sliding). We want thumb to focus regardless.\n if (this.rootContext.thumbElements.includes(target)) {\n target.focus();\n } else {\n this.slideStart.emit(event);\n }\n }\n\n onPointerMove(event: PointerEvent) {\n const target = event.target as HTMLElement;\n if (target.hasPointerCapture(event.pointerId)) {\n this.slideMove.emit(event);\n }\n }\n\n onPointerUp(event: PointerEvent) {\n const target = event.target as HTMLElement;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n this.slideEnd.emit(event);\n }\n }\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n booleanAttribute,\n Component,\n ElementRef,\n inject,\n input,\n Input,\n output,\n signal,\n viewChild\n} from '@angular/core';\nimport { RdxSliderImplDirective } from './slider-impl.directive';\nimport { RdxSliderRootComponent } from './slider-root.component';\nimport { BACK_KEYS, linearScale } from './utils';\n\n@Component({\n selector: 'rdx-slider-horizontal',\n imports: [RdxSliderImplDirective],\n template: `\n <span\n #sliderElement\n [class]=\"className\"\n [attr.data-orientation]=\"'horizontal'\"\n [style]=\"{ '--rdx-slider-thumb-transform': 'translateX(-50%)' }\"\n (slideStart)=\"onSlideStart($event)\"\n (slideMove)=\"onSlideMove($event)\"\n (slideEnd)=\"onSlideEnd()\"\n (stepKeyDown)=\"onStepKeyDown($event)\"\n (endKeyDown)=\"endKeyDown.emit($event)\"\n (homeKeyDown)=\"homeKeyDown.emit($event)\"\n rdxSliderImpl\n >\n <ng-content />\n </span>\n `\n})\nexport class RdxSliderHorizontalComponent {\n private readonly rootContext = inject(RdxSliderRootComponent);\n\n @Input() dir: 'ltr' | 'rtl' = 'ltr';\n\n readonly inverted = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n @Input() min = 0;\n @Input() max = 100;\n\n @Input() className = '';\n\n readonly slideStart = output<number>();\n readonly slideMove = output<number>();\n readonly slideEnd = output<void>();\n readonly stepKeyDown = output<{ event: KeyboardEvent; direction: number }>();\n readonly endKeyDown = output<KeyboardEvent>();\n readonly homeKeyDown = output<KeyboardEvent>();\n\n private readonly sliderElement = viewChild<ElementRef>('sliderElement');\n\n private readonly rect = signal<DOMRect | undefined>(undefined);\n\n onSlideStart(event: PointerEvent) {\n const value = this.getValueFromPointer(event.clientX);\n this.slideStart.emit(value);\n }\n\n onSlideMove(event: PointerEvent) {\n const value = this.getValueFromPointer(event.clientX);\n this.slideMove.emit(value);\n }\n\n onSlideEnd() {\n this.rect.set(undefined);\n this.slideEnd.emit();\n }\n\n onStepKeyDown(event: KeyboardEvent) {\n const slideDirection = this.rootContext.isSlidingFromLeft() ? 'from-left' : 'from-right';\n const isBackKey = BACK_KEYS[slideDirection].includes(event.key);\n\n this.stepKeyDown.emit({ event, direction: isBackKey ? -1 : 1 });\n }\n\n private getValueFromPointer(pointerPosition: number): number {\n this.rect.set(this.sliderElement()?.nativeElement.getBoundingClientRect());\n const rect = this.rect();\n if (!rect) return 0;\n\n const input: [number, number] = [0, rect.width];\n const output: [number, number] = this.rootContext.isSlidingFromLeft()\n ? [this.min, this.max]\n : [this.max, this.min];\n\n const value = linearScale(input, output);\n this.rect.set(rect);\n\n return value(pointerPosition - rect.left);\n }\n}\n","import { Injectable, signal } from '@angular/core';\n\nexport interface OrientationContext {\n startEdge: string;\n endEdge: string;\n direction: number;\n size: string;\n}\n\n@Injectable()\nexport class RdxSliderOrientationContextService {\n private contextSignal = signal<OrientationContext>({\n startEdge: 'left',\n endEdge: 'right',\n direction: 1,\n size: 'width'\n });\n\n get context() {\n return this.contextSignal();\n }\n\n updateContext(context: Partial<OrientationContext>) {\n this.contextSignal.update((current) => ({\n ...current,\n ...context\n }));\n }\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n booleanAttribute,\n Component,\n ElementRef,\n inject,\n input,\n Input,\n output,\n signal,\n viewChild\n} from '@angular/core';\nimport { RdxSliderImplDirective } from './slider-impl.directive';\nimport { RdxSliderRootComponent } from './slider-root.component';\nimport { BACK_KEYS, linearScale } from './utils';\n\n@Component({\n selector: 'rdx-slider-vertical',\n imports: [RdxSliderImplDirective],\n template: `\n <span\n #sliderElement\n [class]=\"className\"\n [attr.data-orientation]=\"'vertical'\"\n [style]=\"{ '--rdx-slider-thumb-transform': 'translateY(-50%)' }\"\n (slideStart)=\"onSlideStart($event)\"\n (slideMove)=\"onSlideMove($event)\"\n (slideEnd)=\"onSlideEnd()\"\n (stepKeyDown)=\"onStepKeyDown($event)\"\n (endKeyDown)=\"endKeyDown.emit($event)\"\n (homeKeyDown)=\"homeKeyDown.emit($event)\"\n rdxSliderImpl\n >\n <ng-content />\n </span>\n `\n})\nexport class RdxSliderVerticalComponent {\n private readonly rootContext = inject(RdxSliderRootComponent);\n\n @Input() dir: 'ltr' | 'rtl' = 'ltr';\n\n readonly inverted = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n @Input() min = 0;\n @Input() max = 100;\n\n @Input() className = '';\n\n readonly slideStart = output<number>();\n readonly slideMove = output<number>();\n readonly slideEnd = output<void>();\n readonly stepKeyDown = output<{ event: KeyboardEvent; direction: number }>();\n readonly endKeyDown = output<KeyboardEvent>();\n readonly homeKeyDown = output<KeyboardEvent>();\n\n private readonly sliderElement = viewChild<ElementRef>('sliderElement');\n\n private readonly rect = signal<DOMRect | undefined>(undefined);\n\n onSlideStart(event: PointerEvent) {\n const value = this.getValueFromPointer(event.clientY);\n this.slideStart.emit(value);\n }\n\n onSlideMove(event: PointerEvent) {\n const value = this.getValueFromPointer(event.clientY);\n this.slideMove.emit(value);\n }\n\n onSlideEnd() {\n this.rect.set(undefined);\n this.slideEnd.emit();\n }\n\n onStepKeyDown(event: KeyboardEvent) {\n const slideDirection = this.rootContext.isSlidingFromBottom() ? 'from-bottom' : 'from-top';\n const isBackKey = BACK_KEYS[slideDirection].includes(event.key);\n\n this.stepKeyDown.emit({ event, direction: isBackKey ? -1 : 1 });\n }\n\n private getValueFromPointer(pointerPosition: number): number {\n this.rect.set(this.sliderElement()?.nativeElement.getBoundingClientRect());\n const rect = this.rect();\n if (!rect) return 0;\n\n const input: [number, number] = [0, rect.height];\n const output: [number, number] = this.rootContext.isSlidingFromBottom()\n ? [this.max, this.min]\n : [this.min, this.max];\n\n const value = linearScale(input, output);\n this.rect.set(rect);\n\n return value(pointerPosition - rect.top);\n }\n}\n","import { BooleanInput, NumberInput } from '@angular/cdk/coercion';\nimport { NgIf, NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n Component,\n computed,\n inject,\n input,\n Input,\n model,\n numberAttribute,\n OnInit,\n output\n} from '@angular/core';\nimport { RdxSliderHorizontalComponent } from './slider-horizontal.component';\nimport { RdxSliderOrientationContextService } from './slider-orientation-context.service';\nimport { RdxSliderVerticalComponent } from './slider-vertical.component';\nimport {\n clamp,\n getClosestValueIndex,\n getDecimalCount,\n getNextSortedValues,\n hasMinStepsBetweenValues,\n roundValue\n} from './utils';\n\n/**\n * @group Components\n */\n@Component({\n selector: 'rdx-slider',\n imports: [RdxSliderHorizontalComponent, RdxSliderVerticalComponent, NgIf, NgTemplateOutlet],\n providers: [RdxSliderOrientationContextService],\n template: `\n <ng-template #transclude><ng-content /></ng-template>\n\n <ng-container *ngIf=\"orientation() === 'horizontal'\">\n <rdx-slider-horizontal\n [className]=\"styleClass() || className\"\n [min]=\"min()\"\n [max]=\"max()\"\n [dir]=\"dir()\"\n [inverted]=\"inverted()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.data-disabled]=\"disabled() ? '' : undefined\"\n (pointerdown)=\"onPointerDown()\"\n (slideStart)=\"handleSlideStart($event)\"\n (slideMove)=\"handleSlideMove($event)\"\n (slideEnd)=\"handleSlideEnd()\"\n (homeKeyDown)=\"updateValues(min(), 0, true)\"\n (endKeyDown)=\"updateValues(max(), modelValue().length - 1, true)\"\n (stepKeyDown)=\"handleStepKeyDown($event)\"\n >\n <ng-container *ngTemplateOutlet=\"transclude\" />\n </rdx-slider-horizontal>\n </ng-container>\n\n <ng-container *ngIf=\"orientation() === 'vertical'\">\n <rdx-slider-vertical\n [className]=\"styleClass() || className\"\n [min]=\"min()\"\n [max]=\"max()\"\n [dir]=\"dir()\"\n [inverted]=\"inverted()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.data-disabled]=\"disabled() ? '' : undefined\"\n (pointerdown)=\"onPointerDown()\"\n (slideStart)=\"handleSlideStart($event)\"\n (slideMove)=\"handleSlideMove($event)\"\n (slideEnd)=\"handleSlideEnd()\"\n (homeKeyDown)=\"updateValues(min(), 0, true)\"\n (endKeyDown)=\"updateValues(max(), modelValue().length - 1, true)\"\n (stepKeyDown)=\"handleStepKeyDown($event)\"\n >\n <ng-container *ngTemplateOutlet=\"transclude\" />\n </rdx-slider-vertical>\n </ng-container>\n `\n})\nexport class RdxSliderRootComponent implements OnInit {\n /** @ignore */\n readonly orientationContext = inject(RdxSliderOrientationContextService);\n\n /**\n * The minimum value for the range.\n *\n * @group Props\n * @defaultValue 0\n */\n readonly min = input<number, NumberInput>(0, { transform: numberAttribute });\n\n /**\n * The maximum value for the range.\n *\n * @group Props\n * @defaultValue 100\n */\n readonly max = input<number, NumberInput>(100, { transform: numberAttribute });\n\n /**\n * The stepping interval.\n *\n * @group Props\n * @defaultValue 1\n */\n readonly step = input<number, NumberInput>(1, { transform: numberAttribute });\n\n /**\n * The minimum permitted steps between multiple thumbs.\n *\n * @group Props\n * @defaultValue 0\n */\n readonly minStepsBetweenThumbs = input<number, NumberInput>(0, { transform: numberAttribute });\n\n /**\n * The orientation of the slider.\n *\n * @group Props\n * @defaultValue 'horizontal'\n */\n readonly orientation = input<'horizontal' | 'vertical'>('horizontal');\n\n /**\n * When true, prevents the user from interacting with the slider.\n *\n * @group Props\n * @defaultValue false\n */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Whether the slider is visually inverted.\n *\n * @group Props\n * @defaultValue false\n */\n readonly inverted = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * The reading direction of the combobox when applicable.\n *\n * @group Props\n * @defaultValue 'ltr'\n */\n readonly dir = input<'ltr' | 'rtl'>('ltr');\n\n @Input() className: string = '';\n\n /**\n * Style class of the component.\n *\n * @group Props\n */\n readonly styleClass = input<string>();\n\n /**\n * The controlled value of the slider.\n *\n * @group Props\n */\n readonly modelValue = model<number[]>([0]);\n\n /**\n * Event handler called when the slider value changes.\n *\n * @group Emits\n */\n readonly valueChange = output<number[]>();\n\n /**\n * Event handler called when the value changes at the end of an interaction.\n *\n * Useful when you only need to capture a final value e.g. to update a backend service.\n *\n * @group Emits\n */\n readonly valueCommit = output<number[]>();\n\n /** @ignore */\n readonly valueIndexToChange = model(0);\n\n /** @ignore */\n readonly valuesBeforeSlideStart = model<number[]>([]);\n\n /** @ignore */\n readonly isSlidingFromLeft = computed(\n () => (this.dir() === 'ltr' && !this.inverted()) || (this.dir() !== 'ltr' && this.inverted())\n );\n\n /** @ignore */\n readonly isSlidingFromBottom = computed(() => !this.inverted());\n\n /** @ignore */\n thumbElements: HTMLElement[] = [];\n\n /** @ignore */\n ngOnInit() {\n const isHorizontal = this.orientation() === 'horizontal';\n\n if (isHorizontal) {\n this.orientationContext.updateContext({\n direction: this.isSlidingFromLeft() ? 1 : -1,\n size: 'width',\n startEdge: this.isSlidingFromLeft() ? 'left' : 'right',\n endEdge: this.isSlidingFromLeft() ? 'right' : 'left'\n });\n } else {\n this.orientationContext.updateContext({\n direction: this.isSlidingFromBottom() ? -1 : 1,\n size: 'height',\n startEdge: this.isSlidingFromBottom() ? 'bottom' : 'top',\n endEdge: this.isSlidingFromBottom() ? 'top' : 'bottom'\n });\n }\n }\n\n /** @ignore */\n onPointerDown() {\n this.valuesBeforeSlideStart.set([...this.modelValue()]);\n }\n\n /** @ignore */\n handleSlideStart(value: number): void {\n const closestIndex = getClosestValueIndex(this.modelValue(), value);\n this.updateValues(value, closestIndex);\n }\n\n /** @ignore */\n handleSlideMove(value: number): void {\n this.updateValues(value, this.valueIndexToChange());\n }\n\n /** @ignore */\n handleSlideEnd(): void {\n const prevValue = this.valuesBeforeSlideStart()[this.valueIndexToChange()];\n const nextValue = this.modelValue()[this.valueIndexToChange()];\n const hasChanged = nextValue !== prevValue;\n\n if (hasChanged) {\n this.valueCommit.emit([...this.modelValue()]);\n }\n }\n\n /** @ignore */\n handleStepKeyDown(event: { event: KeyboardEvent; direction: number }): void {\n const stepInDirection = this.step() * event.direction;\n const atIndex = this.valueIndexToChange();\n const currentValue = this.modelValue()[atIndex];\n this.updateValues(currentValue + stepInDirection, atIndex, true);\n }\n\n /** @ignore */\n updateValues(value: number, atIndex: number, commit = false): void {\n const decimalCount = getDecimalCount(this.step());\n const snapToStep = roundValue(\n Math.round((value - this.min()) / this.step()) * this.step() + this.min(),\n decimalCount\n );\n const nextValue = clamp(snapToStep, this.min(), this.max());\n\n const nextValues = getNextSortedValues(this.modelValue(), nextValue, atIndex);\n\n if (hasMinStepsBetweenValues(nextValues, this.minStepsBetweenThumbs() * this.step())) {\n this.valueIndexToChange.set(nextValues.indexOf(nextValue));\n const hasChanged = String(nextValues) !== String(this.modelValue());\n\n if (hasChanged) {\n this.modelValue.set(nextValues);\n this.valueChange.emit([...this.modelValue()]);\n this.thumbElements[this.valueIndexToChange()]?.focus();\n\n if (commit) {\n this.valueCommit.emit([...this.modelValue()]);\n }\n }\n }\n }\n}\n","import { Component, computed, inject } from '@angular/core';\nimport { RdxSliderRootComponent } from './slider-root.component';\nimport { convertValueToPercentage } from './utils';\n\n@Component({\n selector: 'rdx-slider-range',\n host: {\n '[attr.data-disabled]': 'rootContext.disabled() ? \"\" : undefined',\n '[attr.data-orientation]': 'rootContext.orientation()',\n '[style]': 'rangeStyles()'\n },\n template: `\n <ng-content />\n `\n})\nexport class RdxSliderRangeComponent {\n protected readonly rootContext = inject(RdxSliderRootComponent);\n\n percentages = computed(() =>\n this.rootContext\n .modelValue()\n ?.map((value) => convertValueToPercentage(value, this.rootContext.min(), this.rootContext.max()))\n );\n\n offsetStart = computed(() => (this.rootContext.modelValue()!.length > 1 ? Math.min(...this.percentages()!) : 0));\n offsetEnd = computed(() => 100 - Math.max(...this.percentages()!));\n\n rangeStyles = computed(() => {\n const context = this.rootContext.orientationContext.context;\n\n return {\n [context.startEdge]: `${this.offsetStart()}%`,\n [context.endEdge]: `${this.offsetEnd()}%`\n };\n });\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { computed, Directive, ElementRef, inject, OnDestroy, OnInit, PLATFORM_ID, signal } from '@angular/core';\nimport { RdxSliderRootComponent } from './slider-root.component';\nimport { convertValueToPercentage, getThumbInBoundsOffset } from './utils';\n\n@Directive({\n selector: '[rdxSliderThumbImpl]',\n host: {\n role: 'slider',\n '[tabindex]': 'rootContext.disabled() ? undefined : 0',\n\n '[attr.aria-valuenow]': 'rootContext.modelValue()',\n '[attr.aria-valuemin]': 'rootContext.min()',\n '[attr.aria-valuemax]': 'rootContext.max()',\n '[attr.aria-orientation]': 'rootContext.orientation()',\n\n '[attr.data-orientation]': 'rootContext.orientation()',\n '[attr.data-disabled]': 'rootContext.disabled() ? \"\" : undefined',\n\n '[style]': 'combinedStyles()',\n\n '(focus)': 'onFocus()'\n }\n})\nexport class RdxSliderThumbImplDirective implements OnInit, OnDestroy {\n protected readonly rootContext = inject(RdxSliderRootComponent);\n private readonly elementRef = inject(ElementRef);\n private readonly platformId = inject(PLATFORM_ID);\n private resizeObserver!: ResizeObserver;\n\n isMounted = signal(false);\n\n thumbIndex = computed(() => {\n const thumbElement = this.elementRef.nativeElement;\n const index = this.rootContext.thumbElements.indexOf(thumbElement);\n return index >= 0 ? index : null;\n });\n\n value = computed(() => {\n const index = this.thumbIndex();\n if (index === null) return undefined;\n return this.rootContext.modelValue()?.[index];\n });\n\n percent = computed(() => {\n const val = this.value();\n if (val === undefined) return 0;\n return convertValueToPercentage(val, this.rootContext.min(), this.rootContext.max());\n });\n\n transform = computed(() => {\n const percent = this.percent();\n const offset = this.thumbInBoundsOffset();\n return `calc(${percent}% + ${offset}px)`;\n });\n\n orientationSize = signal(0);\n\n thumbInBoundsOffset = computed(() => {\n const context = this.rootContext.orientationContext.context;\n\n const size = this.orientationSize();\n const percent = this.percent();\n const direction = context.direction;\n\n return size ? getThumbInBoundsOffset(size, percent, direction) : 0;\n });\n\n combinedStyles = computed(() => {\n const context = this.rootContext.orientationContext.context;\n\n const startEdge = context.startEdge;\n const percent = this.percent();\n const offset = this.thumbInBoundsOffset();\n\n return {\n position: 'absolute',\n transform: 'var(--rdx-slider-thumb-transform)',\n display: (this.isMounted() && this.value()) === false ? 'none' : undefined,\n [startEdge]: `calc(${percent}% + ${offset}px)`\n };\n });\n\n onFocus() {\n if (this.thumbIndex() !== null) {\n this.rootContext.valueIndexToChange.set(this.thumbIndex()!);\n }\n }\n\n ngOnInit() {\n if (isPlatformBrowser(this.platformId)) {\n const thumbElement = this.elementRef.nativeElement;\n this.rootContext.thumbElements.push(thumbElement);\n\n this.resizeObserver = new ResizeObserver(() => {\n const rect = thumbElement.getBoundingClientRect();\n const context = this.rootContext.orientationContext.context;\n const size = context.size === 'width' ? rect.width : rect.height;\n this.orientationSize.set(size);\n });\n\n this.resizeObserver.observe(thumbElement);\n\n this.isMounted.set(true);\n }\n }\n\n ngOnDestroy() {\n const thumbElement = this.elementRef.nativeElement;\n const index = this.rootContext.thumbElements.indexOf(thumbElement);\n if (index >= 0) this.rootContext.thumbElements.splice(index, 1);\n\n if (this.resizeObserver) {\n this.resizeObserver.unobserve(thumbElement);\n }\n\n this.isMounted.set(false);\n }\n}\n","import { Component } from '@angular/core';\nimport { RdxSliderThumbImplDirective } from './slider-thumb-impl.directive';\n\n@Component({\n selector: 'rdx-slider-thumb',\n hostDirectives: [RdxSliderThumbImplDirective],\n template: `\n <ng-content />\n `\n})\nexport class RdxSliderThumbComponent {}\n","import { Component, inject } from '@angular/core';\nimport { RdxSliderRootComponent } from './slider-root.component';\n\n@Component({\n selector: 'rdx-slider-track',\n host: {\n '[attr.data-disabled]': \"rootContext.disabled() ? '' : undefined\",\n '[attr.data-orientation]': 'rootContext.orientation()'\n },\n template: `\n <ng-content />\n `\n})\nexport class RdxSliderTrackComponent {\n protected readonly rootContext = inject(RdxSliderRootComponent);\n}\n","import { NgModule } from '@angular/core';\nimport { RdxSliderRangeComponent } from './src/slider-range.component';\nimport { RdxSliderRootComponent } from './src/slider-root.component';\nimport { RdxSliderThumbComponent } from './src/slider-thumb.component';\nimport { RdxSliderTrackComponent } from './src/slider-track.component';\n\nexport * from './src/slider-horizontal.component';\nexport * from './src/slider-impl.directive';\nexport * from './src/slider-range.component';\nexport * from './src/slider-root.component';\nexport * from './src/slider-thumb-impl.directive';\nexport * from './src/slider-thumb.component';\nexport * from './src/slider-track.component';\nexport * from './src/slider-vertical.component';\n\nconst _imports = [RdxSliderRootComponent, RdxSliderTrackComponent, RdxSliderRangeComponent, RdxSliderThumbComponent];\n\n@NgModule({\n imports: [..._imports],\n exports: [..._imports]\n})\nexport class RdxSliderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.RdxSliderThumbImplDirective"],"mappings":"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"}
1
+ {"version":3,"file":"radix-ng-primitives-slider.mjs","sources":["../../../packages/primitives/slider/src/utils.ts","../../../packages/primitives/slider/src/slider-impl.directive.ts","../../../packages/primitives/slider/src/slider-horizontal.component.ts","../../../packages/primitives/slider/src/slider-orientation-context.service.ts","../../../packages/primitives/slider/src/slider-vertical.component.ts","../../../packages/primitives/slider/src/slider-root.component.ts","../../../packages/primitives/slider/src/slider-range.component.ts","../../../packages/primitives/slider/src/slider-thumb-impl.directive.ts","../../../packages/primitives/slider/src/slider-thumb.component.ts","../../../packages/primitives/slider/src/slider-track.component.ts","../../../packages/primitives/slider/index.ts","../../../packages/primitives/slider/radix-ng-primitives-slider.ts"],"sourcesContent":["// https://github.com/tmcw-up-for-adoption/simple-linear-scale/blob/master/index.js\nexport function linearScale(input: readonly [number, number], output: readonly [number, number]) {\n return (value: number) => {\n if (input[0] === input[1] || output[0] === output[1]) return output[0];\n const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\n\n/**\n * Verifies the minimum steps between all values is greater than or equal\n * to the expected minimum steps.\n *\n * @example\n * // returns false\n * hasMinStepsBetweenValues([1,2,3], 2);\n *\n * @example\n * // returns true\n * hasMinStepsBetweenValues([1,2,3], 1);\n */\nexport function hasMinStepsBetweenValues(values: number[], minStepsBetweenValues: number) {\n if (minStepsBetweenValues > 0) {\n const stepsBetweenValues = getStepsBetweenValues(values);\n const actualMinStepsBetweenValues = Math.min(...stepsBetweenValues);\n return actualMinStepsBetweenValues >= minStepsBetweenValues;\n }\n return true;\n}\n\n/**\n * Given a `values` array and a `nextValue`, determine which value in\n * the array is closest to `nextValue` and return its index.\n *\n * @example\n * // returns 1\n * getClosestValueIndex([10, 30], 25);\n */\nexport function getClosestValueIndex(values: number[], nextValue: number) {\n if (values.length === 1) return 0;\n const distances = values.map((value) => Math.abs(value - nextValue));\n const closestDistance = Math.min(...distances);\n return distances.indexOf(closestDistance);\n}\n\n/**\n * Gets an array of steps between each value.\n *\n * @example\n * // returns [1, 9]\n * getStepsBetweenValues([10, 11, 20]);\n */\nexport function getStepsBetweenValues(values: number[]) {\n return values.slice(0, -1).map((value, index) => values[index + 1] - value);\n}\n\n/**\n * Offsets the thumb centre point while sliding to ensure it remains\n * within the bounds of the slider when reaching the edges\n */\nexport function getThumbInBoundsOffset(width: number, left: number, direction: number) {\n const halfWidth = width / 2;\n const halfPercent = 50;\n const offset = linearScale([0, halfPercent], [0, halfWidth]);\n return (halfWidth - offset(left) * direction) * direction;\n}\n\nexport function convertValueToPercentage(value: number, min: number, max: number) {\n const maxSteps = max - min;\n const percentPerStep = 100 / maxSteps;\n const percentage = percentPerStep * (value - min);\n return clamp(percentage, 0, 100);\n}\n\nexport function getDecimalCount(value: number) {\n return (String(value).split('.')[1] || '').length;\n}\n\nexport function roundValue(value: number, decimalCount: number) {\n const rounder = 10 ** decimalCount;\n return Math.round(value * rounder) / rounder;\n}\n\nexport function getNextSortedValues(prevValues: number[] = [], nextValue: number, atIndex: number) {\n const nextValues = [...prevValues];\n nextValues[atIndex] = nextValue;\n return nextValues.sort((a, b) => a - b);\n}\n\nexport const PAGE_KEYS = ['PageUp', 'PageDown'];\nexport const ARROW_KEYS = ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'];\n\ntype SlideDirection = 'from-left' | 'from-right' | 'from-bottom' | 'from-top';\nexport const BACK_KEYS: Record<SlideDirection, string[]> = {\n 'from-left': ['Home', 'PageDown', 'ArrowDown', 'ArrowLeft'],\n 'from-right': ['Home', 'PageDown', 'ArrowDown', 'ArrowRight'],\n 'from-bottom': ['Home', 'PageDown', 'ArrowDown', 'ArrowLeft'],\n 'from-top': ['Home', 'PageUp', 'ArrowUp', 'ArrowLeft']\n};\n\nexport interface OrientationContext {\n direction: number;\n size: 'width' | 'height';\n startEdge: 'left' | 'top';\n endEdge: 'right' | 'bottom';\n}\n\nexport function clamp(\n value: number,\n min: number = Number.NEGATIVE_INFINITY,\n max: number = Number.POSITIVE_INFINITY\n): number {\n return Math.min(Math.max(value, min), max);\n}\n","import { Directive, inject, output } from '@angular/core';\nimport { RdxSliderRootComponent } from './slider-root.component';\nimport { ARROW_KEYS, PAGE_KEYS } from './utils';\n\n@Directive({\n selector: '[rdxSliderImpl]',\n host: {\n role: 'slider',\n tabindex: '0',\n '(keydown)': 'onKeyDown($event)',\n '(pointerdown)': 'onPointerDown($event)',\n '(pointermove)': 'onPointerMove($event)',\n '(pointerup)': 'onPointerUp($event)'\n }\n})\nexport class RdxSliderImplDirective {\n protected readonly rootContext = inject(RdxSliderRootComponent);\n\n readonly slideStart = output<PointerEvent>();\n readonly slideMove = output<PointerEvent>();\n readonly slideEnd = output<PointerEvent>();\n readonly homeKeyDown = output<KeyboardEvent>();\n readonly endKeyDown = output<KeyboardEvent>();\n readonly stepKeyDown = output<KeyboardEvent>();\n\n onKeyDown(event: KeyboardEvent) {\n if (event.key === 'Home') {\n this.homeKeyDown.emit(event);\n // Prevent scrolling to page start\n event.preventDefault();\n } else if (event.key === 'End') {\n this.endKeyDown.emit(event);\n // Prevent scrolling to page end\n event.preventDefault();\n } else if (PAGE_KEYS.concat(ARROW_KEYS).includes(event.key)) {\n this.stepKeyDown.emit(event);\n // Prevent scrolling for directional key presses\n event.preventDefault();\n }\n }\n\n onPointerDown(event: PointerEvent) {\n const target = event.target as HTMLElement;\n target.setPointerCapture(event.pointerId);\n\n // Prevent browser focus behaviour because we focus a thumb manually when values change.\n event.preventDefault();\n\n // Touch devices have a delay before focusing so won't focus if touch immediately moves\n // away from target (sliding). We want thumb to focus regardless.\n if (this.rootContext.thumbElements.includes(target)) {\n target.focus();\n } else {\n this.slideStart.emit(event);\n }\n }\n\n onPointerMove(event: PointerEvent) {\n const target = event.target as HTMLElement;\n if (target.hasPointerCapture(event.pointerId)) {\n this.slideMove.emit(event);\n }\n }\n\n onPointerUp(event: PointerEvent) {\n const target = event.target as HTMLElement;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n this.slideEnd.emit(event);\n }\n }\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n booleanAttribute,\n Component,\n ElementRef,\n inject,\n input,\n Input,\n output,\n signal,\n viewChild\n} from '@angular/core';\nimport { RdxSliderImplDirective } from './slider-impl.directive';\nimport { RdxSliderRootComponent } from './slider-root.component';\nimport { BACK_KEYS, linearScale } from './utils';\n\n@Component({\n selector: 'rdx-slider-horizontal',\n imports: [RdxSliderImplDirective],\n template: `\n <span\n #sliderElement\n [class]=\"className\"\n [attr.data-orientation]=\"'horizontal'\"\n [style]=\"{ '--rdx-slider-thumb-transform': 'translateX(-50%)' }\"\n (slideStart)=\"onSlideStart($event)\"\n (slideMove)=\"onSlideMove($event)\"\n (slideEnd)=\"onSlideEnd()\"\n (stepKeyDown)=\"onStepKeyDown($event)\"\n (endKeyDown)=\"endKeyDown.emit($event)\"\n (homeKeyDown)=\"homeKeyDown.emit($event)\"\n rdxSliderImpl\n >\n <ng-content />\n </span>\n `\n})\nexport class RdxSliderHorizontalComponent {\n private readonly rootContext = inject(RdxSliderRootComponent);\n\n @Input() dir: 'ltr' | 'rtl' = 'ltr';\n\n readonly inverted = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n @Input() min = 0;\n @Input() max = 100;\n\n @Input() className = '';\n\n readonly slideStart = output<number>();\n readonly slideMove = output<number>();\n readonly slideEnd = output<void>();\n readonly stepKeyDown = output<{ event: KeyboardEvent; direction: number }>();\n readonly endKeyDown = output<KeyboardEvent>();\n readonly homeKeyDown = output<KeyboardEvent>();\n\n private readonly sliderElement = viewChild<ElementRef>('sliderElement');\n\n private readonly rect = signal<DOMRect | undefined>(undefined);\n\n onSlideStart(event: PointerEvent) {\n const value = this.getValueFromPointer(event.clientX);\n this.slideStart.emit(value);\n }\n\n onSlideMove(event: PointerEvent) {\n const value = this.getValueFromPointer(event.clientX);\n this.slideMove.emit(value);\n }\n\n onSlideEnd() {\n this.rect.set(undefined);\n this.slideEnd.emit();\n }\n\n onStepKeyDown(event: KeyboardEvent) {\n const slideDirection = this.rootContext.isSlidingFromLeft() ? 'from-left' : 'from-right';\n const isBackKey = BACK_KEYS[slideDirection].includes(event.key);\n\n this.stepKeyDown.emit({ event, direction: isBackKey ? -1 : 1 });\n }\n\n private getValueFromPointer(pointerPosition: number): number {\n this.rect.set(this.sliderElement()?.nativeElement.getBoundingClientRect());\n const rect = this.rect();\n if (!rect) return 0;\n\n const input: [number, number] = [0, rect.width];\n const output: [number, number] = this.rootContext.isSlidingFromLeft()\n ? [this.min, this.max]\n : [this.max, this.min];\n\n const value = linearScale(input, output);\n this.rect.set(rect);\n\n return value(pointerPosition - rect.left);\n }\n}\n","import { Injectable, signal } from '@angular/core';\n\nexport interface OrientationContext {\n startEdge: string;\n endEdge: string;\n direction: number;\n size: string;\n}\n\n@Injectable()\nexport class RdxSliderOrientationContextService {\n private contextSignal = signal<OrientationContext>({\n startEdge: 'left',\n endEdge: 'right',\n direction: 1,\n size: 'width'\n });\n\n get context() {\n return this.contextSignal();\n }\n\n updateContext(context: Partial<OrientationContext>) {\n this.contextSignal.update((current) => ({\n ...current,\n ...context\n }));\n }\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n booleanAttribute,\n Component,\n ElementRef,\n inject,\n input,\n Input,\n output,\n signal,\n viewChild\n} from '@angular/core';\nimport { RdxSliderImplDirective } from './slider-impl.directive';\nimport { RdxSliderRootComponent } from './slider-root.component';\nimport { BACK_KEYS, linearScale } from './utils';\n\n@Component({\n selector: 'rdx-slider-vertical',\n imports: [RdxSliderImplDirective],\n template: `\n <span\n #sliderElement\n [class]=\"className\"\n [attr.data-orientation]=\"'vertical'\"\n [style]=\"{ '--rdx-slider-thumb-transform': 'translateY(-50%)' }\"\n (slideStart)=\"onSlideStart($event)\"\n (slideMove)=\"onSlideMove($event)\"\n (slideEnd)=\"onSlideEnd()\"\n (stepKeyDown)=\"onStepKeyDown($event)\"\n (endKeyDown)=\"endKeyDown.emit($event)\"\n (homeKeyDown)=\"homeKeyDown.emit($event)\"\n rdxSliderImpl\n >\n <ng-content />\n </span>\n `\n})\nexport class RdxSliderVerticalComponent {\n private readonly rootContext = inject(RdxSliderRootComponent);\n\n @Input() dir: 'ltr' | 'rtl' = 'ltr';\n\n readonly inverted = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n @Input() min = 0;\n @Input() max = 100;\n\n @Input() className = '';\n\n readonly slideStart = output<number>();\n readonly slideMove = output<number>();\n readonly slideEnd = output<void>();\n readonly stepKeyDown = output<{ event: KeyboardEvent; direction: number }>();\n readonly endKeyDown = output<KeyboardEvent>();\n readonly homeKeyDown = output<KeyboardEvent>();\n\n private readonly sliderElement = viewChild<ElementRef>('sliderElement');\n\n private readonly rect = signal<DOMRect | undefined>(undefined);\n\n onSlideStart(event: PointerEvent) {\n const value = this.getValueFromPointer(event.clientY);\n this.slideStart.emit(value);\n }\n\n onSlideMove(event: PointerEvent) {\n const value = this.getValueFromPointer(event.clientY);\n this.slideMove.emit(value);\n }\n\n onSlideEnd() {\n this.rect.set(undefined);\n this.slideEnd.emit();\n }\n\n onStepKeyDown(event: KeyboardEvent) {\n const slideDirection = this.rootContext.isSlidingFromBottom() ? 'from-bottom' : 'from-top';\n const isBackKey = BACK_KEYS[slideDirection].includes(event.key);\n\n this.stepKeyDown.emit({ event, direction: isBackKey ? -1 : 1 });\n }\n\n private getValueFromPointer(pointerPosition: number): number {\n this.rect.set(this.sliderElement()?.nativeElement.getBoundingClientRect());\n const rect = this.rect();\n if (!rect) return 0;\n\n const input: [number, number] = [0, rect.height];\n const output: [number, number] = this.rootContext.isSlidingFromBottom()\n ? [this.max, this.min]\n : [this.min, this.max];\n\n const value = linearScale(input, output);\n this.rect.set(rect);\n\n return value(pointerPosition - rect.top);\n }\n}\n","import { BooleanInput, NumberInput } from '@angular/cdk/coercion';\nimport { NgIf, NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n Component,\n computed,\n inject,\n input,\n Input,\n model,\n numberAttribute,\n OnInit,\n output\n} from '@angular/core';\nimport { RdxSliderHorizontalComponent } from './slider-horizontal.component';\nimport { RdxSliderOrientationContextService } from './slider-orientation-context.service';\nimport { RdxSliderVerticalComponent } from './slider-vertical.component';\nimport {\n clamp,\n getClosestValueIndex,\n getDecimalCount,\n getNextSortedValues,\n hasMinStepsBetweenValues,\n roundValue\n} from './utils';\n\n/**\n * @group Components\n */\n@Component({\n selector: 'rdx-slider',\n imports: [RdxSliderHorizontalComponent, RdxSliderVerticalComponent, NgIf, NgTemplateOutlet],\n providers: [RdxSliderOrientationContextService],\n template: `\n <ng-template #transclude><ng-content /></ng-template>\n\n <ng-container *ngIf=\"orientation() === 'horizontal'\">\n <rdx-slider-horizontal\n [className]=\"styleClass() || className\"\n [min]=\"min()\"\n [max]=\"max()\"\n [dir]=\"dir()\"\n [inverted]=\"inverted()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.data-disabled]=\"disabled() ? '' : undefined\"\n (pointerdown)=\"onPointerDown()\"\n (slideStart)=\"handleSlideStart($event)\"\n (slideMove)=\"handleSlideMove($event)\"\n (slideEnd)=\"handleSlideEnd()\"\n (homeKeyDown)=\"updateValues(min(), 0, true)\"\n (endKeyDown)=\"updateValues(max(), modelValue().length - 1, true)\"\n (stepKeyDown)=\"handleStepKeyDown($event)\"\n >\n <ng-container *ngTemplateOutlet=\"transclude\" />\n </rdx-slider-horizontal>\n </ng-container>\n\n <ng-container *ngIf=\"orientation() === 'vertical'\">\n <rdx-slider-vertical\n [className]=\"styleClass() || className\"\n [min]=\"min()\"\n [max]=\"max()\"\n [dir]=\"dir()\"\n [inverted]=\"inverted()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.data-disabled]=\"disabled() ? '' : undefined\"\n (pointerdown)=\"onPointerDown()\"\n (slideStart)=\"handleSlideStart($event)\"\n (slideMove)=\"handleSlideMove($event)\"\n (slideEnd)=\"handleSlideEnd()\"\n (homeKeyDown)=\"updateValues(min(), 0, true)\"\n (endKeyDown)=\"updateValues(max(), modelValue().length - 1, true)\"\n (stepKeyDown)=\"handleStepKeyDown($event)\"\n >\n <ng-container *ngTemplateOutlet=\"transclude\" />\n </rdx-slider-vertical>\n </ng-container>\n `\n})\nexport class RdxSliderRootComponent implements OnInit {\n /** @ignore */\n readonly orientationContext = inject(RdxSliderOrientationContextService);\n\n /**\n * The minimum value for the range.\n *\n * @group Props\n * @defaultValue 0\n */\n readonly min = input<number, NumberInput>(0, { transform: numberAttribute });\n\n /**\n * The maximum value for the range.\n *\n * @group Props\n * @defaultValue 100\n */\n readonly max = input<number, NumberInput>(100, { transform: numberAttribute });\n\n /**\n * The stepping interval.\n *\n * @group Props\n * @defaultValue 1\n */\n readonly step = input<number, NumberInput>(1, { transform: numberAttribute });\n\n /**\n * The minimum permitted steps between multiple thumbs.\n *\n * @group Props\n * @defaultValue 0\n */\n readonly minStepsBetweenThumbs = input<number, NumberInput>(0, { transform: numberAttribute });\n\n /**\n * The orientation of the slider.\n *\n * @group Props\n * @defaultValue 'horizontal'\n */\n readonly orientation = input<'horizontal' | 'vertical'>('horizontal');\n\n /**\n * When true, prevents the user from interacting with the slider.\n *\n * @group Props\n * @defaultValue false\n */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Whether the slider is visually inverted.\n *\n * @group Props\n * @defaultValue false\n */\n readonly inverted = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * The reading direction of the combobox when applicable.\n *\n * @group Props\n * @defaultValue 'ltr'\n */\n readonly dir = input<'ltr' | 'rtl'>('ltr');\n\n @Input() className: string = '';\n\n /**\n * Style class of the component.\n *\n * @group Props\n */\n readonly styleClass = input<string>();\n\n /**\n * The controlled value of the slider.\n *\n * @group Props\n */\n readonly modelValue = model<number[]>([0]);\n\n /**\n * Event handler called when the slider value changes.\n *\n * @group Emits\n */\n readonly valueChange = output<number[]>();\n\n /**\n * Event handler called when the value changes at the end of an interaction.\n *\n * Useful when you only need to capture a final value e.g. to update a backend service.\n *\n * @group Emits\n */\n readonly valueCommit = output<number[]>();\n\n /** @ignore */\n readonly valueIndexToChange = model(0);\n\n /** @ignore */\n readonly valuesBeforeSlideStart = model<number[]>([]);\n\n /** @ignore */\n readonly isSlidingFromLeft = computed(\n () => (this.dir() === 'ltr' && !this.inverted()) || (this.dir() !== 'ltr' && this.inverted())\n );\n\n /** @ignore */\n readonly isSlidingFromBottom = computed(() => !this.inverted());\n\n /** @ignore */\n thumbElements: HTMLElement[] = [];\n\n /** @ignore */\n ngOnInit() {\n const isHorizontal = this.orientation() === 'horizontal';\n\n if (isHorizontal) {\n this.orientationContext.updateContext({\n direction: this.isSlidingFromLeft() ? 1 : -1,\n size: 'width',\n startEdge: this.isSlidingFromLeft() ? 'left' : 'right',\n endEdge: this.isSlidingFromLeft() ? 'right' : 'left'\n });\n } else {\n this.orientationContext.updateContext({\n direction: this.isSlidingFromBottom() ? -1 : 1,\n size: 'height',\n startEdge: this.isSlidingFromBottom() ? 'bottom' : 'top',\n endEdge: this.isSlidingFromBottom() ? 'top' : 'bottom'\n });\n }\n }\n\n /** @ignore */\n onPointerDown() {\n this.valuesBeforeSlideStart.set([...this.modelValue()]);\n }\n\n /** @ignore */\n handleSlideStart(value: number): void {\n const closestIndex = getClosestValueIndex(this.modelValue(), value);\n this.updateValues(value, closestIndex);\n }\n\n /** @ignore */\n handleSlideMove(value: number): void {\n this.updateValues(value, this.valueIndexToChange());\n }\n\n /** @ignore */\n handleSlideEnd(): void {\n const prevValue = this.valuesBeforeSlideStart()[this.valueIndexToChange()];\n const nextValue = this.modelValue()[this.valueIndexToChange()];\n const hasChanged = nextValue !== prevValue;\n\n if (hasChanged) {\n this.valueCommit.emit([...this.modelValue()]);\n }\n }\n\n /** @ignore */\n handleStepKeyDown(event: { event: KeyboardEvent; direction: number }): void {\n const stepInDirection = this.step() * event.direction;\n const atIndex = this.valueIndexToChange();\n const currentValue = this.modelValue()[atIndex];\n this.updateValues(currentValue + stepInDirection, atIndex, true);\n }\n\n /** @ignore */\n updateValues(value: number, atIndex: number, commit = false): void {\n const decimalCount = getDecimalCount(this.step());\n const snapToStep = roundValue(\n Math.round((value - this.min()) / this.step()) * this.step() + this.min(),\n decimalCount\n );\n const nextValue = clamp(snapToStep, this.min(), this.max());\n\n const nextValues = getNextSortedValues(this.modelValue(), nextValue, atIndex);\n\n if (hasMinStepsBetweenValues(nextValues, this.minStepsBetweenThumbs() * this.step())) {\n this.valueIndexToChange.set(nextValues.indexOf(nextValue));\n const hasChanged = String(nextValues) !== String(this.modelValue());\n\n if (hasChanged) {\n this.modelValue.set(nextValues);\n this.valueChange.emit([...this.modelValue()]);\n this.thumbElements[this.valueIndexToChange()]?.focus();\n\n if (commit) {\n this.valueCommit.emit([...this.modelValue()]);\n }\n }\n }\n }\n}\n","import { Component, computed, inject } from '@angular/core';\nimport { RdxSliderRootComponent } from './slider-root.component';\nimport { convertValueToPercentage } from './utils';\n\n@Component({\n selector: 'rdx-slider-range',\n host: {\n '[attr.data-disabled]': 'rootContext.disabled() ? \"\" : undefined',\n '[attr.data-orientation]': 'rootContext.orientation()',\n '[style]': 'rangeStyles()'\n },\n template: `\n <ng-content />\n `\n})\nexport class RdxSliderRangeComponent {\n protected readonly rootContext = inject(RdxSliderRootComponent);\n\n percentages = computed(() =>\n this.rootContext\n .modelValue()\n ?.map((value) => convertValueToPercentage(value, this.rootContext.min(), this.rootContext.max()))\n );\n\n offsetStart = computed(() => (this.rootContext.modelValue()!.length > 1 ? Math.min(...this.percentages()!) : 0));\n offsetEnd = computed(() => 100 - Math.max(...this.percentages()!));\n\n rangeStyles = computed(() => {\n const context = this.rootContext.orientationContext.context;\n\n return {\n [context.startEdge]: `${this.offsetStart()}%`,\n [context.endEdge]: `${this.offsetEnd()}%`\n };\n });\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { computed, Directive, ElementRef, inject, OnDestroy, OnInit, PLATFORM_ID, signal } from '@angular/core';\nimport { RdxSliderRootComponent } from './slider-root.component';\nimport { convertValueToPercentage, getThumbInBoundsOffset } from './utils';\n\n@Directive({\n selector: '[rdxSliderThumbImpl]',\n host: {\n role: 'slider',\n '[tabindex]': 'rootContext.disabled() ? undefined : 0',\n\n '[attr.aria-valuenow]': 'rootContext.modelValue()',\n '[attr.aria-valuemin]': 'rootContext.min()',\n '[attr.aria-valuemax]': 'rootContext.max()',\n '[attr.aria-orientation]': 'rootContext.orientation()',\n\n '[attr.data-orientation]': 'rootContext.orientation()',\n '[attr.data-disabled]': 'rootContext.disabled() ? \"\" : undefined',\n\n '[style]': 'combinedStyles()',\n\n '(focus)': 'onFocus()'\n }\n})\nexport class RdxSliderThumbImplDirective implements OnInit, OnDestroy {\n protected readonly rootContext = inject(RdxSliderRootComponent);\n private readonly elementRef = inject(ElementRef);\n private readonly platformId = inject(PLATFORM_ID);\n private resizeObserver!: ResizeObserver;\n\n isMounted = signal(false);\n\n thumbIndex = computed(() => {\n const thumbElement = this.elementRef.nativeElement;\n const index = this.rootContext.thumbElements.indexOf(thumbElement);\n return index >= 0 ? index : null;\n });\n\n value = computed(() => {\n const index = this.thumbIndex();\n if (index === null) return undefined;\n return this.rootContext.modelValue()?.[index];\n });\n\n percent = computed(() => {\n const val = this.value();\n if (val === undefined) return 0;\n return convertValueToPercentage(val, this.rootContext.min(), this.rootContext.max());\n });\n\n transform = computed(() => {\n const percent = this.percent();\n const offset = this.thumbInBoundsOffset();\n return `calc(${percent}% + ${offset}px)`;\n });\n\n orientationSize = signal(0);\n\n thumbInBoundsOffset = computed(() => {\n const context = this.rootContext.orientationContext.context;\n\n const size = this.orientationSize();\n const percent = this.percent();\n const direction = context.direction;\n\n return size ? getThumbInBoundsOffset(size, percent, direction) : 0;\n });\n\n combinedStyles = computed(() => {\n const context = this.rootContext.orientationContext.context;\n\n const startEdge = context.startEdge;\n const percent = this.percent();\n const offset = this.thumbInBoundsOffset();\n\n return {\n position: 'absolute',\n transform: 'var(--rdx-slider-thumb-transform)',\n display: (this.isMounted() && this.value()) === false ? 'none' : undefined,\n [startEdge]: `calc(${percent}% + ${offset}px)`\n };\n });\n\n onFocus() {\n if (this.thumbIndex() !== null) {\n this.rootContext.valueIndexToChange.set(this.thumbIndex()!);\n }\n }\n\n ngOnInit() {\n if (isPlatformBrowser(this.platformId)) {\n const thumbElement = this.elementRef.nativeElement;\n this.rootContext.thumbElements.push(thumbElement);\n\n this.resizeObserver = new ResizeObserver(() => {\n const rect = thumbElement.getBoundingClientRect();\n const context = this.rootContext.orientationContext.context;\n const size = context.size === 'width' ? rect.width : rect.height;\n this.orientationSize.set(size);\n });\n\n this.resizeObserver.observe(thumbElement);\n\n this.isMounted.set(true);\n }\n }\n\n ngOnDestroy() {\n const thumbElement = this.elementRef.nativeElement;\n const index = this.rootContext.thumbElements.indexOf(thumbElement);\n if (index >= 0) this.rootContext.thumbElements.splice(index, 1);\n\n if (this.resizeObserver) {\n this.resizeObserver.unobserve(thumbElement);\n }\n\n this.isMounted.set(false);\n }\n}\n","import { Component } from '@angular/core';\nimport { RdxSliderThumbImplDirective } from './slider-thumb-impl.directive';\n\n@Component({\n selector: 'rdx-slider-thumb',\n hostDirectives: [RdxSliderThumbImplDirective],\n template: `\n <ng-content />\n `\n})\nexport class RdxSliderThumbComponent {}\n","import { Component, inject } from '@angular/core';\nimport { RdxSliderRootComponent } from './slider-root.component';\n\n@Component({\n selector: 'rdx-slider-track',\n host: {\n '[attr.data-disabled]': \"rootContext.disabled() ? '' : undefined\",\n '[attr.data-orientation]': 'rootContext.orientation()'\n },\n template: `\n <ng-content />\n `\n})\nexport class RdxSliderTrackComponent {\n protected readonly rootContext = inject(RdxSliderRootComponent);\n}\n","import { NgModule } from '@angular/core';\nimport { RdxSliderRangeComponent } from './src/slider-range.component';\nimport { RdxSliderRootComponent } from './src/slider-root.component';\nimport { RdxSliderThumbComponent } from './src/slider-thumb.component';\nimport { RdxSliderTrackComponent } from './src/slider-track.component';\n\nexport * from './src/slider-horizontal.component';\nexport * from './src/slider-impl.directive';\nexport * from './src/slider-range.component';\nexport * from './src/slider-root.component';\nexport * from './src/slider-thumb-impl.directive';\nexport * from './src/slider-thumb.component';\nexport * from './src/slider-track.component';\nexport * from './src/slider-vertical.component';\n\nconst _imports = [RdxSliderRootComponent, RdxSliderTrackComponent, RdxSliderRangeComponent, RdxSliderThumbComponent];\n\n@NgModule({\n imports: [..._imports],\n exports: [..._imports]\n})\nexport class RdxSliderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.RdxSliderThumbImplDirective"],"mappings":"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"}
@@ -4,7 +4,7 @@ import * as i1 from '@radix-ng/primitives/roving-focus';
4
4
  import { RdxRovingFocusItemDirective, RdxRovingFocusGroupDirective } from '@radix-ng/primitives/roving-focus';
5
5
  import * as i2 from '@radix-ng/primitives/toggle';
6
6
  import { RdxToggleDirective } from '@radix-ng/primitives/toggle';
7
- import { provideValueAccessor, provideToken } from '@radix-ng/primitives/core';
7
+ import { provideValueAccessor, isEqual, isValueEqualOrExist, provideToken } from '@radix-ng/primitives/core';
8
8
 
9
9
  const RdxToggleGroupItemToken = new InjectionToken('RdxToggleGroupItemToken');
10
10
  function injectToggleGroupItem() {
@@ -231,14 +231,20 @@ class RdxToggleGroupDirective {
231
231
  return;
232
232
  }
233
233
  if (this.type() === 'single') {
234
- this.value.set(value);
234
+ this.value.set(isEqual(value, this.value()) ? undefined : value);
235
235
  }
236
236
  else {
237
- this.value.set(((currentValue) => currentValue && Array.isArray(currentValue)
238
- ? currentValue.includes(value)
239
- ? currentValue.filter((v) => v !== value) // delete
240
- : [...currentValue, value] // update
241
- : [value])(this.value()));
237
+ const modelValueArray = Array.isArray(this.value())
238
+ ? [...(this.value() || [])]
239
+ : [this.value()].filter(Boolean);
240
+ if (isValueEqualOrExist(modelValueArray, value)) {
241
+ const index = modelValueArray.findIndex((i) => isEqual(i, value));
242
+ modelValueArray.splice(index, 1);
243
+ }
244
+ else {
245
+ modelValueArray.push(value);
246
+ }
247
+ this.value.set(modelValueArray);
242
248
  }
243
249
  this.onValueChange.emit(this.value());
244
250
  this.onChange?.(this.value());
@@ -1 +1 @@
1
- {"version":3,"file":"radix-ng-primitives-toggle-group.mjs","sources":["../../../packages/primitives/toggle-group/src/toggle-group-item.token.ts","../../../packages/primitives/toggle-group/src/toggle-group.token.ts","../../../packages/primitives/toggle-group/src/toggle-group-item.directive.ts","../../../packages/primitives/toggle-group/src/toggle-group-without-focus.directive.ts","../../../packages/primitives/toggle-group/src/toggle-group.directive.ts","../../../packages/primitives/toggle-group/radix-ng-primitives-toggle-group.ts"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\nimport type { RdxToggleGroupItemDirective } from './toggle-group-item.directive';\n\nexport const RdxToggleGroupItemToken = new InjectionToken<RdxToggleGroupItemDirective>('RdxToggleGroupItemToken');\n\nexport function injectToggleGroupItem(): RdxToggleGroupItemDirective {\n return inject(RdxToggleGroupItemToken);\n}\n","import { inject, InjectionToken } from '@angular/core';\n\nexport interface IRdxToggleGroup {\n toggle(value: string): void;\n disabled: any;\n value: any;\n type: any;\n}\n\nexport const RdxToggleGroupToken = new InjectionToken<IRdxToggleGroup>('RdxToggleGroupToken');\n\nexport function injectToggleGroup(): IRdxToggleGroup {\n return inject(RdxToggleGroupToken);\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, computed, Directive, effect, inject, input } from '@angular/core';\nimport { RdxRovingFocusItemDirective } from '@radix-ng/primitives/roving-focus';\nimport { RdxToggleDirective } from '@radix-ng/primitives/toggle';\nimport { RdxToggleGroupItemToken } from './toggle-group-item.token';\nimport { injectToggleGroup } from './toggle-group.token';\n\n/**\n * @group Components\n */\n@Directive({\n selector: '[rdxToggleGroupItem]',\n exportAs: 'rdxToggleGroupItem',\n providers: [{ provide: RdxToggleGroupItemToken, useExisting: RdxToggleGroupItemDirective }],\n hostDirectives: [\n {\n directive: RdxRovingFocusItemDirective,\n inputs: ['focusable', 'active', 'allowShiftKey']\n },\n {\n directive: RdxToggleDirective,\n inputs: ['pressed', 'disabled']\n }\n ],\n host: {\n '(click)': 'toggle()'\n }\n})\nexport class RdxToggleGroupItemDirective {\n private readonly rdxToggleDirective = inject(RdxToggleDirective);\n\n private readonly rdxRovingFocusItemDirective = inject(RdxRovingFocusItemDirective);\n\n /**\n * Access the toggle group.\n * @ignore\n */\n protected readonly rootContext = injectToggleGroup();\n\n /**\n * The value of this toggle button.\n *\n * @group Props\n */\n readonly value = input.required<string>();\n\n /**\n * Whether this toggle button is disabled.\n * @defaultValue false\n * @group Props\n */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n private readonly isPressed = computed(() => {\n return this.rootContext.type() === 'single'\n ? this.rootContext.value() === this.value()\n : this.rootContext.value()?.includes(this.value());\n });\n\n private readonly isDisabled = computed(() => this.rootContext.disabled() || this.disabled());\n\n constructor() {\n effect(() => {\n this.rdxToggleDirective.pressed.set(!!this.isPressed());\n this.rdxToggleDirective.disabledModel.set(this.isDisabled());\n\n this.rdxRovingFocusItemDirective.active = !!this.isPressed();\n });\n }\n\n /**\n * @ignore\n */\n toggle(): void {\n if (this.disabled()) {\n return;\n }\n\n this.rootContext.toggle(this.value());\n }\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, Directive, input, model, output, signal } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { provideValueAccessor } from '@radix-ng/primitives/core';\nimport { RdxToggleGroupToken } from './toggle-group.token';\n\nlet nextId = 0;\n\n@Directive({\n selector: '[rdxToggleGroupWithoutFocus]',\n exportAs: 'rdxToggleGroupWithoutFocus',\n providers: [\n { provide: RdxToggleGroupToken, useExisting: RdxToggleGroupWithoutFocusDirective },\n provideValueAccessor(RdxToggleGroupWithoutFocusDirective)\n ],\n host: {\n role: 'group',\n '(focusout)': 'onTouched?.()'\n }\n})\nexport class RdxToggleGroupWithoutFocusDirective implements ControlValueAccessor {\n /**\n * @ignore\n */\n readonly id: string = `rdx-toggle-group-${nextId++}`;\n\n /**\n * @group Props\n */\n readonly value = model<string | string[] | undefined>(undefined);\n\n /**\n * @group Props\n */\n readonly type = input<'single' | 'multiple'>('single');\n\n /**\n * Whether the toggle group is disabled.\n * @defaultValue false\n * @group Props\n */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Event emitted when the selected toggle button changes.\n * @group Emits\n */\n readonly onValueChange = output<string[] | string | undefined>();\n\n /**\n * The value change callback.\n */\n private onChange?: (value: string | string[] | undefined) => void;\n\n /**\n * onTouch function registered via registerOnTouch (ControlValueAccessor).\n */\n protected onTouched?: () => void;\n\n /**\n * Toggle a value.\n * @param value The value to toggle.\n * @ignore\n */\n toggle(value: string): void {\n if (this.disabled()) {\n return;\n }\n\n if (this.type() === 'single') {\n this.value.set(value);\n } else {\n this.value.set(\n ((currentValue) =>\n currentValue && Array.isArray(currentValue)\n ? currentValue.includes(value)\n ? currentValue.filter((v) => v !== value) // delete\n : [...currentValue, value] // update\n : [value])(this.value())\n );\n }\n\n this.onValueChange.emit(this.value());\n this.onChange?.(this.value());\n }\n\n /**\n * Select a value from Angular forms.\n * @param value The value to select.\n * @ignore\n */\n writeValue(value: string): void {\n this.value.set(value);\n }\n\n /**\n * Register a callback to be called when the value changes.\n * @param fn The callback to register.\n * @ignore\n */\n registerOnChange(fn: (value: string | string[] | undefined) => void): void {\n this.onChange = fn;\n }\n\n /**\n * Register a callback to be called when the toggle group is touched.\n * @param fn The callback to register.\n * @ignore\n */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n private readonly accessorDisabled = signal(false);\n\n /**\n * Set the disabled state of the toggle group.\n * @param isDisabled Whether the toggle group is disabled.\n * @ignore\n */\n setDisabledState(isDisabled: boolean): void {\n this.accessorDisabled.set(isDisabled);\n }\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, Directive, input, model, output, signal } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { provideToken, provideValueAccessor } from '@radix-ng/primitives/core';\nimport { RdxRovingFocusGroupDirective } from '@radix-ng/primitives/roving-focus';\nimport { RdxToggleGroupToken } from './toggle-group.token';\n\nlet nextId = 0;\n\n/**\n * @group Components\n */\n@Directive({\n selector: '[rdxToggleGroup]',\n exportAs: 'rdxToggleGroup',\n providers: [\n provideToken(RdxToggleGroupToken, RdxToggleGroupDirective),\n provideValueAccessor(RdxToggleGroupDirective)\n ],\n hostDirectives: [{ directive: RdxRovingFocusGroupDirective, inputs: ['dir', 'orientation', 'loop'] }],\n host: {\n role: 'group',\n\n '(focusout)': 'onTouched?.()'\n }\n})\nexport class RdxToggleGroupDirective implements ControlValueAccessor {\n /**\n * @ignore\n */\n readonly id: string = `rdx-toggle-group-${nextId++}`;\n\n /**\n * @group Props\n */\n readonly value = model<string | string[] | undefined>(undefined);\n\n /**\n * @group Props\n */\n readonly type = input<'single' | 'multiple'>('single');\n\n /**\n * Whether the toggle group is disabled.\n * @defaultValue false\n * @group Props\n */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Event emitted when the selected toggle button changes.\n * @group Emits\n */\n readonly onValueChange = output<string[] | string | undefined>();\n\n /**\n * The value change callback.\n */\n private onChange?: (value: string | string[] | undefined) => void;\n\n /**\n * onTouch function registered via registerOnTouch (ControlValueAccessor).\n */\n protected onTouched?: () => void;\n\n /**\n * Toggle a value.\n * @param value The value to toggle.\n * @ignore\n */\n toggle(value: string): void {\n if (this.disabled()) {\n return;\n }\n\n if (this.type() === 'single') {\n this.value.set(value);\n } else {\n this.value.set(\n ((currentValue) =>\n currentValue && Array.isArray(currentValue)\n ? currentValue.includes(value)\n ? currentValue.filter((v) => v !== value) // delete\n : [...currentValue, value] // update\n : [value])(this.value())\n );\n }\n\n this.onValueChange.emit(this.value());\n this.onChange?.(this.value());\n }\n\n /**\n * Select a value from Angular forms.\n * @param value The value to select.\n * @ignore\n */\n writeValue(value: string): void {\n this.value.set(value);\n }\n\n /**\n * Register a callback to be called when the value changes.\n * @param fn The callback to register.\n * @ignore\n */\n registerOnChange(fn: (value: string | string[] | undefined) => void): void {\n this.onChange = fn;\n }\n\n /**\n * Register a callback to be called when the toggle group is touched.\n * @param fn The callback to register.\n * @ignore\n */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n private readonly accessorDisabled = signal(false);\n /**\n * Set the disabled state of the toggle group.\n * @param isDisabled Whether the toggle group is disabled.\n * @ignore\n */\n setDisabledState(isDisabled: boolean): void {\n this.accessorDisabled.set(isDisabled);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["nextId"],"mappings":"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"}
1
+ {"version":3,"file":"radix-ng-primitives-toggle-group.mjs","sources":["../../../packages/primitives/toggle-group/src/toggle-group-item.token.ts","../../../packages/primitives/toggle-group/src/toggle-group.token.ts","../../../packages/primitives/toggle-group/src/toggle-group-item.directive.ts","../../../packages/primitives/toggle-group/src/toggle-group-without-focus.directive.ts","../../../packages/primitives/toggle-group/src/toggle-group.directive.ts","../../../packages/primitives/toggle-group/radix-ng-primitives-toggle-group.ts"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\nimport type { RdxToggleGroupItemDirective } from './toggle-group-item.directive';\n\nexport const RdxToggleGroupItemToken = new InjectionToken<RdxToggleGroupItemDirective>('RdxToggleGroupItemToken');\n\nexport function injectToggleGroupItem(): RdxToggleGroupItemDirective {\n return inject(RdxToggleGroupItemToken);\n}\n","import { inject, InjectionToken } from '@angular/core';\n\nexport interface IRdxToggleGroup {\n toggle(value: string): void;\n disabled: any;\n value: any;\n type: any;\n}\n\nexport const RdxToggleGroupToken = new InjectionToken<IRdxToggleGroup>('RdxToggleGroupToken');\n\nexport function injectToggleGroup(): IRdxToggleGroup {\n return inject(RdxToggleGroupToken);\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, computed, Directive, effect, inject, input } from '@angular/core';\nimport { RdxRovingFocusItemDirective } from '@radix-ng/primitives/roving-focus';\nimport { RdxToggleDirective } from '@radix-ng/primitives/toggle';\nimport { RdxToggleGroupItemToken } from './toggle-group-item.token';\nimport { injectToggleGroup } from './toggle-group.token';\n\n/**\n * @group Components\n */\n@Directive({\n selector: '[rdxToggleGroupItem]',\n exportAs: 'rdxToggleGroupItem',\n providers: [{ provide: RdxToggleGroupItemToken, useExisting: RdxToggleGroupItemDirective }],\n hostDirectives: [\n {\n directive: RdxRovingFocusItemDirective,\n inputs: ['focusable', 'active', 'allowShiftKey']\n },\n {\n directive: RdxToggleDirective,\n inputs: ['pressed', 'disabled']\n }\n ],\n host: {\n '(click)': 'toggle()'\n }\n})\nexport class RdxToggleGroupItemDirective {\n private readonly rdxToggleDirective = inject(RdxToggleDirective);\n\n private readonly rdxRovingFocusItemDirective = inject(RdxRovingFocusItemDirective);\n\n /**\n * Access the toggle group.\n * @ignore\n */\n protected readonly rootContext = injectToggleGroup();\n\n /**\n * The value of this toggle button.\n *\n * @group Props\n */\n readonly value = input.required<string>();\n\n /**\n * Whether this toggle button is disabled.\n * @defaultValue false\n * @group Props\n */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n private readonly isPressed = computed(() => {\n return this.rootContext.type() === 'single'\n ? this.rootContext.value() === this.value()\n : this.rootContext.value()?.includes(this.value());\n });\n\n private readonly isDisabled = computed(() => this.rootContext.disabled() || this.disabled());\n\n constructor() {\n effect(() => {\n this.rdxToggleDirective.pressed.set(!!this.isPressed());\n this.rdxToggleDirective.disabledModel.set(this.isDisabled());\n\n this.rdxRovingFocusItemDirective.active = !!this.isPressed();\n });\n }\n\n /**\n * @ignore\n */\n toggle(): void {\n if (this.disabled()) {\n return;\n }\n\n this.rootContext.toggle(this.value());\n }\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, Directive, input, model, output, signal } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { provideValueAccessor } from '@radix-ng/primitives/core';\nimport { RdxToggleGroupToken } from './toggle-group.token';\n\nlet nextId = 0;\n\n@Directive({\n selector: '[rdxToggleGroupWithoutFocus]',\n exportAs: 'rdxToggleGroupWithoutFocus',\n providers: [\n { provide: RdxToggleGroupToken, useExisting: RdxToggleGroupWithoutFocusDirective },\n provideValueAccessor(RdxToggleGroupWithoutFocusDirective)\n ],\n host: {\n role: 'group',\n '(focusout)': 'onTouched?.()'\n }\n})\nexport class RdxToggleGroupWithoutFocusDirective implements ControlValueAccessor {\n /**\n * @ignore\n */\n readonly id: string = `rdx-toggle-group-${nextId++}`;\n\n /**\n * @group Props\n */\n readonly value = model<string | string[] | undefined>(undefined);\n\n /**\n * @group Props\n */\n readonly type = input<'single' | 'multiple'>('single');\n\n /**\n * Whether the toggle group is disabled.\n * @defaultValue false\n * @group Props\n */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Event emitted when the selected toggle button changes.\n * @group Emits\n */\n readonly onValueChange = output<string[] | string | undefined>();\n\n /**\n * The value change callback.\n */\n private onChange?: (value: string | string[] | undefined) => void;\n\n /**\n * onTouch function registered via registerOnTouch (ControlValueAccessor).\n */\n protected onTouched?: () => void;\n\n /**\n * Toggle a value.\n * @param value The value to toggle.\n * @ignore\n */\n toggle(value: string): void {\n if (this.disabled()) {\n return;\n }\n\n if (this.type() === 'single') {\n this.value.set(value);\n } else {\n this.value.set(\n ((currentValue) =>\n currentValue && Array.isArray(currentValue)\n ? currentValue.includes(value)\n ? currentValue.filter((v) => v !== value) // delete\n : [...currentValue, value] // update\n : [value])(this.value())\n );\n }\n\n this.onValueChange.emit(this.value());\n this.onChange?.(this.value());\n }\n\n /**\n * Select a value from Angular forms.\n * @param value The value to select.\n * @ignore\n */\n writeValue(value: string): void {\n this.value.set(value);\n }\n\n /**\n * Register a callback to be called when the value changes.\n * @param fn The callback to register.\n * @ignore\n */\n registerOnChange(fn: (value: string | string[] | undefined) => void): void {\n this.onChange = fn;\n }\n\n /**\n * Register a callback to be called when the toggle group is touched.\n * @param fn The callback to register.\n * @ignore\n */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n private readonly accessorDisabled = signal(false);\n\n /**\n * Set the disabled state of the toggle group.\n * @param isDisabled Whether the toggle group is disabled.\n * @ignore\n */\n setDisabledState(isDisabled: boolean): void {\n this.accessorDisabled.set(isDisabled);\n }\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, Directive, input, model, output, signal } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport {\n AcceptableValue,\n isEqual,\n isValueEqualOrExist,\n provideToken,\n provideValueAccessor\n} from '@radix-ng/primitives/core';\nimport { RdxRovingFocusGroupDirective } from '@radix-ng/primitives/roving-focus';\nimport { RdxToggleGroupToken } from './toggle-group.token';\n\nlet nextId = 0;\n\n/**\n * @group Components\n */\n@Directive({\n selector: '[rdxToggleGroup]',\n exportAs: 'rdxToggleGroup',\n providers: [\n provideToken(RdxToggleGroupToken, RdxToggleGroupDirective),\n provideValueAccessor(RdxToggleGroupDirective)\n ],\n hostDirectives: [{ directive: RdxRovingFocusGroupDirective, inputs: ['dir', 'orientation', 'loop'] }],\n host: {\n role: 'group',\n\n '(focusout)': 'onTouched?.()'\n }\n})\nexport class RdxToggleGroupDirective implements ControlValueAccessor {\n /**\n * @ignore\n */\n readonly id: string = `rdx-toggle-group-${nextId++}`;\n\n /**\n * @group Props\n */\n readonly value = model<AcceptableValue | AcceptableValue[] | undefined>(undefined);\n\n /**\n * @group Props\n */\n readonly type = input<'single' | 'multiple'>('single');\n\n /**\n * Whether the toggle group is disabled.\n * @defaultValue false\n * @group Props\n */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Event emitted when the selected toggle button changes.\n * @group Emits\n */\n readonly onValueChange = output<AcceptableValue | AcceptableValue[] | undefined>();\n\n /**\n * The value change callback.\n */\n private onChange?: (value: AcceptableValue | AcceptableValue[] | undefined) => void;\n\n /**\n * onTouch function registered via registerOnTouch (ControlValueAccessor).\n */\n protected onTouched?: () => void;\n\n /**\n * Toggle a value.\n * @param value The value to toggle.\n * @ignore\n */\n toggle(value: AcceptableValue): void {\n if (this.disabled()) {\n return;\n }\n\n if (this.type() === 'single') {\n this.value.set(isEqual(value, this.value()) ? undefined : value);\n } else {\n const modelValueArray = Array.isArray(this.value())\n ? [...((this.value() as AcceptableValue[]) || [])]\n : [this.value()].filter(Boolean);\n if (isValueEqualOrExist(modelValueArray, value)) {\n const index = modelValueArray.findIndex((i) => isEqual(i, value));\n modelValueArray.splice(index, 1);\n } else {\n modelValueArray.push(value);\n }\n this.value.set(modelValueArray);\n }\n\n this.onValueChange.emit(this.value());\n this.onChange?.(this.value());\n }\n\n /**\n * Select a value from Angular forms.\n * @param value The value to select.\n * @ignore\n */\n writeValue(value: string): void {\n this.value.set(value);\n }\n\n /**\n * Register a callback to be called when the value changes.\n * @param fn The callback to register.\n * @ignore\n */\n registerOnChange(fn: (value: AcceptableValue | AcceptableValue[] | undefined) => void): void {\n this.onChange = fn;\n }\n\n /**\n * Register a callback to be called when the toggle group is touched.\n * @param fn The callback to register.\n * @ignore\n */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n private readonly accessorDisabled = signal(false);\n /**\n * Set the disabled state of the toggle group.\n * @param isDisabled Whether the toggle group is disabled.\n * @ignore\n */\n setDisabledState(isDisabled: boolean): void {\n this.accessorDisabled.set(isDisabled);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["nextId"],"mappings":"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"}
@@ -41,9 +41,13 @@ export declare class RdxHoverCardContentDirective implements OnInit {
41
41
  * @default false
42
42
  */
43
43
  readonly alternatePositionsDisabled: import("@angular/core").InputSignalWithTransform<boolean, BooleanInput>;
44
- /** @description Whether to prevent `onOverlayEscapeKeyDown` handler from calling. */
44
+ /** @description Whether to prevent `onOverlayEscapeKeyDown` handler from calling.
45
+ * @default false
46
+ */
45
47
  readonly onOverlayEscapeKeyDownDisabled: import("@angular/core").InputSignalWithTransform<boolean, BooleanInput>;
46
- /** @description Whether to prevent `onOverlayOutsideClick` handler from calling. */
48
+ /** @description Whether to prevent `onOverlayOutsideClick` handler from calling.
49
+ * @default false
50
+ */
47
51
  readonly onOverlayOutsideClickDisabled: import("@angular/core").InputSignalWithTransform<boolean, BooleanInput>;
48
52
  /**
49
53
  * @description Event handler called when the escape key is down.
@@ -12,7 +12,7 @@ export declare class RdxHoverCardRootDirective {
12
12
  /** @ignore */
13
13
  readonly name: import("@angular/core").Signal<string>;
14
14
  /**
15
- * @description The anchor directive that comes form outside the hover-card rootDirective
15
+ * @description The anchor directive that comes from outside the hover-card rootDirective
16
16
  * @default undefined
17
17
  */
18
18
  readonly anchor: import("@angular/core").InputSignal<RdxHoverCardAnchorDirective | undefined>;
@@ -22,20 +22,22 @@ export declare class RdxHoverCardRootDirective {
22
22
  */
23
23
  readonly defaultOpen: import("@angular/core").InputSignalWithTransform<boolean, BooleanInput>;
24
24
  /**
25
- * @description The controlled state of the hover-card. `open` input take precedence of `defaultOpen` input.
25
+ * @description The controlled state of the hover-card. `open` input takes precedence over `defaultOpen` input.
26
26
  * @default undefined
27
27
  */
28
28
  readonly open: import("@angular/core").InputSignalWithTransform<boolean | undefined, BooleanInput>;
29
29
  /**
30
- * To customise the open delay for a specific hover-card.
30
+ * @description The delay in milliseconds before the hover-card opens.
31
+ * @default 500
31
32
  */
32
33
  readonly openDelay: import("@angular/core").InputSignalWithTransform<number, NumberInput>;
33
34
  /**
34
- * To customise the close delay for a specific hover-card.
35
+ * @description The delay in milliseconds before the hover-card closes.
36
+ * @default 200
35
37
  */
36
38
  readonly closeDelay: import("@angular/core").InputSignalWithTransform<number, NumberInput>;
37
39
  /**
38
- * @description Whether to control the state of the hover-card from external. Use in conjunction with `open` input.
40
+ * @description Whether to control the state of the hover-card from outside. Use in conjunction with `open` input.
39
41
  * @default undefined
40
42
  */
41
43
  readonly externalControl: import("@angular/core").InputSignalWithTransform<boolean | undefined, BooleanInput>;
@@ -79,7 +81,7 @@ export declare class RdxHoverCardRootDirective {
79
81
  window: Window & typeof globalThis;
80
82
  primitiveConfigs?: import("./utils/types").PrimitiveConfigs;
81
83
  onDestroyCallbacks: Set<() => void>;
82
- "__#13531@#clickDomRootEventCallbacks": Set<(event: MouseEvent) => void>;
84
+ "__#14204@#clickDomRootEventCallbacks": Set<(event: MouseEvent) => void>;
83
85
  registerPrimitive<T extends object>(primitiveInstance: T): void;
84
86
  deregisterPrimitive<T extends object>(primitiveInstance: T): void;
85
87
  preventPrimitiveFromCdkEvent<T extends object>(primitiveInstance: T, eventType: import("./utils/types").EventType): void;
@@ -90,9 +92,9 @@ export declare class RdxHoverCardRootDirective {
90
92
  primitivePreventedFromCdkEvent<T extends object>(primitiveInstance: T, eventType: import("./utils/types").EventType): boolean | undefined;
91
93
  addClickDomRootEventCallback(callback: (event: MouseEvent) => void): void;
92
94
  removeClickDomRootEventCallback(callback: (event: MouseEvent) => void): boolean;
93
- "__#13531@#setPreventPrimitiveFromCdkEvent"<T extends object, R extends import("./utils/types").EventType, K extends import("./utils/types").PrimitiveConfig[`prevent${Capitalize<R>}`]>(primitiveInstance: T, eventType: R, value: K): void;
94
- "__#13531@#registerOnDestroyCallbacks"(): void;
95
- "__#13531@#listenToClickDomRootEvent"(): void;
95
+ "__#14204@#setPreventPrimitiveFromCdkEvent"<T extends object, R extends import("./utils/types").EventType, K extends import("./utils/types").PrimitiveConfig[`prevent${Capitalize<R>}`]>(primitiveInstance: T, eventType: R, value: K): void;
96
+ "__#14204@#registerOnDestroyCallbacks"(): void;
97
+ "__#14204@#listenToClickDomRootEvent"(): void;
96
98
  } | null;
97
99
  /** @ignore */
98
100
  readonly destroyRef: DestroyRef;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@radix-ng/primitives",
3
- "version": "0.39.2",
3
+ "version": "0.39.3",
4
4
  "license": "MIT",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -70,7 +70,7 @@ export declare class RdxPopoverRootDirective {
70
70
  window: Window & typeof globalThis;
71
71
  primitiveConfigs?: import("./utils/types").PrimitiveConfigs;
72
72
  onDestroyCallbacks: Set<() => void>;
73
- "__#17916@#clickDomRootEventCallbacks": Set<(event: MouseEvent) => void>;
73
+ "__#18581@#clickDomRootEventCallbacks": Set<(event: MouseEvent) => void>;
74
74
  registerPrimitive<T extends object>(primitiveInstance: T): void;
75
75
  deregisterPrimitive<T extends object>(primitiveInstance: T): void;
76
76
  preventPrimitiveFromCdkEvent<T extends object>(primitiveInstance: T, eventType: import("./utils/types").EventType): void;
@@ -81,9 +81,9 @@ export declare class RdxPopoverRootDirective {
81
81
  primitivePreventedFromCdkEvent<T extends object>(primitiveInstance: T, eventType: import("./utils/types").EventType): boolean | undefined;
82
82
  addClickDomRootEventCallback(callback: (event: MouseEvent) => void): void;
83
83
  removeClickDomRootEventCallback(callback: (event: MouseEvent) => void): boolean;
84
- "__#17916@#setPreventPrimitiveFromCdkEvent"<T extends object, R extends import("./utils/types").EventType, K extends import("./utils/types").PrimitiveConfig[`prevent${Capitalize<R>}`]>(primitiveInstance: T, eventType: R, value: K): void;
85
- "__#17916@#registerOnDestroyCallbacks"(): void;
86
- "__#17916@#listenToClickDomRootEvent"(): void;
84
+ "__#18581@#setPreventPrimitiveFromCdkEvent"<T extends object, R extends import("./utils/types").EventType, K extends import("./utils/types").PrimitiveConfig[`prevent${Capitalize<R>}`]>(primitiveInstance: T, eventType: R, value: K): void;
85
+ "__#18581@#registerOnDestroyCallbacks"(): void;
86
+ "__#18581@#listenToClickDomRootEvent"(): void;
87
87
  } | null;
88
88
  /** @ignore */
89
89
  readonly destroyRef: DestroyRef;
@@ -1,5 +1,6 @@
1
1
  import { BooleanInput } from '@angular/cdk/coercion';
2
2
  import { ControlValueAccessor } from '@angular/forms';
3
+ import { AcceptableValue } from '@radix-ng/primitives/core';
3
4
  import * as i0 from "@angular/core";
4
5
  import * as i1 from "@radix-ng/primitives/roving-focus";
5
6
  /**
@@ -13,7 +14,7 @@ export declare class RdxToggleGroupDirective implements ControlValueAccessor {
13
14
  /**
14
15
  * @group Props
15
16
  */
16
- readonly value: import("@angular/core").ModelSignal<string | string[] | undefined>;
17
+ readonly value: import("@angular/core").ModelSignal<AcceptableValue | AcceptableValue[] | undefined>;
17
18
  /**
18
19
  * @group Props
19
20
  */
@@ -28,7 +29,7 @@ export declare class RdxToggleGroupDirective implements ControlValueAccessor {
28
29
  * Event emitted when the selected toggle button changes.
29
30
  * @group Emits
30
31
  */
31
- readonly onValueChange: import("@angular/core").OutputEmitterRef<string | string[] | undefined>;
32
+ readonly onValueChange: import("@angular/core").OutputEmitterRef<AcceptableValue | AcceptableValue[] | undefined>;
32
33
  /**
33
34
  * The value change callback.
34
35
  */
@@ -42,7 +43,7 @@ export declare class RdxToggleGroupDirective implements ControlValueAccessor {
42
43
  * @param value The value to toggle.
43
44
  * @ignore
44
45
  */
45
- toggle(value: string): void;
46
+ toggle(value: AcceptableValue): void;
46
47
  /**
47
48
  * Select a value from Angular forms.
48
49
  * @param value The value to select.
@@ -54,7 +55,7 @@ export declare class RdxToggleGroupDirective implements ControlValueAccessor {
54
55
  * @param fn The callback to register.
55
56
  * @ignore
56
57
  */
57
- registerOnChange(fn: (value: string | string[] | undefined) => void): void;
58
+ registerOnChange(fn: (value: AcceptableValue | AcceptableValue[] | undefined) => void): void;
58
59
  /**
59
60
  * Register a callback to be called when the toggle group is touched.
60
61
  * @param fn The callback to register.