{"version":3,"file":"taiga-ui-layout-components-elastic-container.mjs","sources":["../../../projects/layout/components/elastic-container/elastic-container.directive.ts","../../../projects/layout/components/elastic-container/elastic-container.component.ts","../../../projects/layout/components/elastic-container/elastic-container.component.html","../../../projects/layout/components/elastic-container/taiga-ui-layout-components-elastic-container.ts"],"sourcesContent":["import {Directive, inject} from '@angular/core';\nimport {outputFromObservable} from '@angular/core/rxjs-interop';\nimport {\n    WA_MUTATION_OBSERVER_INIT,\n    WaMutationObserverService,\n} from '@ng-web-apis/mutation-observer';\nimport {WaResizeObserverService} from '@ng-web-apis/resize-observer';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {debounceTime, distinctUntilChanged, map, merge} from 'rxjs';\n\n@Directive({\n    selector: '[tuiElasticContainer]',\n    providers: [\n        WaResizeObserverService,\n        WaMutationObserverService,\n        {\n            provide: WA_MUTATION_OBSERVER_INIT,\n            useValue: {childList: true, characterData: true, subtree: true},\n        },\n    ],\n})\nexport class TuiElasticContainerDirective {\n    private readonly el = tuiInjectElement();\n\n    public readonly tuiElasticContainer = outputFromObservable(\n        merge(inject(WaResizeObserverService), inject(WaMutationObserverService)).pipe(\n            debounceTime(0),\n            map(() => this.el.clientHeight - 1),\n            distinctUntilChanged(),\n        ),\n    );\n}\n","import {ChangeDetectionStrategy, Component, signal} from '@angular/core';\nimport {tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {TuiElasticContainerDirective} from './elastic-container.directive';\n\n@Component({\n    selector: 'tui-elastic-container',\n    imports: [TuiElasticContainerDirective],\n    templateUrl: './elastic-container.component.html',\n    styleUrl: './elastic-container.component.less',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    host: {'[style.block-size]': 'transitions() ? \"auto\" : height()'},\n})\nexport class TuiElasticContainer {\n    protected readonly height = signal('');\n    protected readonly transitions = signal(0);\n\n    protected onAnimation(name: string, count: number): void {\n        if (name === 'height') {\n            this.transitions.update((value) => value + count);\n        }\n    }\n\n    protected updateHeight(height: number): void {\n        this.height.set(tuiPx(height));\n    }\n}\n","<div\n    class=\"t-wrapper\"\n    (transitioncancel)=\"onAnimation($any($event).propertyName, -1)\"\n    (transitionend)=\"onAnimation($any($event).propertyName, -1)\"\n    (transitionstart)=\"onAnimation($any($event).propertyName, 1)\"\n    (tuiElasticContainer)=\"updateHeight($event)\"\n>\n    <ng-content />\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}