@taiga-ui/cdk 3.54.0-canary.e1ba43c → 3.55.0-canary.3cc37e7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/bundles/taiga-ui-cdk-components-dialog-host.umd.js +2 -2
  2. package/bundles/taiga-ui-cdk-components-dialog-host.umd.js.map +1 -1
  3. package/bundles/taiga-ui-cdk-components-scroll-controls.umd.js +10 -10
  4. package/bundles/taiga-ui-cdk-components-scroll-controls.umd.js.map +1 -1
  5. package/bundles/taiga-ui-cdk-constants.umd.js +75 -75
  6. package/bundles/taiga-ui-cdk-constants.umd.js.map +1 -1
  7. package/bundles/taiga-ui-cdk-date-time.umd.js +2 -4
  8. package/bundles/taiga-ui-cdk-date-time.umd.js.map +1 -1
  9. package/bundles/taiga-ui-cdk-decorators.umd.js +12 -12
  10. package/bundles/taiga-ui-cdk-decorators.umd.js.map +1 -1
  11. package/bundles/taiga-ui-cdk-services.umd.js +10 -10
  12. package/bundles/taiga-ui-cdk-services.umd.js.map +1 -1
  13. package/bundles/taiga-ui-cdk-tokens.umd.js +23 -23
  14. package/bundles/taiga-ui-cdk-tokens.umd.js.map +1 -1
  15. package/bundles/taiga-ui-cdk-utils-color.umd.js +12 -12
  16. package/bundles/taiga-ui-cdk-utils-color.umd.js.map +1 -1
  17. package/bundles/taiga-ui-cdk-utils-dom.umd.js +5 -5
  18. package/bundles/taiga-ui-cdk-utils-dom.umd.js.map +1 -1
  19. package/bundles/taiga-ui-cdk-utils-math.umd.js +16 -16
  20. package/bundles/taiga-ui-cdk-utils-math.umd.js.map +1 -1
  21. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.js +3 -3
  22. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.js.map +1 -1
  23. package/bundles/taiga-ui-cdk-utils-svg.umd.js +23 -23
  24. package/bundles/taiga-ui-cdk-utils-svg.umd.js.map +1 -1
  25. package/constants/version.d.ts +1 -1
  26. package/constants/version.js +1 -1
  27. package/esm2015/components/dialog-host/dialog-host.component.js +3 -3
  28. package/esm2015/components/scroll-controls/scrollbar.directive.js +7 -7
  29. package/esm2015/constants/empty.js +9 -9
  30. package/esm2015/constants/matcher.js +4 -4
  31. package/esm2015/constants/used-icons.js +64 -64
  32. package/esm2015/constants/version.js +2 -2
  33. package/esm2015/date-time/day-range.js +2 -4
  34. package/esm2015/date-time/day.js +2 -2
  35. package/esm2015/decorators/default-prop.js +10 -10
  36. package/esm2015/decorators/required-setter.js +4 -4
  37. package/esm2015/services/scroll.service.js +11 -11
  38. package/esm2015/tokens/active-element.js +14 -14
  39. package/esm2015/utils/color/hex-to-rgba.js +9 -9
  40. package/esm2015/utils/color/hsv-to-rgb.js +5 -5
  41. package/esm2015/utils/dom/can-scroll.js +6 -6
  42. package/esm2015/utils/math/round.js +13 -13
  43. package/esm2015/utils/miscellaneous/clean-object.js +4 -4
  44. package/esm2015/utils/svg/svg-linear-gradient-processor.js +24 -24
  45. package/fesm2015/taiga-ui-cdk-components-dialog-host.js +2 -2
  46. package/fesm2015/taiga-ui-cdk-components-dialog-host.js.map +1 -1
  47. package/fesm2015/taiga-ui-cdk-components-scroll-controls.js +6 -6
  48. package/fesm2015/taiga-ui-cdk-components-scroll-controls.js.map +1 -1
  49. package/fesm2015/taiga-ui-cdk-constants.js +75 -75
  50. package/fesm2015/taiga-ui-cdk-constants.js.map +1 -1
  51. package/fesm2015/taiga-ui-cdk-date-time.js +2 -4
  52. package/fesm2015/taiga-ui-cdk-date-time.js.map +1 -1
  53. package/fesm2015/taiga-ui-cdk-decorators.js +12 -12
  54. package/fesm2015/taiga-ui-cdk-decorators.js.map +1 -1
  55. package/fesm2015/taiga-ui-cdk-services.js +10 -10
  56. package/fesm2015/taiga-ui-cdk-services.js.map +1 -1
  57. package/fesm2015/taiga-ui-cdk-tokens.js +15 -15
  58. package/fesm2015/taiga-ui-cdk-tokens.js.map +1 -1
  59. package/fesm2015/taiga-ui-cdk-utils-color.js +12 -12
  60. package/fesm2015/taiga-ui-cdk-utils-color.js.map +1 -1
  61. package/fesm2015/taiga-ui-cdk-utils-dom.js +5 -5
  62. package/fesm2015/taiga-ui-cdk-utils-dom.js.map +1 -1
  63. package/fesm2015/taiga-ui-cdk-utils-math.js +12 -12
  64. package/fesm2015/taiga-ui-cdk-utils-math.js.map +1 -1
  65. package/fesm2015/taiga-ui-cdk-utils-miscellaneous.js +3 -3
  66. package/fesm2015/taiga-ui-cdk-utils-miscellaneous.js.map +1 -1
  67. package/fesm2015/taiga-ui-cdk-utils-svg.js +23 -23
  68. package/fesm2015/taiga-ui-cdk-utils-svg.js.map +1 -1
  69. package/package.json +1 -1
  70. package/schematics/ng-add/index.js +10 -10
  71. package/schematics/ng-add/steps/add-taiga-modules.js +32 -32
  72. package/schematics/ng-add/steps/wrap-with-tui-root.js +21 -21
  73. package/schematics/ng-update/steps/rename-types.js +8 -8
  74. package/schematics/ng-update/steps/replace-enums.js +8 -8
  75. package/schematics/ng-update/steps/replace-services.js +8 -8
  76. package/schematics/ng-update/steps/show-warnings.js +4 -4
  77. package/schematics/ng-update/v3/index.js +17 -17
  78. package/schematics/ng-update/v3/steps/migrate-date-time.js +92 -92
  79. package/schematics/ng-update/v3/steps/migrate-polymorpheus.js +35 -35
  80. package/schematics/ng-update/v3/steps/migrate-progress.d.ts +4 -0
  81. package/schematics/ng-update/v3/steps/migrate-progress.js +15 -13
  82. package/schematics/ng-update/v3/steps/migrate-sliders/migrate-input-range.js +44 -44
  83. package/schematics/ng-update/v3/steps/migrate-sliders/migrate-input-slider.js +28 -28
  84. package/schematics/ng-update/v3/steps/migrate-templates.js +37 -36
  85. package/schematics/ng-update/v3/steps/migrate-textfield-controller.js +21 -21
  86. package/schematics/ng-update/v3/steps/miscellaneous.js +32 -32
  87. package/schematics/ng-update/v3/steps/replace-functions.js +18 -18
  88. package/schematics/ng-update/v3-30/index.js +3 -3
  89. package/schematics/ng-update/v3-35/index.js +3 -3
  90. package/schematics/ng-update/v3-40/index.js +9 -9
  91. package/schematics/ng-update/v3-5/steps/migrate-expand-templates.js +17 -17
  92. package/schematics/ng-update/v4/index.js +12 -12
  93. package/schematics/ng-update/v4/steps/migrate-templates.js +3 -3
  94. package/schematics/ng-update/v4/steps/restore-tui-mapper.js +6 -6
  95. package/schematics/ng-update/v4/steps/restore-tui-matcher.js +6 -6
  96. package/schematics/ng-update/v4/steps/templates/migrate-avatar.js +24 -24
  97. package/schematics/utils/angular-json-manipulations.js +8 -8
  98. package/schematics/utils/templates/get-component-templates.js +8 -8
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-services.js","sources":["../../../projects/cdk/services/destroy.service.ts","../../../projects/cdk/services/directive-styles.service.ts","../../../projects/cdk/services/focus-visible.service.ts","../../../projects/cdk/services/id.service.ts","../../../projects/cdk/services/parents-scroll.service.ts","../../../projects/cdk/services/obscured.service.ts","../../../projects/cdk/services/pan.service.ts","../../../projects/cdk/services/resize.service.ts","../../../projects/cdk/services/scroll.service.ts","../../../projects/cdk/services/static-request.service.ts","../../../projects/cdk/services/swipe.service.ts","../../../projects/cdk/services/zoom.service.ts","../../../projects/cdk/services/taiga-ui-cdk-services.ts"],"sourcesContent":["import {Injectable, OnDestroy} from '@angular/core';\nimport {ReplaySubject} from 'rxjs';\n\n/**\n * @note:\n * Observable abstraction over ngOnDestroy to use with takeUntil\n *\n * Why we use `ReplaySubject` instead of `Subject`?\n * Well, we’ll use ReplaySubject to emit the last message in case\n * the subscription is ended after the component is destroyed.\n */\n@Injectable()\nexport class TuiDestroyService extends ReplaySubject<void> implements OnDestroy {\n constructor() {\n super(1);\n }\n\n ngOnDestroy(): void {\n this.next();\n this.complete();\n }\n}\n","import {\n ComponentFactoryResolver,\n Inject,\n Injectable,\n INJECTOR,\n Injector,\n Type,\n} from '@angular/core';\n\n/**\n * Service to use styles with directives\n */\n@Injectable({\n providedIn: `root`,\n})\nexport class TuiDirectiveStylesService {\n private readonly map = new Map<Type<unknown>, unknown>();\n\n constructor(\n @Inject(ComponentFactoryResolver)\n private readonly resolver: ComponentFactoryResolver,\n @Inject(INJECTOR) private readonly injector: Injector,\n ) {}\n\n addComponent(component: Type<unknown>): void {\n if (!this.map.has(component)) {\n this.map.set(\n component,\n this.resolver.resolveComponentFactory(component).create(this.injector),\n );\n }\n }\n}\n","import {ChangeDetectorRef, ElementRef, Inject, Injectable, Self} from '@angular/core';\nimport {tuiFocusVisibleObservable, tuiWatch} from '@taiga-ui/cdk/observables';\nimport {Observable} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\nimport {TuiDestroyService} from './destroy.service';\n\n/**\n * Service to imitate :focus-visible\n * (https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible)\n * in browsers that do not support it\n */\n@Injectable()\nexport class TuiFocusVisibleService extends Observable<boolean> {\n private readonly focusVisible$: Observable<boolean>;\n\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(ChangeDetectorRef) cdr: ChangeDetectorRef,\n @Self() @Inject(TuiDestroyService) destroy$: Observable<void>,\n ) {\n super(subscriber => this.focusVisible$.subscribe(subscriber));\n\n this.focusVisible$ = tuiFocusVisibleObservable(nativeElement).pipe(\n tuiWatch(cdr),\n takeUntil(destroy$),\n );\n }\n}\n","import {Injectable} from '@angular/core';\n\nconst TUI = `tui_`;\n\n/**\n * Generates unique ids\n */\n@Injectable({\n providedIn: `root`,\n})\nexport class TuiIdService {\n private static autoId = 0;\n\n generate(): string {\n return `${TUI}${TuiIdService.autoId++}${Date.now()}`;\n }\n}\n","import {ElementRef, Inject, Injectable} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {defer, merge, Observable} from 'rxjs';\n\n/**\n * Service that subscribes to scroll events of all parent elements\n */\n@Injectable()\nexport class TuiParentsScrollService extends Observable<Event> {\n private readonly callback$: Observable<Event>;\n\n constructor(\n // Destructuring here causes memory leak\n @Inject(ElementRef) el: ElementRef<Element>,\n @Inject(WINDOW) win: Window,\n ) {\n super(subscriber => this.callback$.subscribe(subscriber));\n\n this.callback$ = defer(() => {\n let {nativeElement} = el;\n const eventTargets: Array<Element | Window> = [win, nativeElement];\n\n while (nativeElement.parentElement) {\n nativeElement = nativeElement.parentElement;\n eventTargets.push(nativeElement);\n }\n\n return merge(\n ...eventTargets.map<Observable<Event>>(element =>\n tuiTypedFromEvent(element, `scroll`),\n ),\n );\n });\n }\n}\n","import {ElementRef, Inject, Injectable, NgZone, Self} from '@angular/core';\nimport {ANIMATION_FRAME, WINDOW} from '@ng-web-apis/common';\nimport {POLLING_TIME} from '@taiga-ui/cdk/constants';\nimport {tuiZoneOptimized} from '@taiga-ui/cdk/observables';\nimport {tuiGetElementObscures} from '@taiga-ui/cdk/utils/dom';\nimport {fromEvent, merge, Observable} from 'rxjs';\nimport {\n delay,\n distinctUntilChanged,\n map,\n startWith,\n takeUntil,\n throttleTime,\n} from 'rxjs/operators';\n\nimport {TuiDestroyService} from './destroy.service';\nimport {TuiParentsScrollService} from './parents-scroll.service';\n\n// @bad TODO: Consider Intersection Observer with fallback to current implementation\n/**\n * Service that monitors element visibility by subscribing to scrolls\n * and polling with set interval, returns either null or an array\n * of elements that overlap given element edges\n */\n@Injectable()\nexport class TuiObscuredService extends Observable<readonly Element[] | null> {\n private readonly obscured$: Observable<readonly Element[] | null>;\n\n constructor(\n @Inject(TuiParentsScrollService)\n @Self()\n parentsScroll$: TuiParentsScrollService,\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(NgZone) zone: NgZone,\n @Inject(WINDOW) win: Window,\n @Self() @Inject(TuiDestroyService) destroy$: Observable<void>,\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n ) {\n super(subscriber => this.obscured$.subscribe(subscriber));\n\n this.obscured$ = merge(\n // delay is added so it will not interfere with other listeners\n merge(parentsScroll$, fromEvent(win, `resize`)).pipe(delay(0)),\n animationFrame$.pipe(throttleTime(POLLING_TIME)),\n ).pipe(\n map(() => tuiGetElementObscures(nativeElement)),\n startWith(null),\n distinctUntilChanged(),\n tuiZoneOptimized(zone),\n takeUntil(destroy$),\n );\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {ElementRef, Inject, Injectable} from '@angular/core';\nimport {tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, pairwise, repeat, switchMap, takeUntil} from 'rxjs/operators';\n\n@Injectable()\nexport class TuiPanService extends Observable<readonly [number, number]> {\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(DOCUMENT) doc: Document,\n ) {\n super(subscriber => {\n merge(\n tuiTypedFromEvent(nativeElement, `touchstart`, {passive: true}),\n tuiTypedFromEvent(nativeElement, `mousedown`),\n )\n .pipe(\n switchMap(() =>\n merge(\n tuiTypedFromEvent(doc, `touchmove`, {\n passive: true,\n }).pipe(\n filter(({touches}) => touches.length < 2),\n map(({touches}) => touches[0]),\n ),\n tuiTypedFromEvent(doc, `mousemove`),\n ),\n ),\n pairwise(),\n map(([first, second]) => {\n const deltaX = second.clientX - first.clientX;\n const deltaY = second.clientY - first.clientY;\n\n return [deltaX, deltaY] as [number, number];\n }),\n // eslint-disable-next-line rxjs/no-unsafe-takeuntil\n takeUntil(\n merge(\n tuiTypedFromEvent(doc, `touchend`),\n tuiTypedFromEvent(doc, `mouseup`),\n ),\n ),\n repeat(),\n )\n .subscribe(subscriber);\n });\n }\n}\n","import {ElementRef, Inject, Injectable, NgZone, Self} from '@angular/core';\nimport {ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {\n RESIZE_OBSERVER_SUPPORT,\n RESIZE_OPTION_BOX,\n ResizeObserverService,\n} from '@ng-web-apis/resize-observer';\nimport {EMPTY_ARRAY, POLLING_TIME} from '@taiga-ui/cdk/constants';\nimport {tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {Observable} from 'rxjs';\nimport {\n catchError,\n debounceTime,\n distinctUntilChanged,\n map,\n share,\n takeUntil,\n throttleTime,\n} from 'rxjs/operators';\n\nimport {TuiDestroyService} from './destroy.service';\n\n// TODO: Remove in 4.0 when Safari is bumped to 13\n@Injectable()\nexport class TuiResizeService extends ResizeObserverService {\n constructor(\n @Inject(ElementRef) el: ElementRef<HTMLElement>,\n @Inject(NgZone) zone: NgZone,\n @Self() @Inject(TuiDestroyService) destroy$: Observable<void>,\n @Inject(RESIZE_OBSERVER_SUPPORT) support: boolean,\n @Inject(RESIZE_OPTION_BOX) box: ResizeObserverBoxOptions,\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n ) {\n super(el, zone, support, box);\n\n return this.pipe(\n catchError(() =>\n /**\n * @note: if not supported ResizeObserver\n * remove `catchError` after supports modern browsers\n */\n animationFrame$.pipe(\n throttleTime(POLLING_TIME),\n map(\n () =>\n `${el.nativeElement.clientWidth} ${el.nativeElement.clientHeight}`,\n ),\n distinctUntilChanged(),\n map(() => EMPTY_ARRAY),\n ),\n ),\n debounceTime(0),\n tuiZonefree(zone),\n share(),\n takeUntil(destroy$),\n );\n }\n}\n","import {Inject, Injectable} from '@angular/core';\nimport {ANIMATION_FRAME, PERFORMANCE} from '@ng-web-apis/common';\nimport {tuiAssert} from '@taiga-ui/cdk/classes';\nimport {tuiClamp} from '@taiga-ui/cdk/utils/math';\nimport {tuiEaseInOutQuad} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {defer, Observable, of, timer} from 'rxjs';\nimport {endWith, map, switchMap, takeUntil, tap} from 'rxjs/operators';\n\nconst SCROLL_TIME = 300;\n\n@Injectable({\n providedIn: `root`,\n})\nexport class TuiScrollService {\n constructor(\n @Inject(PERFORMANCE) private readonly performanceRef: Performance,\n @Inject(ANIMATION_FRAME) private readonly animationFrame$: Observable<number>,\n ) {}\n\n scroll$(\n elementOrWindow: Element | Window,\n scrollTop: number,\n scrollLeft: number = getX(elementOrWindow),\n duration: number = SCROLL_TIME,\n ): Observable<[number, number]> {\n ngDevMode && tuiAssert.assert(duration >= 0, `Duration cannot be negative`);\n ngDevMode && tuiAssert.assert(scrollTop >= 0, `scrollTop cannot be negative`);\n ngDevMode && tuiAssert.assert(scrollLeft >= 0, `scrollLeft cannot be negative`);\n\n const initialTop = getY(elementOrWindow);\n const initialLeft = getX(elementOrWindow);\n const deltaTop = scrollTop - initialTop;\n const deltaLeft = scrollLeft - initialLeft;\n const observable = !duration\n ? of<[number, number]>([scrollTop, scrollLeft])\n : defer(() => of(this.performanceRef.now())).pipe(\n switchMap(start => this.animationFrame$.pipe(map(now => now - start))),\n map(elapsed => tuiEaseInOutQuad(tuiClamp(elapsed / duration, 0, 1))),\n map<number, [number, number]>(percent => [\n initialTop + deltaTop * percent,\n initialLeft + deltaLeft * percent,\n ]),\n endWith<[number, number]>([scrollTop, scrollLeft]),\n takeUntil(timer(duration)),\n );\n\n return observable.pipe(\n tap(([scrollTop, scrollLeft]) => {\n elementOrWindow.scrollTo?.(scrollLeft, scrollTop);\n }),\n );\n }\n}\n\nfunction getX(elementOrWindow: Element | Window): number {\n return `scrollX` in elementOrWindow\n ? elementOrWindow.scrollX\n : elementOrWindow.scrollLeft;\n}\n\nfunction getY(elementOrWindow: Element | Window): number {\n return `scrollY` in elementOrWindow\n ? elementOrWindow.scrollY\n : elementOrWindow.scrollTop;\n}\n","import {isPlatformServer} from '@angular/common';\nimport {Inject, Injectable, PLATFORM_ID} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {defer, from, Observable} from 'rxjs';\nimport {fromFetch} from 'rxjs/fetch';\nimport {shareReplay, switchMap} from 'rxjs/operators';\n\n@Injectable({\n providedIn: `root`,\n})\nexport class TuiStaticRequestService {\n private readonly cache = new Map<string, Observable<string>>();\n\n constructor(\n @Inject(WINDOW) private readonly win: Window,\n @Inject(PLATFORM_ID) private readonly platformId: Record<string, unknown>,\n ) {}\n\n request(url: string): Observable<string> {\n const cache = this.cache.get(url);\n\n if (cache) {\n return cache;\n }\n\n const response$ =\n `AbortController` in this.win || isPlatformServer(this.platformId)\n ? fromFetch(url)\n : /**\n * Fallback for Firefox 55 and 56\n * TODO: drop after browser support bump\n */\n defer(() => from(fetch(url)));\n\n const piped = response$.pipe(\n switchMap(async response => {\n if (response.ok) {\n return response.text();\n }\n\n throw new Error(`Failed to load ${url} (${response.statusText})`);\n }),\n shareReplay({bufferSize: 1, refCount: false}),\n );\n\n this.cache.set(url, piped);\n\n return piped;\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {ElementRef, Inject, Injectable} from '@angular/core';\nimport {TuiSwipe, TuiSwipeOptions} from '@taiga-ui/cdk/interfaces';\nimport {tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {TUI_SWIPE_OPTIONS} from '@taiga-ui/cdk/tokens';\nimport {tuiGetSwipeDirection, tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, pairwise} from 'rxjs/operators';\n\n@Injectable()\nexport class TuiSwipeService extends Observable<TuiSwipe> {\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(TUI_SWIPE_OPTIONS) {timeout, threshold}: TuiSwipeOptions,\n @Inject(DOCUMENT) doc: Document,\n ) {\n super(subscriber => {\n merge(\n tuiTypedFromEvent(nativeElement, `touchstart`, {passive: true}),\n tuiTypedFromEvent(doc, `touchend`),\n )\n .pipe(\n pairwise(),\n filter(\n ([first, second]) =>\n !!first.touches.length &&\n first.touches[0].identifier ===\n second.changedTouches[0].identifier,\n ),\n map(([start, end]) => {\n const startX = start.touches[0].clientX;\n const startY = start.touches[0].clientY;\n const endX = end.changedTouches[0].clientX;\n const endY = end.changedTouches[0].clientY;\n\n const distanceX = startX - endX;\n const distanceY = startY - endY;\n const duration = end.timeStamp - start.timeStamp;\n\n if (\n (Math.abs(distanceX) > threshold ||\n Math.abs(distanceY) > threshold) &&\n duration < timeout\n ) {\n return {\n direction: tuiGetSwipeDirection(distanceX, distanceY),\n events: [start, end] as [TouchEvent, TouchEvent],\n };\n }\n\n return null;\n }),\n filter(tuiIsPresent),\n )\n .subscribe(subscriber);\n });\n }\n}\n","import {ElementRef, Inject, Injectable} from '@angular/core';\nimport {TuiZoom, TuiZoomOptions} from '@taiga-ui/cdk/interfaces';\nimport {tuiPreventDefault, tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {TUI_ZOOM_OPTIONS} from '@taiga-ui/cdk/tokens';\nimport {tuiDistanceBetweenTouches} from '@taiga-ui/cdk/utils';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, scan, switchMap, takeUntil} from 'rxjs/operators';\n\nconst TOUCH_SENSITIVITY = 0.01;\n\n@Injectable()\nexport class TuiZoomService extends Observable<TuiZoom> {\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<HTMLElement>,\n @Inject(TUI_ZOOM_OPTIONS) {wheelSensitivity}: TuiZoomOptions,\n ) {\n super(subscriber => {\n merge(\n tuiTypedFromEvent(nativeElement, `touchstart`, {passive: true}).pipe(\n filter(({touches}) => touches.length > 1),\n switchMap(startEvent =>\n tuiTypedFromEvent(nativeElement, `touchmove`, {\n passive: true,\n }).pipe(\n tuiPreventDefault(),\n scan(\n (prev, event) => {\n const distance = tuiDistanceBetweenTouches(event);\n\n return {\n event,\n distance,\n delta:\n (distance - prev.distance) *\n TOUCH_SENSITIVITY,\n };\n },\n {\n event: startEvent,\n distance: tuiDistanceBetweenTouches(startEvent),\n delta: 0,\n },\n ),\n map(({event, delta}) => {\n const clientX =\n (event.touches[0].clientX +\n event.touches[1].clientX) /\n 2;\n const clientY =\n (event.touches[0].clientY +\n event.touches[1].clientY) /\n 2;\n\n return {clientX, clientY, delta, event};\n }),\n takeUntil(tuiTypedFromEvent(nativeElement, `touchend`)),\n ),\n ),\n ),\n tuiTypedFromEvent(nativeElement, `wheel`, {passive: false}).pipe(\n tuiPreventDefault(),\n map(wheel => ({\n clientX: wheel.clientX,\n clientY: wheel.clientY,\n delta: -wheel.deltaY * wheelSensitivity,\n event: wheel,\n })),\n ),\n ).subscribe(subscriber);\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-cdk-services.js","sources":["../../../projects/cdk/services/destroy.service.ts","../../../projects/cdk/services/directive-styles.service.ts","../../../projects/cdk/services/focus-visible.service.ts","../../../projects/cdk/services/id.service.ts","../../../projects/cdk/services/parents-scroll.service.ts","../../../projects/cdk/services/obscured.service.ts","../../../projects/cdk/services/pan.service.ts","../../../projects/cdk/services/resize.service.ts","../../../projects/cdk/services/scroll.service.ts","../../../projects/cdk/services/static-request.service.ts","../../../projects/cdk/services/swipe.service.ts","../../../projects/cdk/services/zoom.service.ts","../../../projects/cdk/services/taiga-ui-cdk-services.ts"],"sourcesContent":["import {Injectable, OnDestroy} from '@angular/core';\nimport {ReplaySubject} from 'rxjs';\n\n/**\n * @note:\n * Observable abstraction over ngOnDestroy to use with takeUntil\n *\n * Why we use `ReplaySubject` instead of `Subject`?\n * Well, we’ll use ReplaySubject to emit the last message in case\n * the subscription is ended after the component is destroyed.\n */\n@Injectable()\nexport class TuiDestroyService extends ReplaySubject<void> implements OnDestroy {\n constructor() {\n super(1);\n }\n\n ngOnDestroy(): void {\n this.next();\n this.complete();\n }\n}\n","import {\n ComponentFactoryResolver,\n Inject,\n Injectable,\n INJECTOR,\n Injector,\n Type,\n} from '@angular/core';\n\n/**\n * Service to use styles with directives\n */\n@Injectable({\n providedIn: `root`,\n})\nexport class TuiDirectiveStylesService {\n private readonly map = new Map<Type<unknown>, unknown>();\n\n constructor(\n @Inject(ComponentFactoryResolver)\n private readonly resolver: ComponentFactoryResolver,\n @Inject(INJECTOR) private readonly injector: Injector,\n ) {}\n\n addComponent(component: Type<unknown>): void {\n if (!this.map.has(component)) {\n this.map.set(\n component,\n this.resolver.resolveComponentFactory(component).create(this.injector),\n );\n }\n }\n}\n","import {ChangeDetectorRef, ElementRef, Inject, Injectable, Self} from '@angular/core';\nimport {tuiFocusVisibleObservable, tuiWatch} from '@taiga-ui/cdk/observables';\nimport {Observable} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\nimport {TuiDestroyService} from './destroy.service';\n\n/**\n * Service to imitate :focus-visible\n * (https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible)\n * in browsers that do not support it\n */\n@Injectable()\nexport class TuiFocusVisibleService extends Observable<boolean> {\n private readonly focusVisible$: Observable<boolean>;\n\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(ChangeDetectorRef) cdr: ChangeDetectorRef,\n @Self() @Inject(TuiDestroyService) destroy$: Observable<void>,\n ) {\n super(subscriber => this.focusVisible$.subscribe(subscriber));\n\n this.focusVisible$ = tuiFocusVisibleObservable(nativeElement).pipe(\n tuiWatch(cdr),\n takeUntil(destroy$),\n );\n }\n}\n","import {Injectable} from '@angular/core';\n\nconst TUI = `tui_`;\n\n/**\n * Generates unique ids\n */\n@Injectable({\n providedIn: `root`,\n})\nexport class TuiIdService {\n private static autoId = 0;\n\n generate(): string {\n return `${TUI}${TuiIdService.autoId++}${Date.now()}`;\n }\n}\n","import {ElementRef, Inject, Injectable} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {defer, merge, Observable} from 'rxjs';\n\n/**\n * Service that subscribes to scroll events of all parent elements\n */\n@Injectable()\nexport class TuiParentsScrollService extends Observable<Event> {\n private readonly callback$: Observable<Event>;\n\n constructor(\n // Destructuring here causes memory leak\n @Inject(ElementRef) el: ElementRef<Element>,\n @Inject(WINDOW) win: Window,\n ) {\n super(subscriber => this.callback$.subscribe(subscriber));\n\n this.callback$ = defer(() => {\n let {nativeElement} = el;\n const eventTargets: Array<Element | Window> = [win, nativeElement];\n\n while (nativeElement.parentElement) {\n nativeElement = nativeElement.parentElement;\n eventTargets.push(nativeElement);\n }\n\n return merge(\n ...eventTargets.map<Observable<Event>>(element =>\n tuiTypedFromEvent(element, `scroll`),\n ),\n );\n });\n }\n}\n","import {ElementRef, Inject, Injectable, NgZone, Self} from '@angular/core';\nimport {ANIMATION_FRAME, WINDOW} from '@ng-web-apis/common';\nimport {POLLING_TIME} from '@taiga-ui/cdk/constants';\nimport {tuiZoneOptimized} from '@taiga-ui/cdk/observables';\nimport {tuiGetElementObscures} from '@taiga-ui/cdk/utils/dom';\nimport {fromEvent, merge, Observable} from 'rxjs';\nimport {\n delay,\n distinctUntilChanged,\n map,\n startWith,\n takeUntil,\n throttleTime,\n} from 'rxjs/operators';\n\nimport {TuiDestroyService} from './destroy.service';\nimport {TuiParentsScrollService} from './parents-scroll.service';\n\n// @bad TODO: Consider Intersection Observer with fallback to current implementation\n/**\n * Service that monitors element visibility by subscribing to scrolls\n * and polling with set interval, returns either null or an array\n * of elements that overlap given element edges\n */\n@Injectable()\nexport class TuiObscuredService extends Observable<readonly Element[] | null> {\n private readonly obscured$: Observable<readonly Element[] | null>;\n\n constructor(\n @Inject(TuiParentsScrollService)\n @Self()\n parentsScroll$: TuiParentsScrollService,\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(NgZone) zone: NgZone,\n @Inject(WINDOW) win: Window,\n @Self() @Inject(TuiDestroyService) destroy$: Observable<void>,\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n ) {\n super(subscriber => this.obscured$.subscribe(subscriber));\n\n this.obscured$ = merge(\n // delay is added so it will not interfere with other listeners\n merge(parentsScroll$, fromEvent(win, `resize`)).pipe(delay(0)),\n animationFrame$.pipe(throttleTime(POLLING_TIME)),\n ).pipe(\n map(() => tuiGetElementObscures(nativeElement)),\n startWith(null),\n distinctUntilChanged(),\n tuiZoneOptimized(zone),\n takeUntil(destroy$),\n );\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {ElementRef, Inject, Injectable} from '@angular/core';\nimport {tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, pairwise, repeat, switchMap, takeUntil} from 'rxjs/operators';\n\n@Injectable()\nexport class TuiPanService extends Observable<readonly [number, number]> {\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(DOCUMENT) doc: Document,\n ) {\n super(subscriber => {\n merge(\n tuiTypedFromEvent(nativeElement, `touchstart`, {passive: true}),\n tuiTypedFromEvent(nativeElement, `mousedown`),\n )\n .pipe(\n switchMap(() =>\n merge(\n tuiTypedFromEvent(doc, `touchmove`, {\n passive: true,\n }).pipe(\n filter(({touches}) => touches.length < 2),\n map(({touches}) => touches[0]),\n ),\n tuiTypedFromEvent(doc, `mousemove`),\n ),\n ),\n pairwise(),\n map(([first, second]) => {\n const deltaX = second.clientX - first.clientX;\n const deltaY = second.clientY - first.clientY;\n\n return [deltaX, deltaY] as [number, number];\n }),\n // eslint-disable-next-line rxjs/no-unsafe-takeuntil\n takeUntil(\n merge(\n tuiTypedFromEvent(doc, `touchend`),\n tuiTypedFromEvent(doc, `mouseup`),\n ),\n ),\n repeat(),\n )\n .subscribe(subscriber);\n });\n }\n}\n","import {ElementRef, Inject, Injectable, NgZone, Self} from '@angular/core';\nimport {ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {\n RESIZE_OBSERVER_SUPPORT,\n RESIZE_OPTION_BOX,\n ResizeObserverService,\n} from '@ng-web-apis/resize-observer';\nimport {EMPTY_ARRAY, POLLING_TIME} from '@taiga-ui/cdk/constants';\nimport {tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {Observable} from 'rxjs';\nimport {\n catchError,\n debounceTime,\n distinctUntilChanged,\n map,\n share,\n takeUntil,\n throttleTime,\n} from 'rxjs/operators';\n\nimport {TuiDestroyService} from './destroy.service';\n\n// TODO: Remove in 4.0 when Safari is bumped to 13\n@Injectable()\nexport class TuiResizeService extends ResizeObserverService {\n constructor(\n @Inject(ElementRef) el: ElementRef<HTMLElement>,\n @Inject(NgZone) zone: NgZone,\n @Self() @Inject(TuiDestroyService) destroy$: Observable<void>,\n @Inject(RESIZE_OBSERVER_SUPPORT) support: boolean,\n @Inject(RESIZE_OPTION_BOX) box: ResizeObserverBoxOptions,\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n ) {\n super(el, zone, support, box);\n\n return this.pipe(\n catchError(() =>\n /**\n * @note: if not supported ResizeObserver\n * remove `catchError` after supports modern browsers\n */\n animationFrame$.pipe(\n throttleTime(POLLING_TIME),\n map(\n () =>\n `${el.nativeElement.clientWidth} ${el.nativeElement.clientHeight}`,\n ),\n distinctUntilChanged(),\n map(() => EMPTY_ARRAY),\n ),\n ),\n debounceTime(0),\n tuiZonefree(zone),\n share(),\n takeUntil(destroy$),\n );\n }\n}\n","import {Inject, Injectable} from '@angular/core';\nimport {ANIMATION_FRAME, PERFORMANCE} from '@ng-web-apis/common';\nimport {tuiAssert} from '@taiga-ui/cdk/classes';\nimport {tuiClamp} from '@taiga-ui/cdk/utils/math';\nimport {tuiEaseInOutQuad} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {defer, Observable, of, timer} from 'rxjs';\nimport {endWith, map, switchMap, takeUntil, tap} from 'rxjs/operators';\n\nconst SCROLL_TIME = 300;\n\nfunction getX(elementOrWindow: Element | Window): number {\n return `scrollX` in elementOrWindow\n ? elementOrWindow.scrollX\n : elementOrWindow.scrollLeft;\n}\n\nfunction getY(elementOrWindow: Element | Window): number {\n return `scrollY` in elementOrWindow\n ? elementOrWindow.scrollY\n : elementOrWindow.scrollTop;\n}\n\n@Injectable({\n providedIn: `root`,\n})\nexport class TuiScrollService {\n constructor(\n @Inject(PERFORMANCE) private readonly performanceRef: Performance,\n @Inject(ANIMATION_FRAME) private readonly animationFrame$: Observable<number>,\n ) {}\n\n scroll$(\n elementOrWindow: Element | Window,\n scrollTop: number,\n scrollLeft: number = getX(elementOrWindow),\n duration: number = SCROLL_TIME,\n ): Observable<[number, number]> {\n ngDevMode && tuiAssert.assert(duration >= 0, `Duration cannot be negative`);\n ngDevMode && tuiAssert.assert(scrollTop >= 0, `scrollTop cannot be negative`);\n ngDevMode && tuiAssert.assert(scrollLeft >= 0, `scrollLeft cannot be negative`);\n\n const initialTop = getY(elementOrWindow);\n const initialLeft = getX(elementOrWindow);\n const deltaTop = scrollTop - initialTop;\n const deltaLeft = scrollLeft - initialLeft;\n const observable = !duration\n ? of<[number, number]>([scrollTop, scrollLeft])\n : defer(() => of(this.performanceRef.now())).pipe(\n switchMap(start => this.animationFrame$.pipe(map(now => now - start))),\n map(elapsed => tuiEaseInOutQuad(tuiClamp(elapsed / duration, 0, 1))),\n map<number, [number, number]>(percent => [\n initialTop + deltaTop * percent,\n initialLeft + deltaLeft * percent,\n ]),\n endWith<[number, number]>([scrollTop, scrollLeft]),\n takeUntil(timer(duration)),\n );\n\n return observable.pipe(\n tap(([scrollTop, scrollLeft]) => {\n elementOrWindow.scrollTo?.(scrollLeft, scrollTop);\n }),\n );\n }\n}\n","import {isPlatformServer} from '@angular/common';\nimport {Inject, Injectable, PLATFORM_ID} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {defer, from, Observable} from 'rxjs';\nimport {fromFetch} from 'rxjs/fetch';\nimport {shareReplay, switchMap} from 'rxjs/operators';\n\n@Injectable({\n providedIn: `root`,\n})\nexport class TuiStaticRequestService {\n private readonly cache = new Map<string, Observable<string>>();\n\n constructor(\n @Inject(WINDOW) private readonly win: Window,\n @Inject(PLATFORM_ID) private readonly platformId: Record<string, unknown>,\n ) {}\n\n request(url: string): Observable<string> {\n const cache = this.cache.get(url);\n\n if (cache) {\n return cache;\n }\n\n const response$ =\n `AbortController` in this.win || isPlatformServer(this.platformId)\n ? fromFetch(url)\n : /**\n * Fallback for Firefox 55 and 56\n * TODO: drop after browser support bump\n */\n defer(() => from(fetch(url)));\n\n const piped = response$.pipe(\n switchMap(async response => {\n if (response.ok) {\n return response.text();\n }\n\n throw new Error(`Failed to load ${url} (${response.statusText})`);\n }),\n shareReplay({bufferSize: 1, refCount: false}),\n );\n\n this.cache.set(url, piped);\n\n return piped;\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {ElementRef, Inject, Injectable} from '@angular/core';\nimport {TuiSwipe, TuiSwipeOptions} from '@taiga-ui/cdk/interfaces';\nimport {tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {TUI_SWIPE_OPTIONS} from '@taiga-ui/cdk/tokens';\nimport {tuiGetSwipeDirection, tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, pairwise} from 'rxjs/operators';\n\n@Injectable()\nexport class TuiSwipeService extends Observable<TuiSwipe> {\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(TUI_SWIPE_OPTIONS) {timeout, threshold}: TuiSwipeOptions,\n @Inject(DOCUMENT) doc: Document,\n ) {\n super(subscriber => {\n merge(\n tuiTypedFromEvent(nativeElement, `touchstart`, {passive: true}),\n tuiTypedFromEvent(doc, `touchend`),\n )\n .pipe(\n pairwise(),\n filter(\n ([first, second]) =>\n !!first.touches.length &&\n first.touches[0].identifier ===\n second.changedTouches[0].identifier,\n ),\n map(([start, end]) => {\n const startX = start.touches[0].clientX;\n const startY = start.touches[0].clientY;\n const endX = end.changedTouches[0].clientX;\n const endY = end.changedTouches[0].clientY;\n\n const distanceX = startX - endX;\n const distanceY = startY - endY;\n const duration = end.timeStamp - start.timeStamp;\n\n if (\n (Math.abs(distanceX) > threshold ||\n Math.abs(distanceY) > threshold) &&\n duration < timeout\n ) {\n return {\n direction: tuiGetSwipeDirection(distanceX, distanceY),\n events: [start, end] as [TouchEvent, TouchEvent],\n };\n }\n\n return null;\n }),\n filter(tuiIsPresent),\n )\n .subscribe(subscriber);\n });\n }\n}\n","import {ElementRef, Inject, Injectable} from '@angular/core';\nimport {TuiZoom, TuiZoomOptions} from '@taiga-ui/cdk/interfaces';\nimport {tuiPreventDefault, tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {TUI_ZOOM_OPTIONS} from '@taiga-ui/cdk/tokens';\nimport {tuiDistanceBetweenTouches} from '@taiga-ui/cdk/utils';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, scan, switchMap, takeUntil} from 'rxjs/operators';\n\nconst TOUCH_SENSITIVITY = 0.01;\n\n@Injectable()\nexport class TuiZoomService extends Observable<TuiZoom> {\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<HTMLElement>,\n @Inject(TUI_ZOOM_OPTIONS) {wheelSensitivity}: TuiZoomOptions,\n ) {\n super(subscriber => {\n merge(\n tuiTypedFromEvent(nativeElement, `touchstart`, {passive: true}).pipe(\n filter(({touches}) => touches.length > 1),\n switchMap(startEvent =>\n tuiTypedFromEvent(nativeElement, `touchmove`, {\n passive: true,\n }).pipe(\n tuiPreventDefault(),\n scan(\n (prev, event) => {\n const distance = tuiDistanceBetweenTouches(event);\n\n return {\n event,\n distance,\n delta:\n (distance - prev.distance) *\n TOUCH_SENSITIVITY,\n };\n },\n {\n event: startEvent,\n distance: tuiDistanceBetweenTouches(startEvent),\n delta: 0,\n },\n ),\n map(({event, delta}) => {\n const clientX =\n (event.touches[0].clientX +\n event.touches[1].clientX) /\n 2;\n const clientY =\n (event.touches[0].clientY +\n event.touches[1].clientY) /\n 2;\n\n return {clientX, clientY, delta, event};\n }),\n takeUntil(tuiTypedFromEvent(nativeElement, `touchend`)),\n ),\n ),\n ),\n tuiTypedFromEvent(nativeElement, `wheel`, {passive: false}).pipe(\n tuiPreventDefault(),\n map(wheel => ({\n clientX: wheel.clientX,\n clientY: wheel.clientY,\n delta: -wheel.deltaY * wheelSensitivity,\n event: wheel,\n })),\n ),\n ).subscribe(subscriber);\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -2,9 +2,9 @@ import { DOCUMENT, isPlatformBrowser } from '@angular/common';
2
2
  import { inject, InjectFlags, RendererFactory2, InjectionToken, PLATFORM_ID, ElementRef } from '@angular/core';
3
3
  import { WINDOW, NAVIGATOR, USER_AGENT } from '@ng-web-apis/common';
4
4
  import { tuiTypedFromEvent } from '@taiga-ui/cdk/observables';
5
- import { tuiCreateTokenFromFactory, tuiGetActualTarget, tuiGetDocumentOrShadowRoot, tuiCreateToken, tuiIsIos, tuiIsApple } from '@taiga-ui/cdk/utils';
5
+ import { tuiCreateTokenFromFactory, tuiGetDocumentOrShadowRoot, tuiGetActualTarget, tuiCreateToken, tuiIsIos, tuiIsApple } from '@taiga-ui/cdk/utils';
6
6
  import { BehaviorSubject, timer, merge, of, from, EMPTY } from 'rxjs';
7
- import { switchMap, map, startWith, share, takeUntil, repeatWhen, withLatestFrom, filter, take, distinctUntilChanged, shareReplay } from 'rxjs/operators';
7
+ import { switchMap, map, startWith, share, filter, takeUntil, repeatWhen, withLatestFrom, take, distinctUntilChanged, shareReplay } from 'rxjs/operators';
8
8
  import { ɵAnimationEngine } from '@angular/animations/browser';
9
9
  import { ALWAYS_FALSE_HANDLER, ALWAYS_TRUE_HANDLER } from '@taiga-ui/cdk/constants';
10
10
 
@@ -23,6 +23,19 @@ const TUI_REMOVED_ELEMENT = tuiCreateTokenFromFactory(() => {
23
23
  return element$.pipe(switchMap(element => timer(0).pipe(map(() => null), startWith(element))), share());
24
24
  });
25
25
 
26
+ // Checks if focusout event should be considered leaving active zone
27
+ function isValidFocusout(target, removedElement = null) {
28
+ return (
29
+ // Not due to switching tabs/going to DevTools
30
+ tuiGetDocumentOrShadowRoot(target).activeElement !== target &&
31
+ // Not due to button/input becoming disabled or under disabled fieldset
32
+ !target.matches(`:disabled`) &&
33
+ // Not due to element being removed from DOM
34
+ !(removedElement === null || removedElement === void 0 ? void 0 : removedElement.contains(target)));
35
+ }
36
+ function shadowRootActiveElement(root) {
37
+ return merge(tuiTypedFromEvent(root, `focusin`).pipe(map(({ target }) => target)), tuiTypedFromEvent(root, `focusout`).pipe(filter(({ target, relatedTarget }) => !!relatedTarget && isValidFocusout(target)), map(({ relatedTarget }) => relatedTarget)));
38
+ }
26
39
  /**
27
40
  * Active element on the document for ActiveZone
28
41
  */
@@ -62,19 +75,6 @@ const TUI_ACTIVE_ELEMENT = tuiCreateTokenFromFactory(() => {
62
75
  () => actualTargetInCurrentTime), takeUntil(timer(0)));
63
76
  }))).pipe(distinctUntilChanged(), share());
