{"version":3,"file":"origin-ui-components-slider.mjs","sources":["../../../../packages/components/slider/src/slider.component.ts","../../../../packages/components/slider/origin-ui-components-slider.ts"],"sourcesContent":["import {\n    booleanAttribute,\n    ChangeDetectionStrategy,\n    Component,\n    EventEmitter,\n    inject,\n    Input,\n    NgZone,\n    OnDestroy,\n    Output,\n    signal\n} from '@angular/core';\nimport { OriTooltip, OriTooltipContent } from '@origin-ui/components/tooltip';\nimport { RdxSliderModule } from '@radix-ng/primitives/slider';\nimport { RdxTooltipModule } from '@radix-ng/primitives/tooltip';\n\ntype Orientation = 'horizontal' | 'vertical';\n\n@Component({\n    selector: 'ori-slider',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [RdxSliderModule, RdxTooltipModule, OriTooltipContent, OriTooltip],\n    styles: `\n        :host {\n        }\n    `,\n    template: `\n        <rdx-slider\n            [modelValue]=\"defaultValue\"\n            [step]=\"step\"\n            [min]=\"min\"\n            [max]=\"max\"\n            [orientation]=\"orientation\"\n            (valueChange)=\"handlerValueChange($event)\"\n            className=\"relative flex w-full touch-none select-none items-center data-[orientation=vertical]:h-full data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col data-[disabled]:opacity-50\"\n        >\n            <rdx-slider-track\n                class=\"bg-secondary relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-2 data-[orientation=vertical]:h-full data-[orientation=horizontal]:w-full data-[orientation=vertical]:w-2\"\n            >\n                <rdx-slider-range\n                    class=\"bg-primary absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full\"\n                />\n            </rdx-slider-track>\n\n            @for (item of defaultValue; track $index) {\n                @if (showTooltip) {\n                    <ng-container [open]=\"showTooltipState()\" oriTooltip>\n                        <rdx-slider-thumb\n                            class=\"border-primary bg-background focus-visible:outline-ring/40 block h-5 w-5 rounded-full border-2 transition-colors focus-visible:outline focus-visible:outline-[3px] data-[disabled]:cursor-not-allowed\"\n                            (pointerdown)=\"handlePointerDown()\"\n                            rdxTooltipTrigger\n                        />\n\n                        <ng-template [sideOffset]=\"4\" rdxTooltipContent>\n                            <div rdxTooltipContentAttributes>\n                                <ori-tooltip-content class=\"px-2 py-1 text-xs\">// TODO</ori-tooltip-content>\n                            </div>\n                        </ng-template>\n                    </ng-container>\n                } @else {\n                    <rdx-slider-thumb\n                        class=\"border-primary bg-background focus-visible:outline-ring/40 block h-5 w-5 rounded-full border-2 transition-colors focus-visible:outline focus-visible:outline-[3px] data-[disabled]:cursor-not-allowed\"\n                    />\n                }\n            }\n        </rdx-slider>\n    `\n})\nexport class OriSlider implements OnDestroy {\n    @Input() defaultValue: number[] = [];\n\n    @Input() min = 0;\n\n    @Input() max = 100;\n\n    @Input() step = 1;\n\n    @Input() orientation: Orientation = 'horizontal';\n\n    @Input({ transform: booleanAttribute }) showTooltip = false;\n\n    @Output() onValueChange: EventEmitter<any> = new EventEmitter();\n\n    readonly showTooltipState = signal(false);\n\n    private pointerUpListener = this.handlePointerUp.bind(this);\n\n    private readonly ngZone = inject(NgZone);\n\n    handlerValueChange($event: any) {\n        this.onValueChange.emit($event);\n    }\n\n    handlePointerDown() {\n        if (this.showTooltip) {\n            this.showTooltipState.set(true);\n\n            this.ngZone.runOutsideAngular(() => {\n                document.addEventListener('pointerup', this.pointerUpListener);\n            });\n        }\n    }\n\n    handlePointerUp() {\n        if (this.showTooltip) {\n            this.showTooltipState.set(false);\n\n            document.removeEventListener('pointerup', this.pointerUpListener);\n        }\n    }\n\n    ngOnDestroy(): void {\n        if (this.showTooltip) {\n            document.removeEventListener('pointerup', this.pointerUpListener);\n        }\n    }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}