@taiga-ui/cdk 2.40.0 → 2.42.0

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 (177) hide show
  1. package/abstract/dialog.service.d.ts +2 -2
  2. package/bundles/taiga-ui-cdk-abstract.umd.js.map +1 -1
  3. package/bundles/taiga-ui-cdk-abstract.umd.min.js.map +1 -1
  4. package/bundles/taiga-ui-cdk-components-alert-host.umd.js +281 -0
  5. package/bundles/taiga-ui-cdk-components-alert-host.umd.js.map +1 -0
  6. package/bundles/taiga-ui-cdk-components-alert-host.umd.min.js +16 -0
  7. package/bundles/taiga-ui-cdk-components-alert-host.umd.min.js.map +1 -0
  8. package/bundles/taiga-ui-cdk-components-dialog-host.umd.js +1 -1
  9. package/bundles/taiga-ui-cdk-components-dialog-host.umd.js.map +1 -1
  10. package/bundles/taiga-ui-cdk-components-dialog-host.umd.min.js +1 -1
  11. package/bundles/taiga-ui-cdk-components-dialog-host.umd.min.js.map +1 -1
  12. package/bundles/taiga-ui-cdk-components-dropdown-host.umd.js +1 -1
  13. package/bundles/taiga-ui-cdk-components-dropdown-host.umd.js.map +1 -1
  14. package/bundles/taiga-ui-cdk-components-dropdown-host.umd.min.js +1 -1
  15. package/bundles/taiga-ui-cdk-components-dropdown-host.umd.min.js.map +1 -1
  16. package/bundles/taiga-ui-cdk-components.umd.js +12 -4
  17. package/bundles/taiga-ui-cdk-components.umd.js.map +1 -1
  18. package/bundles/taiga-ui-cdk-components.umd.min.js +1 -1
  19. package/bundles/taiga-ui-cdk-constants.umd.js +1 -5
  20. package/bundles/taiga-ui-cdk-constants.umd.js.map +1 -1
  21. package/bundles/taiga-ui-cdk-constants.umd.min.js +1 -1
  22. package/bundles/taiga-ui-cdk-constants.umd.min.js.map +1 -1
  23. package/bundles/taiga-ui-cdk-directives-overscroll.umd.js +2 -2
  24. package/bundles/taiga-ui-cdk-directives-overscroll.umd.js.map +1 -1
  25. package/bundles/taiga-ui-cdk-directives-overscroll.umd.min.js +1 -1
  26. package/bundles/taiga-ui-cdk-directives-overscroll.umd.min.js.map +1 -1
  27. package/bundles/taiga-ui-cdk-directives-zoom.umd.js +1 -1
  28. package/bundles/taiga-ui-cdk-directives-zoom.umd.js.map +1 -1
  29. package/bundles/taiga-ui-cdk-directives-zoom.umd.min.js +1 -1
  30. package/bundles/taiga-ui-cdk-directives-zoom.umd.min.js.map +1 -1
  31. package/bundles/taiga-ui-cdk-observables.umd.js +3 -5
  32. package/bundles/taiga-ui-cdk-observables.umd.js.map +1 -1
  33. package/bundles/taiga-ui-cdk-observables.umd.min.js +1 -1
  34. package/bundles/taiga-ui-cdk-observables.umd.min.js.map +1 -1
  35. package/bundles/taiga-ui-cdk-services.umd.js +9 -8
  36. package/bundles/taiga-ui-cdk-services.umd.js.map +1 -1
  37. package/bundles/taiga-ui-cdk-services.umd.min.js +1 -1
  38. package/bundles/taiga-ui-cdk-services.umd.min.js.map +1 -1
  39. package/bundles/taiga-ui-cdk-tokens.umd.js +15 -4
  40. package/bundles/taiga-ui-cdk-tokens.umd.js.map +1 -1
  41. package/bundles/taiga-ui-cdk-tokens.umd.min.js +1 -1
  42. package/bundles/taiga-ui-cdk-tokens.umd.min.js.map +1 -1
  43. package/components/alert-host/alert-host.component.d.ts +9 -0
  44. package/components/alert-host/alert-host.module.d.ts +2 -0
  45. package/components/alert-host/index.d.ts +2 -0
  46. package/components/alert-host/package.json +13 -0
  47. package/components/alert-host/taiga-ui-cdk-components-alert-host.d.ts +4 -0
  48. package/components/alert-host/taiga-ui-cdk-components-alert-host.metadata.json +1 -0
  49. package/components/dialog-host/taiga-ui-cdk-components-dialog-host.metadata.json +1 -1
  50. package/components/dropdown-host/taiga-ui-cdk-components-dropdown-host.metadata.json +1 -1
  51. package/components/index.d.ts +1 -0
  52. package/components/taiga-ui-cdk-components.metadata.json +1 -1
  53. package/constants/taiga-ui-cdk-constants.metadata.json +1 -1
  54. package/directives/zoom/taiga-ui-cdk-directives-zoom.metadata.json +1 -1
  55. package/esm2015/abstract/dialog.service.js +1 -1
  56. package/esm2015/components/alert-host/alert-host.component.js +38 -0
  57. package/esm2015/components/alert-host/alert-host.module.js +16 -0
  58. package/esm2015/components/alert-host/index.js +3 -0
  59. package/esm2015/components/alert-host/taiga-ui-cdk-components-alert-host.js +5 -0
  60. package/esm2015/components/dialog-host/dialog-host.component.js +2 -2
  61. package/esm2015/components/dropdown-host/dropdown-host.component.js +2 -2
  62. package/esm2015/components/index.js +2 -1
  63. package/esm2015/constants/parent-animation.js +2 -6
  64. package/esm2015/directives/overscroll/overscroll.directive.js +3 -3
  65. package/esm2015/directives/zoom/zoom.directive.js +2 -2
  66. package/esm2015/interfaces/aria-dialog-context.js +1 -1
  67. package/esm2015/observables/focus-visible-observable.js +3 -3
  68. package/esm2015/observables/prevent-default.js +2 -4
  69. package/esm2015/observables/zone-free.js +2 -2
  70. package/esm2015/services/pan.service.js +4 -2
  71. package/esm2015/services/resize.service.js +2 -2
  72. package/esm2015/services/scroll.service.js +3 -3
  73. package/esm2015/services/static-request.service.js +2 -2
  74. package/esm2015/services/zoom.service.js +3 -4
  75. package/esm2015/tokens/active-element.js +7 -3
  76. package/esm2015/tokens/alerts.js +5 -0
  77. package/esm2015/tokens/dialogs.js +4 -2
  78. package/esm2015/tokens/index.js +2 -1
  79. package/esm2015/tokens/window-height.js +2 -2
  80. package/esm5/abstract/dialog.service.js +1 -1
  81. package/esm5/components/alert-host/alert-host.component.js +42 -0
  82. package/esm5/components/alert-host/alert-host.module.js +19 -0
  83. package/esm5/components/alert-host/index.js +3 -0
  84. package/esm5/components/alert-host/taiga-ui-cdk-components-alert-host.js +5 -0
  85. package/esm5/components/dialog-host/dialog-host.component.js +2 -2
  86. package/esm5/components/dropdown-host/dropdown-host.component.js +2 -2
  87. package/esm5/components/index.js +2 -1
  88. package/esm5/constants/parent-animation.js +2 -6
  89. package/esm5/directives/overscroll/overscroll.directive.js +3 -3
  90. package/esm5/directives/zoom/zoom.directive.js +2 -2
  91. package/esm5/interfaces/aria-dialog-context.js +1 -1
  92. package/esm5/observables/focus-visible-observable.js +3 -3
  93. package/esm5/observables/prevent-default.js +2 -4
  94. package/esm5/observables/zone-free.js +1 -1
  95. package/esm5/services/pan.service.js +4 -2
  96. package/esm5/services/resize.service.js +2 -2
  97. package/esm5/services/scroll.service.js +3 -3
  98. package/esm5/services/static-request.service.js +2 -2
  99. package/esm5/services/zoom.service.js +3 -4
  100. package/esm5/tokens/active-element.js +7 -3
  101. package/esm5/tokens/alerts.js +5 -0
  102. package/esm5/tokens/dialogs.js +4 -2
  103. package/esm5/tokens/index.js +2 -1
  104. package/esm5/tokens/window-height.js +2 -2
  105. package/fesm2015/taiga-ui-cdk-abstract.js.map +1 -1
  106. package/fesm2015/taiga-ui-cdk-components-alert-host.js +56 -0
  107. package/fesm2015/taiga-ui-cdk-components-alert-host.js.map +1 -0
  108. package/fesm2015/taiga-ui-cdk-components-dialog-host.js +1 -1
  109. package/fesm2015/taiga-ui-cdk-components-dialog-host.js.map +1 -1
  110. package/fesm2015/taiga-ui-cdk-components-dropdown-host.js +1 -1
  111. package/fesm2015/taiga-ui-cdk-components-dropdown-host.js.map +1 -1
  112. package/fesm2015/taiga-ui-cdk-components.js +1 -0
  113. package/fesm2015/taiga-ui-cdk-components.js.map +1 -1
  114. package/fesm2015/taiga-ui-cdk-constants.js +1 -5
  115. package/fesm2015/taiga-ui-cdk-constants.js.map +1 -1
  116. package/fesm2015/taiga-ui-cdk-directives-overscroll.js +2 -2
  117. package/fesm2015/taiga-ui-cdk-directives-overscroll.js.map +1 -1
  118. package/fesm2015/taiga-ui-cdk-directives-zoom.js +1 -1
  119. package/fesm2015/taiga-ui-cdk-directives-zoom.js.map +1 -1
  120. package/fesm2015/taiga-ui-cdk-observables.js +4 -6
  121. package/fesm2015/taiga-ui-cdk-observables.js.map +1 -1
  122. package/fesm2015/taiga-ui-cdk-services.js +9 -8
  123. package/fesm2015/taiga-ui-cdk-services.js.map +1 -1
  124. package/fesm2015/taiga-ui-cdk-tokens.js +15 -5
  125. package/fesm2015/taiga-ui-cdk-tokens.js.map +1 -1
  126. package/fesm5/taiga-ui-cdk-abstract.js.map +1 -1
  127. package/fesm5/taiga-ui-cdk-components-alert-host.js +63 -0
  128. package/fesm5/taiga-ui-cdk-components-alert-host.js.map +1 -0
  129. package/fesm5/taiga-ui-cdk-components-dialog-host.js +1 -1
  130. package/fesm5/taiga-ui-cdk-components-dialog-host.js.map +1 -1
  131. package/fesm5/taiga-ui-cdk-components-dropdown-host.js +1 -1
  132. package/fesm5/taiga-ui-cdk-components-dropdown-host.js.map +1 -1
  133. package/fesm5/taiga-ui-cdk-components.js +1 -0
  134. package/fesm5/taiga-ui-cdk-components.js.map +1 -1
  135. package/fesm5/taiga-ui-cdk-constants.js +1 -5
  136. package/fesm5/taiga-ui-cdk-constants.js.map +1 -1
  137. package/fesm5/taiga-ui-cdk-directives-overscroll.js +2 -2
  138. package/fesm5/taiga-ui-cdk-directives-overscroll.js.map +1 -1
  139. package/fesm5/taiga-ui-cdk-directives-zoom.js +1 -1
  140. package/fesm5/taiga-ui-cdk-directives-zoom.js.map +1 -1
  141. package/fesm5/taiga-ui-cdk-observables.js +3 -5
  142. package/fesm5/taiga-ui-cdk-observables.js.map +1 -1
  143. package/fesm5/taiga-ui-cdk-services.js +9 -8
  144. package/fesm5/taiga-ui-cdk-services.js.map +1 -1
  145. package/fesm5/taiga-ui-cdk-tokens.js +15 -5
  146. package/fesm5/taiga-ui-cdk-tokens.js.map +1 -1
  147. package/interfaces/aria-dialog-context.d.ts +2 -2
  148. package/package.json +4 -4
  149. package/schematics/migration.json +1 -1
  150. package/schematics/ng-add/constants/packages.d.ts +0 -1
  151. package/schematics/ng-add/constants/packages.js +0 -10
  152. package/schematics/ng-add/steps/add-taiga-modules.js +3 -27
  153. package/schematics/ng-update/constants/consts.d.ts +12 -0
  154. package/schematics/ng-update/constants/consts.js +45 -0
  155. package/schematics/ng-update/constants/enums.d.ts +7 -0
  156. package/schematics/ng-update/constants/enums.js +174 -0
  157. package/schematics/ng-update/constants/types.d.ts +7 -0
  158. package/schematics/ng-update/constants/types.js +19 -0
  159. package/schematics/ng-update/index.d.ts +2 -2
  160. package/schematics/ng-update/index.js +12 -1
  161. package/schematics/ng-update/steps/rename-types.d.ts +1 -0
  162. package/schematics/ng-update/steps/rename-types.js +27 -0
  163. package/schematics/ng-update/steps/replace-const.d.ts +3 -0
  164. package/schematics/ng-update/steps/replace-const.js +25 -0
  165. package/schematics/ng-update/steps/replace-deep-import.d.ts +1 -0
  166. package/schematics/ng-update/steps/replace-deep-import.js +12 -0
  167. package/schematics/ng-update/steps/replace-enums.d.ts +1 -0
  168. package/schematics/ng-update/steps/replace-enums.js +40 -0
  169. package/schematics/utils/add-unique-import.d.ts +1 -0
  170. package/schematics/utils/add-unique-import.js +29 -0
  171. package/schematics/utils/get-named-import-references.d.ts +2 -0
  172. package/schematics/utils/get-named-import-references.js +14 -0
  173. package/schematics/utils/remove-import.d.ts +2 -0
  174. package/schematics/utils/remove-import.js +11 -0
  175. package/tokens/alerts.d.ts +4 -0
  176. package/tokens/index.d.ts +1 -0
  177. package/tokens/taiga-ui-cdk-tokens.metadata.json +1 -1