64
77
  });
65
- // Checks if focusout event should be considered leaving active zone
66
- function isValidFocusout(target, removedElement = null) {
67
- return (
68
- // Not due to switching tabs/going to DevTools
69
- tuiGetDocumentOrShadowRoot(target).activeElement !== target &&
70
- // Not due to button/input becoming disabled or under disabled fieldset
71
- !target.matches(`:disabled`) &&
72
- // Not due to element being removed from DOM
73
- !(removedElement === null || removedElement === void 0 ? void 0 : removedElement.contains(target)));
74
- }
75
- function shadowRootActiveElement(root) {
76
- return merge(tuiTypedFromEvent(root, `focusin`).pipe(map(({ target }) => target)), tuiTypedFromEvent(root, `focusout`).pipe(filter(({ target, relatedTarget }) => !!relatedTarget && isValidFocusout(target)), map(({ relatedTarget }) => relatedTarget)));
77
- }
78
78
 
79
79
  /**
80
80
  * A stream of alerts
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-tokens.js","sources":["../../../projects/cdk/tokens/removed-element.ts","../../../projects/cdk/tokens/active-element.ts","../../../projects/cdk/tokens/alerts.ts","../../../projects/cdk/tokens/base-href.ts","../../../projects/cdk/tokens/default-renderer.ts","../../../projects/cdk/tokens/dialogs.ts","../../../projects/cdk/tokens/ensure-base-href.ts","../../../projects/cdk/tokens/focusable-item-accessor.ts","../../../projects/cdk/tokens/fonts-ready.ts","../../../projects/cdk/tokens/is-ios.ts","../../../projects/cdk/tokens/is-mobile.ts","../../../projects/cdk/tokens/is-android.ts","../../../projects/cdk/tokens/is-apple.ts","../../../projects/cdk/tokens/is-chromium.ts","../../../projects/cdk/tokens/is-cypress.ts","../../../projects/cdk/tokens/is-playwright.ts","../../../projects/cdk/tokens/is-e2e.ts","../../../projects/cdk/tokens/is-firefox.ts","../../../projects/cdk/tokens/is-stackblitz.ts","../../../projects/cdk/tokens/is-webkit.ts","../../../projects/cdk/tokens/platform.ts","../../../projects/cdk/tokens/range.ts","../../../projects/cdk/tokens/scroll-ref.ts","../../../projects/cdk/tokens/swipe-options.ts","../../../projects/cdk/tokens/take-only-trusted-events.ts","../../../projects/cdk/tokens/touch-supported.ts","../../../projects/cdk/tokens/window-size.ts","../../../projects/cdk/tokens/window-height.ts","../../../projects/cdk/tokens/zoom-options.ts","../../../projects/cdk/tokens/taiga-ui-cdk-tokens.ts"],"sourcesContent":["import {ɵAnimationEngine as AnimationEngine} from '@angular/animations/browser';\nimport {inject, InjectFlags} from '@angular/core';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\nimport {BehaviorSubject, timer} from 'rxjs';\nimport {map, share, startWith, switchMap} from 'rxjs/operators';\n\n/**\n * Element currently being removed by AnimationEngine\n */\nexport const TUI_REMOVED_ELEMENT = tuiCreateTokenFromFactory(() => {\n const stub = {onRemovalComplete: () => {}};\n const element$ = new BehaviorSubject<Element | null>(null);\n const engine = inject(AnimationEngine, InjectFlags.Optional) || stub;\n const {onRemovalComplete = stub.onRemovalComplete} = engine;\n\n engine.onRemovalComplete = (element, context) => {\n element$.next(element);\n onRemovalComplete.call(engine, element, context);\n };\n\n return element$.pipe(\n switchMap(element =>\n timer(0).pipe(\n map(() => null),\n startWith(element),\n ),\n ),\n share(),\n );\n});\n","import {DOCUMENT} from '@angular/common';\nimport {inject} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {\n tuiCreateTokenFromFactory,\n tuiGetActualTarget,\n tuiGetDocumentOrShadowRoot,\n} from '@taiga-ui/cdk/utils';\nimport {merge, Observable, of, timer} from 'rxjs';\nimport {\n distinctUntilChanged,\n filter,\n map,\n repeatWhen,\n share,\n startWith,\n switchMap,\n take,\n takeUntil,\n withLatestFrom,\n} from 'rxjs/operators';\n\nimport {TUI_REMOVED_ELEMENT} from './removed-element';\n\n/**\n * Active element on the document for ActiveZone\n */\nexport const TUI_ACTIVE_ELEMENT = tuiCreateTokenFromFactory<\n Observable<EventTarget | null>\n>(() => {\n const removedElement$ = inject(TUI_REMOVED_ELEMENT);\n const win = inject(WINDOW);\n const doc = inject(DOCUMENT);\n const focusout$ = tuiTypedFromEvent(win, `focusout`);\n const focusin$ = tuiTypedFromEvent(win, `focusin`);\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 // eslint-disable-next-line rxjs/no-unsafe-takeuntil\n takeUntil(mousedown$),\n /**\n * TODO: replace to\n * repeat({delay: () => mouseup$})\n * in RxJS 7\n */\n // eslint-disable-next-line rxjs/no-ignored-notifier\n repeatWhen(() => 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) as Document;\n\n return root === doc\n ? of(target)\n : shadowRootActiveElement(root).pipe(startWith(target));\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)),\n );\n }),\n ),\n ).pipe(distinctUntilChanged(), share());\n});\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 );\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","import {Provider, Type} from '@angular/core';\nimport {TuiAriaDialogContext} from '@taiga-ui/cdk/interfaces';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils';\nimport {Observable} from 'rxjs';\n\n/**\n * A stream of alerts\n */\nexport const TUI_ALERTS = tuiCreateToken<\n ReadonlyArray<Observable<readonly TuiAriaDialogContext[]>>\n>([]);\n\nexport function tuiAsAlerts(\n useExisting: Type<Observable<readonly TuiAriaDialogContext[]>>,\n): Provider {\n return {\n provide: TUI_ALERTS,\n multi: true,\n useExisting,\n };\n}\n","import {DOCUMENT} from '@angular/common';\nimport {inject} from '@angular/core';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\n\nexport const TUI_BASE_HREF = tuiCreateTokenFromFactory(\n () => inject(DOCUMENT).querySelector(`base`)?.href ?? ``,\n);\n","import {inject, Renderer2, RendererFactory2} from '@angular/core';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\n\n/**\n * A Renderer2 for global services\n * https://github.com/angular/angular/issues/17824#issuecomment-353239017\n * @deprecated unnecessary\n * TODO: remove in 4.0\n */\nexport const TUI_DEFAULT_RENDERER = tuiCreateTokenFromFactory<Renderer2>(\n // @ts-ignore\n () => inject(RendererFactory2).createRenderer(null, null),\n);\n","import {Provider, Type} from '@angular/core';\nimport {TuiAriaDialogContext} from '@taiga-ui/cdk/interfaces';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils';\nimport {Observable} from 'rxjs';\n\n/**\n * A stream of dialogs\n */\nexport const TUI_DIALOGS = tuiCreateToken<\n ReadonlyArray<Observable<readonly TuiAriaDialogContext[]>>\n>([]);\n\n// TODO: Refactor dialogs in 4.0 so there is no need for module imports\nexport function tuiAsDialog(\n useExisting: Type<Observable<readonly TuiAriaDialogContext[]>>,\n): Provider {\n return {\n provide: TUI_DIALOGS,\n multi: true,\n useExisting,\n };\n}\n","import {DOCUMENT} from '@angular/common';\nimport {inject} from '@angular/core';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\n\n/**\n * @deprecated: use {@link TUI_BASE_HREF}\n */\nexport const TUI_ENSURE_BASE_HREF = tuiCreateTokenFromFactory(() => {\n const baseHref = inject(DOCUMENT).querySelector(`base`)?.href;\n\n if (baseHref) {\n return baseHref;\n }\n\n const link = inject(DOCUMENT).createElement(`a`);\n\n link.href = ``;\n\n return link.pathname;\n});\n","import {InjectionToken, Provider, Type} from '@angular/core';\nimport {TuiFocusableElementAccessor} from '@taiga-ui/cdk/interfaces';\n\n/**\n * A component that can be focused\n */\nexport const TUI_FOCUSABLE_ITEM_ACCESSOR =\n new InjectionToken<TuiFocusableElementAccessor>(`[TUI_FOCUSABLE_ITEM_ACCESSOR]`);\n\nexport function tuiAsFocusableItemAccessor(\n useExisting: Type<TuiFocusableElementAccessor>,\n): Provider {\n return {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting,\n };\n}\n","import {DOCUMENT} from '@angular/common';\nimport {inject, InjectionToken} from '@angular/core';\nimport {EMPTY, from, Observable} from 'rxjs';\nimport {shareReplay} from 'rxjs/operators';\n\nexport const TUI_FONTS_READY = new InjectionToken<Observable<unknown>>(\n `[TUI_FONTS_READY]`,\n {\n factory: () =>\n from((inject(DOCUMENT) as any).fonts?.ready || EMPTY).pipe(\n shareReplay({bufferSize: 1, refCount: false}),\n ),\n },\n);\n","import {inject} from '@angular/core';\nimport {NAVIGATOR} from '@ng-web-apis/common';\nimport {tuiCreateTokenFromFactory, tuiIsIos} from '@taiga-ui/cdk/utils';\n\n/**\n * iOS browser detection\n */\nexport const TUI_IS_IOS = tuiCreateTokenFromFactory(() => tuiIsIos(inject(NAVIGATOR)));\n","import {inject} from '@angular/core';\nimport {USER_AGENT} from '@ng-web-apis/common';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\n\n// https://stackoverflow.com/a/11381730/2706426 http://detectmobilebrowsers.com/\nconst firstRegex =\n /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/;\nconst secondRegex =\n /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/;\n\n/**\n * Mobile browser detection\n */\nexport const TUI_IS_MOBILE = tuiCreateTokenFromFactory(\n () =>\n firstRegex.test(inject(USER_AGENT).toLowerCase()) ||\n secondRegex.test(inject(USER_AGENT).slice(0, 4).toLowerCase()),\n);\n","import {inject} from '@angular/core';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\n\nimport {TUI_IS_IOS} from './is-ios';\nimport {TUI_IS_MOBILE} from './is-mobile';\n\n/**\n * Mobile browser that is not iOS (technically includes Windows Phone, Blackberry etc.)\n */\nexport const TUI_IS_ANDROID = tuiCreateTokenFromFactory(\n () => inject(TUI_IS_MOBILE) && !inject(TUI_IS_IOS),\n);\n","import {inject} from '@angular/core';\nimport {NAVIGATOR} from '@ng-web-apis/common';\nimport {tuiCreateTokenFromFactory, tuiIsApple} from '@taiga-ui/cdk/utils';\n\n/**\n * Apple(safari/webkit) detection\n */\nexport const TUI_IS_APPLE = tuiCreateTokenFromFactory(() =>\n tuiIsApple(inject(NAVIGATOR)),\n);\n","import {inject} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\n\n/**\n * Chromium browser engine detection\n */\nexport const TUI_IS_CHROMIUM = tuiCreateTokenFromFactory(\n () => !!(inject(WINDOW) as Window & {chrome: unknown}).chrome,\n);\n","import {inject} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\n\ninterface WindowWithCypress extends Window {\n Cypress?: unknown;\n}\n\n/**\n * Detect if app is running under Cypress\n * {@link https://docs.cypress.io/faq/questions/using-cypress-faq#Is-there-any-way-to-detect-if-my-app-is-running-under-Cypress Cypress docs}\n */\nexport const TUI_IS_CYPRESS = tuiCreateTokenFromFactory(\n () => !!inject<WindowWithCypress>(WINDOW).Cypress,\n);\n","import {ALWAYS_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\n\n/**\n * Detect if app is running under Playwright\n */\nexport const TUI_IS_PLAYWRIGHT = tuiCreateTokenFromFactory<boolean>(ALWAYS_FALSE_HANDLER);\n","import {inject} from '@angular/core';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\n\nimport {TUI_IS_CYPRESS} from './is-cypress';\nimport {TUI_IS_PLAYWRIGHT} from './is-playwright';\n\n/**\n * Detect if app is running under any of test frameworks\n */\nexport const TUI_IS_E2E = tuiCreateTokenFromFactory(\n () => inject(TUI_IS_CYPRESS) || inject(TUI_IS_PLAYWRIGHT),\n);\n","import {inject} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\n\n/**\n * Firefox browser engine detection\n */\nexport const TUI_IS_FIREFOX = tuiCreateTokenFromFactory(\n () =>\n typeof (inject(WINDOW) as Window & {mozCancelFullScreen: unknown})\n ?.mozCancelFullScreen !== `undefined`,\n);\n","import {inject} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\n\nexport const TUI_IS_STACKBLITZ = tuiCreateTokenFromFactory(() =>\n inject(WINDOW).location.host.endsWith(`stackblitz.io`),\n);\n","import {inject} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\n\n/**\n * Webkit browser engine detection\n */\nexport const TUI_IS_WEBKIT = tuiCreateTokenFromFactory(\n () =>\n !!(inject(WINDOW) as unknown as {webkitConvertPointFromNodeToPage?: unknown})\n ?.webkitConvertPointFromNodeToPage,\n);\n","import {inject} from '@angular/core';\nimport {TuiPlatform} from '@taiga-ui/cdk/types';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils';\n\nimport {TUI_IS_ANDROID} from './is-android';\nimport {TUI_IS_IOS} from './is-ios';\n\n// TODO: Switch to factory in 4.0\nexport const TUI_PLATFORM = tuiCreateToken<TuiPlatform>(`web`);\n\nexport function tuiPlatformFactory(): TuiPlatform {\n if (inject(TUI_IS_IOS)) {\n return `ios`;\n }\n\n if (inject(TUI_IS_ANDROID)) {\n return `android`;\n }\n\n return `web`;\n}\n","import {isPlatformBrowser} from '@angular/common';\nimport {inject, PLATFORM_ID} from '@angular/core';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\n\n/**\n * SSR safe default empty Range\n */\nexport const TUI_RANGE = tuiCreateTokenFromFactory(() =>\n isPlatformBrowser(inject(PLATFORM_ID)) ? new Range() : ({} as unknown as Range),\n);\n","import {DOCUMENT} from '@angular/common';\nimport {ElementRef, inject} from '@angular/core';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\n\n/**\n * Scrollable container\n */\nexport const TUI_SCROLL_REF = tuiCreateTokenFromFactory(\n () => new ElementRef(inject(DOCUMENT).documentElement),\n);\n","import {TuiSwipeOptions} from '@taiga-ui/cdk/interfaces';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils';\n\n/**\n * Swipe options\n */\nexport const TUI_SWIPE_OPTIONS = tuiCreateToken<TuiSwipeOptions>({\n timeout: 500,\n threshold: 30,\n});\n","import {ALWAYS_TRUE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\n\n/**\n * @description:\n * The isTrusted read-only property of the Event interface is a boolean value that is true\n * when the event was generated by a user action, and false when the event was created or\n * modified by a script or dispatched via EventTarget.dispatchEvent().\n */\nexport const TUI_TAKE_ONLY_TRUSTED_EVENTS =\n tuiCreateTokenFromFactory<boolean>(ALWAYS_TRUE_HANDLER);\n","import {inject} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\n\nexport const TUI_TOUCH_SUPPORTED = tuiCreateTokenFromFactory(\n () => inject(WINDOW).matchMedia(`(any-pointer: coarse)`).matches,\n);\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {Observable} from 'rxjs';\nimport {map, shareReplay, startWith} from 'rxjs/operators';\n\nexport const TUI_WINDOW_SIZE = new InjectionToken<Observable<ClientRect>>(\n `[TUI_WINDOW_SIZE]`,\n {\n factory: () => {\n const w = inject(WINDOW);\n\n return tuiTypedFromEvent(w, `resize`).pipe(\n startWith(null),\n map(() => {\n const width = Math.max(w.innerWidth, w.visualViewport?.width || 0);\n const height = Math.max(w.innerHeight, w.visualViewport?.height || 0);\n\n return {\n width,\n height,\n top: 0,\n left: 0,\n right: width,\n bottom: height,\n };\n }),\n shareReplay({bufferSize: 1, refCount: true}),\n );\n },\n },\n);\n","import {inject} from '@angular/core';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\nimport {map} from 'rxjs/operators';\n\nimport {TUI_WINDOW_SIZE} from './window-size';\n\n/**\n * @deprecated Use {@link TUI_WINDOW_SIZE} instead\n */\nexport const TUI_WINDOW_HEIGHT = tuiCreateTokenFromFactory(() =>\n inject(TUI_WINDOW_SIZE).pipe(map(({height}) => height)),\n);\n","import {TuiZoomOptions} from '@taiga-ui/cdk/interfaces';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils';\n\n/**\n * Zoom options\n */\nexport const TUI_ZOOM_OPTIONS = tuiCreateToken<TuiZoomOptions>({\n wheelSensitivity: 0.01,\n});\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["AnimationEngine"],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-cdk-tokens.js","sources":["../../../projects/cdk/tokens/removed-element.ts","../../../projects/cdk/tokens/active-element.ts","../../../projects/cdk/tokens/alerts.ts","../../../projects/cdk/tokens/base-href.ts","../../../projects/cdk/tokens/default-renderer.ts","../../../projects/cdk/tokens/dialogs.ts","../../../projects/cdk/tokens/ensure-base-href.ts","../../../projects/cdk/tokens/focusable-item-accessor.ts","../../../projects/cdk/tokens/fonts-ready.ts","../../../projects/cdk/tokens/is-ios.ts","../../../projects/cdk/tokens/is-mobile.ts","../../../projects/cdk/tokens/is-android.ts","../../../projects/cdk/tokens/is-apple.ts","../../../projects/cdk/tokens/is-chromium.ts","../../../projects/cdk/tokens/is-cypress.ts","../../../projects/cdk/tokens/is-playwright.ts","../../../projects/cdk/tokens/is-e2e.ts","../../../projects/cdk/tokens/is-firefox.ts","../../../projects/cdk/tokens/is-stackblitz.ts","../../../projects/cdk/tokens/is-webkit.ts","../../../projects/cdk/tokens/platform.ts","../../../projects/cdk/tokens/range.ts","../../../projects/cdk/tokens/scroll-ref.ts","../../../projects/cdk/tokens/swipe-options.ts","../../../projects/cdk/tokens/take-only-trusted-events.ts","../../../projects/cdk/tokens/touch-supported.ts","../../../projects/cdk/tokens/window-size.ts","../../../projects/cdk/tokens/window-height.ts","../../../projects/cdk/tokens/zoom-options.ts","../../../projects/cdk/tokens/taiga-ui-cdk-tokens.ts"],"sourcesContent":["import {ɵAnimationEngine as AnimationEngine} from '@angular/animations/browser';\nimport {inject, InjectFlags} from '@angular/core';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\nimport {BehaviorSubject, timer} from 'rxjs';\nimport {map, share, startWith, switchMap} from 'rxjs/operators';\n\n/**\n * Element currently being removed by AnimationEngine\n */\nexport const TUI_REMOVED_ELEMENT = tuiCreateTokenFromFactory(() => {\n const stub = {onRemovalComplete: () => {}};\n const element$ = new BehaviorSubject<Element | null>(null);\n const engine = inject(AnimationEngine, InjectFlags.Optional) || stub;\n const {onRemovalComplete = stub.onRemovalComplete} = engine;\n\n engine.onRemovalComplete = (element, context) => {\n element$.next(element);\n onRemovalComplete.call(engine, element, context);\n };\n\n return element$.pipe(\n switchMap(element =>\n timer(0).pipe(\n map(() => null),\n startWith(element),\n ),\n ),\n share(),\n );\n});\n","import {DOCUMENT} from '@angular/common';\nimport {inject} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {\n tuiCreateTokenFromFactory,\n tuiGetActualTarget,\n tuiGetDocumentOrShadowRoot,\n} from '@taiga-ui/cdk/utils';\nimport {merge, Observable, of, timer} from 'rxjs';\nimport {\n distinctUntilChanged,\n filter,\n map,\n repeatWhen,\n share,\n startWith,\n switchMap,\n take,\n takeUntil,\n withLatestFrom,\n} from 'rxjs/operators';\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 );\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 = tuiCreateTokenFromFactory<\n Observable<EventTarget | null>\n>(() => {\n const removedElement$ = inject(TUI_REMOVED_ELEMENT);\n const win = inject(WINDOW);\n const doc = inject(DOCUMENT);\n const focusout$ = tuiTypedFromEvent(win, `focusout`);\n const focusin$ = tuiTypedFromEvent(win, `focusin`);\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 // eslint-disable-next-line rxjs/no-unsafe-takeuntil\n takeUntil(mousedown$),\n /**\n * TODO: replace to\n * repeat({delay: () => mouseup$})\n * in RxJS 7\n */\n // eslint-disable-next-line rxjs/no-ignored-notifier\n repeatWhen(() => 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) as Document;\n\n return root === doc\n ? of(target)\n : shadowRootActiveElement(root).pipe(startWith(target));\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)),\n );\n }),\n ),\n ).pipe(distinctUntilChanged(), share());\n});\n","import {Provider, Type} from '@angular/core';\nimport {TuiAriaDialogContext} from '@taiga-ui/cdk/interfaces';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils';\nimport {Observable} from 'rxjs';\n\n/**\n * A stream of alerts\n */\nexport const TUI_ALERTS = tuiCreateToken<\n ReadonlyArray<Observable<readonly TuiAriaDialogContext[]>>\n>([]);\n\nexport function tuiAsAlerts(\n useExisting: Type<Observable<readonly TuiAriaDialogContext[]>>,\n): Provider {\n return {\n provide: TUI_ALERTS,\n multi: true,\n useExisting,\n };\n}\n","import {DOCUMENT} from '@angular/common';\nimport {inject} from '@angular/core';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\n\nexport const TUI_BASE_HREF = tuiCreateTokenFromFactory(\n () => inject(DOCUMENT).querySelector(`base`)?.href ?? ``,\n);\n","import {inject, Renderer2, RendererFactory2} from '@angular/core';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\n\n/**\n * A Renderer2 for global services\n * https://github.com/angular/angular/issues/17824#issuecomment-353239017\n * @deprecated unnecessary\n * TODO: remove in 4.0\n */\nexport const TUI_DEFAULT_RENDERER = tuiCreateTokenFromFactory<Renderer2>(\n // @ts-ignore\n () => inject(RendererFactory2).createRenderer(null, null),\n);\n","import {Provider, Type} from '@angular/core';\nimport {TuiAriaDialogContext} from '@taiga-ui/cdk/interfaces';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils';\nimport {Observable} from 'rxjs';\n\n/**\n * A stream of dialogs\n */\nexport const TUI_DIALOGS = tuiCreateToken<\n ReadonlyArray<Observable<readonly TuiAriaDialogContext[]>>\n>([]);\n\n// TODO: Refactor dialogs in 4.0 so there is no need for module imports\nexport function tuiAsDialog(\n useExisting: Type<Observable<readonly TuiAriaDialogContext[]>>,\n): Provider {\n return {\n provide: TUI_DIALOGS,\n multi: true,\n useExisting,\n };\n}\n","import {DOCUMENT} from '@angular/common';\nimport {inject} from '@angular/core';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\n\n/**\n * @deprecated: use {@link TUI_BASE_HREF}\n */\nexport const TUI_ENSURE_BASE_HREF = tuiCreateTokenFromFactory(() => {\n const baseHref = inject(DOCUMENT).querySelector(`base`)?.href;\n\n if (baseHref) {\n return baseHref;\n }\n\n const link = inject(DOCUMENT).createElement(`a`);\n\n link.href = ``;\n\n return link.pathname;\n});\n","import {InjectionToken, Provider, Type} from '@angular/core';\nimport {TuiFocusableElementAccessor} from '@taiga-ui/cdk/interfaces';\n\n/**\n * A component that can be focused\n */\nexport const TUI_FOCUSABLE_ITEM_ACCESSOR =\n new InjectionToken<TuiFocusableElementAccessor>(`[TUI_FOCUSABLE_ITEM_ACCESSOR]`);\n\nexport function tuiAsFocusableItemAccessor(\n useExisting: Type<TuiFocusableElementAccessor>,\n): Provider {\n return {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting,\n };\n}\n","import {DOCUMENT} from '@angular/common';\nimport {inject, InjectionToken} from '@angular/core';\nimport {EMPTY, from, Observable} from 'rxjs';\nimport {shareReplay} from 'rxjs/operators';\n\nexport const TUI_FONTS_READY = new InjectionToken<Observable<unknown>>(\n `[TUI_FONTS_READY]`,\n {\n factory: () =>\n from((inject(DOCUMENT) as any).fonts?.ready || EMPTY).pipe(\n shareReplay({bufferSize: 1, refCount: false}),\n ),\n },\n);\n","import {inject} from '@angular/core';\nimport {NAVIGATOR} from '@ng-web-apis/common';\nimport {tuiCreateTokenFromFactory, tuiIsIos} from '@taiga-ui/cdk/utils';\n\n/**\n * iOS browser detection\n */\nexport const TUI_IS_IOS = tuiCreateTokenFromFactory(() => tuiIsIos(inject(NAVIGATOR)));\n","import {inject} from '@angular/core';\nimport {USER_AGENT} from '@ng-web-apis/common';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\n\n// https://stackoverflow.com/a/11381730/2706426 http://detectmobilebrowsers.com/\nconst firstRegex =\n /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/;\nconst secondRegex =\n /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/;\n\n/**\n * Mobile browser detection\n */\nexport const TUI_IS_MOBILE = tuiCreateTokenFromFactory(\n () =>\n firstRegex.test(inject(USER_AGENT).toLowerCase()) ||\n secondRegex.test(inject(USER_AGENT).slice(0, 4).toLowerCase()),\n);\n","import {inject} from '@angular/core';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\n\nimport {TUI_IS_IOS} from './is-ios';\nimport {TUI_IS_MOBILE} from './is-mobile';\n\n/**\n * Mobile browser that is not iOS (technically includes Windows Phone, Blackberry etc.)\n */\nexport const TUI_IS_ANDROID = tuiCreateTokenFromFactory(\n () => inject(TUI_IS_MOBILE) && !inject(TUI_IS_IOS),\n);\n","import {inject} from '@angular/core';\nimport {NAVIGATOR} from '@ng-web-apis/common';\nimport {tuiCreateTokenFromFactory, tuiIsApple} from '@taiga-ui/cdk/utils';\n\n/**\n * Apple(safari/webkit) detection\n */\nexport const TUI_IS_APPLE = tuiCreateTokenFromFactory(() =>\n tuiIsApple(inject(NAVIGATOR)),\n);\n","import {inject} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\n\n/**\n * Chromium browser engine detection\n */\nexport const TUI_IS_CHROMIUM = tuiCreateTokenFromFactory(\n () => !!(inject(WINDOW) as Window & {chrome: unknown}).chrome,\n);\n","import {inject} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\n\ninterface WindowWithCypress extends Window {\n Cypress?: unknown;\n}\n\n/**\n * Detect if app is running under Cypress\n * {@link https://docs.cypress.io/faq/questions/using-cypress-faq#Is-there-any-way-to-detect-if-my-app-is-running-under-Cypress Cypress docs}\n */\nexport const TUI_IS_CYPRESS = tuiCreateTokenFromFactory(\n () => !!inject<WindowWithCypress>(WINDOW).Cypress,\n);\n","import {ALWAYS_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\n\n/**\n * Detect if app is running under Playwright\n */\nexport const TUI_IS_PLAYWRIGHT = tuiCreateTokenFromFactory<boolean>(ALWAYS_FALSE_HANDLER);\n","import {inject} from '@angular/core';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\n\nimport {TUI_IS_CYPRESS} from './is-cypress';\nimport {TUI_IS_PLAYWRIGHT} from './is-playwright';\n\n/**\n * Detect if app is running under any of test frameworks\n */\nexport const TUI_IS_E2E = tuiCreateTokenFromFactory(\n () => inject(TUI_IS_CYPRESS) || inject(TUI_IS_PLAYWRIGHT),\n);\n","import {inject} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\n\n/**\n * Firefox browser engine detection\n */\nexport const TUI_IS_FIREFOX = tuiCreateTokenFromFactory(\n () =>\n typeof (inject(WINDOW) as Window & {mozCancelFullScreen: unknown})\n ?.mozCancelFullScreen !== `undefined`,\n);\n","import {inject} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\n\nexport const TUI_IS_STACKBLITZ = tuiCreateTokenFromFactory(() =>\n inject(WINDOW).location.host.endsWith(`stackblitz.io`),\n);\n","import {inject} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\n\n/**\n * Webkit browser engine detection\n */\nexport const TUI_IS_WEBKIT = tuiCreateTokenFromFactory(\n () =>\n !!(inject(WINDOW) as unknown as {webkitConvertPointFromNodeToPage?: unknown})\n ?.webkitConvertPointFromNodeToPage,\n);\n","import {inject} from '@angular/core';\nimport {TuiPlatform} from '@taiga-ui/cdk/types';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils';\n\nimport {TUI_IS_ANDROID} from './is-android';\nimport {TUI_IS_IOS} from './is-ios';\n\n// TODO: Switch to factory in 4.0\nexport const TUI_PLATFORM = tuiCreateToken<TuiPlatform>(`web`);\n\nexport function tuiPlatformFactory(): TuiPlatform {\n if (inject(TUI_IS_IOS)) {\n return `ios`;\n }\n\n if (inject(TUI_IS_ANDROID)) {\n return `android`;\n }\n\n return `web`;\n}\n","import {isPlatformBrowser} from '@angular/common';\nimport {inject, PLATFORM_ID} from '@angular/core';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\n\n/**\n * SSR safe default empty Range\n */\nexport const TUI_RANGE = tuiCreateTokenFromFactory(() =>\n isPlatformBrowser(inject(PLATFORM_ID)) ? new Range() : ({} as unknown as Range),\n);\n","import {DOCUMENT} from '@angular/common';\nimport {ElementRef, inject} from '@angular/core';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\n\n/**\n * Scrollable container\n */\nexport const TUI_SCROLL_REF = tuiCreateTokenFromFactory(\n () => new ElementRef(inject(DOCUMENT).documentElement),\n);\n","import {TuiSwipeOptions} from '@taiga-ui/cdk/interfaces';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils';\n\n/**\n * Swipe options\n */\nexport const TUI_SWIPE_OPTIONS = tuiCreateToken<TuiSwipeOptions>({\n timeout: 500,\n threshold: 30,\n});\n","import {ALWAYS_TRUE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\n\n/**\n * @description:\n * The isTrusted read-only property of the Event interface is a boolean value that is true\n * when the event was generated by a user action, and false when the event was created or\n * modified by a script or dispatched via EventTarget.dispatchEvent().\n */\nexport const TUI_TAKE_ONLY_TRUSTED_EVENTS =\n tuiCreateTokenFromFactory<boolean>(ALWAYS_TRUE_HANDLER);\n","import {inject} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\n\nexport const TUI_TOUCH_SUPPORTED = tuiCreateTokenFromFactory(\n () => inject(WINDOW).matchMedia(`(any-pointer: coarse)`).matches,\n);\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {Observable} from 'rxjs';\nimport {map, shareReplay, startWith} from 'rxjs/operators';\n\nexport const TUI_WINDOW_SIZE = new InjectionToken<Observable<ClientRect>>(\n `[TUI_WINDOW_SIZE]`,\n {\n factory: () => {\n const w = inject(WINDOW);\n\n return tuiTypedFromEvent(w, `resize`).pipe(\n startWith(null),\n map(() => {\n const width = Math.max(w.innerWidth, w.visualViewport?.width || 0);\n const height = Math.max(w.innerHeight, w.visualViewport?.height || 0);\n\n return {\n width,\n height,\n top: 0,\n left: 0,\n right: width,\n bottom: height,\n };\n }),\n shareReplay({bufferSize: 1, refCount: true}),\n );\n },\n },\n);\n","import {inject} from '@angular/core';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\nimport {map} from 'rxjs/operators';\n\nimport {TUI_WINDOW_SIZE} from './window-size';\n\n/**\n * @deprecated Use {@link TUI_WINDOW_SIZE} instead\n */\nexport const TUI_WINDOW_HEIGHT = tuiCreateTokenFromFactory(() =>\n inject(TUI_WINDOW_SIZE).pipe(map(({height}) => height)),\n);\n","import {TuiZoomOptions} from '@taiga-ui/cdk/interfaces';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils';\n\n/**\n * Zoom options\n */\nexport const TUI_ZOOM_OPTIONS = tuiCreateToken<TuiZoomOptions>({\n wheelSensitivity: 0.01,\n});\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["AnimationEngine"],"mappings":"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"}
@@ -10,14 +10,6 @@ function tuiHexToRgb(hex) {
10
10
  : [0, 0, 0];
11
11
  }
12
12
 
13
- function tuiHexToRGBA(hex, alpha) {
14
- const [r, g, b, a] = tuiParseHex(hex, alpha);
15
- return a < 1 ? `rgba(${r}, ${g}, ${b}, ${a})` : `rgb(${r}, ${g}, ${b})`;
16
- }
17
- function tuiIsValidHex(hex) {
18
- // eslint-disable-next-line unicorn/no-unsafe-regex
19
- return /^#([A-Fa-f0-9]{3,4}){1,2}$/.test(hex);
20
- }
21
13
  const getChunksFromString = (hex, chunkSize) => hex.match(new RegExp(`.{${chunkSize}}`, `g`));
22
14
  const convertHexUnitTo256 = (hexStr) => parseInt(hexStr.repeat(2 / hexStr.length), 16);
23
15
  const getAlphaFloat = (a, alpha) => {
@@ -29,6 +21,14 @@ const getAlphaFloat = (a, alpha) => {
29
21
  }
30
22
  return alpha;
31
23
  };
24
+ function tuiHexToRGBA(hex, alpha) {
25
+ const [r, g, b, a] = tuiParseHex(hex, alpha);
26
+ return a < 1 ? `rgba(${r}, ${g}, ${b}, ${a})` : `rgb(${r}, ${g}, ${b})`;
27
+ }
28
+ function tuiIsValidHex(hex) {
29
+ // eslint-disable-next-line unicorn/no-unsafe-regex
30
+ return /^#([A-Fa-f0-9]{3,4}){1,2}$/.test(hex);
31
+ }
32
32
  function tuiParseHex(hex, alpha) {
33
33
  var _a;
34
34
  if (!tuiIsValidHex(hex)) {
@@ -41,16 +41,16 @@ function tuiParseHex(hex, alpha) {
41
41
  return [r, g, b, floatAlpha];
42
42
  }
43
43
 
44
+ function hsvToColor(h, s, v, n) {
45
+ const k = (n + h / 60) % 6;
46
+ return Math.round(v - v * s * Math.max(Math.min(k, 4 - k, 1), 0));
47
+ }
44
48
  /**
45
49
  * https://stackoverflow.com/a/54024653/2706426
46
50
  */
47
51
  function tuiHsvToRgb(h, s, v) {
48
52
  return [hsvToColor(h, s, v, 5), hsvToColor(h, s, v, 3), hsvToColor(h, s, v, 1)];
49
53
  }
50
- function hsvToColor(h, s, v, n) {
51
- const k = (n + h / 60) % 6;
52
- return Math.round(v - v * s * Math.max(Math.min(k, 4 - k, 1), 0));
53
- }
54
54
 
55
55
  const DEFAULT = [0, 0, 0, 1];
56
56
  function tuiParseColor(color) {
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-utils-color.js","sources":["../../../projects/cdk/utils/color/hex-to-rgb.ts","../../../projects/cdk/utils/color/hex-to-rgba.ts","../../../projects/cdk/utils/color/hsv-to-rgb.ts","../../../projects/cdk/utils/color/parse-color.ts","../../../projects/cdk/utils/color/rgb-to-hex.ts","../../../projects/cdk/utils/color/rgb-to-hsv.ts","../../../projects/cdk/utils/color/rgba-to-hex.ts","../../../projects/cdk/utils/color/taiga-ui-cdk-utils-color.ts"],"sourcesContent":["export function tuiHexToRgb(hex: string): [number, number, number] {\n const matches = hex\n .replace(`#`, ``)\n .split(``)\n .map((char, _, array) => (array.length === 3 ? char + char : char))\n .join(``)\n .match(/.{2}/g);\n\n return matches\n ? (matches.map(x => Number.parseInt(x, 16)) as [number, number, number])\n : [0, 0, 0];\n}\n","export function tuiHexToRGBA(hex: string, alpha?: number): string {\n const [r, g, b, a] = tuiParseHex(hex, alpha);\n\n return a < 1 ? `rgba(${r}, ${g}, ${b}, ${a})` : `rgb(${r}, ${g}, ${b})`;\n}\n\nexport function tuiIsValidHex(hex: string): boolean {\n // eslint-disable-next-line unicorn/no-unsafe-regex\n return /^#([A-Fa-f0-9]{3,4}){1,2}$/.test(hex);\n}\n\nconst getChunksFromString = (hex: string, chunkSize: number): RegExpMatchArray | null =>\n hex.match(new RegExp(`.{${chunkSize}}`, `g`));\n\nconst convertHexUnitTo256 = (hexStr: string): number =>\n parseInt(hexStr.repeat(2 / hexStr.length), 16);\n\nconst getAlphaFloat = (a: number, alpha?: number): number => {\n if (typeof a !== `undefined`) {\n return Number((a / 255).toFixed(2));\n }\n\n if (typeof alpha !== `number` || alpha < 0 || alpha > 1) {\n return 1;\n }\n\n return alpha;\n};\n\nexport function tuiParseHex(\n hex: string,\n alpha?: number,\n): [number, number, number, number] {\n if (!tuiIsValidHex(hex)) {\n throw new Error(`Invalid HEX`);\n }\n\n const chunkSize = Math.floor((hex.length - 1) / 3);\n const hexArr = getChunksFromString(hex.slice(1), chunkSize);\n const [r, g, b, a] = hexArr?.map(convertHexUnitTo256) ?? [];\n const floatAlpha = getAlphaFloat(a, alpha);\n\n return [r, g, b, floatAlpha];\n}\n","/**\n * https://stackoverflow.com/a/54024653/2706426\n */\nexport function tuiHsvToRgb(h: number, s: number, v: number): [number, number, number] {\n return [hsvToColor(h, s, v, 5), hsvToColor(h, s, v, 3), hsvToColor(h, s, v, 1)];\n}\n\nfunction hsvToColor(h: number, s: number, v: number, n: number): number {\n const k = (n + h / 60) % 6;\n\n return Math.round(v - v * s * Math.max(Math.min(k, 4 - k, 1), 0));\n}\n","const DEFAULT: [number, number, number, number] = [0, 0, 0, 1];\n\nexport function tuiParseColor(color: string): [number, number, number, number] {\n const stripped = color\n .replace(`#`, ``)\n .replace(`rgba(`, ``)\n .replace(`rgb(`, ``)\n .replace(`)`, ``);\n const array = stripped.split(`,`).map(item => parseFloat(item));\n\n if (array.length === 4) {\n return array as [number, number, number, number];\n }\n\n if (array.length === 3) {\n return array.concat(1) as [number, number, number, number];\n }\n\n const matches = stripped.match(new RegExp(`(.{${stripped.length / 3}})`, `g`));\n\n if (!matches) {\n return DEFAULT;\n }\n\n const parsed = matches.map(char =>\n parseInt(stripped.length % 2 ? char + char : char, 16),\n );\n\n return [\n parsed[0] || DEFAULT[0],\n parsed[1] || DEFAULT[1],\n parsed[2] || DEFAULT[2],\n parsed[3] === undefined ? DEFAULT[3] : parsed[3],\n ];\n}\n","export function tuiRgbToHex(r: number, g: number, b: number): string {\n return `#${[r, g, b].map(x => x.toString(16).padStart(2, `0`)).join(``)}`;\n}\n","export function tuiRgbToHsv(r: number, g: number, b: number): [number, number, number] {\n const v = Math.max(r, g, b);\n const n = v - Math.min(r, g, b);\n\n // eslint-disable-next-line no-nested-ternary\n const h = n && (v === r ? (g - b) / n : v === g ? 2 + (b - r) / n : 4 + (r - g) / n);\n\n return [60 * (h < 0 ? h + 6 : h), v && n / v, v];\n}\n","export function tuiRgbaToHex(color: string): string {\n if (!tuiIsValidRgba(color)) {\n throw new Error(`Invalid RGBa`);\n }\n\n const rgb: number[] =\n (color\n .replace(/\\s/g, ``)\n // eslint-disable-next-line unicorn/no-unsafe-regex\n .match(/^rgba?\\((\\d+),(\\d+),(\\d+),?([^,\\s)]+)?/i) as unknown as number[]) ??\n [];\n let alpha: number | string = (rgb?.[4] ?? ``).toString().trim();\n let hex = rgb\n ? (rgb[1] | (1 << 8)).toString(16).slice(1) +\n (rgb[2] | (1 << 8)).toString(16).slice(1) +\n (rgb[3] | (1 << 8)).toString(16).slice(1)\n : color;\n\n alpha = alpha !== `` ? alpha : 0o1;\n alpha = ((Number(alpha) * 255) | (1 << 8)).toString(16).slice(1);\n hex += alpha;\n\n return `#${hex.toUpperCase()}`;\n}\n\nexport function tuiIsValidRgba(rgba: string): boolean {\n const range = `(\\\\d|[1-9]\\\\d|1\\\\d{2}|2[0-4]\\\\d|2[0-5]{2})`;\n const alpha = `([01]|0?\\\\.\\\\d+)`;\n\n return new RegExp(\n `^(?:rgb\\\\(\\\\s*${range}\\\\s*,\\\\s*${range}\\\\s*,\\\\s*${range}\\\\s*\\\\)|rgba\\\\(\\\\s*${range}\\\\s*,\\\\s*${range}\\\\s*,\\\\s*${range}\\\\s*,\\\\s*${alpha}\\\\s*\\\\))$`,\n ).test(rgba);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"AAAM,SAAU,WAAW,CAAC,GAAW,EAAA;IACnC,MAAM,OAAO,GAAG,GAAG;AACd,SAAA,OAAO,CAAC,CAAA,CAAA,CAAG,EAAE,CAAA,CAAE,CAAC;SAChB,KAAK,CAAC,EAAE,CAAC;SACT,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,MAAM,KAAK,CAAC,MAAM,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;SAClE,IAAI,CAAC,EAAE,CAAC;SACR,KAAK,CAAC,OAAO,CAAC,CAAC;AAEpB,IAAA,OAAO,OAAO;AACV,UAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAA8B;UACtE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACpB;;ACXgB,SAAA,YAAY,CAAC,GAAW,EAAE,KAAc,EAAA;AACpD,IAAA,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAE7C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAQ,KAAA,EAAA,CAAC,CAAK,EAAA,EAAA,CAAC,CAAK,EAAA,EAAA,CAAC,KAAK,CAAC,CAAA,CAAA,CAAG,GAAG,CAAA,IAAA,EAAO,CAAC,CAAA,EAAA,EAAK,CAAC,CAAA,EAAA,EAAK,CAAC,CAAA,CAAA,CAAG,CAAC;AAC5E,CAAC;AAEK,SAAU,aAAa,CAAC,GAAW,EAAA;;AAErC,IAAA,OAAO,4BAA4B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,mBAAmB,GAAG,CAAC,GAAW,EAAE,SAAiB,KACvD,GAAG,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,CAAK,EAAA,EAAA,SAAS,GAAG,EAAE,CAAA,CAAA,CAAG,CAAC,CAAC,CAAC;AAElD,MAAM,mBAAmB,GAAG,CAAC,MAAc,KACvC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;AAEnD,MAAM,aAAa,GAAG,CAAC,CAAS,EAAE,KAAc,KAAY;AACxD,IAAA,IAAI,OAAO,CAAC,KAAK,CAAA,SAAA,CAAW,EAAE;AAC1B,QAAA,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACvC,KAAA;AAED,IAAA,IAAI,OAAO,KAAK,KAAK,CAAA,MAAA,CAAQ,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE;AACrD,QAAA,OAAO,CAAC,CAAC;AACZ,KAAA;AAED,IAAA,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEc,SAAA,WAAW,CACvB,GAAW,EACX,KAAc,EAAA;;AAEd,IAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE;AACrB,QAAA,MAAM,IAAI,KAAK,CAAC,CAAA,WAAA,CAAa,CAAC,CAAC;AAClC,KAAA;AAED,IAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACnD,IAAA,MAAM,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAC5D,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAA,EAAA,GAAA,MAAM,KAAN,IAAA,IAAA,MAAM,KAAN,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,MAAM,CAAE,GAAG,CAAC,mBAAmB,CAAC,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAC;IAC5D,MAAM,UAAU,GAAG,aAAa,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAE3C,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;AACjC;;AC3CA;;AAEG;SACa,WAAW,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAA;AACvD,IAAA,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACpF,CAAC;AAED,SAAS,UAAU,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAA;IAC1D,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAE3B,IAAA,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACtE;;ACXA,MAAM,OAAO,GAAqC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAEzD,SAAU,aAAa,CAAC,KAAa,EAAA;IACvC,MAAM,QAAQ,GAAG,KAAK;AACjB,SAAA,OAAO,CAAC,CAAA,CAAA,CAAG,EAAE,CAAA,CAAE,CAAC;AAChB,SAAA,OAAO,CAAC,CAAA,KAAA,CAAO,EAAE,CAAA,CAAE,CAAC;AACpB,SAAA,OAAO,CAAC,CAAA,IAAA,CAAM,EAAE,CAAA,CAAE,CAAC;AACnB,SAAA,OAAO,CAAC,CAAA,CAAA,CAAG,EAAE,CAAA,CAAE,CAAC,CAAC;IACtB,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA,CAAA,CAAG,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AAEhE,IAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AACpB,QAAA,OAAO,KAAyC,CAAC;AACpD,KAAA;AAED,IAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AACpB,QAAA,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAqC,CAAC;AAC9D,KAAA;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,CAAA,GAAA,EAAM,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAA,EAAA,CAAI,EAAE,CAAG,CAAA,CAAA,CAAC,CAAC,CAAC;IAE/E,IAAI,CAAC,OAAO,EAAE;AACV,QAAA,OAAO,OAAO,CAAC;AAClB,KAAA;AAED,IAAA,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAC3B,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,EAAE,CAAC,CACzD,CAAC;IAEF,OAAO;AACH,QAAA,MAAM,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC;AACvB,QAAA,MAAM,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC;AACvB,QAAA,MAAM,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC;AACvB,QAAA,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;KACnD,CAAC;AACN;;SClCgB,WAAW,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAA;AACvD,IAAA,OAAO,CAAI,CAAA,EAAA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAA,CAAA,CAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAE,CAAA,CAAC,EAAE,CAAC;AAC9E;;SCFgB,WAAW,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAA;AACvD,IAAA,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B,IAAA,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;;IAGhC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAErF,OAAO,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AACrD;;ACRM,SAAU,YAAY,CAAC,KAAa,EAAA;;AACtC,IAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;AACxB,QAAA,MAAM,IAAI,KAAK,CAAC,CAAA,YAAA,CAAc,CAAC,CAAC;AACnC,KAAA;IAED,MAAM,GAAG,GACL,CAAA,EAAA,GAAC,KAAK;AACD,SAAA,OAAO,CAAC,KAAK,EAAE,CAAA,CAAE,CAAC;;AAElB,SAAA,KAAK,CAAC,yCAAyC,CAAyB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAC7E,EAAE,CAAC;IACP,IAAI,KAAK,GAAoB,CAAC,CAAA,EAAA,GAAA,GAAG,KAAH,IAAA,IAAA,GAAG,uBAAH,GAAG,CAAG,CAAC,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;IAChE,IAAI,GAAG,GAAG,GAAG;UACP,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACzC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACzC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;UACzC,KAAK,CAAC;AAEZ,IAAA,KAAK,GAAG,KAAK,KAAK,CAAA,CAAE,GAAG,KAAK,GAAG,GAAG,CAAC;IACnC,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjE,GAAG,IAAI,KAAK,CAAC;AAEb,IAAA,OAAO,IAAI,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;AACnC,CAAC;AAEK,SAAU,cAAc,CAAC,IAAY,EAAA;IACvC,MAAM,KAAK,GAAG,CAAA,0CAAA,CAA4C,CAAC;IAC3D,MAAM,KAAK,GAAG,CAAA,gBAAA,CAAkB,CAAC;IAEjC,OAAO,IAAI,MAAM,CACb,CAAiB,cAAA,EAAA,KAAK,YAAY,KAAK,CAAA,SAAA,EAAY,KAAK,CAAA,mBAAA,EAAsB,KAAK,CAAA,SAAA,EAAY,KAAK,CAAY,SAAA,EAAA,KAAK,CAAY,SAAA,EAAA,KAAK,CAAW,SAAA,CAAA,CACpJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjB;;AChCA;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-cdk-utils-color.js","sources":["../../../projects/cdk/utils/color/hex-to-rgb.ts","../../../projects/cdk/utils/color/hex-to-rgba.ts","../../../projects/cdk/utils/color/hsv-to-rgb.ts","../../../projects/cdk/utils/color/parse-color.ts","../../../projects/cdk/utils/color/rgb-to-hex.ts","../../../projects/cdk/utils/color/rgb-to-hsv.ts","../../../projects/cdk/utils/color/rgba-to-hex.ts","../../../projects/cdk/utils/color/taiga-ui-cdk-utils-color.ts"],"sourcesContent":["export function tuiHexToRgb(hex: string): [number, number, number] {\n const matches = hex\n .replace(`#`, ``)\n .split(``)\n .map((char, _, array) => (array.length === 3 ? char + char : char))\n .join(``)\n .match(/.{2}/g);\n\n return matches\n ? (matches.map(x => Number.parseInt(x, 16)) as [number, number, number])\n : [0, 0, 0];\n}\n","const getChunksFromString = (hex: string, chunkSize: number): RegExpMatchArray | null =>\n hex.match(new RegExp(`.{${chunkSize}}`, `g`));\n\nconst convertHexUnitTo256 = (hexStr: string): number =>\n parseInt(hexStr.repeat(2 / hexStr.length), 16);\n\nconst getAlphaFloat = (a: number, alpha?: number): number => {\n if (typeof a !== `undefined`) {\n return Number((a / 255).toFixed(2));\n }\n\n if (typeof alpha !== `number` || alpha < 0 || alpha > 1) {\n return 1;\n }\n\n return alpha;\n};\n\nexport function tuiHexToRGBA(hex: string, alpha?: number): string {\n const [r, g, b, a] = tuiParseHex(hex, alpha);\n\n return a < 1 ? `rgba(${r}, ${g}, ${b}, ${a})` : `rgb(${r}, ${g}, ${b})`;\n}\n\nexport function tuiIsValidHex(hex: string): boolean {\n // eslint-disable-next-line unicorn/no-unsafe-regex\n return /^#([A-Fa-f0-9]{3,4}){1,2}$/.test(hex);\n}\n\nexport function tuiParseHex(\n hex: string,\n alpha?: number,\n): [number, number, number, number] {\n if (!tuiIsValidHex(hex)) {\n throw new Error(`Invalid HEX`);\n }\n\n const chunkSize = Math.floor((hex.length - 1) / 3);\n const hexArr = getChunksFromString(hex.slice(1), chunkSize);\n const [r, g, b, a] = hexArr?.map(convertHexUnitTo256) ?? [];\n const floatAlpha = getAlphaFloat(a, alpha);\n\n return [r, g, b, floatAlpha];\n}\n","function hsvToColor(h: number, s: number, v: number, n: number): number {\n const k = (n + h / 60) % 6;\n\n return Math.round(v - v * s * Math.max(Math.min(k, 4 - k, 1), 0));\n}\n\n/**\n * https://stackoverflow.com/a/54024653/2706426\n */\nexport function tuiHsvToRgb(h: number, s: number, v: number): [number, number, number] {\n return [hsvToColor(h, s, v, 5), hsvToColor(h, s, v, 3), hsvToColor(h, s, v, 1)];\n}\n","const DEFAULT: [number, number, number, number] = [0, 0, 0, 1];\n\nexport function tuiParseColor(color: string): [number, number, number, number] {\n const stripped = color\n .replace(`#`, ``)\n .replace(`rgba(`, ``)\n .replace(`rgb(`, ``)\n .replace(`)`, ``);\n const array = stripped.split(`,`).map(item => parseFloat(item));\n\n if (array.length === 4) {\n return array as [number, number, number, number];\n }\n\n if (array.length === 3) {\n return array.concat(1) as [number, number, number, number];\n }\n\n const matches = stripped.match(new RegExp(`(.{${stripped.length / 3}})`, `g`));\n\n if (!matches) {\n return DEFAULT;\n }\n\n const parsed = matches.map(char =>\n parseInt(stripped.length % 2 ? char + char : char, 16),\n );\n\n return [\n parsed[0] || DEFAULT[0],\n parsed[1] || DEFAULT[1],\n parsed[2] || DEFAULT[2],\n parsed[3] === undefined ? DEFAULT[3] : parsed[3],\n ];\n}\n","export function tuiRgbToHex(r: number, g: number, b: number): string {\n return `#${[r, g, b].map(x => x.toString(16).padStart(2, `0`)).join(``)}`;\n}\n","export function tuiRgbToHsv(r: number, g: number, b: number): [number, number, number] {\n const v = Math.max(r, g, b);\n const n = v - Math.min(r, g, b);\n\n // eslint-disable-next-line no-nested-ternary\n const h = n && (v === r ? (g - b) / n : v === g ? 2 + (b - r) / n : 4 + (r - g) / n);\n\n return [60 * (h < 0 ? h + 6 : h), v && n / v, v];\n}\n","export function tuiRgbaToHex(color: string): string {\n if (!tuiIsValidRgba(color)) {\n throw new Error(`Invalid RGBa`);\n }\n\n const rgb: number[] =\n (color\n .replace(/\\s/g, ``)\n // eslint-disable-next-line unicorn/no-unsafe-regex\n .match(/^rgba?\\((\\d+),(\\d+),(\\d+),?([^,\\s)]+)?/i) as unknown as number[]) ??\n [];\n let alpha: number | string = (rgb?.[4] ?? ``).toString().trim();\n let hex = rgb\n ? (rgb[1] | (1 << 8)).toString(16).slice(1) +\n (rgb[2] | (1 << 8)).toString(16).slice(1) +\n (rgb[3] | (1 << 8)).toString(16).slice(1)\n : color;\n\n alpha = alpha !== `` ? alpha : 0o1;\n alpha = ((Number(alpha) * 255) | (1 << 8)).toString(16).slice(1);\n hex += alpha;\n\n return `#${hex.toUpperCase()}`;\n}\n\nexport function tuiIsValidRgba(rgba: string): boolean {\n const range = `(\\\\d|[1-9]\\\\d|1\\\\d{2}|2[0-4]\\\\d|2[0-5]{2})`;\n const alpha = `([01]|0?\\\\.\\\\d+)`;\n\n return new RegExp(\n `^(?:rgb\\\\(\\\\s*${range}\\\\s*,\\\\s*${range}\\\\s*,\\\\s*${range}\\\\s*\\\\)|rgba\\\\(\\\\s*${range}\\\\s*,\\\\s*${range}\\\\s*,\\\\s*${range}\\\\s*,\\\\s*${alpha}\\\\s*\\\\))$`,\n ).test(rgba);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -2,11 +2,6 @@ import { tuiClamp } from '@taiga-ui/cdk/utils/math';
2
2
  import { tuiIsPresent } from '@taiga-ui/cdk/utils/miscellaneous';
3
3
  import { tuiAssert } from '@taiga-ui/cdk/classes';
4
4
 
5
- function tuiCanScroll(element, rootElement, vertical, scrollEnd) {
6
- return vertical
7
- ? canScrollVertical(element, rootElement, scrollEnd)
8
- : canScrollHorizontal(element, rootElement, scrollEnd);
9
- }
10
5
  function canScrollVertical(element, rootElement, scrollEnd) {
11
6
  let currentElement = element;
12
7
  while (currentElement !== rootElement.parentElement) {
@@ -43,6 +38,11 @@ function canScrollHorizontal(element, rootElement, scrollEnd) {
43
38
  }
44
39
  return false;
45
40
  }
41
+ function tuiCanScroll(element, rootElement, vertical, scrollEnd) {
42
+ return vertical
43
+ ? canScrollVertical(element, rootElement, scrollEnd)
44
+ : canScrollHorizontal(element, rootElement, scrollEnd);
45
+ }
46
46
 
47
47
  function tuiContainsOrAfter(current, node) {
48
48
  try {