{"version":3,"file":"taiga-ui-cdk-tokens.mjs","sources":["../../../projects/cdk/tokens/removed-element.ts","../../../projects/cdk/tokens/active-element.ts","../../../projects/cdk/tokens/fallback-value.ts","../../../projects/cdk/tokens/platform.ts","../../../projects/cdk/tokens/window-size.ts","../../../projects/cdk/tokens/taiga-ui-cdk-tokens.ts"],"sourcesContent":["import {inject, InjectionToken, RendererFactory2} from '@angular/core';\nimport {map, share, startWith, Subject, switchMap, timer} from 'rxjs';\n\n// TODO: Remove when fixed: https://issues.chromium.org/issues/41484175\nexport const TUI_REMOVED_ELEMENT = new InjectionToken(\n    ngDevMode ? 'TUI_REMOVED_ELEMENT' : '',\n    {\n        factory: () => {\n            const element$ = new Subject<Element | null>();\n            const renderer = inject(RendererFactory2).createRenderer(null, null);\n            const proto = Object.getPrototypeOf((renderer as any).delegate ?? renderer);\n            const {removeChild} = proto;\n\n            proto.removeChild = function (...args: any[]): void {\n                element$.next(args[1]);\n                removeChild.apply(this, args);\n            };\n\n            return element$.pipe(\n                startWith(null),\n                switchMap((element) =>\n                    timer(0).pipe(\n                        map(() => null),\n                        startWith(element),\n                    ),\n                ),\n                share(),\n            );\n        },\n    },\n);\n","import {DOCUMENT} from '@angular/common';\nimport {inject, InjectionToken, NgZone} from '@angular/core';\nimport {WA_WINDOW} from '@ng-web-apis/common';\nimport {tuiTypedFromEvent, tuiZonefreeScheduler} from '@taiga-ui/cdk/observables';\nimport {tuiGetActualTarget, tuiGetDocumentOrShadowRoot} from '@taiga-ui/cdk/utils/dom';\nimport {tuiIsFocusable} from '@taiga-ui/cdk/utils/focus';\nimport {\n    distinctUntilChanged,\n    filter,\n    map,\n    merge,\n    type Observable,\n    of,\n    repeat,\n    share,\n    startWith,\n    switchMap,\n    take,\n    takeUntil,\n    timer,\n    withLatestFrom,\n} from 'rxjs';\n\nimport {TUI_REMOVED_ELEMENT} from './removed-element';\n\n// Checks if focusout event should be considered leaving active zone\nfunction isValidFocusout(target: any, removedElement: Element | null = null): boolean {\n    return (\n        // Not due to switching tabs/going to DevTools\n        tuiGetDocumentOrShadowRoot(target).activeElement !== target &&\n        // Not due to button/input becoming disabled or under disabled fieldset\n        !target.matches(':disabled') &&\n        // Not due to element being removed from DOM\n        !removedElement?.contains(target) &&\n        // Not due to scrollable element became non-scrollable\n        (target.getAttribute('tabIndex') === '-1' || tuiIsFocusable(target))\n    );\n}\n\nfunction shadowRootActiveElement(root: Document): Observable<EventTarget | null> {\n    return merge(\n        tuiTypedFromEvent(root, 'focusin').pipe(map(({target}) => target)),\n        tuiTypedFromEvent(root, 'focusout').pipe(\n            filter(\n                ({target, relatedTarget}) => !!relatedTarget && isValidFocusout(target),\n            ),\n            map(({relatedTarget}) => relatedTarget),\n        ),\n    );\n}\n\n/**\n * Active element on the document for ActiveZone\n */\nexport const TUI_ACTIVE_ELEMENT = new InjectionToken<Observable<EventTarget | null>>(\n    ngDevMode ? 'TUI_ACTIVE_ELEMENT' : '',\n    {\n        factory: () => {\n            const removedElement$ = inject(TUI_REMOVED_ELEMENT);\n            const win = inject(WA_WINDOW);\n            const doc = inject(DOCUMENT);\n            const zone = inject(NgZone);\n            const focusout$ = tuiTypedFromEvent(win, 'focusout', {capture: true});\n            const focusin$ = tuiTypedFromEvent(win, 'focusin', {capture: true});\n            const blur$ = tuiTypedFromEvent(win, 'blur');\n            const mousedown$ = tuiTypedFromEvent(win, 'mousedown');\n            const mouseup$ = tuiTypedFromEvent(win, 'mouseup');\n\n            return merge(\n                focusout$.pipe(\n                    takeUntil(mousedown$),\n                    repeat({delay: () => mouseup$}),\n                    withLatestFrom(removedElement$),\n                    filter(([event, removedElement]) =>\n                        isValidFocusout(tuiGetActualTarget(event), removedElement),\n                    ),\n                    map(([{relatedTarget}]) => relatedTarget),\n                ),\n                blur$.pipe(\n                    map(() => doc.activeElement),\n                    filter((element) => !!element?.matches('iframe')),\n                ),\n                focusin$.pipe(\n                    switchMap((event) => {\n                        const target = tuiGetActualTarget(event);\n                        const root = tuiGetDocumentOrShadowRoot(target) || doc;\n\n                        return root === doc\n                            ? of(target)\n                            : shadowRootActiveElement(root as Document).pipe(\n                                  startWith(target),\n                              );\n                    }),\n                ),\n                mousedown$.pipe(\n                    switchMap((event) => {\n                        const actualTargetInCurrentTime = tuiGetActualTarget(event);\n\n                        return !doc.activeElement || doc.activeElement === doc.body\n                            ? of(actualTargetInCurrentTime)\n                            : focusout$.pipe(\n                                  take(1),\n                                  map(\n                                      /**\n                                       * Do not use `map(() => tuiGetActualTarget(event))`\n                                       * because we have different result in runtime\n                                       */\n                                      () => actualTargetInCurrentTime,\n                                  ),\n                                  takeUntil(timer(0, tuiZonefreeScheduler(zone))),\n                              );\n                    }),\n                ),\n            ).pipe(distinctUntilChanged(), share());\n        },\n    },\n);\n","import {InjectionToken, type ValueProvider} from '@angular/core';\n\nexport const TUI_FALLBACK_VALUE = new InjectionToken<any>(\n    ngDevMode ? 'TUI_FALLBACK_VALUE' : '',\n    {factory: () => null},\n);\n\nexport function tuiFallbackValueProvider<T>(useValue: T): ValueProvider {\n    return {\n        provide: TUI_FALLBACK_VALUE,\n        useValue,\n    };\n}\n","import {inject, InjectionToken} from '@angular/core';\nimport {WA_IS_ANDROID, WA_IS_IOS} from '@ng-web-apis/platform';\n\nexport const TUI_PLATFORM = new InjectionToken<'android' | 'ios' | 'web'>(\n    ngDevMode ? 'TUI_PLATFORM' : '',\n    {\n        factory: () => {\n            if (inject(WA_IS_IOS)) {\n                return 'ios';\n            }\n\n            return inject(WA_IS_ANDROID) ? 'android' : 'web';\n        },\n    },\n);\n","import {inject, InjectionToken} from '@angular/core';\nimport {toObservable} from '@angular/core/rxjs-interop';\nimport {WA_WINDOW} from '@ng-web-apis/common';\nimport {tuiWindowSize} from '@taiga-ui/cdk/utils/dom';\nimport {type Observable} from 'rxjs';\n\n/**\n * @deprecated: use {@link tuiWindowSize}\n */\nexport const TUI_WINDOW_SIZE = new InjectionToken<Observable<DOMRect>>(\n    ngDevMode ? 'TUI_WINDOW_SIZE' : '',\n    {factory: () => toObservable(tuiWindowSize(inject(WA_WINDOW)))},\n);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}