{"version":3,"file":"taiga-ui-addon-mobile-components-bottom-sheet.mjs","sources":["../../../projects/addon-mobile/components/bottom-sheet/bottom-sheet.component.ts","../../../projects/addon-mobile/components/bottom-sheet/bottom-sheet.template.html","../../../projects/addon-mobile/components/bottom-sheet/taiga-ui-addon-mobile-components-bottom-sheet.ts"],"sourcesContent":["import {NgForOf} from '@angular/common';\nimport type {ElementRef, QueryList} from '@angular/core';\nimport {\n    ChangeDetectionStrategy,\n    Component,\n    Input,\n    ViewChild,\n    ViewChildren,\n} from '@angular/core';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiHeaderOptionsProvider} from '@taiga-ui/layout/components/header';\n\nconst OPTIONS = {\n    duration: 20,\n    easing: 'ease-in',\n    fill: 'forwards',\n} as const;\n\n@Component({\n    standalone: true,\n    selector: 'tui-bottom-sheet',\n    imports: [NgForOf],\n    templateUrl: './bottom-sheet.template.html',\n    styleUrls: ['./bottom-sheet.style.less'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    providers: [tuiHeaderOptionsProvider({size: 'h5'})],\n    host: {\n        '[style.--t-start]': 'stops[0]',\n        '[style.scroll-snap-type]': 'stops.length > 1 ? \"y mandatory\" : null',\n        '(scroll.zoneless)': 'onScroll()',\n        '(resize)': 'onScroll()',\n    },\n})\nexport class TuiBottomSheet {\n    @ViewChildren('stops')\n    private readonly elements: QueryList<ElementRef<HTMLElement>> = EMPTY_QUERY;\n\n    @ViewChild('content')\n    private readonly content?: ElementRef<HTMLElement>;\n\n    private readonly el = tuiInjectElement();\n\n    @Input()\n    public stops: readonly string[] = ['1.5rem'];\n\n    protected onScroll(): void {\n        const {clientHeight, scrollTop, scrollHeight} = this.el;\n        const top = this.elements.get(0)?.nativeElement.clientHeight || 0;\n        const max = this.content?.nativeElement.clientHeight || Infinity;\n        const height = Math.min(clientHeight, max);\n        const scrolled = Math.min(scrollTop, height - top);\n        const transform = `translate3d(0, ${-1 * scrolled}px, 0)`;\n\n        this.el.style.setProperty('--t-height', `${scrollHeight}px`);\n        this.el.animate([{transform}], OPTIONS);\n    }\n}\n","<div\n    *ngFor=\"let stop of stops\"\n    #stops\n    class=\"t-stop\"\n    [style.top]=\"stop\"\n></div>\n<div\n    #content\n    class=\"t-content\"\n    (resize)=\"onScroll()\"\n>\n    <ng-content />\n</div>\n<div class=\"t-bottom\"></div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}