@@ -251,7 +251,9 @@ var TuiPanService = /** @class */ (function (_super) {
251
251
  var deltaX = second.clientX - first.clientX;
252
252
  var deltaY = second.clientY - first.clientY;
253
253
  return [deltaX, deltaY];
254
- }), takeUntil(merge(typedFromEvent(documentRef, 'touchend'), typedFromEvent(documentRef, 'mouseup'))), repeat())
254
+ }),
255
+ // eslint-disable-next-line rxjs/no-unsafe-takeuntil
256
+ takeUntil(merge(typedFromEvent(documentRef, 'touchend'), typedFromEvent(documentRef, 'mouseup'))), repeat())
255
257
  .subscribe(subscriber);
256
258
  }) || this;
257
259
  }
@@ -276,7 +278,7 @@ var TuiResizeService = /** @class */ (function (_super) {
276
278
  return animationFrame$.pipe(throttleTime(POLLING_TIME), map(function () {
277
279
  return elementRef.nativeElement.clientWidth + " " + elementRef.nativeElement.clientHeight;
278
280
  }), distinctUntilChanged(), mapTo(EMPTY_ARRAY));
279
- }), takeUntil(destroy$), debounceTime(0), tuiZonefree(ngZone));
281
+ }), debounceTime(0), tuiZonefree(ngZone), takeUntil(destroy$));
280
282
  }
