{"version":3,"file":"sixbell-telco-sdk-components-forms-range.mjs","sources":["../../../projects/sdk/components/forms/range/src/range.component.ts","../../../projects/sdk/components/forms/range/src/range.component.html","../../../projects/sdk/components/forms/range/sixbell-telco-sdk-components-forms-range.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ChangeDetectionStrategy, Component, computed, input, model, output } from '@angular/core';\nimport { ControlValueAccessor, FormControl, FormGroup, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { cn } from '@sixbell-telco/sdk/utils/cn';\nimport { cva } from 'class-variance-authority';\n\n/**\n * @internal\n * Generates base range slider classes with style variants\n */\nconst rangeComponent = cva(['range', 'grow', 'font-body', 'text-pretty', 'w-full'], {\n\tvariants: {\n\t\tvariant: {\n\t\t\tprimary: ['range-primary'],\n\t\t\tsecondary: ['range-secondary'],\n\t\t\ttertiary: ['range-tertiary'],\n\t\t\tsuccess: ['range-success'],\n\t\t\tinfo: ['range-info'],\n\t\t\terror: ['range-error'],\n\t\t\twarning: ['range-warning'],\n\t\t\taccent: ['range-accent'],\n\t\t},\n\t\tsize: {\n\t\t\txs: ['range-xs'],\n\t\t\tsm: ['range-sm'],\n\t\t\tmd: ['range-md'],\n\t\t\tlg: ['range-mlg'],\n\t\t\txl: ['range-xl'],\n\t\t},\n\t},\n\tcompoundVariants: [],\n\tdefaultVariants: {\n\t\tvariant: 'primary',\n\t\tsize: 'xs',\n\t},\n});\n\n/** Possible range slider color variants */\nexport type RangeVariantProps = 'primary' | 'secondary' | 'tertiary' | 'success' | 'info' | 'error' | 'warning' | 'accent' | null | undefined;\n\n/** Possible range slider size variants */\nexport type RangeSizeProps = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | null | undefined;\n\n/** Configuration object for range slider styling */\nexport type RangeProps = {\n\tvariant?: RangeVariantProps;\n\tsize?: RangeSizeProps;\n};\n\n/**\n * A customizable range slider component with form integration\n *\n * @remarks\n * Implements ControlValueAccessor for seamless Angular form integration.\n * Supports step markers and custom styling variants.\n *\n * @example\n * ```html\n * <!-- Basic usage -->\n * <st-range [(value)]=\"sliderValue\"></st-range>\n * ```\n *\n * @example\n * <!-- With form integration and steps -->\n * <st-range\n *   variant=\"accent\"\n *   size=\"lg\"\n *   label=\"Volume\"\n *   [min]=\"0\"\n *   [max]=\"100\"\n *   [steps]=\"4\"\n *   [parentForm]=\"audioForm\"\n *   formControlName=\"volume\"\n * ></st-range>\n * ```\n */\n@Component({\n\tselector: 'st-range',\n\ttemplateUrl: './range.component.html',\n\timports: [FormsModule, TranslatePipe],\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: RangeComponent,\n\t\t\tmulti: true,\n\t\t},\n\t],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RangeComponent implements ControlValueAccessor {\n\t/**\n\t * Range slider color variant\n\t * @defaultValue 'primary'\n\t */\n\tvariant = input<RangeVariantProps>('primary');\n\n\t/**\n\t * Range slider size variant\n\t * @defaultValue 'xs'\n\t */\n\tsize = input<RangeSizeProps>('xs');\n\n\t/**\n\t * Label text displayed with the range slider\n\t */\n\tlabel = input<string>('');\n\n\t/**\n\t * Whether to show optional indicator\n\t * @defaultValue false\n\t */\n\tshowOptional = input<boolean>(false);\n\n\t/**\n\t * Optional indicator text (translation key or literal)\n\t * @defaultValue 'sdk.formFields.optional'\n\t */\n\toptionalText = input<string>('sdk.formFields.optional');\n\n\t/**\n\t * HTML name attribute for the range slider\n\t */\n\tname = input<string | null>(null);\n\n\t/**\n\t * Minimum value of the range slider\n\t * @defaultValue 0\n\t */\n\tmin = input<number>(0);\n\n\t/**\n\t * Maximum value of the range slider\n\t * @defaultValue 100\n\t */\n\tmax = input<number>(100);\n\n\t/**\n\t * Whether to show min/max values\n\t * @defaultValue true\n\t */\n\tshowRange = input<boolean>(true);\n\n\t/**\n\t * Number of steps to display (0 for continuous)\n\t * @defaultValue 0\n\t */\n\tsteps = input<number>(0);\n\n\t/**\n\t * @internal\n\t * Computed array of step markers\n\t */\n\tstepsQuantity = computed(() => Array.from({ length: this.steps() + 1 }));\n\n\t/**\n\t * @internal\n\t * Computed size between steps\n\t */\n\tjumpSize = computed(() => (this.max() - this.min()) / this.steps());\n\n\t/**\n\t * Two-way bindable range value\n\t */\n\tvalue = model<number>(0);\n\n\t/**\n\t * Parent form group for reactive forms\n\t */\n\tparentForm = input<FormGroup | null>(null);\n\n\t/**\n\t * Form control name for reactive forms\n\t */\n\tformControlName = input<string>('');\n\n\t/**\n\t * @internal\n\t * Gets the associated FormControl instance\n\t */\n\tget formField(): FormControl | null {\n\t\tif (!this.parentForm()) return null;\n\t\treturn this.parentForm()?.get(this.formControlName()) as FormControl;\n\t}\n\n\t// ControlValueAccessor implementation\n\tprivate onControlChange: any = () => {};\n\tprivate onControlTouch: any = () => {};\n\n\t/**\n\t * Whether the range slider is disabled\n\t * @defaultValue false\n\t */\n\tdisabled = model<boolean>(false);\n\n\t/**\n\t * Event emitted when range value changes\n\t */\n\tvalueUpdated = output<number>();\n\n\t/**\n\t * Stop event propagation for activation events\n\t * @defaultValue false\n\t */\n\tstopPropagation = input<boolean>(false);\n\n\t/**\n\t * Event emitted on click\n\t */\n\tclicked = output<MouseEvent>();\n\n\t/**\n\t * Event emitted on pointer down\n\t */\n\tpointerDown = output<PointerEvent>();\n\n\t/**\n\t * Event emitted on activation (click or keyboard)\n\t */\n\ttriggered = output<void>();\n\n\t/**\n\t * @internal\n\t * Computed class string for the range slider\n\t */\n\tcomponentClass = computed(() =>\n\t\tcn(\n\t\t\trangeComponent({\n\t\t\t\tvariant: this.variant(),\n\t\t\t\tsize: this.size(),\n\t\t\t}),\n\t\t),\n\t);\n\n\t// ControlValueAccessor methods\n\twriteValue(obj: any): void {\n\t\tthis.value.set(obj);\n\t}\n\n\tregisterOnChange(fn: any): void {\n\t\tthis.onControlChange = fn;\n\t}\n\n\tregisterOnTouched(fn: any): void {\n\t\tthis.onControlTouch = fn;\n\t}\n\n\tsetDisabledState(isDisabled: boolean): void {\n\t\tthis.disabled.set(isDisabled);\n\t}\n\n\t/**\n\t * @internal\n\t * Handles range value changes\n\t */\n\thandleChange() {\n\t\tthis.onControlChange(this.value());\n\t\tthis.valueUpdated.emit(this.value());\n\t}\n\n\t/**\n\t * @internal\n\t * Handles click activation\n\t */\n\thandleClick(event: MouseEvent): void {\n\t\tif (this.disabled()) return;\n\t\tif (this.stopPropagation()) {\n\t\t\tevent.stopPropagation();\n\t\t}\n\t\tthis.clicked.emit(event);\n\t\tthis.triggered.emit();\n\t}\n\n\t/**\n\t * @internal\n\t * Handles pointer down activation\n\t */\n\thandlePointerDown(event: PointerEvent): void {\n\t\tif (this.disabled()) return;\n\t\tif (this.stopPropagation()) {\n\t\t\tevent.stopPropagation();\n\t\t}\n\t\tthis.pointerDown.emit(event);\n\t}\n}\n","@if (label()) {\n\t<legend class=\"fieldset-legend font-body w-full items-center justify-between gap-2 pt-0 font-normal text-pretty\">\n\t\t<span>{{ label() }}</span>\n\t\t@if (showOptional()) {\n\t\t\t<span class=\"label font-body text-xs font-normal\">{{ optionalText() | translate }}</span>\n\t\t}\n\t</legend>\n}\n\n<div class=\"font-body w-full text-pretty\">\n\t<input\n\t\t[class]=\"componentClass()\"\n\t\t[attr.name]=\"name()\"\n\t\ttype=\"range\"\n\t\t[min]=\"min()\"\n\t\t[max]=\"max()\"\n\t\t[step]=\"jumpSize()\"\n\t\t[value]=\"value()\"\n\t\t[(ngModel)]=\"value\"\n\t\t[disabled]=\"disabled()\"\n\t\t(ngModelChange)=\"handleChange()\"\n\t\t(click)=\"handleClick($event)\"\n\t\t(pointerdown)=\"handlePointerDown($event)\"\n\t/>\n\t@if (steps() > 0 && !showRange()) {\n\t\t<div class=\"mt-2 flex justify-between px-2.5 text-xs\">\n\t\t\t@for (step of stepsQuantity(); track $index) {\n\t\t\t\t<span>|</span>\n\t\t\t}\n\t\t</div>\n\t}\n\n\t@if (showRange() && steps() <= 0) {\n\t\t<div class=\"mt-2 flex justify-between px-2.5 text-xs\">\n\t\t\t<span>{{ min() }}</span>\n\t\t\t<span>{{ max() }}</span>\n\t\t</div>\n\t}\n\n\t@if (showRange() && steps() > 0) {\n\t\t<div class=\"mt-2 flex justify-between px-2.5 text-xs\">\n\t\t\t<span>{{ min() }}</span>\n\t\t\t@for (step of stepsQuantity(); track $index) {\n\t\t\t\t<span>|</span>\n\t\t\t}\n\t\t\t<span>{{ max() }}</span>\n\t\t</div>\n\t}\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}