UNPKG

@taiga-ui/kit

Version:
23 lines 4.78 kB
import { DOCUMENT } from '@angular/common'; import { ElementRef, InjectionToken } from '@angular/core'; import { identity, tuiCustomEvent, TuiDestroyService, TuiFocusVisibleService, typedFromEvent, } from '@taiga-ui/cdk'; import { MODE_PROVIDER, TuiRouterLinkActiveService } from '@taiga-ui/core'; import { EMPTY, merge } from 'rxjs'; import { filter, map } from 'rxjs/operators'; export const TUI_TAB_ACTIVATE = 'tui-tab-activate'; export const TUI_TAB_EVENT = new InjectionToken('Stream of tab activation events'); export const TUI_TAB_PROVIDERS = [ TuiDestroyService, TuiFocusVisibleService, TuiRouterLinkActiveService, { provide: TUI_TAB_EVENT, deps: [ElementRef, DOCUMENT, TuiRouterLinkActiveService], useFactory: tabActiveFactory, }, MODE_PROVIDER, ]; export function tabActiveFactory({ nativeElement }, documentRef, routerLinkActiveService) { return merge(routerLinkActiveService.pipe(filter(identity)), nativeElement.matches('button') ? typedFromEvent(nativeElement, 'click') : EMPTY).pipe(map(() => nativeElement.dispatchEvent(tuiCustomEvent(TUI_TAB_ACTIVATE, { bubbles: true }, documentRef)))); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLnByb3ZpZGVycy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9raXQvY29tcG9uZW50cy90YWJzLyIsInNvdXJjZXMiOlsidGFiL3RhYi5wcm92aWRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBQyxVQUFVLEVBQUUsY0FBYyxFQUFXLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFDSCxRQUFRLEVBQ1IsY0FBYyxFQUNkLGlCQUFpQixFQUNqQixzQkFBc0IsRUFDdEIsY0FBYyxHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsYUFBYSxFQUFFLDBCQUEwQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFDLEtBQUssRUFBRSxLQUFLLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxrQkFBa0IsQ0FBQztBQUNuRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxjQUFjLENBQzNDLGlDQUFpQyxDQUNwQyxDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQWU7SUFDekMsaUJBQWlCO0lBQ2pCLHNCQUFzQjtJQUN0QiwwQkFBMEI7SUFDMUI7UUFDSSxPQUFPLEVBQUUsYUFBYTtRQUN0QixJQUFJLEVBQUUsQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLDBCQUEwQixDQUFDO1FBQ3hELFVBQVUsRUFBRSxnQkFBZ0I7S0FDL0I7SUFDRCxhQUFhO0NBQ2hCLENBQUM7QUFFRixNQUFNLFVBQVUsZ0JBQWdCLENBQzVCLEVBQUMsYUFBYSxFQUEwQixFQUN4QyxXQUFxQixFQUNyQix1QkFBNEM7SUFFNUMsT0FBTyxLQUFLLENBQ1IsdUJBQXVCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUM5QyxhQUFhLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQ25GLENBQUMsSUFBSSxDQUNGLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FDTCxhQUFhLENBQUMsYUFBYSxDQUN2QixjQUFjLENBQUMsZ0JBQWdCLEVBQUUsRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFDLEVBQUUsV0FBVyxDQUFDLENBQ2pFLENBQ0osQ0FDSixDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RE9DVU1FTlR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0VsZW1lbnRSZWYsIEluamVjdGlvblRva2VuLCBQcm92aWRlcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIGlkZW50aXR5LFxuICAgIHR1aUN1c3RvbUV2ZW50LFxuICAgIFR1aURlc3Ryb3lTZXJ2aWNlLFxuICAgIFR1aUZvY3VzVmlzaWJsZVNlcnZpY2UsXG4gICAgdHlwZWRGcm9tRXZlbnQsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtNT0RFX1BST1ZJREVSLCBUdWlSb3V0ZXJMaW5rQWN0aXZlU2VydmljZX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtFTVBUWSwgbWVyZ2UsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtmaWx0ZXIsIG1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgY29uc3QgVFVJX1RBQl9BQ1RJVkFURSA9ICd0dWktdGFiLWFjdGl2YXRlJztcbmV4cG9ydCBjb25zdCBUVUlfVEFCX0VWRU5UID0gbmV3IEluamVjdGlvblRva2VuPE9ic2VydmFibGU8RXZlbnQ+PihcbiAgICAnU3RyZWFtIG9mIHRhYiBhY3RpdmF0aW9uIGV2ZW50cycsXG4pO1xuZXhwb3J0IGNvbnN0IFRVSV9UQUJfUFJPVklERVJTOiBQcm92aWRlcltdID0gW1xuICAgIFR1aURlc3Ryb3lTZXJ2aWNlLFxuICAgIFR1aUZvY3VzVmlzaWJsZVNlcnZpY2UsXG4gICAgVHVpUm91dGVyTGlua0FjdGl2ZVNlcnZpY2UsXG4gICAge1xuICAgICAgICBwcm92aWRlOiBUVUlfVEFCX0VWRU5ULFxuICAgICAgICBkZXBzOiBbRWxlbWVudFJlZiwgRE9DVU1FTlQsIFR1aVJvdXRlckxpbmtBY3RpdmVTZXJ2aWNlXSxcbiAgICAgICAgdXNlRmFjdG9yeTogdGFiQWN0aXZlRmFjdG9yeSxcbiAgICB9LFxuICAgIE1PREVfUFJPVklERVIsXG5dO1xuXG5leHBvcnQgZnVuY3Rpb24gdGFiQWN0aXZlRmFjdG9yeShcbiAgICB7bmF0aXZlRWxlbWVudH06IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIGRvY3VtZW50UmVmOiBEb2N1bWVudCxcbiAgICByb3V0ZXJMaW5rQWN0aXZlU2VydmljZTogT2JzZXJ2YWJsZTxib29sZWFuPixcbik6IE9ic2VydmFibGU8dW5rbm93bj4ge1xuICAgIHJldHVybiBtZXJnZShcbiAgICAgICAgcm91dGVyTGlua0FjdGl2ZVNlcnZpY2UucGlwZShmaWx0ZXIoaWRlbnRpdHkpKSxcbiAgICAgICAgbmF0aXZlRWxlbWVudC5tYXRjaGVzKCdidXR0b24nKSA/IHR5cGVkRnJvbUV2ZW50KG5hdGl2ZUVsZW1lbnQsICdjbGljaycpIDogRU1QVFksXG4gICAgKS5waXBlKFxuICAgICAgICBtYXAoKCkgPT5cbiAgICAgICAgICAgIG5hdGl2ZUVsZW1lbnQuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICAgICAgICB0dWlDdXN0b21FdmVudChUVUlfVEFCX0FDVElWQVRFLCB7YnViYmxlczogdHJ1ZX0sIGRvY3VtZW50UmVmKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICksXG4gICAgKTtcbn1cbiJdfQ==