@taiga-ui/cdk 3.1.0 → 3.2.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 (58) hide show
  1. package/README.md +3 -3
  2. package/bundles/taiga-ui-cdk-components-dialog-host.umd.js +1 -1
  3. package/bundles/taiga-ui-cdk-components-dialog-host.umd.js.map +1 -1
  4. package/bundles/taiga-ui-cdk-constants.umd.js +1 -1
  5. package/bundles/taiga-ui-cdk-constants.umd.js.map +1 -1
  6. package/bundles/taiga-ui-cdk-date-time.umd.js +2 -2
  7. package/bundles/taiga-ui-cdk-date-time.umd.js.map +1 -1
  8. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.js +1 -1
  9. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.js.map +1 -1
  10. package/bundles/taiga-ui-cdk-services.umd.js +5 -0
  11. package/bundles/taiga-ui-cdk-services.umd.js.map +1 -1
  12. package/bundles/taiga-ui-cdk-tokens.umd.js +19 -19
  13. package/bundles/taiga-ui-cdk-tokens.umd.js.map +1 -1
  14. package/constants/version.d.ts +1 -1
  15. package/constants/version.js +1 -1
  16. package/esm2015/components/dialog-host/dialog-host.component.js +2 -2
  17. package/esm2015/constants/version.js +2 -2
  18. package/esm2015/date-time/date-format.js +2 -2
  19. package/esm2015/date-time/date-separator.js +2 -2
  20. package/esm2015/directives/auto-focus/autofocus.options.js +2 -2
  21. package/esm2015/services/destroy.service.js +6 -1
  22. package/esm2015/tokens/active-element.js +2 -2
  23. package/esm2015/tokens/alerts.js +2 -2
  24. package/esm2015/tokens/default-renderer.js +2 -2
  25. package/esm2015/tokens/dialogs.js +2 -2
  26. package/esm2015/tokens/focusable-item-accessor.js +2 -2
  27. package/esm2015/tokens/is-android.js +2 -2
  28. package/esm2015/tokens/is-apple.js +2 -2
  29. package/esm2015/tokens/is-chromium.js +2 -2
  30. package/esm2015/tokens/is-cypress.js +2 -2
  31. package/esm2015/tokens/is-firefox.js +2 -2
  32. package/esm2015/tokens/is-ios.js +2 -2
  33. package/esm2015/tokens/is-mobile.js +2 -2
  34. package/esm2015/tokens/is-webkit.js +2 -2
  35. package/esm2015/tokens/removed-element.js +2 -2
  36. package/esm2015/tokens/swipe-options.js +2 -2
  37. package/esm2015/tokens/take-only-trusted-events.js +2 -2
  38. package/esm2015/tokens/touch-supported.js +2 -2
  39. package/esm2015/tokens/window-height.js +2 -2
  40. package/esm2015/tokens/zoom-options.js +2 -2
  41. package/fesm2015/taiga-ui-cdk-components-dialog-host.js +1 -1
  42. package/fesm2015/taiga-ui-cdk-components-dialog-host.js.map +1 -1
  43. package/fesm2015/taiga-ui-cdk-constants.js +1 -1
  44. package/fesm2015/taiga-ui-cdk-constants.js.map +1 -1
  45. package/fesm2015/taiga-ui-cdk-date-time.js +2 -2
  46. package/fesm2015/taiga-ui-cdk-date-time.js.map +1 -1
  47. package/fesm2015/taiga-ui-cdk-directives-auto-focus.js +1 -1
  48. package/fesm2015/taiga-ui-cdk-directives-auto-focus.js.map +1 -1
  49. package/fesm2015/taiga-ui-cdk-services.js +5 -0
  50. package/fesm2015/taiga-ui-cdk-services.js.map +1 -1
  51. package/fesm2015/taiga-ui-cdk-tokens.js +19 -19
  52. package/fesm2015/taiga-ui-cdk-tokens.js.map +1 -1
  53. package/package.json +1 -1
  54. package/schematics/ng-update/constants/consts.js +10 -0
  55. package/schematics/ng-update/steps/migrate-taiga-proprietary-icons.js +8 -1
  56. package/schematics/utils/angular-json-manipulations.js +10 -2
  57. package/schematics/utils/get-project.js +2 -2
  58. package/services/destroy.service.d.ts +5 -0
@@ -7,7 +7,7 @@ import { BehaviorSubject, timer, merge, of } from 'rxjs';
7
7
  import { switchMap, mapTo, startWith, share, takeUntil, repeatWhen, withLatestFrom, filter, map, take, distinctUntilChanged, shareReplay } from 'rxjs/operators';
8
8
  import { ɵAnimationEngine } from '@angular/animations/browser';
9
9
 