281
283
  TuiResizeService.ctorParameters = function () { return [
282
284
  { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
@@ -318,12 +320,12 @@ var TuiScrollService = /** @class */ (function () {
318
320
  var deltaLeft = scrollLeft - initialLeft;
319
321
  var observable = !duration
320
322
  ? of([scrollTop, scrollLeft])
321
- : defer(function () { return of(_this.performanceRef.now()); }).pipe(switchMap(function (start) { return _this.animationFrame$.pipe(map(function (now) { return now - start; })); }), takeUntil(timer(duration)), map(function (elapsed) { return easeInOutQuad(clamp(elapsed / duration, 0, 1)); }), map(function (percent) {
323
+ : defer(function () { return of(_this.performanceRef.now()); }).pipe(switchMap(function (start) { return _this.animationFrame$.pipe(map(function (now) { return now - start; })); }), map(function (elapsed) { return easeInOutQuad(clamp(elapsed / duration, 0, 1)); }), map(function (percent) {
322
324
  return [
323
325
  initialTop + deltaTop * percent,
324
326
  initialLeft + deltaLeft * percent,
325
327
  ];
326
- }));
328
+ }), takeUntil(timer(duration)));
327
329
  return observable.pipe(tap(function (_a) {
328
330
  var _b = __read(_a, 2), scrollTop = _b[0], scrollLeft = _b[1];
329
331
  element.scrollTop = scrollTop;
@@ -374,7 +376,7 @@ var TuiStaticRequestService = /** @class */ (function () {
374
376
  xhr.abort();
375
377
  };
376
378
  });
377
- var piped = observable.pipe(shareReplay(1));
379
+ var piped = observable.pipe(shareReplay({ bufferSize: 1, refCount: false }));
378
380
  this.cache.set(url, piped);
379
381
  return piped;
380
382
  };
@@ -452,7 +454,7 @@ var TuiZoomService = /** @class */ (function (_super) {
452
454
  }), switchMap(function (startEvent) {
453
455
  return typedFromEvent(nativeElement, 'touchmove', {
454
456
  passive: true,
455
- }).pipe(takeUntil(typedFromEvent(nativeElement, 'touchend')), scan(function (prev, event) {
457
+ }).pipe(preventDefault(), scan(function (prev, event) {
456
458
  var distance = distanceBetweenTouches(event);
457
459
  return {
458
460
  event: event,
@@ -466,7 +468,6 @@ var TuiZoomService = /** @class */ (function (_super) {
466
468
  delta: 0,
467
469
  }), map(function (_a) {
468
470
  var event = _a.event, delta = _a.delta;
469
- event.preventDefault();
470
471
  var clientX = (event.touches[0].clientX +
471
472
  event.touches[1].clientX) /
472
473
  2;
@@ -474,7 +475,7 @@ var TuiZoomService = /** @class */ (function (_super) {
474
475
  event.touches[1].clientY) /
475
476
  2;
476
477
  return { clientX: clientX, clientY: clientY, delta: delta, event: event };
477
- }));
478
+ }), takeUntil(typedFromEvent(nativeElement, 'touchend')));
478
479
  })), typedFromEvent(nativeElement, 'wheel', { passive: false }).pipe(preventDefault(), map(function (wheel) { return ({
479
480
  clientX: wheel.clientX,
480
481
  clientY: wheel.clientY,
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-services.js","sources":["ng://@taiga-ui/cdk/services/destroy.service.ts","ng://@taiga-ui/cdk/services/directive-styles.service.ts","ng://@taiga-ui/cdk/services/focus-visible.service.ts","ng://@taiga-ui/cdk/services/hovered.service.ts","ng://@taiga-ui/cdk/services/id.service.ts","ng://@taiga-ui/cdk/services/parents-scroll.service.ts","ng://@taiga-ui/cdk/services/obscured.service.ts","ng://@taiga-ui/cdk/services/pan.service.ts","ng://@taiga-ui/cdk/services/resize.service.ts","ng://@taiga-ui/cdk/services/scroll.service.ts","ng://@taiga-ui/cdk/services/static-request.service.ts","ng://@taiga-ui/cdk/services/swipe.service.ts","ng://@taiga-ui/cdk/services/zoom.service.ts","ng://@taiga-ui/cdk/services/taiga-ui-cdk-services.ts"],"sourcesContent":["import {Injectable, OnDestroy} from '@angular/core';\nimport {ReplaySubject} from 'rxjs';\n\n/**\n * Observable abstraction over ngOnDestroy to use with takeUntil\n */\n@Injectable()\nexport class TuiDestroyService extends ReplaySubject<void> implements OnDestroy {\n constructor() {\n super(1);\n }\n\n ngOnDestroy() {\n this.next();\n this.complete();\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {\n ComponentFactoryResolver,\n Inject,\n Injectable,\n INJECTOR,\n Injector,\n Renderer2,\n Type,\n} from '@angular/core';\nimport {TUI_DEFAULT_RENDERER} from '@taiga-ui/cdk/tokens';\n\n/**\n * Service to use styles with directives\n * @dynamic\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 @Inject(DOCUMENT) private readonly documentRef: Document,\n @Inject(TUI_DEFAULT_RENDERER) private readonly renderer: Renderer2,\n ) {}\n\n addComponent(component: Type<unknown>) {\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 /** @deprecated use components approach */\n addStyle(styles: string, attribute: string) {\n if (this.documentRef.head.querySelector(`style[${attribute}]`)) {\n return;\n }\n\n const style = this.renderer.createElement('style');\n\n this.renderer.setProperty(style, 'textContent', styles);\n this.renderer.setAttribute(style, attribute, '');\n this.documentRef.head.appendChild(style);\n }\n}\n","import {ChangeDetectorRef, ElementRef, Inject, Injectable} from '@angular/core';\nimport {focusVisibleObservable, watch} 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 * @dynamic\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) changeDetectorRef: ChangeDetectorRef,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n ) {\n super(subscriber => this.focusVisible$.subscribe(subscriber));\n\n this.focusVisible$ = focusVisibleObservable(nativeElement).pipe(\n watch(changeDetectorRef),\n takeUntil(destroy$),\n );\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {Inject, Injectable, NgZone} from '@angular/core';\nimport {tuiZoneOptimized, typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {getActualTarget} from '@taiga-ui/cdk/utils/dom';\nimport {merge, Observable} from 'rxjs';\nimport {\n distinctUntilChanged,\n filter,\n mapTo,\n startWith,\n switchMap,\n take,\n} from 'rxjs/operators';\n\n// @dynamic\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiHoveredService {\n private readonly documentEvents$: Observable<Event>;\n\n constructor(\n @Inject(DOCUMENT) documentRef: Document,\n @Inject(NgZone) private readonly ngZone: NgZone,\n ) {\n this.documentEvents$ = merge(\n typedFromEvent(documentRef, 'mousemove'),\n typedFromEvent(documentRef, 'touchstart', {capture: true}),\n );\n }\n\n createHovered$(\n target: Element,\n options: AddEventListenerOptions = {passive: true},\n ): Observable<boolean> {\n return merge(\n typedFromEvent(target, 'mouseenter', options),\n typedFromEvent(target, 'touchstart', options),\n ).pipe(\n switchMap(() =>\n merge(\n typedFromEvent(target, 'mouseleave', options),\n this.documentEvents$.pipe(\n filter(event => !target.contains(getActualTarget(event))),\n tuiZoneOptimized(this.ngZone),\n take(1),\n ),\n ).pipe(mapTo(false), startWith(true)),\n ),\n distinctUntilChanged(),\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 {typedFromEvent} 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// Ambient type cannot be used without dynamic https://github.com/angular/angular/issues/23395\n// @dynamic\n@Injectable()\nexport class TuiParentsScrollService extends Observable<Event> {\n private readonly callback$: Observable<Event>;\n\n constructor(\n @Inject(ElementRef) elementRef: ElementRef<Element>,\n @Inject(WINDOW) windowRef: Window,\n ) {\n super(subscriber => this.callback$.subscribe(subscriber));\n\n this.callback$ = defer(() => {\n let {nativeElement} = elementRef;\n const eventTargets: (Element | Window)[] = [windowRef, nativeElement];\n\n while (nativeElement.parentElement) {\n nativeElement = nativeElement.parentElement;\n eventTargets.push(nativeElement);\n }\n\n return merge<Event>(\n ...eventTargets.map<Observable<Event>>(element =>\n typedFromEvent(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 {getElementObscurers} 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// Ambient type cannot be used without dynamic https://github.com/angular/angular/issues/23395\n// @dynamic\n@Injectable()\nexport class TuiObscuredService extends Observable<null | readonly Element[]> {\n private readonly obscured$: Observable<null | readonly Element[]>;\n\n constructor(\n @Inject(TuiParentsScrollService)\n @Self()\n parentsScroll$: TuiParentsScrollService,\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(WINDOW) windowRef: Window,\n @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(windowRef, 'resize')).pipe(delay(0)),\n animationFrame$.pipe(throttleTime(POLLING_TIME)),\n ).pipe(\n map(() => getElementObscurers(nativeElement)),\n startWith(null),\n distinctUntilChanged(),\n tuiZoneOptimized(ngZone),\n takeUntil(destroy$),\n );\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {ElementRef, Inject, Injectable} from '@angular/core';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, pairwise, repeat, switchMapTo, takeUntil} from 'rxjs/operators';\n\n/**\n * @dynamic\n */\n@Injectable()\nexport class TuiPanService extends Observable<readonly [number, number]> {\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(DOCUMENT) documentRef: Document,\n ) {\n super(subscriber => {\n merge(\n typedFromEvent(nativeElement, 'touchstart', {passive: true}),\n typedFromEvent(nativeElement, 'mousedown'),\n )\n .pipe(\n switchMapTo(\n merge(\n typedFromEvent(documentRef, 'touchmove', {\n passive: true,\n }).pipe(\n filter(({touches}) => touches.length < 2),\n map(({touches}) => touches[0]),\n ),\n typedFromEvent(documentRef, '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 takeUntil(\n merge(\n typedFromEvent(documentRef, 'touchend'),\n typedFromEvent(documentRef, 'mouseup'),\n ),\n ),\n repeat(),\n )\n .subscribe(subscriber);\n });\n }\n}\n","import {ElementRef, Inject, Injectable, NgZone} 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 mapTo,\n takeUntil,\n throttleTime,\n} from 'rxjs/operators';\n\nimport {TuiDestroyService} from './destroy.service';\n\n// @dynamic\n@Injectable()\nexport class TuiResizeService extends ResizeObserverService {\n constructor(\n @Inject(ElementRef) elementRef: ElementRef<HTMLElement>,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n @Inject(RESIZE_OBSERVER_SUPPORT) support: boolean,\n @Inject(RESIZE_OPTION_BOX) box: ResizeObserverOptions['box'],\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n ) {\n super(elementRef, ngZone, support, box);\n\n return this.pipe(\n catchError(() =>\n animationFrame$.pipe(\n throttleTime(POLLING_TIME),\n map(\n () =>\n `${elementRef.nativeElement.clientWidth} ${elementRef.nativeElement.clientHeight}`,\n ),\n distinctUntilChanged(),\n mapTo(EMPTY_ARRAY),\n ),\n ),\n takeUntil(destroy$),\n debounceTime(0),\n tuiZonefree(ngZone),\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 {clamp} from '@taiga-ui/cdk/utils/math';\nimport {easeInOutQuad} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {defer, Observable, of, timer} from 'rxjs';\nimport {map, switchMap, takeUntil, tap} from 'rxjs/operators';\n\nconst SCROLL_TIME = 300;\n\n// @dynamic\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 element: Element,\n scrollTop: number,\n scrollLeft: number = element.scrollLeft,\n duration: number = SCROLL_TIME,\n ): Observable<[number, number]> {\n tuiAssert.assert(duration >= 0, 'Duration cannot be negative');\n tuiAssert.assert(scrollTop >= 0, 'scrollTop cannot be negative');\n tuiAssert.assert(scrollLeft >= 0, 'scrollLeft cannot be negative');\n\n const initialTop = element.scrollTop;\n const initialLeft = element.scrollLeft;\n const deltaTop = scrollTop - initialTop;\n const deltaLeft = scrollLeft - initialLeft;\n const observable = !duration\n ? of([scrollTop, scrollLeft] as [number, number])\n : defer(() => of(this.performanceRef.now())).pipe(\n switchMap(start => this.animationFrame$.pipe(map(now => now - start))),\n takeUntil(timer(duration)),\n map(elapsed => easeInOutQuad(clamp(elapsed / duration, 0, 1))),\n map(\n percent =>\n [\n initialTop + deltaTop * percent,\n initialLeft + deltaLeft * percent,\n ] as [number, number],\n ),\n );\n\n return observable.pipe(\n tap(([scrollTop, scrollLeft]) => {\n element.scrollTop = scrollTop;\n element.scrollLeft = scrollLeft;\n }),\n );\n }\n}\n","import {Injectable} from '@angular/core';\nimport {Observable, Observer} from 'rxjs';\nimport {shareReplay} from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiStaticRequestService {\n private readonly cache = new Map<string, Observable<string>>();\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 observable = new Observable((observer: Observer<string>) => {\n const xhr = new XMLHttpRequest();\n\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n const response = xhr.responseType ? xhr.response : xhr.responseText;\n\n if (xhr.status === 200) {\n observer.next(response);\n observer.complete();\n } else {\n observer.error(response);\n }\n }\n };\n\n xhr.open('GET', url);\n xhr.send();\n\n return () => {\n xhr.abort();\n };\n });\n const piped = observable.pipe(shareReplay(1));\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 {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {TUI_SWIPE_OPTIONS} from '@taiga-ui/cdk/tokens';\nimport {getSwipeDirection, isPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, pairwise} from 'rxjs/operators';\n\n/**\n * @dynamic\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) documentRef: Document,\n ) {\n super(subscriber => {\n merge(\n typedFromEvent(nativeElement, 'touchstart', {passive: true}),\n typedFromEvent(documentRef, '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: getSwipeDirection(distanceX, distanceY),\n events: [start, end] as [TouchEvent, TouchEvent],\n };\n }\n\n return null;\n }),\n filter(isPresent),\n )\n .subscribe(subscriber);\n });\n }\n}\n","import {ElementRef, Inject, Injectable} from '@angular/core';\nimport {TuiZoom, TuiZoomOptions} from '@taiga-ui/cdk/interfaces';\nimport {preventDefault, typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {TUI_ZOOM_OPTIONS} from '@taiga-ui/cdk/tokens';\nimport {distanceBetweenTouches} 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// @dynamic\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 typedFromEvent(nativeElement, 'touchstart', {passive: true}).pipe(\n filter(({touches}) => touches.length > 1),\n switchMap(startEvent =>\n typedFromEvent(nativeElement, 'touchmove', {\n passive: true,\n }).pipe(\n takeUntil(typedFromEvent(nativeElement, 'touchend')),\n scan(\n (prev, event) => {\n const distance = distanceBetweenTouches(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: distanceBetweenTouches(startEvent),\n delta: 0,\n },\n ),\n map(({event, delta}) => {\n event.preventDefault();\n\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 ),\n ),\n ),\n typedFromEvent(nativeElement, 'wheel', {passive: false}).pipe(\n preventDefault(),\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":["ng://@taiga-ui/cdk/services/destroy.service.ts","ng://@taiga-ui/cdk/services/directive-styles.service.ts","ng://@taiga-ui/cdk/services/focus-visible.service.ts","ng://@taiga-ui/cdk/services/hovered.service.ts","ng://@taiga-ui/cdk/services/id.service.ts","ng://@taiga-ui/cdk/services/parents-scroll.service.ts","ng://@taiga-ui/cdk/services/obscured.service.ts","ng://@taiga-ui/cdk/services/pan.service.ts","ng://@taiga-ui/cdk/services/resize.service.ts","ng://@taiga-ui/cdk/services/scroll.service.ts","ng://@taiga-ui/cdk/services/static-request.service.ts","ng://@taiga-ui/cdk/services/swipe.service.ts","ng://@taiga-ui/cdk/services/zoom.service.ts","ng://@taiga-ui/cdk/services/taiga-ui-cdk-services.ts"],"sourcesContent":["import {Injectable, OnDestroy} from '@angular/core';\nimport {ReplaySubject} from 'rxjs';\n\n/**\n * Observable abstraction over ngOnDestroy to use with takeUntil\n */\n@Injectable()\nexport class TuiDestroyService extends ReplaySubject<void> implements OnDestroy {\n constructor() {\n super(1);\n }\n\n ngOnDestroy() {\n this.next();\n this.complete();\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {\n ComponentFactoryResolver,\n Inject,\n Injectable,\n INJECTOR,\n Injector,\n Renderer2,\n Type,\n} from '@angular/core';\nimport {TUI_DEFAULT_RENDERER} from '@taiga-ui/cdk/tokens';\n\n/**\n * Service to use styles with directives\n * @dynamic\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 @Inject(DOCUMENT) private readonly documentRef: Document,\n @Inject(TUI_DEFAULT_RENDERER) private readonly renderer: Renderer2,\n ) {}\n\n addComponent(component: Type<unknown>) {\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 /** @deprecated use components approach */\n addStyle(styles: string, attribute: string) {\n if (this.documentRef.head.querySelector(`style[${attribute}]`)) {\n return;\n }\n\n const style = this.renderer.createElement('style');\n\n this.renderer.setProperty(style, 'textContent', styles);\n this.renderer.setAttribute(style, attribute, '');\n this.documentRef.head.appendChild(style);\n }\n}\n","import {ChangeDetectorRef, ElementRef, Inject, Injectable} from '@angular/core';\nimport {focusVisibleObservable, watch} 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 * @dynamic\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) changeDetectorRef: ChangeDetectorRef,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n ) {\n super(subscriber => this.focusVisible$.subscribe(subscriber));\n\n this.focusVisible$ = focusVisibleObservable(nativeElement).pipe(\n watch(changeDetectorRef),\n takeUntil(destroy$),\n );\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {Inject, Injectable, NgZone} from '@angular/core';\nimport {tuiZoneOptimized, typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {getActualTarget} from '@taiga-ui/cdk/utils/dom';\nimport {merge, Observable} from 'rxjs';\nimport {\n distinctUntilChanged,\n filter,\n mapTo,\n startWith,\n switchMap,\n take,\n} from 'rxjs/operators';\n\n// @dynamic\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiHoveredService {\n private readonly documentEvents$: Observable<Event>;\n\n constructor(\n @Inject(DOCUMENT) documentRef: Document,\n @Inject(NgZone) private readonly ngZone: NgZone,\n ) {\n this.documentEvents$ = merge(\n typedFromEvent(documentRef, 'mousemove'),\n typedFromEvent(documentRef, 'touchstart', {capture: true}),\n );\n }\n\n createHovered$(\n target: Element,\n options: AddEventListenerOptions = {passive: true},\n ): Observable<boolean> {\n return merge(\n typedFromEvent(target, 'mouseenter', options),\n typedFromEvent(target, 'touchstart', options),\n ).pipe(\n switchMap(() =>\n merge(\n typedFromEvent(target, 'mouseleave', options),\n this.documentEvents$.pipe(\n filter(event => !target.contains(getActualTarget(event))),\n tuiZoneOptimized(this.ngZone),\n take(1),\n ),\n ).pipe(mapTo(false), startWith(true)),\n ),\n distinctUntilChanged(),\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 {typedFromEvent} 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// Ambient type cannot be used without dynamic https://github.com/angular/angular/issues/23395\n// @dynamic\n@Injectable()\nexport class TuiParentsScrollService extends Observable<Event> {\n private readonly callback$: Observable<Event>;\n\n constructor(\n @Inject(ElementRef) elementRef: ElementRef<Element>,\n @Inject(WINDOW) windowRef: Window,\n ) {\n super(subscriber => this.callback$.subscribe(subscriber));\n\n this.callback$ = defer(() => {\n let {nativeElement} = elementRef;\n const eventTargets: (Element | Window)[] = [windowRef, nativeElement];\n\n while (nativeElement.parentElement) {\n nativeElement = nativeElement.parentElement;\n eventTargets.push(nativeElement);\n }\n\n return merge<Event>(\n ...eventTargets.map<Observable<Event>>(element =>\n typedFromEvent(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 {getElementObscurers} 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// Ambient type cannot be used without dynamic https://github.com/angular/angular/issues/23395\n// @dynamic\n@Injectable()\nexport class TuiObscuredService extends Observable<null | readonly Element[]> {\n private readonly obscured$: Observable<null | readonly Element[]>;\n\n constructor(\n @Inject(TuiParentsScrollService)\n @Self()\n parentsScroll$: TuiParentsScrollService,\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(WINDOW) windowRef: Window,\n @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(windowRef, 'resize')).pipe(delay(0)),\n animationFrame$.pipe(throttleTime(POLLING_TIME)),\n ).pipe(\n map(() => getElementObscurers(nativeElement)),\n startWith(null),\n distinctUntilChanged(),\n tuiZoneOptimized(ngZone),\n takeUntil(destroy$),\n );\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {ElementRef, Inject, Injectable} from '@angular/core';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, pairwise, repeat, switchMapTo, takeUntil} from 'rxjs/operators';\n\n/**\n * @dynamic\n */\n@Injectable()\nexport class TuiPanService extends Observable<readonly [number, number]> {\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(DOCUMENT) documentRef: Document,\n ) {\n super(subscriber => {\n merge(\n typedFromEvent(nativeElement, 'touchstart', {passive: true}),\n typedFromEvent(nativeElement, 'mousedown'),\n )\n .pipe(\n switchMapTo(\n merge(\n typedFromEvent(documentRef, 'touchmove', {\n passive: true,\n }).pipe(\n filter(({touches}) => touches.length < 2),\n map(({touches}) => touches[0]),\n ),\n typedFromEvent(documentRef, '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 typedFromEvent(documentRef, 'touchend'),\n typedFromEvent(documentRef, 'mouseup'),\n ),\n ),\n repeat(),\n )\n .subscribe(subscriber);\n });\n }\n}\n","import {ElementRef, Inject, Injectable, NgZone} 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 mapTo,\n takeUntil,\n throttleTime,\n} from 'rxjs/operators';\n\nimport {TuiDestroyService} from './destroy.service';\n\n// @dynamic\n@Injectable()\nexport class TuiResizeService extends ResizeObserverService {\n constructor(\n @Inject(ElementRef) elementRef: ElementRef<HTMLElement>,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n @Inject(RESIZE_OBSERVER_SUPPORT) support: boolean,\n @Inject(RESIZE_OPTION_BOX) box: ResizeObserverOptions['box'],\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n ) {\n super(elementRef, ngZone, support, box);\n\n return this.pipe(\n catchError(() =>\n animationFrame$.pipe(\n throttleTime(POLLING_TIME),\n map(\n () =>\n `${elementRef.nativeElement.clientWidth} ${elementRef.nativeElement.clientHeight}`,\n ),\n distinctUntilChanged(),\n mapTo(EMPTY_ARRAY),\n ),\n ),\n debounceTime(0),\n tuiZonefree(ngZone),\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 {clamp} from '@taiga-ui/cdk/utils/math';\nimport {easeInOutQuad} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {defer, Observable, of, timer} from 'rxjs';\nimport {map, switchMap, takeUntil, tap} from 'rxjs/operators';\n\nconst SCROLL_TIME = 300;\n\n// @dynamic\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 element: Element,\n scrollTop: number,\n scrollLeft: number = element.scrollLeft,\n duration: number = SCROLL_TIME,\n ): Observable<[number, number]> {\n tuiAssert.assert(duration >= 0, 'Duration cannot be negative');\n tuiAssert.assert(scrollTop >= 0, 'scrollTop cannot be negative');\n tuiAssert.assert(scrollLeft >= 0, 'scrollLeft cannot be negative');\n\n const initialTop = element.scrollTop;\n const initialLeft = element.scrollLeft;\n const deltaTop = scrollTop - initialTop;\n const deltaLeft = scrollLeft - initialLeft;\n const observable = !duration\n ? of([scrollTop, scrollLeft] as [number, number])\n : defer(() => of(this.performanceRef.now())).pipe(\n switchMap(start => this.animationFrame$.pipe(map(now => now - start))),\n map(elapsed => easeInOutQuad(clamp(elapsed / duration, 0, 1))),\n map(\n percent =>\n [\n initialTop + deltaTop * percent,\n initialLeft + deltaLeft * percent,\n ] as [number, number],\n ),\n takeUntil(timer(duration)),\n );\n\n return observable.pipe(\n tap(([scrollTop, scrollLeft]) => {\n element.scrollTop = scrollTop;\n element.scrollLeft = scrollLeft;\n }),\n );\n }\n}\n","import {Injectable} from '@angular/core';\nimport {Observable, Observer} from 'rxjs';\nimport {shareReplay} from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiStaticRequestService {\n private readonly cache = new Map<string, Observable<string>>();\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 observable = new Observable((observer: Observer<string>) => {\n const xhr = new XMLHttpRequest();\n\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n const response = xhr.responseType ? xhr.response : xhr.responseText;\n\n if (xhr.status === 200) {\n observer.next(response);\n observer.complete();\n } else {\n observer.error(response);\n }\n }\n };\n\n xhr.open('GET', url);\n xhr.send();\n\n return () => {\n xhr.abort();\n };\n });\n const piped = observable.pipe(shareReplay({bufferSize: 1, refCount: false}));\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 {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {TUI_SWIPE_OPTIONS} from '@taiga-ui/cdk/tokens';\nimport {getSwipeDirection, isPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, pairwise} from 'rxjs/operators';\n\n/**\n * @dynamic\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) documentRef: Document,\n ) {\n super(subscriber => {\n merge(\n typedFromEvent(nativeElement, 'touchstart', {passive: true}),\n typedFromEvent(documentRef, '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: getSwipeDirection(distanceX, distanceY),\n events: [start, end] as [TouchEvent, TouchEvent],\n };\n }\n\n return null;\n }),\n filter(isPresent),\n )\n .subscribe(subscriber);\n });\n }\n}\n","import {ElementRef, Inject, Injectable} from '@angular/core';\nimport {TuiZoom, TuiZoomOptions} from '@taiga-ui/cdk/interfaces';\nimport {preventDefault, typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {TUI_ZOOM_OPTIONS} from '@taiga-ui/cdk/tokens';\nimport {distanceBetweenTouches} 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// @dynamic\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 typedFromEvent(nativeElement, 'touchstart', {passive: true}).pipe(\n filter(({touches}) => touches.length > 1),\n switchMap(startEvent =>\n typedFromEvent(nativeElement, 'touchmove', {\n passive: true,\n }).pipe(\n preventDefault(),\n scan(\n (prev, event) => {\n const distance = distanceBetweenTouches(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: distanceBetweenTouches(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(typedFromEvent(nativeElement, 'touchend')),\n ),\n ),\n ),\n typedFromEvent(nativeElement, 'wheel', {passive: false}).pipe(\n preventDefault(),\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":";;;;;;;;;;;;;;;;AAGA;;;;IAIuC,qCAAmB;IACtD;eACI,kBAAM,CAAC,CAAC;KACX;IAED,uCAAW,GAAX;QACI,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC,QAAQ,EAAE,CAAC;KACnB;IARQ,iBAAiB;QAD7B,UAAU,EAAE;OACA,iBAAiB,CAS7B;IAAD,wBAAC;CAAA,CATsC,aAAa;;ACKpD;;;;;IAUI,mCAEqB,QAAkC,EAChB,QAAkB,EAClB,WAAqB,EACT,QAAmB;QAHjD,aAAQ,GAAR,QAAQ,CAA0B;QAChB,aAAQ,GAAR,QAAQ,CAAU;QAClB,gBAAW,GAAX,WAAW,CAAU;QACT,aAAQ,GAAR,QAAQ,CAAW;QAPrD,QAAG,GAAG,IAAI,GAAG,EAA0B,CAAC;KAQrD;IAEJ,gDAAY,GAAZ,UAAa,SAAwB;QACjC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;YAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,CACR,SAAS,EACT,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CACzE,CAAC;SACL;KACJ;;IAGD,4CAAQ,GAAR,UAAS,MAAc,EAAE,SAAiB;QACtC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,WAAS,SAAS,MAAG,CAAC,EAAE;YAC5D,OAAO;SACV;QAED,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAEnD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;QACxD,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;KAC5C;;gBA1B8B,wBAAwB,uBADlD,MAAM,SAAC,wBAAwB;gBAEa,QAAQ,uBAApD,MAAM,SAAC,QAAQ;gBACgC,QAAQ,uBAAvD,MAAM,SAAC,QAAQ;gBACyC,SAAS,uBAAjE,MAAM,SAAC,oBAAoB;;;IARvB,yBAAyB;QAHrC,UAAU,CAAC;YACR,UAAU,EAAE,MAAM;SACrB,CAAC;QAKO,WAAA,MAAM,CAAC,wBAAwB,CAAC,CAAA;QAEhC,WAAA,MAAM,CAAC,QAAQ,CAAC,CAAA;QAChB,WAAA,MAAM,CAAC,QAAQ,CAAC,CAAA;QAChB,WAAA,MAAM,CAAC,oBAAoB,CAAC,CAAA;OARxB,yBAAyB,CAgCrC;oCAnDD;CAmBA;;ACZA;;;;;;;IAO4C,0CAAmB;IAG3D,gCACwB,EAAoC,EAC7B,iBAAoC,EACpC,QAA0B;YAFhC,gCAAa;QADtC,YAKI,kBAAM,UAAA,UAAU,IAAI,OAAA,KAAI,CAAC,aAAa,CAAC,SAAS,CAAC,UAAU,CAAC,GAAA,CAAC,SAMhE;QAJG,KAAI,CAAC,aAAa,GAAG,sBAAsB,CAAC,aAAa,CAAC,CAAC,IAAI,CAC3D,KAAK,CAAC,iBAAiB,CAAC,EACxB,SAAS,CAAC,QAAQ,CAAC,CACtB,CAAC;;KACL;;gBAVwC,UAAU,uBAA9C,MAAM,SAAC,UAAU;gBAC4B,iBAAiB,uBAA9D,MAAM,SAAC,iBAAiB;gBACY,UAAU,uBAA9C,MAAM,SAAC,iBAAiB;;IANpB,sBAAsB;QADlC,UAAU,EAAE;QAKJ,WAAA,MAAM,CAAC,UAAU,CAAC,CAAA;QAClB,WAAA,MAAM,CAAC,iBAAiB,CAAC,CAAA;QACzB,WAAA,MAAM,CAAC,iBAAiB,CAAC,CAAA;OANrB,sBAAsB,CAelC;IAAD,6BAAC;CAAA,CAf2C,UAAU;;ACAtD;;IAOI,2BACsB,WAAqB,EACN,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;QAE/C,IAAI,CAAC,eAAe,GAAG,KAAK,CACxB,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC,EACxC,cAAc,CAAC,WAAW,EAAE,YAAY,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAC7D,CAAC;KACL;IAED,0CAAc,GAAd,UACI,MAAe,EACf,OAAkD;QAFtD,iBAoBC;QAlBG,wBAAA,EAAA,YAAoC,OAAO,EAAE,IAAI,EAAC;QAElD,OAAO,KAAK,CACR,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,EAC7C,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,CAChD,CAAC,IAAI,CACF,SAAS,CAAC;YACN,OAAA,KAAK,CACD,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,EAC7C,KAAI,CAAC,eAAe,CAAC,IAAI,CACrB,MAAM,CAAC,UAAA,KAAK,IAAI,OAAA,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,GAAA,CAAC,EACzD,gBAAgB,CAAC,KAAI,CAAC,MAAM,CAAC,EAC7B,IAAI,CAAC,CAAC,CAAC,CACV,CACJ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;SAAA,CACxC,EACD,oBAAoB,EAAE,CACzB,CAAC;KACL;;gBA7BkC,QAAQ,uBAAtC,MAAM,SAAC,QAAQ;gBACyB,MAAM,uBAA9C,MAAM,SAAC,MAAM;;;IALT,iBAAiB;QAH7B,UAAU,CAAC;YACR,UAAU,EAAE,MAAM;SACrB,CAAC;QAKO,WAAA,MAAM,CAAC,QAAQ,CAAC,CAAA;QAChB,WAAA,MAAM,CAAC,MAAM,CAAC,CAAA;OALV,iBAAiB,CAkC7B;4BApDD;CAkBA;;AChBA,IAAM,GAAG,GAAG,MAAM,CAAC;AAEnB;;;;IAMA;KAMC;qBANY,YAAY;IAGrB,+BAAQ,GAAR;QACI,OAAO,KAAG,GAAG,GAAG,cAAY,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAI,CAAC;KACxD;;IAJc,mBAAM,GAAG,CAAC,CAAC;;IADjB,YAAY;QAHxB,UAAU,CAAC;YACR,UAAU,EAAE,MAAM;SACrB,CAAC;OACW,YAAY,CAMxB;uBAhBD;CAUA;;ACLA;;;AAGA;AACA;;IAE6C,2CAAiB;IAG1D,iCACwB,UAA+B,EACnC,SAAiB;QAFrC,YAII,kBAAM,UAAA,UAAU,IAAI,OAAA,KAAI,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,GAAA,CAAC,SAiB5D;QAfG,KAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACd,IAAA,wCAAa,CAAe;YACjC,IAAM,YAAY,GAAyB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;YAEtE,OAAO,aAAa,CAAC,aAAa,EAAE;gBAChC,aAAa,GAAG,aAAa,CAAC,aAAa,CAAC;gBAC5C,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;aACpC;YAED,OAAO,KAAK,wBACL,YAAY,CAAC,GAAG,CAAoB,UAAA,OAAO;gBAC1C,OAAA,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC;aAAA,CACpC,GACH;SACL,CAAC,CAAC;;KACN;;gBApBmC,UAAU,uBAAzC,MAAM,SAAC,UAAU;gBACS,MAAM,uBAAhC,MAAM,SAAC,MAAM;;IALT,uBAAuB;QADnC,UAAU,EAAE;QAKJ,WAAA,MAAM,CAAC,UAAU,CAAC,CAAA;QAClB,WAAA,MAAM,CAAC,MAAM,CAAC,CAAA;OALV,uBAAuB,CAyBnC;IAAD,8BAAC;CAAA,CAzB4C,UAAU;;ACOvD;AACA;;;;;AAKA;AACA;;IAEwC,sCAAqC;IAGzE,4BAGI,cAAuC,EACnB,EAAoC,EACxC,MAAc,EACd,SAAiB,EACN,QAA0B,EAC5B,eAAmC;YAJvC,gCAAa;QAJtC,YAUI,kBAAM,UAAA,UAAU,IAAI,OAAA,KAAI,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,GAAA,CAAC,SAa5D;QAXG,KAAI,CAAC,SAAS,GAAG,KAAK;;QAElB,KAAK,CAAC,cAAc,EAAE,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EACpE,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CACnD,CAAC,IAAI,CACF,GAAG,CAAC,cAAM,OAAA,mBAAmB,CAAC,aAAa,CAAC,GAAA,CAAC,EAC7C,SAAS,CAAC,IAAI,CAAC,EACf,oBAAoB,EAAE,EACtB,gBAAgB,CAAC,MAAM,CAAC,EACxB,SAAS,CAAC,QAAQ,CAAC,CACtB,CAAC;;KACL;;gBApBmB,uBAAuB,uBAFtC,MAAM,SAAC,uBAAuB,cAC9B,IAAI;gBAEgC,UAAU,uBAA9C,MAAM,SAAC,UAAU;gBACM,MAAM,uBAA7B,MAAM,SAAC,MAAM;gBACa,MAAM,uBAAhC,MAAM,SAAC,MAAM;gBACuB,UAAU,uBAA9C,MAAM,SAAC,iBAAiB;gBACiB,UAAU,uBAAnD,MAAM,SAAC,eAAe;;IAXlB,kBAAkB;QAD9B,UAAU,EAAE;QAKJ,WAAA,MAAM,CAAC,uBAAuB,CAAC,CAAA;QAC/B,WAAA,IAAI,EAAE,CAAA;QAEN,WAAA,MAAM,CAAC,UAAU,CAAC,CAAA;QAClB,WAAA,MAAM,CAAC,MAAM,CAAC,CAAA;QACd,WAAA,MAAM,CAAC,MAAM,CAAC,CAAA;QACd,WAAA,MAAM,CAAC,iBAAiB,CAAC,CAAA;QACzB,WAAA,MAAM,CAAC,eAAe,CAAC,CAAA;OAXnB,kBAAkB,CA2B9B;IAAD,yBAAC;CAAA,CA3BuC,UAAU;;ACrBlD;;;;IAImC,iCAAqC;IACpE,uBACwB,EAAoC,EACtC,WAAqB;YADlB,gCAAa;eAGlC,kBAAM,UAAA,UAAU;YACZ,KAAK,CACD,cAAc,CAAC,aAAa,EAAE,YAAY,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,EAC5D,cAAc,CAAC,aAAa,EAAE,WAAW,CAAC,CAC7C;iBACI,IAAI,CACD,WAAW,CACP,KAAK,CACD,cAAc,CAAC,WAAW,EAAE,WAAW,EAAE;gBACrC,OAAO,EAAE,IAAI;aAChB,CAAC,CAAC,IAAI,CACH,MAAM,CAAC,UAAC,EAAS;oBAAR,oBAAO;gBAAM,OAAA,OAAO,CAAC,MAAM,GAAG,CAAC;aAAA,CAAC,EACzC,GAAG,CAAC,UAAC,EAAS;oBAAR,oBAAO;gBAAM,OAAA,OAAO,CAAC,CAAC,CAAC;aAAA,CAAC,CACjC,EACD,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC,CAC3C,CACJ,EACD,QAAQ,EAAE,EACV,GAAG,CAAC,UAAC,EAAe;oBAAf,kBAAe,EAAd,aAAK,EAAE,cAAM;gBACf,IAAM,MAAM,GAAG,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;gBAC9C,IAAM,MAAM,GAAG,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;gBAE9C,OAAO,CAAC,MAAM,EAAE,MAAM,CAAqB,CAAC;aAC/C,CAAC;;YAEF,SAAS,CACL,KAAK,CACD,cAAc,CAAC,WAAW,EAAE,UAAU,CAAC,EACvC,cAAc,CAAC,WAAW,EAAE,SAAS,CAAC,CACzC,CACJ,EACD,MAAM,EAAE,CACX;iBACA,SAAS,CAAC,UAAU,CAAC,CAAC;SAC9B,CAAC;KACL;;gBAtCwC,UAAU,uBAA9C,MAAM,SAAC,UAAU;gBACa,QAAQ,uBAAtC,MAAM,SAAC,QAAQ;;IAHX,aAAa;QADzB,UAAU,EAAE;QAGJ,WAAA,MAAM,CAAC,UAAU,CAAC,CAAA;QAClB,WAAA,MAAM,CAAC,QAAQ,CAAC,CAAA;OAHZ,aAAa,CAyCzB;IAAD,oBAAC;CAAA,CAzCkC,UAAU;;ACY7C;;IAEsC,oCAAqB;IACvD,0BACwB,UAAmC,EACvC,MAAc,EACH,QAA0B,EACpB,OAAgB,EACtB,GAAiC,EACnC,eAAmC;QANhE,YAQI,kBAAM,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,SAkB1C;QAhBG,OAAO,KAAI,CAAC,IAAI,CACZ,UAAU,CAAC;YACP,OAAA,eAAe,CAAC,IAAI,CAChB,YAAY,CAAC,YAAY,CAAC,EAC1B,GAAG,CACC;gBACI,OAAG,UAAU,CAAC,aAAa,CAAC,WAAW,SAAI,UAAU,CAAC,aAAa,CAAC,YAAc;aAAA,CACzF,EACD,oBAAoB,EAAE,EACtB,KAAK,CAAC,WAAW,CAAC,CACrB;SAAA,CACJ,EACD,YAAY,CAAC,CAAC,CAAC,EACf,WAAW,CAAC,MAAM,CAAC,EACnB,SAAS,CAAC,QAAQ,CAAC,CACtB,CAAC;KACL;;gBAzBmC,UAAU,uBAAzC,MAAM,SAAC,UAAU;gBACM,MAAM,uBAA7B,MAAM,SAAC,MAAM;gBACuB,UAAU,uBAA9C,MAAM,SAAC,iBAAiB;8CACxB,MAAM,SAAC,uBAAuB;gDAC9B,MAAM,SAAC,iBAAiB;gBACiB,UAAU,uBAAnD,MAAM,SAAC,eAAe;;IAPlB,gBAAgB;QAD5B,UAAU,EAAE;QAGJ,WAAA,MAAM,CAAC,UAAU,CAAC,CAAA;QAClB,WAAA,MAAM,CAAC,MAAM,CAAC,CAAA;QACd,WAAA,MAAM,CAAC,iBAAiB,CAAC,CAAA;QACzB,WAAA,MAAM,CAAC,uBAAuB,CAAC,CAAA;QAC/B,WAAA,MAAM,CAAC,iBAAiB,CAAC,CAAA;QACzB,WAAA,MAAM,CAAC,eAAe,CAAC,CAAA;OAPnB,gBAAgB,CA4B5B;IAAD,uBAAC;CAAA,CA5BqC,qBAAqB;;AChB3D,IAAM,WAAW,GAAG,GAAG,CAAC;AAExB;;IAKI,0BAC0C,cAA2B,EACvB,eAAmC;QADvC,mBAAc,GAAd,cAAc,CAAa;QACvB,oBAAe,GAAf,eAAe,CAAoB;KAC7E;IAEJ,kCAAO,GAAP,UACI,OAAgB,EAChB,SAAiB,EACjB,UAAuC,EACvC,QAA8B;QAJlC,iBAmCC;QAhCG,2BAAA,EAAA,aAAqB,OAAO,CAAC,UAAU;QACvC,yBAAA,EAAA,sBAA8B;QAE9B,SAAS,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,EAAE,6BAA6B,CAAC,CAAC;QAC/D,SAAS,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,EAAE,8BAA8B,CAAC,CAAC;QACjE,SAAS,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,EAAE,+BAA+B,CAAC,CAAC;QAEnE,IAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;QACrC,IAAM,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;QACvC,IAAM,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;QACxC,IAAM,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;QAC3C,IAAM,UAAU,GAAG,CAAC,QAAQ;cACtB,EAAE,CAAC,CAAC,SAAS,EAAE,UAAU,CAAqB,CAAC;cAC/C,KAAK,CAAC,cAAM,OAAA,EAAE,CAAC,KAAI,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,GAAA,CAAC,CAAC,IAAI,CAC3C,SAAS,CAAC,UAAA,KAAK,IAAI,OAAA,KAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,GAAG,KAAK,GAAA,CAAC,CAAC,GAAA,CAAC,EACtE,GAAG,CAAC,UAAA,OAAO,IAAI,OAAA,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAA,CAAC,EAC9D,GAAG,CACC,UAAA,OAAO;gBACH,OAAA;oBACI,UAAU,GAAG,QAAQ,GAAG,OAAO;oBAC/B,WAAW,GAAG,SAAS,GAAG,OAAO;iBAChB;aAAA,CAC5B,EACD,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAC7B,CAAC;QAER,OAAO,UAAU,CAAC,IAAI,CAClB,GAAG,CAAC,UAAC,EAAuB;gBAAvB,kBAAuB,EAAtB,iBAAS,EAAE,kBAAU;YACvB,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;YAC9B,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;SACnC,CAAC,CACL,CAAC;KACL;;gBAvCyD,WAAW,uBAAhE,MAAM,SAAC,WAAW;gBACwC,UAAU,uBAApE,MAAM,SAAC,eAAe;;;IAHlB,gBAAgB;QAH5B,UAAU,CAAC;YACR,UAAU,EAAE,MAAM;SACrB,CAAC;QAGO,WAAA,MAAM,CAAC,WAAW,CAAC,CAAA;QACnB,WAAA,MAAM,CAAC,eAAe,CAAC,CAAA;OAHnB,gBAAgB,CA0C5B;2BAxDD;CAcA;;;ICPA;QACqB,UAAK,GAAG,IAAI,GAAG,EAA8B,CAAC;KAsClE;IApCG,yCAAO,GAAP,UAAQ,GAAW;QACf,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAElC,IAAI,KAAK,EAAE;YACP,OAAO,KAAK,CAAC;SAChB;QAED,IAAM,UAAU,GAAG,IAAI,UAAU,CAAC,UAAC,QAA0B;YACzD,IAAM,GAAG,GAAG,IAAI,cAAc,EAAE,CAAC;YAEjC,GAAG,CAAC,kBAAkB,GAAG;gBACrB,IAAI,GAAG,CAAC,UAAU,KAAK,CAAC,EAAE;oBACtB,IAAM,QAAQ,GAAG,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAC;oBAEpE,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE;wBACpB,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBACxB,QAAQ,CAAC,QAAQ,EAAE,CAAC;qBACvB;yBAAM;wBACH,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;qBAC5B;iBACJ;aACJ,CAAC;YAEF,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACrB,GAAG,CAAC,IAAI,EAAE,CAAC;YAEX,OAAO;gBACH,GAAG,CAAC,KAAK,EAAE,CAAC;aACf,CAAC;SACL,CAAC,CAAC;QACH,IAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAAC,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAC,CAAC,CAAC,CAAC;QAE7E,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAE3B,OAAO,KAAK,CAAC;KAChB;;IAtCQ,uBAAuB;QAHnC,UAAU,CAAC;YACR,UAAU,EAAE,MAAM;SACrB,CAAC;OACW,uBAAuB,CAuCnC;kCA9CD;CAOA;;ACEA;;;;IAIqC,mCAAoB;IACrD,yBACwB,EAAoC,EAC7B,EAAqC,EAC9C,WAAqB;YAFlB,gCAAa;YACN,oBAAO,EAAE,wBAAS;eAG9C,kBAAM,UAAA,UAAU;YACZ,KAAK,CACD,cAAc,CAAC,aAAa,EAAE,YAAY,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,EAC5D,cAAc,CAAC,WAAW,EAAE,UAAU,CAAC,CAC1C;iBACI,IAAI,CACD,QAAQ,EAAE,EACV,MAAM,CACF,UAAC,EAAe;oBAAf,kBAAe,EAAd,aAAK,EAAE,cAAM;gBACX,OAAA,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM;oBACtB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU;wBACvB,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU;aAAA,CAC9C,EACD,GAAG,CAAC,UAAC,EAAY;oBAAZ,kBAAY,EAAX,aAAK,EAAE,WAAG;gBACZ,IAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;gBACxC,IAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;gBACxC,IAAM,IAAI,GAAG,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;gBAC3C,IAAM,IAAI,GAAG,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;gBAE3C,IAAM,SAAS,GAAG,MAAM,GAAG,IAAI,CAAC;gBAChC,IAAM,SAAS,GAAG,MAAM,GAAG,IAAI,CAAC;gBAChC,IAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;gBAEjD,IACI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,SAAS;oBAC5B,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,SAAS;oBACnC,QAAQ,GAAG,OAAO,EACpB;oBACE,OAAO;wBACH,SAAS,EAAE,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC;wBAClD,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,CAA6B;qBACnD,CAAC;iBACL;gBAED,OAAO,IAAI,CAAC;aACf,CAAC,EACF,MAAM,CAAC,SAAS,CAAC,CACpB;iBACA,SAAS,CAAC,UAAU,CAAC,CAAC;SAC9B,CAAC;KACL;;gBA5CwC,UAAU,uBAA9C,MAAM,SAAC,UAAU;gDACjB,MAAM,SAAC,iBAAiB;gBACM,QAAQ,uBAAtC,MAAM,SAAC,QAAQ;;IAJX,eAAe;QAD3B,UAAU,EAAE;QAGJ,WAAA,MAAM,CAAC,UAAU,CAAC,CAAA;QAClB,WAAA,MAAM,CAAC,iBAAiB,CAAC,CAAA;QACzB,WAAA,MAAM,CAAC,QAAQ,CAAC,CAAA;OAJZ,eAAe,CA+C3B;IAAD,sBAAC;CAAA,CA/CoC,UAAU;;ACL/C,IAAM,iBAAiB,GAAG,IAAI,CAAC;AAE/B;;IAEoC,kCAAmB;IACnD,wBACwB,EAAwC,EAClC,EAAkC;YADvC,gCAAa;YACP,sCAAgB;eAE3C,kBAAM,UAAA,UAAU;YACZ,KAAK,CACD,cAAc,CAAC,aAAa,EAAE,YAAY,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC,IAAI,CAC7D,MAAM,CAAC,UAAC,EAAS;oBAAR,oBAAO;gBAAM,OAAA,OAAO,CAAC,MAAM,GAAG,CAAC;aAAA,CAAC,EACzC,SAAS,CAAC,UAAA,UAAU;gBAChB,OAAA,cAAc,CAAC,aAAa,EAAE,WAAW,EAAE;oBACvC,OAAO,EAAE,IAAI;iBAChB,CAAC,CAAC,IAAI,CACH,cAAc,EAAE,EAChB,IAAI,CACA,UAAC,IAAI,EAAE,KAAK;oBACR,IAAM,QAAQ,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;oBAE/C,OAAO;wBACH,KAAK,OAAA;wBACL,QAAQ,UAAA;wBACR,KAAK,EACD,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;4BACzB,iBAAiB;qBACxB,CAAC;iBACL,EACD;oBACI,KAAK,EAAE,UAAU;oBACjB,QAAQ,EAAE,sBAAsB,CAAC,UAAU,CAAC;oBAC5C,KAAK,EAAE,CAAC;iBACX,CACJ,EACD,GAAG,CAAC,UAAC,EAAc;wBAAb,gBAAK,EAAE,gBAAK;oBACd,IAAM,OAAO,GACT,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO;wBACrB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO;wBAC5B,CAAC,CAAC;oBACN,IAAM,OAAO,GACT,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO;wBACrB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO;wBAC5B,CAAC,CAAC;oBAEN,OAAO,EAAC,OAAO,SAAA,EAAE,OAAO,SAAA,EAAE,KAAK,OAAA,EAAE,KAAK,OAAA,EAAC,CAAC;iBAC3C,CAAC,EACF,SAAS,CAAC,cAAc,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,CACvD;aAAA,CACJ,CACJ,EACD,cAAc,CAAC,aAAa,EAAE,OAAO,EAAE,EAAC,OAAO,EAAE,KAAK,EAAC,CAAC,CAAC,IAAI,CACzD,cAAc,EAAE,EAChB,GAAG,CAAC,UAAA,KAAK,IAAI,QAAC;gBACV,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,KAAK,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,gBAAgB;gBACvC,KAAK,EAAE,KAAK;aACf,IAAC,CAAC,CACN,CACJ,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;SAC3B,CAAC;KACL;;gBAzDwC,UAAU,uBAA9C,MAAM,SAAC,UAAU;gDACjB,MAAM,SAAC,gBAAgB;;IAHnB,cAAc;QAD1B,UAAU,EAAE;QAGJ,WAAA,MAAM,CAAC,UAAU,CAAC,CAAA;QAClB,WAAA,MAAM,CAAC,gBAAgB,CAAC,CAAA;OAHpB,cAAc,CA4D1B;IAAD,qBAAC;CAAA,CA5DmC,UAAU;;ACZ9C;;;;;;"}
@@ -33,7 +33,11 @@ var TUI_ACTIVE_ELEMENT = new InjectionToken('Active element on the document for
33
33
  var blur$ = typedFromEvent(windowRef, 'blur');
34
34
  var mousedown$ = typedFromEvent(windowRef, 'mousedown');
35
35
  var mouseup$ = typedFromEvent(windowRef, 'mouseup');
36
- return merge(focusout$.pipe(takeUntil(mousedown$), repeatWhen(function () { return mouseup$; }), withLatestFrom(removedElement$), filter(function (_a) {
36
+ return merge(focusout$.pipe(
37
+ // eslint-disable-next-line rxjs/no-unsafe-takeuntil
38
+ takeUntil(mousedown$),
39
+ // eslint-disable-next-line rxjs/no-ignored-notifier
40
+ repeatWhen(function () { return mouseup$; }), withLatestFrom(removedElement$), filter(function (_a) {
37
41
  var _b = __read(_a, 2), event = _b[0], removedElement = _b[1];
38
42
  return isValidFocusout(getActualTarget(event), removedElement);
39
43
  }), map(function (_a) {
@@ -49,7 +53,7 @@ var TUI_ACTIVE_ELEMENT = new InjectionToken('Active element on the document for
49
53
  return !documentRef.activeElement ||
50
54
  documentRef.activeElement === documentRef.body
51
55
  ? of(getActualTarget(event))
52
- : focusout$.pipe(take(1), takeUntil(timer(0)), mapTo(getActualTarget(event)));
56
+ : focusout$.pipe(take(1), mapTo(getActualTarget(event)), takeUntil(timer(0)));
53
57
  }))).pipe(distinctUntilChanged(), share());
54
58
  },
55
59
  });
@@ -77,13 +81,19 @@ function shadowRootActiveElement(root) {
77
81
  })));
78
82
  }
79
83
 
84
+ var TUI_ALERTS = new InjectionToken('A stream of alerts', {
85
+ factory: function () { return []; },
86
+ });
87
+
80
88
  // https://github.com/angular/angular/issues/17824#issuecomment-353239017
81
89
  var TUI_DEFAULT_RENDERER = new InjectionToken('A Renderer2 for global services', {
82
90
  // @ts-ignore
83
91
  factory: function () { return inject(RendererFactory2).createRenderer(null, null); },
84
92
  });
85
93
 
86
- var TUI_DIALOGS = new InjectionToken('A stream of dialogs');
94
+ var TUI_DIALOGS = new InjectionToken('A stream of dialogs', {
95
+ factory: function () { return []; },
96
+ });
87
97
 
88
98
  var TUI_FOCUSABLE_ITEM_ACCESSOR = new InjectionToken('A component that can be focused');
89
99
 
@@ -141,7 +151,7 @@ var TUI_TOUCH_SUPPORTED = new InjectionToken('Touch support detection', {
141
151
  var TUI_WINDOW_HEIGHT = new InjectionToken('Window height accounting for disappearing address bar', {
142
152
  factory: function () {
143
153
  var windowRef = inject(WINDOW);
144
- return typedFromEvent(windowRef, 'resize').pipe(startWith(null), map(function () { return windowRef.innerHeight; }), shareReplay({ refCount: true, bufferSize: 1 }));
154
+ return typedFromEvent(windowRef, 'resize').pipe(startWith(null), map(function () { return windowRef.innerHeight; }), shareReplay({ bufferSize: 1, refCount: true }));
145
155
  },
146
156
  });
147
157
 
@@ -155,5 +165,5 @@ var TUI_ZOOM_OPTIONS = new InjectionToken('Zoom options', {
155
165
  * Generated bundle index. Do not edit.
156
166
  */
157
167
 
158
- export { TUI_ACTIVE_ELEMENT, TUI_DEFAULT_RENDERER, TUI_DIALOGS, TUI_FOCUSABLE_ITEM_ACCESSOR, TUI_IS_ANDROID, TUI_IS_CYPRESS, TUI_IS_IOS, TUI_IS_MOBILE, TUI_REMOVED_ELEMENT, TUI_SANITIZER, TUI_SWIPE_OPTIONS, TUI_TAKE_ONLY_TRUSTED_EVENTS, TUI_TOUCH_SUPPORTED, TUI_WINDOW_HEIGHT, TUI_ZOOM_OPTIONS };
168
+ export { TUI_ACTIVE_ELEMENT, TUI_ALERTS, TUI_DEFAULT_RENDERER, TUI_DIALOGS, TUI_FOCUSABLE_ITEM_ACCESSOR, TUI_IS_ANDROID, TUI_IS_CYPRESS, TUI_IS_IOS, TUI_IS_MOBILE, TUI_REMOVED_ELEMENT, TUI_SANITIZER, TUI_SWIPE_OPTIONS, TUI_TAKE_ONLY_TRUSTED_EVENTS, TUI_TOUCH_SUPPORTED, TUI_WINDOW_HEIGHT, TUI_ZOOM_OPTIONS };
159
169
  //# sourceMappingURL=taiga-ui-cdk-tokens.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-tokens.js","sources":["ng://@taiga-ui/cdk/tokens/removed-element.ts","ng://@taiga-ui/cdk/tokens/active-element.ts","ng://@taiga-ui/cdk/tokens/default-renderer.ts","ng://@taiga-ui/cdk/tokens/dialogs.ts","ng://@taiga-ui/cdk/tokens/focusable-item-accessor.ts","ng://@taiga-ui/cdk/tokens/is-ios.ts","ng://@taiga-ui/cdk/tokens/is-mobile.ts","ng://@taiga-ui/cdk/tokens/is-android.ts","ng://@taiga-ui/cdk/tokens/is-cypress.ts","ng://@taiga-ui/cdk/tokens/sanitizer.ts","ng://@taiga-ui/cdk/tokens/swipe-options.ts","ng://@taiga-ui/cdk/tokens/take-only-trusted-events.ts","ng://@taiga-ui/cdk/tokens/touch-supported.ts","ng://@taiga-ui/cdk/tokens/window-height.ts","ng://@taiga-ui/cdk/tokens/zoom-options.ts","ng://@taiga-ui/cdk/tokens/taiga-ui-cdk-tokens.ts"],"sourcesContent":["import {ɵAnimationEngine} from '@angular/animations/browser';\nimport {inject, InjectFlags, InjectionToken} from '@angular/core';\nimport {BehaviorSubject, Observable, timer} from 'rxjs';\nimport {mapTo, share, startWith, switchMap} from 'rxjs/operators';\n\nexport const TUI_REMOVED_ELEMENT = new InjectionToken<Observable<Element | null>>(\n 'Element currently being removed by AnimationEngine',\n {\n factory: () => {\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(element, context);\n };\n\n return element$.pipe(\n switchMap(element => timer(0).pipe(mapTo(null), startWith(element))),\n share(),\n );\n },\n },\n);\n","import {DOCUMENT} from '@angular/common';\nimport {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {getActualTarget, getDocumentOrShadowRoot} from '@taiga-ui/cdk/utils';\nimport {merge, Observable, of, timer} from 'rxjs';\nimport {\n distinctUntilChanged,\n filter,\n map,\n mapTo,\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\nexport const TUI_ACTIVE_ELEMENT = new InjectionToken<Observable<EventTarget | null>>(\n 'Active element on the document for ActiveZone',\n {\n factory: () => {\n const removedElement$ = inject(TUI_REMOVED_ELEMENT);\n const windowRef = inject(WINDOW);\n const documentRef = inject(DOCUMENT);\n const focusout$ = typedFromEvent(windowRef, 'focusout');\n const focusin$ = typedFromEvent(windowRef, 'focusin');\n const blur$ = typedFromEvent(windowRef, 'blur');\n const mousedown$ = typedFromEvent(windowRef, 'mousedown');\n const mouseup$ = typedFromEvent(windowRef, 'mouseup');\n\n return merge(\n focusout$.pipe(\n takeUntil(mousedown$),\n repeatWhen(() => mouseup$),\n withLatestFrom(removedElement$),\n filter(([event, removedElement]) =>\n isValidFocusout(getActualTarget(event), removedElement),\n ),\n map(([{relatedTarget}]) => relatedTarget),\n ),\n blur$.pipe(\n map(() => documentRef.activeElement),\n filter(element => !!element && element.matches('iframe')),\n ),\n focusin$.pipe(\n switchMap(event => {\n const target = getActualTarget(event);\n const root = getDocumentOrShadowRoot(target) as Document;\n\n return root === documentRef\n ? of(target)\n : shadowRootActiveElement(root).pipe(startWith(target));\n }),\n ),\n mousedown$.pipe(\n switchMap(event =>\n !documentRef.activeElement ||\n documentRef.activeElement === documentRef.body\n ? of(getActualTarget(event))\n : focusout$.pipe(\n take(1),\n takeUntil(timer(0)),\n mapTo(getActualTarget(event)),\n ),\n ),\n ),\n ).pipe(distinctUntilChanged(), share());\n },\n },\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 getDocumentOrShadowRoot(target).activeElement !== target &&\n // Not due to button/input becoming disabled\n !target.disabled &&\n // Not due to element being removed from DOM\n (!removedElement || !removedElement.contains(target))\n );\n}\n\nfunction shadowRootActiveElement(root: Document): Observable<EventTarget | null> {\n return merge(\n typedFromEvent(root, 'focusin').pipe(map(({target}) => target)),\n typedFromEvent(root, 'focusout').pipe(\n filter(\n ({target, relatedTarget}) => !!relatedTarget && isValidFocusout(target),\n ),\n map(({relatedTarget}) => relatedTarget),\n ),\n );\n}\n","import {inject, InjectionToken, Renderer2, RendererFactory2} from '@angular/core';\n\n// https://github.com/angular/angular/issues/17824#issuecomment-353239017\nexport const TUI_DEFAULT_RENDERER = new InjectionToken<Renderer2>(\n 'A Renderer2 for global services',\n {\n // @ts-ignore\n factory: () => inject(RendererFactory2).createRenderer(null, null),\n },\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiAriaDialogContext} from '@taiga-ui/cdk/interfaces';\nimport {Observable} from 'rxjs';\n\nexport const TUI_DIALOGS = new InjectionToken<\n ReadonlyArray<Observable<readonly TuiAriaDialogContext[]>>\n>('A stream of dialogs');\n","import {InjectionToken} from '@angular/core';\nimport {TuiFocusableElementAccessor} from '@taiga-ui/cdk/interfaces';\n\nexport const TUI_FOCUSABLE_ITEM_ACCESSOR =\n new InjectionToken<TuiFocusableElementAccessor>('A component that can be focused');\n","import {inject, InjectionToken} from '@angular/core';\nimport {NAVIGATOR, USER_AGENT} from '@ng-web-apis/common';\n\nconst IOS_REG_EXP = /ipad|iphone|ipod/;\n\nexport const TUI_IS_IOS = new InjectionToken<boolean>('iOS browser detection', {\n factory: () =>\n IOS_REG_EXP.test(inject(USER_AGENT).toLowerCase()) ||\n (inject(USER_AGENT).toLowerCase().includes('apple') &&\n inject(NAVIGATOR).maxTouchPoints > 1),\n});\n","import {inject, InjectionToken} from '@angular/core';\nimport {USER_AGENT} from '@ng-web-apis/common';\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\nexport const TUI_IS_MOBILE = new InjectionToken<boolean>('Mobile browser detection', {\n factory: () =>\n firstRegex.test(inject(USER_AGENT).toLowerCase()) ||\n secondRegex.test(inject(USER_AGENT).substr(0, 4).toLowerCase()),\n});\n","import {inject, InjectionToken} from '@angular/core';\n\nimport {TUI_IS_IOS} from './is-ios';\nimport {TUI_IS_MOBILE} from './is-mobile';\n\nexport const TUI_IS_ANDROID = new InjectionToken<boolean>(\n 'Mobile browser that is not iOS (technically includes Windows Phone, Blackberry etc.)',\n {\n factory: () => inject(TUI_IS_MOBILE) && !inject(TUI_IS_IOS),\n },\n);\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\nexport interface WindowWithCypress extends Window {\n Cypress?: unknown;\n}\n\n/**\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 = new InjectionToken<boolean>(\n 'Detect if app is running under Cypress',\n {\n factory: () => !!inject<WindowWithCypress>(WINDOW).Cypress,\n },\n);\n","import {InjectionToken, Sanitizer} from '@angular/core';\n\n/* @deprecated export token from @taiga-ui/core package **/\nexport const TUI_SANITIZER = new InjectionToken<Sanitizer>(\n 'A custom Sanitizer to sanitize source before inlining',\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiSwipeOptions} from '@taiga-ui/cdk/interfaces';\n\nexport const TUI_SWIPE_OPTIONS = new InjectionToken<TuiSwipeOptions>('Swipe options', {\n factory: () => ({timeout: 500, threshold: 30}),\n});\n","import {InjectionToken} from '@angular/core';\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: InjectionToken<boolean> =\n new InjectionToken<boolean>(\n 'This token need for override behavior the `pressedObservable` function',\n {\n factory: () => true,\n },\n );\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\nexport const TUI_TOUCH_SUPPORTED = new InjectionToken('Touch support detection', {\n factory: () => inject(WINDOW).matchMedia('(any-pointer: coarse)').matches,\n});\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {Observable} from 'rxjs';\nimport {map, shareReplay, startWith} from 'rxjs/operators';\n\nexport const TUI_WINDOW_HEIGHT = new InjectionToken<Observable<number>>(\n 'Window height accounting for disappearing address bar',\n {\n factory: () => {\n const windowRef = inject(WINDOW);\n\n return typedFromEvent(windowRef, 'resize').pipe(\n startWith(null),\n map(() => windowRef.innerHeight),\n shareReplay({refCount: true, bufferSize: 1}),\n );\n },\n },\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiZoomOptions} from '@taiga-ui/cdk/interfaces';\n\nexport const TUI_ZOOM_OPTIONS = new InjectionToken<TuiZoomOptions>('Zoom options', {\n factory: () => ({\n wheelSensitivity: 0.01,\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-tokens.js","sources":["ng://@taiga-ui/cdk/tokens/removed-element.ts","ng://@taiga-ui/cdk/tokens/active-element.ts","ng://@taiga-ui/cdk/tokens/alerts.ts","ng://@taiga-ui/cdk/tokens/default-renderer.ts","ng://@taiga-ui/cdk/tokens/dialogs.ts","ng://@taiga-ui/cdk/tokens/focusable-item-accessor.ts","ng://@taiga-ui/cdk/tokens/is-ios.ts","ng://@taiga-ui/cdk/tokens/is-mobile.ts","ng://@taiga-ui/cdk/tokens/is-android.ts","ng://@taiga-ui/cdk/tokens/is-cypress.ts","ng://@taiga-ui/cdk/tokens/sanitizer.ts","ng://@taiga-ui/cdk/tokens/swipe-options.ts","ng://@taiga-ui/cdk/tokens/take-only-trusted-events.ts","ng://@taiga-ui/cdk/tokens/touch-supported.ts","ng://@taiga-ui/cdk/tokens/window-height.ts","ng://@taiga-ui/cdk/tokens/zoom-options.ts","ng://@taiga-ui/cdk/tokens/taiga-ui-cdk-tokens.ts"],"sourcesContent":["import {ɵAnimationEngine} from '@angular/animations/browser';\nimport {inject, InjectFlags, InjectionToken} from '@angular/core';\nimport {BehaviorSubject, Observable, timer} from 'rxjs';\nimport {mapTo, share, startWith, switchMap} from 'rxjs/operators';\n\nexport const TUI_REMOVED_ELEMENT = new InjectionToken<Observable<Element | null>>(\n 'Element currently being removed by AnimationEngine',\n {\n factory: () => {\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(element, context);\n };\n\n return element$.pipe(\n switchMap(element => timer(0).pipe(mapTo(null), startWith(element))),\n share(),\n );\n },\n },\n);\n","import {DOCUMENT} from '@angular/common';\nimport {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {getActualTarget, getDocumentOrShadowRoot} from '@taiga-ui/cdk/utils';\nimport {merge, Observable, of, timer} from 'rxjs';\nimport {\n distinctUntilChanged,\n filter,\n map,\n mapTo,\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\nexport const TUI_ACTIVE_ELEMENT = new InjectionToken<Observable<EventTarget | null>>(\n 'Active element on the document for ActiveZone',\n {\n factory: () => {\n const removedElement$ = inject(TUI_REMOVED_ELEMENT);\n const windowRef = inject(WINDOW);\n const documentRef = inject(DOCUMENT);\n const focusout$ = typedFromEvent(windowRef, 'focusout');\n const focusin$ = typedFromEvent(windowRef, 'focusin');\n const blur$ = typedFromEvent(windowRef, 'blur');\n const mousedown$ = typedFromEvent(windowRef, 'mousedown');\n const mouseup$ = typedFromEvent(windowRef, 'mouseup');\n\n return merge(\n focusout$.pipe(\n // eslint-disable-next-line rxjs/no-unsafe-takeuntil\n takeUntil(mousedown$),\n // eslint-disable-next-line rxjs/no-ignored-notifier\n repeatWhen(() => mouseup$),\n withLatestFrom(removedElement$),\n filter(([event, removedElement]) =>\n isValidFocusout(getActualTarget(event), removedElement),\n ),\n map(([{relatedTarget}]) => relatedTarget),\n ),\n blur$.pipe(\n map(() => documentRef.activeElement),\n filter(element => !!element && element.matches('iframe')),\n ),\n focusin$.pipe(\n switchMap(event => {\n const target = getActualTarget(event);\n const root = getDocumentOrShadowRoot(target) as Document;\n\n return root === documentRef\n ? of(target)\n : shadowRootActiveElement(root).pipe(startWith(target));\n }),\n ),\n mousedown$.pipe(\n switchMap(event =>\n !documentRef.activeElement ||\n documentRef.activeElement === documentRef.body\n ? of(getActualTarget(event))\n : focusout$.pipe(\n take(1),\n mapTo(getActualTarget(event)),\n takeUntil(timer(0)),\n ),\n ),\n ),\n ).pipe(distinctUntilChanged(), share());\n },\n },\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 getDocumentOrShadowRoot(target).activeElement !== target &&\n // Not due to button/input becoming disabled\n !target.disabled &&\n // Not due to element being removed from DOM\n (!removedElement || !removedElement.contains(target))\n );\n}\n\nfunction shadowRootActiveElement(root: Document): Observable<EventTarget | null> {\n return merge(\n typedFromEvent(root, 'focusin').pipe(map(({target}) => target)),\n typedFromEvent(root, 'focusout').pipe(\n filter(\n ({target, relatedTarget}) => !!relatedTarget && isValidFocusout(target),\n ),\n map(({relatedTarget}) => relatedTarget),\n ),\n );\n}\n","import {InjectionToken} from '@angular/core';\nimport {TuiAriaDialogContext} from '@taiga-ui/cdk/interfaces';\nimport {Observable} from 'rxjs';\n\nexport const TUI_ALERTS = new InjectionToken<\n ReadonlyArray<Observable<readonly TuiAriaDialogContext[]>>\n>('A stream of alerts', {\n factory: () => [],\n});\n","import {inject, InjectionToken, Renderer2, RendererFactory2} from '@angular/core';\n\n// https://github.com/angular/angular/issues/17824#issuecomment-353239017\nexport const TUI_DEFAULT_RENDERER = new InjectionToken<Renderer2>(\n 'A Renderer2 for global services',\n {\n // @ts-ignore\n factory: () => inject(RendererFactory2).createRenderer(null, null),\n },\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiAriaDialogContext} from '@taiga-ui/cdk/interfaces';\nimport {Observable} from 'rxjs';\n\nexport const TUI_DIALOGS = new InjectionToken<\n ReadonlyArray<Observable<readonly TuiAriaDialogContext[]>>\n>('A stream of dialogs', {\n factory: () => [],\n});\n","import {InjectionToken} from '@angular/core';\nimport {TuiFocusableElementAccessor} from '@taiga-ui/cdk/interfaces';\n\nexport const TUI_FOCUSABLE_ITEM_ACCESSOR =\n new InjectionToken<TuiFocusableElementAccessor>('A component that can be focused');\n","import {inject, InjectionToken} from '@angular/core';\nimport {NAVIGATOR, USER_AGENT} from '@ng-web-apis/common';\n\nconst IOS_REG_EXP = /ipad|iphone|ipod/;\n\nexport const TUI_IS_IOS = new InjectionToken<boolean>('iOS browser detection', {\n factory: () =>\n IOS_REG_EXP.test(inject(USER_AGENT).toLowerCase()) ||\n (inject(USER_AGENT).toLowerCase().includes('apple') &&\n inject(NAVIGATOR).maxTouchPoints > 1),\n});\n","import {inject, InjectionToken} from '@angular/core';\nimport {USER_AGENT} from '@ng-web-apis/common';\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\nexport const TUI_IS_MOBILE = new InjectionToken<boolean>('Mobile browser detection', {\n factory: () =>\n firstRegex.test(inject(USER_AGENT).toLowerCase()) ||\n secondRegex.test(inject(USER_AGENT).substr(0, 4).toLowerCase()),\n});\n","import {inject, InjectionToken} from '@angular/core';\n\nimport {TUI_IS_IOS} from './is-ios';\nimport {TUI_IS_MOBILE} from './is-mobile';\n\nexport const TUI_IS_ANDROID = new InjectionToken<boolean>(\n 'Mobile browser that is not iOS (technically includes Windows Phone, Blackberry etc.)',\n {\n factory: () => inject(TUI_IS_MOBILE) && !inject(TUI_IS_IOS),\n },\n);\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\nexport interface WindowWithCypress extends Window {\n Cypress?: unknown;\n}\n\n/**\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 = new InjectionToken<boolean>(\n 'Detect if app is running under Cypress',\n {\n factory: () => !!inject<WindowWithCypress>(WINDOW).Cypress,\n },\n);\n","import {InjectionToken, Sanitizer} from '@angular/core';\n\n/* @deprecated export token from @taiga-ui/core package **/\nexport const TUI_SANITIZER = new InjectionToken<Sanitizer>(\n 'A custom Sanitizer to sanitize source before inlining',\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiSwipeOptions} from '@taiga-ui/cdk/interfaces';\n\nexport const TUI_SWIPE_OPTIONS = new InjectionToken<TuiSwipeOptions>('Swipe options', {\n factory: () => ({timeout: 500, threshold: 30}),\n});\n","import {InjectionToken} from '@angular/core';\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: InjectionToken<boolean> =\n new InjectionToken<boolean>(\n 'This token need for override behavior the `pressedObservable` function',\n {\n factory: () => true,\n },\n );\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\nexport const TUI_TOUCH_SUPPORTED = new InjectionToken('Touch support detection', {\n factory: () => inject(WINDOW).matchMedia('(any-pointer: coarse)').matches,\n});\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {Observable} from 'rxjs';\nimport {map, shareReplay, startWith} from 'rxjs/operators';\n\nexport const TUI_WINDOW_HEIGHT = new InjectionToken<Observable<number>>(\n 'Window height accounting for disappearing address bar',\n {\n factory: () => {\n const windowRef = inject(WINDOW);\n\n return typedFromEvent(windowRef, 'resize').pipe(\n startWith(null),\n map(() => windowRef.innerHeight),\n shareReplay({bufferSize: 1, refCount: true}),\n );\n },\n },\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiZoomOptions} from '@taiga-ui/cdk/interfaces';\n\nexport const TUI_ZOOM_OPTIONS = new InjectionToken<TuiZoomOptions>('Zoom options', {\n factory: () => ({\n wheelSensitivity: 0.01,\n }),\n});\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { PolymorpheusContent } from '@tinkoff/ng-polymorpheus';
1
+ import { PolymorpheusComponent } from '@tinkoff/ng-polymorpheus';
2
2
  export interface TuiAriaDialogContext {
3
- readonly component: PolymorpheusContent<any>;
3
+ readonly component: PolymorpheusComponent<any, any>;
4
4
  readonly id: string;
5
5
  readonly createdAt: number;
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taiga-ui/cdk",
3
- "version": "2.40.0",
3
+ "version": "2.42.0",
4
4
  "description": "Base library for creating Angular components and applications using Taiga UI principles regarding of actual visual appearance",
5
5
  "keywords": [
6
6
  "angular",
@@ -11,9 +11,9 @@
11
11
  "service",
12
12
  "directive"
13
13
  ],
14
- "license": "Apache-2.0",
15
- "repository": "https://github.com/tinkoff/taiga-ui",
16
14
  "homepage": "https://github.com/tinkoff/taiga-ui",
15
+ "repository": "https://github.com/tinkoff/taiga-ui",
16
+ "license": "Apache-2.0",
17
17
  "dependencies": {
18
18
  "@ng-web-apis/common": "^1.12.1",
19
19
  "@ng-web-apis/mutation-observer": "^1.1.0",
@@ -30,7 +30,6 @@
30
30
  "@angular/forms": ">=9.0.0",
31
31
  "rxjs": ">=6.0.0"
32
32
  },
33
- "schematics": "./schematics/collection.json",
34
33
  "ng-update": {
35
34
  "migrations": "./schematics/migration.json",
36
35
  "packageGroup": [
@@ -49,6 +48,7 @@
49
48
  "@taiga-ui/addon-mobile"
50
49
  ]
51
50
  },
51
+ "schematics": "./schematics/collection.json",
52
52
  "main": "bundles/taiga-ui-cdk.umd.js",
53
53
  "module": "fesm5/taiga-ui-cdk.js",
54
54
  "es2015": "fesm2015/taiga-ui-cdk.js",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "../../../node_modules/@angular-devkit/schematics/collection-schema.json",
3
3
  "schematics": {
4
- "update-v3": {
4
+ "updateToV3": {
5
5
  "description": "Updates Taiga UI packages to v3",
6
6
  "version": "3.0.0",
7
7
  "factory": "./ng-update/index#updateToV3"
@@ -1,2 +1 @@
1
1
  export declare const MAIN_PACKAGES: string[];
2
- export declare const ADDITIONAL_PACKAGES: string[];
@@ -1,13 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MAIN_PACKAGES = ['core', 'cdk', 'kit', 'icons'];
4
- exports.ADDITIONAL_PACKAGES = [
5
- 'addon-doc',
6
- 'addon-charts',
7
- 'addon-commerce',
8
- 'addon-mobile',
9
- 'addon-table',
10
- 'addon-tablebars',
11
- 'addon-editor',
12
- 'addon-preview',
13
- ];
@@ -14,6 +14,7 @@ const ng_morph_1 = require("ng-morph");
14
14
  const get_project_1 = require("../../utils/get-project");
15
15
  const get_project_target_options_1 = require("../../utils/get-project-target-options");
16
16
  const modules_1 = require("../constants/modules");
17
+ const add_unique_import_1 = require("../../utils/add-unique-import");
17
18
  function addTaigaModules(options) {
18
19
  return (tree, context) => __awaiter(this, void 0, void 0, function* () {
19
20
  const workspace = yield workspace_1.getWorkspace(tree);
@@ -36,7 +37,7 @@ function addTuiModules(mainModule, options, context) {
36
37
  const mainModulePath = mainModule.getSourceFile().getFilePath();
37
38
  modules.forEach(module => {
38
39
  ng_morph_1.addImportToNgModule(mainModule, module.name, { unique: true });
39
- addUniqueImport(mainModulePath, module.name, module.packageName);
40
+ add_unique_import_1.addUniqueImport(mainModulePath, module.name, module.packageName);
40
41
  });
41
42
  context.logger.info(`${modules.map(module => module.name)} was added to ${mainModulePath}`);
42
43
  }
@@ -46,31 +47,6 @@ function addTuiProviders(mainModule, options) {
46
47
  }
47
48
  ng_morph_1.addProviderToNgModule(mainModule, '{provide: TUI_SANITIZER, useClass: NgDompurifySanitizer}', { unique: true });
48
49
  modules_1.SANITIZER_MODULES.forEach(module => {
49
- addUniqueImport(mainModule.getSourceFile().getFilePath(), module.name, module.packageName);
50
- });
51
- }
52
- function addUniqueImport(filePath, namedImport, packageName) {
53
- const existingNamedImport = ng_morph_1.getImports(filePath, {
54
- namedImports: namedImport,
55
- moduleSpecifier: packageName,
56
- });
57
- if (existingNamedImport.length) {
58
- return;
59
- }
60
- const existingDeclaration = ng_morph_1.getImports(filePath, {
61
- moduleSpecifier: packageName,
62
- });
63
- if (existingDeclaration.length) {
64
- const modules = existingDeclaration[0]
65
- .getNamedImports()
66
- .map(namedImport => namedImport.getText());
67
- ng_morph_1.editImports(existingDeclaration, () => ({
68
- namedImports: [...modules, namedImport],
69
- }));
70
- return;
71
- }
72
- ng_morph_1.addImports(filePath, {
73
- moduleSpecifier: packageName,
74
- namedImports: [namedImport],
50
+ add_unique_import_1.addUniqueImport(mainModule.getSourceFile().getFilePath(), module.name, module.packageName);
75
51
  });
76
52
  }
@@ -0,0 +1,12 @@
1
+ export interface ReplacementConst {
2
+ from: {
3
+ name: string;
4
+ moduleSpecifier?: string;
5
+ };
6
+ to: {
7
+ name: string;
8
+ namedImport?: string;
9
+ moduleSpecifier: string;
10
+ };
11
+ }
12
+ export declare const CONSTS_TO_REPLACE: ReplacementConst[];
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CONSTS_TO_REPLACE = [
4
+ {
5
+ from: {
6
+ name: 'EMPTY_VALIDATOR',
7
+ moduleSpecifier: '@taiga-ui/cdk',
8
+ },
9
+ to: {
10
+ name: 'Validators.nullValidator',
11
+ namedImport: 'Validators',
12
+ moduleSpecifier: '@angular/forms',
13
+ },
14
+ },
15
+ {
16
+ from: {
17
+ name: 'TUI_DATE_MASK',
18
+ },
19
+ to: {
20
+ name: `tuiCreateDateMask('DMY', '.')`,
21
+ moduleSpecifier: '@taiga-ui/kit',
22
+ namedImport: 'tuiCreateDateMask',
23
+ },
24
+ },
25
+ {
26
+ from: {
27
+ name: 'TUI_DATE_RANGE_MASK',
28
+ },
29
+ to: {
30
+ name: `tuiCreateDateRangeMask('DMY', '.')`,
31
+ moduleSpecifier: '@taiga-ui/kit',
32
+ namedImport: 'tuiCreateDateRangeMask',
33
+ },
34
+ },
35
+ {
36
+ from: {
37
+ name: 'getClosestKeyboardFocusable',
38
+ moduleSpecifier: '@taiga-ui/cdk',
39
+ },
40
+ to: {
41
+ name: 'getClosestFocusable',
42
+ moduleSpecifier: '@taiga-ui/cdk',
43
+ },
44
+ },
45
+ ];
@@ -0,0 +1,7 @@
1
+ interface ReplacementEnum {
2
+ name: string;
3
+ replaceValues: Record<string, string>;
4
+ keepAsType?: boolean;
5
+ }
6
+ export declare const ENUMS_TO_REPLACE: ReplacementEnum[];
7
+ export {};