@taiga-ui/kit
Version:
Taiga UI Angular main components kit
36 lines • 5.87 kB
JavaScript
import { DOCUMENT } from '@angular/common';
import { ChangeDetectorRef, ElementRef } from '@angular/core';
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { MutationObserverService, WA_MUTATION_OBSERVER_INIT, } from '@ng-web-apis/mutation-observer';
import { ResizeObserverService } from '@ng-web-apis/resize-observer';
import { tuiCreateToken } from '@taiga-ui/cdk/utils/miscellaneous';
import { tuiDropdownOptionsProvider } from '@taiga-ui/core/directives/dropdown';
import { debounceTime, filter, merge, startWith, tap } from 'rxjs';
export const TUI_TABS_REFRESH = tuiCreateToken();
export const TUI_TABS_PROVIDERS = [
ResizeObserverService,
MutationObserverService,
tuiDropdownOptionsProvider({ align: 'right' }),
{
provide: WA_MUTATION_OBSERVER_INIT,
useValue: {
childList: true,
subtree: true,
characterData: true,
},
},
{
provide: TUI_TABS_REFRESH,
deps: [
ResizeObserverService,
MutationObserverService,
DOCUMENT,
ElementRef,
ChangeDetectorRef,
],
useFactory: (resize$, mutations$, { body }, { nativeElement }, cdr) => merge(resize$, mutations$.pipe(tap(() => cdr.detectChanges()))).pipe(
// Ignoring cases when host is detached from DOM
filter(() => body.contains(nativeElement)), debounceTime(0), startWith(null), takeUntilDestroyed()),
},
];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5wcm92aWRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy90YWJzL3RhYnMucHJvdmlkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QyxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIseUJBQXlCLEdBQzVCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDbkUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ2pFLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBRTlFLE9BQU8sRUFBQyxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRWpFLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLGNBQWMsRUFBdUIsQ0FBQztBQUV0RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBZTtJQUMxQyxxQkFBcUI7SUFDckIsdUJBQXVCO0lBQ3ZCLDBCQUEwQixDQUFDLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBQyxDQUFDO0lBQzVDO1FBQ0ksT0FBTyxFQUFFLHlCQUF5QjtRQUNsQyxRQUFRLEVBQUU7WUFDTixTQUFTLEVBQUUsSUFBSTtZQUNmLE9BQU8sRUFBRSxJQUFJO1lBQ2IsYUFBYSxFQUFFLElBQUk7U0FDdEI7S0FDSjtJQUNEO1FBQ0ksT0FBTyxFQUFFLGdCQUFnQjtRQUN6QixJQUFJLEVBQUU7WUFDRixxQkFBcUI7WUFDckIsdUJBQXVCO1lBQ3ZCLFFBQVE7WUFDUixVQUFVO1lBQ1YsaUJBQWlCO1NBQ3BCO1FBQ0QsVUFBVSxFQUFFLENBQ1IsT0FBNEIsRUFDNUIsVUFBK0IsRUFDL0IsRUFBQyxJQUFJLEVBQVcsRUFDaEIsRUFBQyxhQUFhLEVBQW1CLEVBQ2pDLEdBQXNCLEVBQ0gsRUFBRSxDQUNyQixLQUFLLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO1FBQ2hFLGdEQUFnRDtRQUNoRCxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUMxQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQ2YsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUNmLGtCQUFrQixFQUFFLENBQ3ZCO0tBQ1I7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB0eXBlIHtQcm92aWRlcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NoYW5nZURldGVjdG9yUmVmLCBFbGVtZW50UmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dGFrZVVudGlsRGVzdHJveWVkfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge1xuICAgIE11dGF0aW9uT2JzZXJ2ZXJTZXJ2aWNlLFxuICAgIFdBX01VVEFUSU9OX09CU0VSVkVSX0lOSVQsXG59IGZyb20gJ0BuZy13ZWItYXBpcy9tdXRhdGlvbi1vYnNlcnZlcic7XG5pbXBvcnQge1Jlc2l6ZU9ic2VydmVyU2VydmljZX0gZnJvbSAnQG5nLXdlYi1hcGlzL3Jlc2l6ZS1vYnNlcnZlcic7XG5pbXBvcnQge3R1aUNyZWF0ZVRva2VufSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL21pc2NlbGxhbmVvdXMnO1xuaW1wb3J0IHt0dWlEcm9wZG93bk9wdGlvbnNQcm92aWRlcn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcy9kcm9wZG93bic7XG5pbXBvcnQgdHlwZSB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2RlYm91bmNlVGltZSwgZmlsdGVyLCBtZXJnZSwgc3RhcnRXaXRoLCB0YXB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgY29uc3QgVFVJX1RBQlNfUkVGUkVTSCA9IHR1aUNyZWF0ZVRva2VuPE9ic2VydmFibGU8dW5rbm93bj4+KCk7XG5cbmV4cG9ydCBjb25zdCBUVUlfVEFCU19QUk9WSURFUlM6IFByb3ZpZGVyW10gPSBbXG4gICAgUmVzaXplT2JzZXJ2ZXJTZXJ2aWNlLFxuICAgIE11dGF0aW9uT2JzZXJ2ZXJTZXJ2aWNlLFxuICAgIHR1aURyb3Bkb3duT3B0aW9uc1Byb3ZpZGVyKHthbGlnbjogJ3JpZ2h0J30pLFxuICAgIHtcbiAgICAgICAgcHJvdmlkZTogV0FfTVVUQVRJT05fT0JTRVJWRVJfSU5JVCxcbiAgICAgICAgdXNlVmFsdWU6IHtcbiAgICAgICAgICAgIGNoaWxkTGlzdDogdHJ1ZSxcbiAgICAgICAgICAgIHN1YnRyZWU6IHRydWUsXG4gICAgICAgICAgICBjaGFyYWN0ZXJEYXRhOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgICBwcm92aWRlOiBUVUlfVEFCU19SRUZSRVNILFxuICAgICAgICBkZXBzOiBbXG4gICAgICAgICAgICBSZXNpemVPYnNlcnZlclNlcnZpY2UsXG4gICAgICAgICAgICBNdXRhdGlvbk9ic2VydmVyU2VydmljZSxcbiAgICAgICAgICAgIERPQ1VNRU5ULFxuICAgICAgICAgICAgRWxlbWVudFJlZixcbiAgICAgICAgICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBdLFxuICAgICAgICB1c2VGYWN0b3J5OiAoXG4gICAgICAgICAgICByZXNpemUkOiBPYnNlcnZhYmxlPHVua25vd24+LFxuICAgICAgICAgICAgbXV0YXRpb25zJDogT2JzZXJ2YWJsZTx1bmtub3duPixcbiAgICAgICAgICAgIHtib2R5fTogRG9jdW1lbnQsXG4gICAgICAgICAgICB7bmF0aXZlRWxlbWVudH06IEVsZW1lbnRSZWY8Tm9kZT4sXG4gICAgICAgICAgICBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICApOiBPYnNlcnZhYmxlPHVua25vd24+ID0+XG4gICAgICAgICAgICBtZXJnZShyZXNpemUkLCBtdXRhdGlvbnMkLnBpcGUodGFwKCgpID0+IGNkci5kZXRlY3RDaGFuZ2VzKCkpKSkucGlwZShcbiAgICAgICAgICAgICAgICAvLyBJZ25vcmluZyBjYXNlcyB3aGVuIGhvc3QgaXMgZGV0YWNoZWQgZnJvbSBET01cbiAgICAgICAgICAgICAgICBmaWx0ZXIoKCkgPT4gYm9keS5jb250YWlucyhuYXRpdmVFbGVtZW50KSksXG4gICAgICAgICAgICAgICAgZGVib3VuY2VUaW1lKDApLFxuICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChudWxsKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgICAgICAgICAgICksXG4gICAgfSxcbl07XG4iXX0=