10
- const TUI_REMOVED_ELEMENT = new InjectionToken(`Element currently being removed by AnimationEngine`, {
10
+ const TUI_REMOVED_ELEMENT = new InjectionToken(`[TUI_REMOVED_ELEMENT]: Element currently being removed by AnimationEngine`, {
11
11
  factory: () => {
12
12
  const stub = { onRemovalComplete: () => { } };
13
13
  const element$ = new BehaviorSubject(null);
@@ -21,7 +21,7 @@ const TUI_REMOVED_ELEMENT = new InjectionToken(`Element currently being removed
21
21
  },
22
22
  });
23
23
 
24
- const TUI_ACTIVE_ELEMENT = new InjectionToken(`Active element on the document for ActiveZone`, {
24
+ const TUI_ACTIVE_ELEMENT = new InjectionToken(`[TUI_ACTIVE_ELEMENT]: Active element on the document for ActiveZone`, {
25
25
  factory: () => {
26
26
  const removedElement$ = inject(TUI_REMOVED_ELEMENT);
27
27
  const windowRef = inject(WINDOW);
@@ -61,7 +61,7 @@ function shadowRootActiveElement(root) {
61
61
  return merge(tuiTypedFromEvent(root, `focusin`).pipe(map(({ target }) => target)), tuiTypedFromEvent(root, `focusout`).pipe(filter(({ target, relatedTarget }) => !!relatedTarget && isValidFocusout(target)), map(({ relatedTarget }) => relatedTarget)));
62
62
  }
63
63
 
64
- const TUI_ALERTS = new InjectionToken(`A stream of alerts`, {
64
+ const TUI_ALERTS = new InjectionToken(`[TUI_ALERTS]: A stream of alerts`, {
65
65
  factory: () => [],
66
66
  });
67
67
  function tuiAsAlerts(useExisting) {
@@ -73,12 +73,12 @@ function tuiAsAlerts(useExisting) {
73
73
  }
74
74
 
75
75
  // https://github.com/angular/angular/issues/17824#issuecomment-353239017
76
- const TUI_DEFAULT_RENDERER = new InjectionToken(`A Renderer2 for global services`, {
76
+ const TUI_DEFAULT_RENDERER = new InjectionToken(`[TUI_DEFAULT_RENDERER]: A Renderer2 for global services`, {
77
77
  // @ts-ignore
78
78
  factory: () => inject(RendererFactory2).createRenderer(null, null),
79
79
  });
80
80
 
81
- const TUI_DIALOGS = new InjectionToken(`A stream of dialogs`, {
81
+ const TUI_DIALOGS = new InjectionToken(`[TUI_DIALOGS]: A stream of dialogs`, {
82
82
  factory: () => [],
83
83
  });
84
84
  function tuiAsDialog(useExisting) {
@@ -89,7 +89,7 @@ function tuiAsDialog(useExisting) {
89
89
  };
90
90
  }
91
91
 
92
- const TUI_FOCUSABLE_ITEM_ACCESSOR = new InjectionToken(`A component that can be focused`);
92
+ const TUI_FOCUSABLE_ITEM_ACCESSOR = new InjectionToken(`[TUI_FOCUSABLE_ITEM_ACCESSOR]: A component that can be focused`);
93
93
  function tuiAsFocusableItemAccessor(useExisting) {
94
94
  return {
95
95
  provide: TUI_FOCUSABLE_ITEM_ACCESSOR,
@@ -97,43 +97,43 @@ function tuiAsFocusableItemAccessor(useExisting) {
97
97
  };
98
98
  }
99
99
 
100
- const TUI_IS_IOS = new InjectionToken(`iOS browser detection`, {
100
+ const TUI_IS_IOS = new InjectionToken(`[TUI_IS_IOS]: iOS browser detection`, {
101
101
  factory: () => tuiIsIos(inject(NAVIGATOR)),
102
102
  });
103
103
 
104
104
  // https://stackoverflow.com/a/11381730/2706426 http://detectmobilebrowsers.com/
105
105
  const firstRegex = /(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/;
106
106
  const secondRegex = /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-/;
107
- const TUI_IS_MOBILE = new InjectionToken(`Mobile browser detection`, {
107
+ const TUI_IS_MOBILE = new InjectionToken(`[TUI_IS_MOBILE]: Mobile browser detection`, {
108
108
  factory: () => firstRegex.test(inject(USER_AGENT).toLowerCase()) ||
109
109
  secondRegex.test(inject(USER_AGENT).slice(0, 4).toLowerCase()),
110
110
  });
111
111
 
112
- const TUI_IS_ANDROID = new InjectionToken(`Mobile browser that is not iOS (technically includes Windows Phone, Blackberry etc.)`, {
112
+ const TUI_IS_ANDROID = new InjectionToken(`[TUI_IS_ANDROID]: Mobile browser that is not iOS (technically includes Windows Phone, Blackberry etc.)`, {
113
113
  factory: () => inject(TUI_IS_MOBILE) && !inject(TUI_IS_IOS),
114
114
  });
115
115
 
116
- const TUI_IS_APPLE = new InjectionToken(`Apple(safari/webkit) detection`, { factory: () => tuiIsApple(inject(NAVIGATOR)) });
116
+ const TUI_IS_APPLE = new InjectionToken(`[TUI_IS_APPLE]: Apple(safari/webkit) detection`, { factory: () => tuiIsApple(inject(NAVIGATOR)) });
117
117
 
118
- const TUI_IS_CHROMIUM = new InjectionToken(`Chromium browser engine detection`, {
118
+ const TUI_IS_CHROMIUM = new InjectionToken(`[TUI_IS_CHROMIUM]: Chromium browser engine detection`, {
119
119
  factory: () => !!inject(WINDOW).chrome,
120
120
  });
121
121
 
122
122
  /**
123
123
  * {@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}
124
124
  */
125
- const TUI_IS_CYPRESS = new InjectionToken(`Detect if app is running under Cypress`, {
125
+ const TUI_IS_CYPRESS = new InjectionToken(`[TUI_IS_CYPRESS]: Detect if app is running under Cypress`, {
126
126
  factory: () => !!inject(WINDOW).Cypress,
127
127
  });
128
128
 
129
- const TUI_IS_FIREFOX = new InjectionToken(`Firefox browser engine detection`, {
129
+ const TUI_IS_FIREFOX = new InjectionToken(`[TUI_IS_FIREFOX]: Firefox browser engine detection`, {
130
130
  factory: () => {
131
131
  var _a;
132
132
  return typeof ((_a = inject(WINDOW)) === null || _a === void 0 ? void 0 : _a.mozCancelFullScreen) !== `undefined`;
133
133
  },
134
134
  });
135
135
 
136
- const TUI_IS_WEBKIT = new InjectionToken(`Webkit browser engine detection`, {
136
+ const TUI_IS_WEBKIT = new InjectionToken(`[TUI_IS_WEBKIT]: Webkit browser engine detection`, {
137
137
  factory: () => {
138
138
  var _a;
139
139
  return !!((_a = inject(WINDOW)) === null || _a === void 0 ? void 0 : _a.webkitConvertPointFromNodeToPage);
@@ -146,7 +146,7 @@ const TUI_RANGE = new InjectionToken(`[TUI_RANGE] SSR safe default empty Range`,
146
146
  : {},
147
147
  });
148
148
 
149
- const TUI_SWIPE_OPTIONS = new InjectionToken(`Swipe options`, {
149
+ const TUI_SWIPE_OPTIONS = new InjectionToken(`[TUI_SWIPE_OPTIONS]: Swipe options`, {
150
150
  factory: () => ({ timeout: 500, threshold: 30 }),
151
151
  });
152
152
 
@@ -156,22 +156,22 @@ const TUI_SWIPE_OPTIONS = new InjectionToken(`Swipe options`, {
156
156
  * when the event was generated by a user action, and false when the event was created or
157
157
  * modified by a script or dispatched via EventTarget.dispatchEvent().
158
158
  */
159
- const TUI_TAKE_ONLY_TRUSTED_EVENTS = new InjectionToken(`This token need for override behavior the \`pressedObservable\` function`, {
159
+ const TUI_TAKE_ONLY_TRUSTED_EVENTS = new InjectionToken(`[TUI_TAKE_ONLY_TRUSTED_EVENTS]: This token need for override behavior the \`pressedObservable\` function`, {
160
160
  factory: () => true,
161
161
  });
162
162
 
163
- const TUI_TOUCH_SUPPORTED = new InjectionToken(`Touch support detection`, {
163
+ const TUI_TOUCH_SUPPORTED = new InjectionToken(`[TUI_TOUCH_SUPPORTED]: Touch support detection`, {
164
164
  factory: () => inject(WINDOW).matchMedia(`(any-pointer: coarse)`).matches,
165
165
  });
166
166
 
167
- const TUI_WINDOW_HEIGHT = new InjectionToken(`Window height accounting for disappearing address bar`, {
167
+ const TUI_WINDOW_HEIGHT = new InjectionToken(`[TUI_WINDOW_HEIGHT]: Window height accounting for disappearing address bar`, {
168
168
  factory: () => {
169
169
  const windowRef = inject(WINDOW);
170
170
  return tuiTypedFromEvent(windowRef, `resize`).pipe(startWith(null), map(() => windowRef.innerHeight), shareReplay({ bufferSize: 1, refCount: true }));
171
171
  },
172
172
  });
173
173
 
174
- const TUI_ZOOM_OPTIONS = new InjectionToken(`Zoom options`, {
174
+ const TUI_ZOOM_OPTIONS = new InjectionToken(`[TUI_ZOOM_OPTIONS]: Zoom options`, {
175
175
  factory: () => ({
176
176
  wheelSensitivity: 0.01,
177
177
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-tokens.js","sources":["../../../projects/cdk/tokens/removed-element.ts","../../../projects/cdk/tokens/active-element.ts","../../../projects/cdk/tokens/alerts.ts","../../../projects/cdk/tokens/default-renderer.ts","../../../projects/cdk/tokens/dialogs.ts","../../../projects/cdk/tokens/focusable-item-accessor.ts","../../../projects/cdk/tokens/is-ios.ts","../../../projects/cdk/tokens/is-mobile.ts","../../../projects/cdk/tokens/is-android.ts","../../../projects/cdk/tokens/is-apple.ts","../../../projects/cdk/tokens/is-chromium.ts","../../../projects/cdk/tokens/is-cypress.ts","../../../projects/cdk/tokens/is-firefox.ts","../../../projects/cdk/tokens/is-webkit.ts","../../../projects/cdk/tokens/range.ts","../../../projects/cdk/tokens/swipe-options.ts","../../../projects/cdk/tokens/take-only-trusted-events.ts","../../../projects/cdk/tokens/touch-supported.ts","../../../projects/cdk/tokens/window-height.ts","../../../projects/cdk/tokens/zoom-options.ts","../../../projects/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 {tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {tuiGetActualTarget, tuiGetDocumentOrShadowRoot} 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$ = tuiTypedFromEvent(windowRef, `focusout`);\n const focusin$ = tuiTypedFromEvent(windowRef, `focusin`);\n const blur$ = tuiTypedFromEvent(windowRef, `blur`);\n const mousedown$ = tuiTypedFromEvent(windowRef, `mousedown`);\n const mouseup$ = tuiTypedFromEvent(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(tuiGetActualTarget(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 = tuiGetActualTarget(event);\n const root = tuiGetDocumentOrShadowRoot(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(tuiGetActualTarget(event))\n : focusout$.pipe(\n take(1),\n mapTo(tuiGetActualTarget(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 tuiGetDocumentOrShadowRoot(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?.contains(target)\n );\n}\n\nfunction shadowRootActiveElement(root: Document): Observable<EventTarget | null> {\n return merge(\n tuiTypedFromEvent(root, `focusin`).pipe(map(({target}) => target)),\n tuiTypedFromEvent(root, `focusout`).pipe(\n filter(\n ({target, relatedTarget}) => !!relatedTarget && isValidFocusout(target),\n ),\n map(({relatedTarget}) => relatedTarget),\n ),\n );\n}\n","import {InjectionToken, Provider, Type} 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\nexport function tuiAsAlerts(\n useExisting: Type<Observable<readonly TuiAriaDialogContext[]>>,\n): Provider {\n return {\n provide: TUI_ALERTS,\n multi: true,\n useExisting,\n };\n}\n","import {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, Provider, Type} 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\nexport function tuiAsDialog(\n useExisting: Type<Observable<readonly TuiAriaDialogContext[]>>,\n): Provider {\n return {\n provide: TUI_DIALOGS,\n multi: true,\n useExisting,\n };\n}\n","import {InjectionToken, Provider, Type} 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\nexport function tuiAsFocusableItemAccessor(\n useExisting: Type<TuiFocusableElementAccessor>,\n): Provider {\n return {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting,\n };\n}\n","import {inject, InjectionToken} from '@angular/core';\nimport {NAVIGATOR} from '@ng-web-apis/common';\nimport {tuiIsIos} from '@taiga-ui/cdk/utils';\n\nexport const TUI_IS_IOS = new InjectionToken<boolean>(`iOS browser detection`, {\n factory: () => tuiIsIos(inject(NAVIGATOR)),\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).slice(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 {NAVIGATOR} from '@ng-web-apis/common';\nimport {tuiIsApple} from '@taiga-ui/cdk/utils';\n\nexport const TUI_IS_APPLE = new InjectionToken<boolean>(\n `Apple(safari/webkit) detection`,\n {factory: () => tuiIsApple(inject(NAVIGATOR))},\n);\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\nexport const TUI_IS_CHROMIUM = new InjectionToken<boolean>(\n `Chromium browser engine detection`,\n {\n factory: () => !!(inject(WINDOW) as Window & {chrome: unknown}).chrome,\n },\n);\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\ninterface 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 {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\nexport const TUI_IS_FIREFOX = new InjectionToken<boolean>(\n `Firefox browser engine detection`,\n {\n factory: () =>\n typeof (inject(WINDOW) as Window & {mozCancelFullScreen: unknown})\n ?.mozCancelFullScreen !== `undefined`,\n },\n);\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\nexport const TUI_IS_WEBKIT = new InjectionToken<boolean>(\n `Webkit browser engine detection`,\n {\n factory: () =>\n !!(inject(WINDOW) as unknown as {webkitConvertPointFromNodeToPage?: unknown})\n ?.webkitConvertPointFromNodeToPage,\n },\n);\n","import {isPlatformBrowser} from '@angular/common';\nimport {inject, InjectionToken, PLATFORM_ID} from '@angular/core';\n\nexport const TUI_RANGE = new InjectionToken<Range>(\n `[TUI_RANGE] SSR safe default empty Range`,\n {\n factory: () =>\n isPlatformBrowser(inject(PLATFORM_ID))\n ? new Range()\n : ({} as unknown as Range),\n },\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 {tuiTypedFromEvent} 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 tuiTypedFromEvent(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":";;;;;;;;;MAKa,mBAAmB,GAAG,IAAI,cAAc,CACjD,oDAAoD,EACpD;IACI,OAAO,EAAE,MAAK;QACV,MAAM,IAAI,GAAG,EAAC,iBAAiB,EAAE,MAAK,GAAG,EAAC,CAAC;AAC3C,QAAA,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAiB,IAAI,CAAC,CAAC;AAC3D,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,gBAAgB,EAAE,WAAW,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;QACtE,MAAM,EAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,EAAC,GAAG,MAAM,CAAC;QAE5D,MAAM,CAAC,iBAAiB,GAAG,CAAC,OAAO,EAAE,OAAO,KAAI;AAC5C,YAAA,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACvB,YAAA,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACxC,SAAC,CAAC;AAEF,QAAA,OAAO,QAAQ,CAAC,IAAI,CAChB,SAAS,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EACpE,KAAK,EAAE,CACV,CAAC;KACL;AACJ,CAAA;;MCFQ,kBAAkB,GAAG,IAAI,cAAc,CAChD,+CAA+C,EAC/C;IACI,OAAO,EAAE,MAAK;AACV,QAAA,MAAM,eAAe,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;AACpD,QAAA,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AACjC,QAAA,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QACrC,MAAM,SAAS,GAAG,iBAAiB,CAAC,SAAS,EAAE,CAAA,QAAA,CAAU,CAAC,CAAC;QAC3D,MAAM,QAAQ,GAAG,iBAAiB,CAAC,SAAS,EAAE,CAAA,OAAA,CAAS,CAAC,CAAC;QACzD,MAAM,KAAK,GAAG,iBAAiB,CAAC,SAAS,EAAE,CAAA,IAAA,CAAM,CAAC,CAAC;QACnD,MAAM,UAAU,GAAG,iBAAiB,CAAC,SAAS,EAAE,CAAA,SAAA,CAAW,CAAC,CAAC;QAC7D,MAAM,QAAQ,GAAG,iBAAiB,CAAC,SAAS,EAAE,CAAA,OAAA,CAAS,CAAC,CAAC;AAEzD,QAAA,OAAO,KAAK,CACR,SAAS,CAAC,IAAI;;QAEV,SAAS,CAAC,UAAU,CAAC;;AAErB,QAAA,UAAU,CAAC,MAAM,QAAQ,CAAC,EAC1B,cAAc,CAAC,eAAe,CAAC,EAC/B,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,cAAc,CAAC,KAC3B,eAAe,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC,CAC7D,EACD,GAAG,CAAC,CAAC,CAAC,EAAC,aAAa,EAAC,CAAC,KAAK,aAAa,CAAC,CAC5C,EACD,KAAK,CAAC,IAAI,CACN,GAAG,CAAC,MAAM,WAAW,CAAC,aAAa,CAAC,EACpC,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAC5D,EACD,QAAQ,CAAC,IAAI,CACT,SAAS,CAAC,KAAK,IAAG;AACd,YAAA,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACzC,YAAA,MAAM,IAAI,GAAG,0BAA0B,CAAC,MAAM,CAAa,CAAC;YAE5D,OAAO,IAAI,KAAK,WAAW;AACvB,kBAAE,EAAE,CAAC,MAAM,CAAC;AACZ,kBAAE,uBAAuB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AAChE,SAAC,CAAC,CACL,EACD,UAAU,CAAC,IAAI,CACX,SAAS,CAAC,KAAK,IACX,CAAC,WAAW,CAAC,aAAa;AAC1B,YAAA,WAAW,CAAC,aAAa,KAAK,WAAW,CAAC,IAAI;AAC1C,cAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAC/B,cAAE,SAAS,CAAC,IAAI,CACV,IAAI,CAAC,CAAC,CAAC,EACP,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAChC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACtB,CACV,CACJ,CACJ,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;KAC3C;AACJ,CAAA,EACH;AAEF;AACA,SAAS,eAAe,CAAC,MAAW,EAAE,iBAAiC,IAAI,EAAA;IACvE;;AAEI,IAAA,0BAA0B,CAAC,MAAM,CAAC,CAAC,aAAa,KAAK,MAAM;;QAE3D,CAAC,MAAM,CAAC,QAAQ;;AAEhB,QAAA,EAAC,cAAc,KAAd,IAAA,IAAA,cAAc,KAAd,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,cAAc,CAAE,QAAQ,CAAC,MAAM,CAAC,CAAA,EACnC;AACN,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAc,EAAA;AAC3C,IAAA,OAAO,KAAK,CACR,iBAAiB,CAAC,IAAI,EAAE,CAAS,OAAA,CAAA,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAC,MAAM,EAAC,KAAK,MAAM,CAAC,CAAC,EAClE,iBAAiB,CAAC,IAAI,EAAE,CAAU,QAAA,CAAA,CAAC,CAAC,IAAI,CACpC,MAAM,CACF,CAAC,EAAC,MAAM,EAAE,aAAa,EAAC,KAAK,CAAC,CAAC,aAAa,IAAI,eAAe,CAAC,MAAM,CAAC,CAC1E,EACD,GAAG,CAAC,CAAC,EAAC,aAAa,EAAC,KAAK,aAAa,CAAC,CAC1C,CACJ,CAAC;AACN;;MChGa,UAAU,GAAG,IAAI,cAAc,CAE1C,oBAAoB,EAAE;AACpB,IAAA,OAAO,EAAE,MAAM,EAAE;AACpB,CAAA,EAAE;AAEG,SAAU,WAAW,CACvB,WAA8D,EAAA;IAE9D,OAAO;AACH,QAAA,OAAO,EAAE,UAAU;AACnB,QAAA,KAAK,EAAE,IAAI;QACX,WAAW;KACd,CAAC;AACN;;AChBA;MACa,oBAAoB,GAAG,IAAI,cAAc,CAClD,iCAAiC,EACjC;;AAEI,IAAA,OAAO,EAAE,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC;AACrE,CAAA;;MCJQ,WAAW,GAAG,IAAI,cAAc,CAE3C,qBAAqB,EAAE;AACrB,IAAA,OAAO,EAAE,MAAM,EAAE;AACpB,CAAA,EAAE;AAEG,SAAU,WAAW,CACvB,WAA8D,EAAA;IAE9D,OAAO;AACH,QAAA,OAAO,EAAE,WAAW;AACpB,QAAA,KAAK,EAAE,IAAI;QACX,WAAW;KACd,CAAC;AACN;;MCfa,2BAA2B,GACpC,IAAI,cAAc,CAA8B,CAAiC,+BAAA,CAAA,EAAE;AAEjF,SAAU,0BAA0B,CACtC,WAA8C,EAAA;IAE9C,OAAO;AACH,QAAA,OAAO,EAAE,2BAA2B;QACpC,WAAW;KACd,CAAC;AACN;;MCTa,UAAU,GAAG,IAAI,cAAc,CAAU,uBAAuB,EAAE;IAC3E,OAAO,EAAE,MAAM,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAC7C,CAAA;;ACHD;AACA,MAAM,UAAU,GACZ,yTAAyT,CAAC;AAC9T,MAAM,WAAW,GACb,0hDAA0hD,CAAC;MAElhD,aAAa,GAAG,IAAI,cAAc,CAAU,0BAA0B,EAAE;AACjF,IAAA,OAAO,EAAE,MACL,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;AACjD,QAAA,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AACrE,CAAA;;MCRY,cAAc,GAAG,IAAI,cAAc,CAC5C,sFAAsF,EACtF;AACI,IAAA,OAAO,EAAE,MAAM,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;AAC9D,CAAA;;ACLQ,MAAA,YAAY,GAAG,IAAI,cAAc,CAC1C,CAAA,8BAAA,CAAgC,EAChC,EAAC,OAAO,EAAE,MAAM,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAC;;MCHrC,eAAe,GAAG,IAAI,cAAc,CAC7C,mCAAmC,EACnC;IACI,OAAO,EAAE,MAAM,CAAC,CAAE,MAAM,CAAC,MAAM,CAAgC,CAAC,MAAM;AACzE,CAAA;;ACAL;;AAEG;MACU,cAAc,GAAG,IAAI,cAAc,CAC5C,wCAAwC,EACxC;IACI,OAAO,EAAE,MAAM,CAAC,CAAC,MAAM,CAAoB,MAAM,CAAC,CAAC,OAAO;AAC7D,CAAA;;MCXQ,cAAc,GAAG,IAAI,cAAc,CAC5C,kCAAkC,EAClC;IACI,OAAO,EAAE,MAAK;;AACV,QAAA,OAAA,QAAO,CAAC,EAAA,GAAA,MAAM,CAAC,MAAM,CAA6C,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAC5D,mBAAmB,CAAA,KAAK,CAAA,SAAA,CAAW,CAAA;AAAA,KAAA;AAChD,CAAA;;MCNQ,aAAa,GAAG,IAAI,cAAc,CAC3C,iCAAiC,EACjC;IACI,OAAO,EAAE,MAAK;;QACV,OAAA,CAAC,EAAC,CAAC,EAAA,GAAA,MAAM,CAAC,MAAM,CAA6D,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CACvE,gCAAgC,CAAA,CAAA;AAAA,KAAA;AAC7C,CAAA;;MCNQ,SAAS,GAAG,IAAI,cAAc,CACvC,0CAA0C,EAC1C;IACI,OAAO,EAAE,MACL,iBAAiB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;UAChC,IAAI,KAAK,EAAE;AACb,UAAG,EAAuB;AACrC,CAAA;;MCPQ,iBAAiB,GAAG,IAAI,cAAc,CAAkB,eAAe,EAAE;AAClF,IAAA,OAAO,EAAE,OAAO,EAAC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAC,CAAC;AACjD,CAAA;;ACHD;;;;;AAKG;MACU,4BAA4B,GACrC,IAAI,cAAc,CACd,0EAA0E,EAC1E;AACI,IAAA,OAAO,EAAE,MAAM,IAAI;AACtB,CAAA;;MCVI,mBAAmB,GAAG,IAAI,cAAc,CAAC,yBAAyB,EAAE;AAC7E,IAAA,OAAO,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAuB,qBAAA,CAAA,CAAC,CAAC,OAAO;AAC5E,CAAA;;MCCY,iBAAiB,GAAG,IAAI,cAAc,CAC/C,uDAAuD,EACvD;IACI,OAAO,EAAE,MAAK;AACV,QAAA,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAEjC,QAAA,OAAO,iBAAiB,CAAC,SAAS,EAAE,CAAA,MAAA,CAAQ,CAAC,CAAC,IAAI,CAC9C,SAAS,CAAC,IAAI,CAAC,EACf,GAAG,CAAC,MAAM,SAAS,CAAC,WAAW,CAAC,EAChC,WAAW,CAAC,EAAC,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC,CAC/C,CAAC;KACL;AACJ,CAAA;;MCfQ,gBAAgB,GAAG,IAAI,cAAc,CAAiB,cAAc,EAAE;AAC/E,IAAA,OAAO,EAAE,OAAO;AACZ,QAAA,gBAAgB,EAAE,IAAI;KACzB,CAAC;AACL,CAAA;;ACPD;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-cdk-tokens.js","sources":["../../../projects/cdk/tokens/removed-element.ts","../../../projects/cdk/tokens/active-element.ts","../../../projects/cdk/tokens/alerts.ts","../../../projects/cdk/tokens/default-renderer.ts","../../../projects/cdk/tokens/dialogs.ts","../../../projects/cdk/tokens/focusable-item-accessor.ts","../../../projects/cdk/tokens/is-ios.ts","../../../projects/cdk/tokens/is-mobile.ts","../../../projects/cdk/tokens/is-android.ts","../../../projects/cdk/tokens/is-apple.ts","../../../projects/cdk/tokens/is-chromium.ts","../../../projects/cdk/tokens/is-cypress.ts","../../../projects/cdk/tokens/is-firefox.ts","../../../projects/cdk/tokens/is-webkit.ts","../../../projects/cdk/tokens/range.ts","../../../projects/cdk/tokens/swipe-options.ts","../../../projects/cdk/tokens/take-only-trusted-events.ts","../../../projects/cdk/tokens/touch-supported.ts","../../../projects/cdk/tokens/window-height.ts","../../../projects/cdk/tokens/zoom-options.ts","../../../projects/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 `[TUI_REMOVED_ELEMENT]: 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 {tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {tuiGetActualTarget, tuiGetDocumentOrShadowRoot} 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 `[TUI_ACTIVE_ELEMENT]: 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$ = tuiTypedFromEvent(windowRef, `focusout`);\n const focusin$ = tuiTypedFromEvent(windowRef, `focusin`);\n const blur$ = tuiTypedFromEvent(windowRef, `blur`);\n const mousedown$ = tuiTypedFromEvent(windowRef, `mousedown`);\n const mouseup$ = tuiTypedFromEvent(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(tuiGetActualTarget(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 = tuiGetActualTarget(event);\n const root = tuiGetDocumentOrShadowRoot(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(tuiGetActualTarget(event))\n : focusout$.pipe(\n take(1),\n mapTo(tuiGetActualTarget(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 tuiGetDocumentOrShadowRoot(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?.contains(target)\n );\n}\n\nfunction shadowRootActiveElement(root: Document): Observable<EventTarget | null> {\n return merge(\n tuiTypedFromEvent(root, `focusin`).pipe(map(({target}) => target)),\n tuiTypedFromEvent(root, `focusout`).pipe(\n filter(\n ({target, relatedTarget}) => !!relatedTarget && isValidFocusout(target),\n ),\n map(({relatedTarget}) => relatedTarget),\n ),\n );\n}\n","import {InjectionToken, Provider, Type} 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>(`[TUI_ALERTS]: A stream of alerts`, {\n factory: () => [],\n});\n\nexport function tuiAsAlerts(\n useExisting: Type<Observable<readonly TuiAriaDialogContext[]>>,\n): Provider {\n return {\n provide: TUI_ALERTS,\n multi: true,\n useExisting,\n };\n}\n","import {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 `[TUI_DEFAULT_RENDERER]: A Renderer2 for global services`,\n {\n // @ts-ignore\n factory: () => inject(RendererFactory2).createRenderer(null, null),\n },\n);\n","import {InjectionToken, Provider, Type} 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>(`[TUI_DIALOGS]: A stream of dialogs`, {\n factory: () => [],\n});\n\nexport function tuiAsDialog(\n useExisting: Type<Observable<readonly TuiAriaDialogContext[]>>,\n): Provider {\n return {\n provide: TUI_DIALOGS,\n multi: true,\n useExisting,\n };\n}\n","import {InjectionToken, Provider, Type} from '@angular/core';\nimport {TuiFocusableElementAccessor} from '@taiga-ui/cdk/interfaces';\n\nexport const TUI_FOCUSABLE_ITEM_ACCESSOR =\n new InjectionToken<TuiFocusableElementAccessor>(\n `[TUI_FOCUSABLE_ITEM_ACCESSOR]: A component that can be focused`,\n );\n\nexport function tuiAsFocusableItemAccessor(\n useExisting: Type<TuiFocusableElementAccessor>,\n): Provider {\n return {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting,\n };\n}\n","import {inject, InjectionToken} from '@angular/core';\nimport {NAVIGATOR} from '@ng-web-apis/common';\nimport {tuiIsIos} from '@taiga-ui/cdk/utils';\n\nexport const TUI_IS_IOS = new InjectionToken<boolean>(\n `[TUI_IS_IOS]: iOS browser detection`,\n {\n factory: () => tuiIsIos(inject(NAVIGATOR)),\n },\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>(\n `[TUI_IS_MOBILE]: Mobile browser detection`,\n {\n factory: () =>\n firstRegex.test(inject(USER_AGENT).toLowerCase()) ||\n secondRegex.test(inject(USER_AGENT).slice(0, 4).toLowerCase()),\n },\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 `[TUI_IS_ANDROID]: 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 {NAVIGATOR} from '@ng-web-apis/common';\nimport {tuiIsApple} from '@taiga-ui/cdk/utils';\n\nexport const TUI_IS_APPLE = new InjectionToken<boolean>(\n `[TUI_IS_APPLE]: Apple(safari/webkit) detection`,\n {factory: () => tuiIsApple(inject(NAVIGATOR))},\n);\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\nexport const TUI_IS_CHROMIUM = new InjectionToken<boolean>(\n `[TUI_IS_CHROMIUM]: Chromium browser engine detection`,\n {\n factory: () => !!(inject(WINDOW) as Window & {chrome: unknown}).chrome,\n },\n);\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\ninterface 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 `[TUI_IS_CYPRESS]: Detect if app is running under Cypress`,\n {\n factory: () => !!inject<WindowWithCypress>(WINDOW).Cypress,\n },\n);\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\nexport const TUI_IS_FIREFOX = new InjectionToken<boolean>(\n `[TUI_IS_FIREFOX]: Firefox browser engine detection`,\n {\n factory: () =>\n typeof (inject(WINDOW) as Window & {mozCancelFullScreen: unknown})\n ?.mozCancelFullScreen !== `undefined`,\n },\n);\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\nexport const TUI_IS_WEBKIT = new InjectionToken<boolean>(\n `[TUI_IS_WEBKIT]: Webkit browser engine detection`,\n {\n factory: () =>\n !!(inject(WINDOW) as unknown as {webkitConvertPointFromNodeToPage?: unknown})\n ?.webkitConvertPointFromNodeToPage,\n },\n);\n","import {isPlatformBrowser} from '@angular/common';\nimport {inject, InjectionToken, PLATFORM_ID} from '@angular/core';\n\nexport const TUI_RANGE = new InjectionToken<Range>(\n `[TUI_RANGE] SSR safe default empty Range`,\n {\n factory: () =>\n isPlatformBrowser(inject(PLATFORM_ID))\n ? new Range()\n : ({} as unknown as Range),\n },\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiSwipeOptions} from '@taiga-ui/cdk/interfaces';\n\nexport const TUI_SWIPE_OPTIONS = new InjectionToken<TuiSwipeOptions>(\n `[TUI_SWIPE_OPTIONS]: Swipe options`,\n {\n factory: () => ({timeout: 500, threshold: 30}),\n },\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 `[TUI_TAKE_ONLY_TRUSTED_EVENTS]: 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(\n `[TUI_TOUCH_SUPPORTED]: Touch support detection`,\n {\n factory: () => inject(WINDOW).matchMedia(`(any-pointer: coarse)`).matches,\n },\n);\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {Observable} from 'rxjs';\nimport {map, shareReplay, startWith} from 'rxjs/operators';\n\nexport const TUI_WINDOW_HEIGHT = new InjectionToken<Observable<number>>(\n `[TUI_WINDOW_HEIGHT]: Window height accounting for disappearing address bar`,\n {\n factory: () => {\n const windowRef = inject(WINDOW);\n\n return tuiTypedFromEvent(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>(\n `[TUI_ZOOM_OPTIONS]: Zoom options`,\n {\n factory: () => ({\n wheelSensitivity: 0.01,\n }),\n },\n);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taiga-ui/cdk",
3
- "version": "3.1.0",
3
+ "version": "3.2.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",
@@ -193,6 +193,16 @@ exports.CONSTS_TO_REPLACE = [
193
193
  moduleSpecifier: '@taiga-ui/kit',
194
194
  },
195
195
  },
196
+ {
197
+ from: {
198
+ name: 'TuiInputFileModule',
199
+ moduleSpecifier: '@taiga-ui/kit',
200
+ },
201
+ to: {
202
+ name: 'TuiInputFilesModule',
203
+ moduleSpecifier: '@taiga-ui/kit',
204
+ },
205
+ },
196
206
  {
197
207
  from: {
198
208
  name: 'TuiPdfViewerModule',
@@ -39,7 +39,14 @@ function migrateTaigaProprietaryIcons(options) {
39
39
  context.logger.warn(`[WARNING]: Target project not found. ${MANUAL_MIGRATION_TIPS}`);
40
40
  return;
41
41
  }
42
- const targetOptions = get_project_target_options_1.getProjectTargetOptions(project, 'build');
42
+ let targetOptions;
43
+ try {
44
+ targetOptions = get_project_target_options_1.getProjectTargetOptions(project, 'build');
45
+ }
46
+ catch (_a) {
47
+ context.logger.warn(`[WARNING]: No buildable project was found. ${MANUAL_MIGRATION_TIPS}`);
48
+ return;
49
+ }
43
50
  if (Array.isArray(targetOptions === null || targetOptions === void 0 ? void 0 : targetOptions.assets)) {
44
51
  const tdsSrc = '@taiga-ui/proprietary-tds-icons/src';
45
52
  const hasIcons = targetOptions.assets.find(asset => {
@@ -21,13 +21,21 @@ function isInvalidAngularJson(tree) {
21
21
  }
22
22
  exports.isInvalidAngularJson = isInvalidAngularJson;
23
23
  function addStylesToAngularJson(options, context, taigaStyles, filter, stylesToReplace, tree) {
24
+ const MANUAL_MIGRATION_TIPS = `Add styles ${taigaStyles.join(',')} to angular.json manually.`;
24
25
  return workspace_1.updateWorkspace(workspace => {
25
26
  const project = get_project_1.getProject(options, workspace);
26
27
  if (!project) {
27
- context.logger.warn(`[WARNING]: Target project not found. Add styles ${taigaStyles.join(',')} to angular.json manually.`);
28
+ context.logger.warn(`[WARNING]: Target project not found. ${MANUAL_MIGRATION_TIPS}`);
29
+ return;
30
+ }
31
+ let targetOptions;
32
+ try {
33
+ targetOptions = get_project_target_options_1.getProjectTargetOptions(project, 'build');
34
+ }
35
+ catch (_a) {
36
+ context.logger.warn(`[WARNING]: No buildable project was found. ${MANUAL_MIGRATION_TIPS}`);
28
37
  return;
29
38
  }
30
- const targetOptions = get_project_target_options_1.getProjectTargetOptions(project, 'build');
31
39
  const styles = targetOptions.styles;
32
40
  if (filter && filter(styles)) {
33
41
  return;
@@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getProject = void 0;
4
4
  function getProject(options, workspace) {
5
5
  var _a, _b;
6
- const firstProjectName = (_a = Array.from(workspace.projects.keys())) === null || _a === void 0 ? void 0 : _a[0];
6
+ const firstBuildableProjectName = (_a = Array.from(workspace.projects.entries()).find(([_, project]) => project.targets.get('build'))) === null || _a === void 0 ? void 0 : _a[0];
7
7
  const projectName = options.project ||
8
8
  ((_b = workspace.extensions.defaultProject) === null || _b === void 0 ? void 0 : _b.toString()) ||
9
- firstProjectName ||
9
+ firstBuildableProjectName ||
10
10
  '';
11
11
  return workspace.projects.get(projectName);
12
12
  }
@@ -2,7 +2,12 @@ import { OnDestroy } from '@angular/core';
2
2
  import { ReplaySubject } from 'rxjs';
3
3
  import * as i0 from "@angular/core";
4
4
  /**
5
+ * @note:
5
6
  * Observable abstraction over ngOnDestroy to use with takeUntil
7
+ *
8
+ * Why we use `ReplaySubject` instead of `Subject`?
9
+ * Well, we’ll use ReplaySubject to emit the last message in case
10
+ * the subscription is ended after the component is destroyed.
6
11
  */
7
12
  export declare class TuiDestroyService extends ReplaySubject<void> implements OnDestroy {
8
13
  constructor();