@taiga-ui/cdk 3.44.1 → 3.45.0-canary.1c27922

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 (122) hide show
  1. package/bundles/taiga-ui-cdk-abstract.umd.js +4 -1
  2. package/bundles/taiga-ui-cdk-abstract.umd.js.map +1 -1
  3. package/bundles/taiga-ui-cdk-constants.umd.js +1 -1
  4. package/bundles/taiga-ui-cdk-constants.umd.js.map +1 -1
  5. package/bundles/taiga-ui-cdk-directives-hovered.umd.js +6 -1
  6. package/bundles/taiga-ui-cdk-directives-hovered.umd.js.map +1 -1
  7. package/bundles/taiga-ui-cdk-tokens.umd.js +86 -123
  8. package/bundles/taiga-ui-cdk-tokens.umd.js.map +1 -1
  9. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.js +6 -10
  10. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.js.map +1 -1
  11. package/constants/version.d.ts +1 -1
  12. package/constants/version.js +1 -1
  13. package/esm2015/abstract/interactive.js +5 -2
  14. package/esm2015/constants/version.js +2 -2
  15. package/esm2015/directives/hovered/hovered.service.js +7 -2
  16. package/esm2015/tokens/active-element.js +38 -40
  17. package/esm2015/tokens/default-renderer.js +6 -6
  18. package/esm2015/tokens/ensure-base-href.js +12 -13
  19. package/esm2015/tokens/is-android.js +4 -5
  20. package/esm2015/tokens/is-apple.js +4 -6
  21. package/esm2015/tokens/is-chromium.js +4 -5
  22. package/esm2015/tokens/is-cypress.js +4 -5
  23. package/esm2015/tokens/is-e2e.js +4 -5
  24. package/esm2015/tokens/is-firefox.js +6 -7
  25. package/esm2015/tokens/is-ios.js +4 -6
  26. package/esm2015/tokens/is-mobile.js +5 -6
  27. package/esm2015/tokens/is-playwright.js +3 -5
  28. package/esm2015/tokens/is-stackblitz.js +4 -5
  29. package/esm2015/tokens/is-webkit.js +6 -7
  30. package/esm2015/tokens/range.js +4 -5
  31. package/esm2015/tokens/removed-element.js +13 -14
  32. package/esm2015/tokens/take-only-trusted-events.js +3 -5
  33. package/esm2015/tokens/touch-supported.js +4 -5
  34. package/esm2015/tokens/window-height.js +4 -5
  35. package/esm2015/utils/miscellaneous/create-options.js +3 -5
  36. package/esm2015/utils/miscellaneous/create-token.js +2 -4
  37. package/fesm2015/taiga-ui-cdk-abstract.js +5 -2
  38. package/fesm2015/taiga-ui-cdk-abstract.js.map +1 -1
  39. package/fesm2015/taiga-ui-cdk-constants.js +1 -1
  40. package/fesm2015/taiga-ui-cdk-constants.js.map +1 -1
  41. package/fesm2015/taiga-ui-cdk-directives-hovered.js +6 -1
  42. package/fesm2015/taiga-ui-cdk-directives-hovered.js.map +1 -1
  43. package/fesm2015/taiga-ui-cdk-tokens.js +79 -116
  44. package/fesm2015/taiga-ui-cdk-tokens.js.map +1 -1
  45. package/fesm2015/taiga-ui-cdk-utils-miscellaneous.js +6 -10
  46. package/fesm2015/taiga-ui-cdk-utils-miscellaneous.js.map +1 -1
  47. package/package.json +1 -1
  48. package/schematics/ng-add/tests/schematic-ng-add-standalone.spec.d.ts +1 -0
  49. package/schematics/ng-add/tests/schematic-ng-add-standalone.spec.js +381 -0
  50. package/schematics/ng-add/tests/schematic-ng-add.spec.d.ts +1 -0
  51. package/schematics/ng-add/tests/schematic-ng-add.spec.js +270 -0
  52. package/schematics/ng-update/v3/tests/schematic-date-time.spec.d.ts +1 -0
  53. package/schematics/ng-update/v3/tests/schematic-date-time.spec.js +117 -0
  54. package/schematics/ng-update/v3/tests/schematic-migrate-hints.spec.d.ts +1 -0
  55. package/schematics/ng-update/v3/tests/schematic-migrate-hints.spec.js +102 -0
  56. package/schematics/ng-update/v3/tests/schematic-migrate-polymorpheus.spec.d.ts +1 -0
  57. package/schematics/ng-update/v3/tests/schematic-migrate-polymorpheus.spec.js +107 -0
  58. package/schematics/ng-update/v3/tests/schematic-migrate-progress.spec.d.ts +1 -0
  59. package/schematics/ng-update/v3/tests/schematic-migrate-progress.spec.js +113 -0
  60. package/schematics/ng-update/v3/tests/schematic-migrate-sliders.spec.d.ts +1 -0
  61. package/schematics/ng-update/v3/tests/schematic-migrate-sliders.spec.js +380 -0
  62. package/schematics/ng-update/v3/tests/schematic-migrate-tds.spec.d.ts +1 -0
  63. package/schematics/ng-update/v3/tests/schematic-migrate-tds.spec.js +119 -0
  64. package/schematics/ng-update/v3/tests/schematic-migrate-textfields.spec.d.ts +1 -0
  65. package/schematics/ng-update/v3/tests/schematic-migrate-textfields.spec.js +123 -0
  66. package/schematics/ng-update/v3/tests/schematic-miscellaneous.spec.d.ts +1 -0
  67. package/schematics/ng-update/v3/tests/schematic-miscellaneous.spec.js +81 -0
  68. package/schematics/ng-update/v3/tests/schematic-rename-types.spec.d.ts +1 -0
  69. package/schematics/ng-update/v3/tests/schematic-rename-types.spec.js +157 -0
  70. package/schematics/ng-update/v3/tests/schematic-replace-consts.spec.d.ts +1 -0
  71. package/schematics/ng-update/v3/tests/schematic-replace-consts.spec.js +135 -0
  72. package/schematics/ng-update/v3/tests/schematic-replace-deep-imports.spec.d.ts +1 -0
  73. package/schematics/ng-update/v3/tests/schematic-replace-deep-imports.spec.js +53 -0
  74. package/schematics/ng-update/v3/tests/schematic-replace-deprecated-functions.spec.d.ts +1 -0
  75. package/schematics/ng-update/v3/tests/schematic-replace-deprecated-functions.spec.js +835 -0
  76. package/schematics/ng-update/v3/tests/schematic-replace-enums.spec.d.ts +1 -0
  77. package/schematics/ng-update/v3/tests/schematic-replace-enums.spec.js +68 -0
  78. package/schematics/ng-update/v3/tests/schematic-replace-functions.spec.d.ts +1 -0
  79. package/schematics/ng-update/v3/tests/schematic-replace-functions.spec.js +195 -0
  80. package/schematics/ng-update/v3/tests/schematic-replace-html.spec.d.ts +1 -0
  81. package/schematics/ng-update/v3/tests/schematic-replace-html.spec.js +611 -0
  82. package/schematics/ng-update/v3/tests/schematic-replace-proprietary-consts.spec.d.ts +1 -0
  83. package/schematics/ng-update/v3/tests/schematic-replace-proprietary-consts.spec.js +100 -0
  84. package/schematics/ng-update/v3/tests/schematic-replace-services.spec.d.ts +1 -0
  85. package/schematics/ng-update/v3/tests/schematic-replace-services.spec.js +102 -0
  86. package/schematics/ng-update/v3/tests/schematic-replace-styles.spec.d.ts +1 -0
  87. package/schematics/ng-update/v3/tests/schematic-replace-styles.spec.js +286 -0
  88. package/schematics/ng-update/v3/tests/schematic-textfield-icon.spec.d.ts +1 -0
  89. package/schematics/ng-update/v3/tests/schematic-textfield-icon.spec.js +141 -0
  90. package/schematics/ng-update/v3/tests/schematic-warnings.spec.d.ts +1 -0
  91. package/schematics/ng-update/v3/tests/schematic-warnings.spec.js +104 -0
  92. package/schematics/ng-update/v3-30/tests/schematic-migrate-icons.spec.d.ts +1 -0
  93. package/schematics/ng-update/v3-30/tests/schematic-migrate-icons.spec.js +87 -0
  94. package/schematics/ng-update/v3-35/tests/schematic-migrate-icons.spec.d.ts +1 -0
  95. package/schematics/ng-update/v3-35/tests/schematic-migrate-icons.spec.js +101 -0
  96. package/schematics/ng-update/v3-36/tests/schematic-migrate-editor.spec.d.ts +1 -0
  97. package/schematics/ng-update/v3-36/tests/schematic-migrate-editor.spec.js +117 -0
  98. package/schematics/ng-update/v3-40/tests/schematic-migrate-textarea.spec.d.ts +1 -0
  99. package/schematics/ng-update/v3-40/tests/schematic-migrate-textarea.spec.js +90 -0
  100. package/schematics/ng-update/v3-5/tests/schematic-migrate-templates.spec.d.ts +1 -0
  101. package/schematics/ng-update/v3-5/tests/schematic-migrate-templates.spec.js +74 -0
  102. package/schematics/ng-update/v4/tests/schematic-migrate-thumbnail-card.spec.d.ts +1 -0
  103. package/schematics/ng-update/v4/tests/schematic-migrate-thumbnail-card.spec.js +72 -0
  104. package/tokens/active-element.d.ts +1 -2
  105. package/tokens/default-renderer.d.ts +2 -2
  106. package/tokens/ensure-base-href.d.ts +1 -2
  107. package/tokens/is-android.d.ts +1 -2
  108. package/tokens/is-apple.d.ts +1 -2
  109. package/tokens/is-chromium.d.ts +1 -2
  110. package/tokens/is-cypress.d.ts +1 -2
  111. package/tokens/is-e2e.d.ts +1 -2
  112. package/tokens/is-firefox.d.ts +1 -2
  113. package/tokens/is-ios.d.ts +1 -2
  114. package/tokens/is-mobile.d.ts +1 -2
  115. package/tokens/is-playwright.d.ts +1 -2
  116. package/tokens/is-stackblitz.d.ts +1 -2
  117. package/tokens/is-webkit.d.ts +1 -2
  118. package/tokens/range.d.ts +1 -2
  119. package/tokens/removed-element.d.ts +1 -3
  120. package/tokens/take-only-trusted-events.d.ts +1 -2
  121. package/tokens/touch-supported.d.ts +1 -2
  122. package/tokens/window-height.d.ts +1 -3
@@ -1,8 +1,8 @@
1
1
  import { DOCUMENT, isPlatformBrowser } from '@angular/common';
2
- import { InjectionToken, inject, InjectFlags, RendererFactory2, PLATFORM_ID } from '@angular/core';
2
+ import { inject, InjectFlags, RendererFactory2, InjectionToken, PLATFORM_ID } from '@angular/core';
3
3
  import { WINDOW, NAVIGATOR, USER_AGENT } from '@ng-web-apis/common';
4
4
  import { tuiTypedFromEvent } from '@taiga-ui/cdk/observables';
5
- import { tuiGetActualTarget, tuiGetDocumentOrShadowRoot, tuiCreateToken, tuiIsIos, tuiIsApple } from '@taiga-ui/cdk/utils';
5
+ import { tuiCreateTokenFromFactory, tuiGetActualTarget, tuiGetDocumentOrShadowRoot, tuiCreateToken, tuiIsIos, tuiIsApple } from '@taiga-ui/cdk/utils';
6
6
  import { BehaviorSubject, timer, merge, of } from 'rxjs';
7
7
  import { switchMap, map, startWith, share, takeUntil, repeatWhen, withLatestFrom, filter, take, distinctUntilChanged, shareReplay } from 'rxjs/operators';
8
8
  import { ɵAnimationEngine } from '@angular/animations/browser';
@@ -11,60 +11,56 @@ import { ALWAYS_FALSE_HANDLER, ALWAYS_TRUE_HANDLER } from '@taiga-ui/cdk/constan
11
11
  /**
12
12
  * Element currently being removed by AnimationEngine
13
13
  */
14
- const TUI_REMOVED_ELEMENT = new InjectionToken(`[TUI_REMOVED_ELEMENT]`, {
15
- factory: () => {
16
- const stub = { onRemovalComplete: () => { } };
17
- const element$ = new BehaviorSubject(null);
18
- const engine = inject(ɵAnimationEngine, InjectFlags.Optional) || stub;
19
- const { onRemovalComplete = stub.onRemovalComplete } = engine;
20
- engine.onRemovalComplete = (element, context) => {
21
- element$.next(element);
22
- onRemovalComplete.call(engine, element, context);
23
- };
24
- return element$.pipe(switchMap(element => timer(0).pipe(map(() => null), startWith(element))), share());
25
- },
14
+ const TUI_REMOVED_ELEMENT = tuiCreateTokenFromFactory(() => {
15
+ const stub = { onRemovalComplete: () => { } };
16
+ const element$ = new BehaviorSubject(null);
17
+ const engine = inject(ɵAnimationEngine, InjectFlags.Optional) || stub;
18
+ const { onRemovalComplete = stub.onRemovalComplete } = engine;
19
+ engine.onRemovalComplete = (element, context) => {
20
+ element$.next(element);
21
+ onRemovalComplete.call(engine, element, context);
22
+ };
23
+ return element$.pipe(switchMap(element => timer(0).pipe(map(() => null), startWith(element))), share());
26
24
  });
27
25
 
28
26
  /**
29
27
  * Active element on the document for ActiveZone
30
28
  */
31
- const TUI_ACTIVE_ELEMENT = new InjectionToken(`[TUI_ACTIVE_ELEMENT]`, {
32
- factory: () => {
33
- const removedElement$ = inject(TUI_REMOVED_ELEMENT);
34
- const win = inject(WINDOW);
35
- const doc = inject(DOCUMENT);
36
- const focusout$ = tuiTypedFromEvent(win, `focusout`);
37
- const focusin$ = tuiTypedFromEvent(win, `focusin`);
38
- const blur$ = tuiTypedFromEvent(win, `blur`);
39
- const mousedown$ = tuiTypedFromEvent(win, `mousedown`);
40
- const mouseup$ = tuiTypedFromEvent(win, `mouseup`);
41
- return merge(focusout$.pipe(
42
- // eslint-disable-next-line rxjs/no-unsafe-takeuntil
43
- takeUntil(mousedown$),
44
- /**
45
- * TODO: replace to
46
- * repeat({delay: () => mouseup$})
47
- * in RxJS 7
48
- */
49
- // eslint-disable-next-line rxjs/no-ignored-notifier
50
- repeatWhen(() => mouseup$), withLatestFrom(removedElement$), filter(([event, removedElement]) => isValidFocusout(tuiGetActualTarget(event), removedElement)), map(([{ relatedTarget }]) => relatedTarget)), blur$.pipe(map(() => doc.activeElement), filter(element => !!(element === null || element === void 0 ? void 0 : element.matches(`iframe`)))), focusin$.pipe(switchMap(event => {
51
- const target = tuiGetActualTarget(event);
52
- const root = tuiGetDocumentOrShadowRoot(target);
53
- return root === doc
54
- ? of(target)
55
- : shadowRootActiveElement(root).pipe(startWith(target));
56
- })), mousedown$.pipe(switchMap(event => {
57
- const actualTargetInCurrentTime = tuiGetActualTarget(event);
58
- return !doc.activeElement || doc.activeElement === doc.body
59
- ? of(actualTargetInCurrentTime)
60
- : focusout$.pipe(take(1), map(
61
- /**
62
- * Do not use `map(() => tuiGetActualTarget(event))`
63
- * because we have different result in runtime
64
- */
65
- () => actualTargetInCurrentTime), takeUntil(timer(0)));
66
- }))).pipe(distinctUntilChanged(), share());
67
- },
29
+ const TUI_ACTIVE_ELEMENT = tuiCreateTokenFromFactory(() => {
30
+ const removedElement$ = inject(TUI_REMOVED_ELEMENT);
31
+ const win = inject(WINDOW);
32
+ const doc = inject(DOCUMENT);
33
+ const focusout$ = tuiTypedFromEvent(win, `focusout`);
34
+ const focusin$ = tuiTypedFromEvent(win, `focusin`);
35
+ const blur$ = tuiTypedFromEvent(win, `blur`);
36
+ const mousedown$ = tuiTypedFromEvent(win, `mousedown`);
37
+ const mouseup$ = tuiTypedFromEvent(win, `mouseup`);
38
+ return merge(focusout$.pipe(
39
+ // eslint-disable-next-line rxjs/no-unsafe-takeuntil
40
+ takeUntil(mousedown$),
41
+ /**
42
+ * TODO: replace to
43
+ * repeat({delay: () => mouseup$})
44
+ * in RxJS 7
45
+ */
46
+ // eslint-disable-next-line rxjs/no-ignored-notifier
47
+ repeatWhen(() => mouseup$), withLatestFrom(removedElement$), filter(([event, removedElement]) => isValidFocusout(tuiGetActualTarget(event), removedElement)), map(([{ relatedTarget }]) => relatedTarget)), blur$.pipe(map(() => doc.activeElement), filter(element => !!(element === null || element === void 0 ? void 0 : element.matches(`iframe`)))), focusin$.pipe(switchMap(event => {
48
+ const target = tuiGetActualTarget(event);
49
+ const root = tuiGetDocumentOrShadowRoot(target);
50
+ return root === doc
51
+ ? of(target)
52
+ : shadowRootActiveElement(root).pipe(startWith(target));
53
+ })), mousedown$.pipe(switchMap(event => {
54
+ const actualTargetInCurrentTime = tuiGetActualTarget(event);
55
+ return !doc.activeElement || doc.activeElement === doc.body
56
+ ? of(actualTargetInCurrentTime)
57
+ : focusout$.pipe(take(1), map(
58
+ /**
59
+ * Do not use `map(() => tuiGetActualTarget(event))`
60
+ * because we have different result in runtime
61
+ */
62
+ () => actualTargetInCurrentTime), takeUntil(timer(0)));
63
+ }))).pipe(distinctUntilChanged(), share());
68
64
  });
69
65
  // Checks if focusout event should be considered leaving active zone
70
66
  function isValidFocusout(target, removedElement = null) {
@@ -98,10 +94,9 @@ function tuiAsAlerts(useExisting) {
98
94
  * @deprecated unnecessary
99
95
  * TODO: remove in 4.0
100
96
  */
101
- const TUI_DEFAULT_RENDERER = new InjectionToken(`[TUI_DEFAULT_RENDERER]`, {
102
- // @ts-ignore
103
- factory: () => inject(RendererFactory2).createRenderer(null, null),
104
- });
97
+ const TUI_DEFAULT_RENDERER = tuiCreateTokenFromFactory(
98
+ // @ts-ignore
99
+ () => inject(RendererFactory2).createRenderer(null, null));
105
100
 
106
101
  /**
107
102
  * A stream of dialogs
@@ -115,17 +110,15 @@ function tuiAsDialog(useExisting) {
115
110
  };
116
111
  }
117
112
 
118
- const TUI_ENSURE_BASE_HREF = new InjectionToken(`[TUI_ENSURE_BASE_HREF]`, {
119
- factory: () => {
120
- var _a;
121
- const baseHref = (_a = inject(DOCUMENT).querySelector(`base`)) === null || _a === void 0 ? void 0 : _a.href;
122
- if (baseHref) {
123
- return baseHref;
124
- }
125
- const link = inject(DOCUMENT).createElement(`a`);
126
- link.href = ``;
127
- return link.pathname;
128
- },
113
+ const TUI_ENSURE_BASE_HREF = tuiCreateTokenFromFactory(() => {
114
+ var _a;
115
+ const baseHref = (_a = inject(DOCUMENT).querySelector(`base`)) === null || _a === void 0 ? void 0 : _a.href;
116
+ if (baseHref) {
117
+ return baseHref;
118
+ }
119
+ const link = inject(DOCUMENT).createElement(`a`);
120
+ link.href = ``;
121
+ return link.pathname;
129
122
  });
130
123
 
131
124
  /**
@@ -142,9 +135,7 @@ function tuiAsFocusableItemAccessor(useExisting) {
142
135
  /**
143
136
  * iOS browser detection
144
137
  */
145
- const TUI_IS_IOS = new InjectionToken(`[TUI_IS_IOS]`, {
146
- factory: () => tuiIsIos(inject(NAVIGATOR)),
147
- });
138
+ const TUI_IS_IOS = tuiCreateTokenFromFactory(() => tuiIsIos(inject(NAVIGATOR)));
148
139
 
149
140
  // https://stackoverflow.com/a/11381730/2706426 http://detectmobilebrowsers.com/
150
141
  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/;
@@ -152,76 +143,56 @@ const secondRegex = /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er
152
143
  /**
153
144
  * Mobile browser detection
154
145
  */
155
- const TUI_IS_MOBILE = new InjectionToken(`[TUI_IS_MOBILE]`, {
156
- factory: () => firstRegex.test(inject(USER_AGENT).toLowerCase()) ||
157
- secondRegex.test(inject(USER_AGENT).slice(0, 4).toLowerCase()),
158
- });
146
+ const TUI_IS_MOBILE = tuiCreateTokenFromFactory(() => firstRegex.test(inject(USER_AGENT).toLowerCase()) ||
147
+ secondRegex.test(inject(USER_AGENT).slice(0, 4).toLowerCase()));
159
148
 
160
149
  /**
161
150
  * Mobile browser that is not iOS (technically includes Windows Phone, Blackberry etc.)
162
151
  */
163
- const TUI_IS_ANDROID = new InjectionToken(`[TUI_IS_ANDROID]`, {
164
- factory: () => inject(TUI_IS_MOBILE) && !inject(TUI_IS_IOS),
165
- });
152
+ const TUI_IS_ANDROID = tuiCreateTokenFromFactory(() => inject(TUI_IS_MOBILE) && !inject(TUI_IS_IOS));
166
153
 
167
154
  /**
168
155
  * Apple(safari/webkit) detection
169
156
  */
170
- const TUI_IS_APPLE = new InjectionToken(`[TUI_IS_APPLE]`, {
171
- factory: () => tuiIsApple(inject(NAVIGATOR)),
172
- });
157
+ const TUI_IS_APPLE = tuiCreateTokenFromFactory(() => tuiIsApple(inject(NAVIGATOR)));
173
158
 
174
159
  /**
175
160
  * Chromium browser engine detection
176
161
  */
177
- const TUI_IS_CHROMIUM = new InjectionToken(`[TUI_IS_CHROMIUM]`, {
178
- factory: () => !!inject(WINDOW).chrome,
179
- });
162
+ const TUI_IS_CHROMIUM = tuiCreateTokenFromFactory(() => !!inject(WINDOW).chrome);
180
163
 
181
164
  /**
182
165
  * Detect if app is running under Cypress
183
166
  * {@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}
184
167
  */
185
- const TUI_IS_CYPRESS = new InjectionToken(`[TUI_IS_CYPRESS]`, {
186
- factory: () => !!inject(WINDOW).Cypress,
187
- });
168
+ const TUI_IS_CYPRESS = tuiCreateTokenFromFactory(() => !!inject(WINDOW).Cypress);
188
169
 
189
170
  /**
190
171
  * Detect if app is running under Playwright
191
172
  */
192
- const TUI_IS_PLAYWRIGHT = new InjectionToken(`[TUI_IS_PLAYWRIGHT]`, {
193
- factory: ALWAYS_FALSE_HANDLER,
194
- });
173
+ const TUI_IS_PLAYWRIGHT = tuiCreateTokenFromFactory(ALWAYS_FALSE_HANDLER);
195
174
 
196
175
  /**
197
176
  * Detect if app is running under any of test frameworks
198
177
  */
199
- const TUI_IS_E2E = new InjectionToken(`[TUI_IS_E2E]`, {
200
- factory: () => inject(TUI_IS_CYPRESS) || inject(TUI_IS_PLAYWRIGHT),
201
- });
178
+ const TUI_IS_E2E = tuiCreateTokenFromFactory(() => inject(TUI_IS_CYPRESS) || inject(TUI_IS_PLAYWRIGHT));
202
179
 
203
180
  /**
204
181
  * Firefox browser engine detection
205
182
  */
206
- const TUI_IS_FIREFOX = new InjectionToken(`[TUI_IS_FIREFOX]`, {
207
- factory: () => {
208
- var _a;
209
- return typeof ((_a = inject(WINDOW)) === null || _a === void 0 ? void 0 : _a.mozCancelFullScreen) !== `undefined`;
210
- },
183
+ const TUI_IS_FIREFOX = tuiCreateTokenFromFactory(() => {
184
+ var _a;
185
+ return typeof ((_a = inject(WINDOW)) === null || _a === void 0 ? void 0 : _a.mozCancelFullScreen) !== `undefined`;
211
186
  });
212
187
 
213
- const TUI_IS_STACKBLITZ = new InjectionToken(`[TUI_IS_STACKBLITZ]`, {
214
- factory: () => inject(WINDOW).location.host.endsWith(`stackblitz.io`),
215
- });
188
+ const TUI_IS_STACKBLITZ = tuiCreateTokenFromFactory(() => inject(WINDOW).location.host.endsWith(`stackblitz.io`));
216
189
 
217
190
  /**
218
191
  * Webkit browser engine detection
219
192
  */
220
- const TUI_IS_WEBKIT = new InjectionToken(`[TUI_IS_WEBKIT]`, {
221
- factory: () => {
222
- var _a;
223
- return !!((_a = inject(WINDOW)) === null || _a === void 0 ? void 0 : _a.webkitConvertPointFromNodeToPage);
224
- },
193
+ const TUI_IS_WEBKIT = tuiCreateTokenFromFactory(() => {
194
+ var _a;
195
+ return !!((_a = inject(WINDOW)) === null || _a === void 0 ? void 0 : _a.webkitConvertPointFromNodeToPage);
225
196
  });
226
197
 
227
198
  // TODO: Switch to factory in 4.0
@@ -239,9 +210,7 @@ function tuiPlatformFactory() {
239
210
  /**
240
211
  * SSR safe default empty Range
241
212
  */
242
- const TUI_RANGE = new InjectionToken(`[TUI_RANGE]`, {
243
- factory: () => isPlatformBrowser(inject(PLATFORM_ID)) ? new Range() : {},
244
- });
213
+ const TUI_RANGE = tuiCreateTokenFromFactory(() => isPlatformBrowser(inject(PLATFORM_ID)) ? new Range() : {});
245
214
 
246
215
  /**
247
216
  * Swipe options
@@ -257,13 +226,9 @@ const TUI_SWIPE_OPTIONS = tuiCreateToken({
257
226
  * when the event was generated by a user action, and false when the event was created or
258
227
  * modified by a script or dispatched via EventTarget.dispatchEvent().
259
228
  */
260
- const TUI_TAKE_ONLY_TRUSTED_EVENTS = new InjectionToken(`[TUI_TAKE_ONLY_TRUSTED_EVENTS]`, {
261
- factory: ALWAYS_TRUE_HANDLER,
262
- });
229
+ const TUI_TAKE_ONLY_TRUSTED_EVENTS = tuiCreateTokenFromFactory(ALWAYS_TRUE_HANDLER);
263
230
 
264
- const TUI_TOUCH_SUPPORTED = new InjectionToken(`[TUI_TOUCH_SUPPORTED]`, {
265
- factory: () => inject(WINDOW).matchMedia(`(any-pointer: coarse)`).matches,
266
- });
231
+ const TUI_TOUCH_SUPPORTED = tuiCreateTokenFromFactory(() => inject(WINDOW).matchMedia(`(any-pointer: coarse)`).matches);
267
232
 
268
233
  const TUI_WINDOW_SIZE = new InjectionToken(`[TUI_WINDOW_SIZE]`, {
269
234
  factory: () => {
@@ -287,9 +252,7 @@ const TUI_WINDOW_SIZE = new InjectionToken(`[TUI_WINDOW_SIZE]`, {
287
252
  /**
288
253
  * @deprecated Use {@link TUI_WINDOW_SIZE} instead
289
254
  */
290
- const TUI_WINDOW_HEIGHT = new InjectionToken(`[TUI_WINDOW_HEIGHT]`, {
291
- factory: () => inject(TUI_WINDOW_SIZE).pipe(map(({ height }) => height)),
292
- });
255
+ const TUI_WINDOW_HEIGHT = tuiCreateTokenFromFactory(() => inject(TUI_WINDOW_SIZE).pipe(map(({ height }) => height)));
293
256
 
294
257
  /**
295
258
  * Zoom options
@@ -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/ensure-base-href.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-playwright.ts","../../../projects/cdk/tokens/is-e2e.ts","../../../projects/cdk/tokens/is-firefox.ts","../../../projects/cdk/tokens/is-stackblitz.ts","../../../projects/cdk/tokens/is-webkit.ts","../../../projects/cdk/tokens/platform.ts","../../../projects/cdk/tokens/range.ts","../../../projects/cdk/tokens/swipe-options.ts","../../../projects/cdk/tokens/take-only-trusted-events.ts","../../../projects/cdk/tokens/touch-supported.ts","../../../projects/cdk/tokens/window-size.ts","../../../projects/cdk/tokens/window-height.ts","../../../projects/cdk/tokens/zoom-options.ts","../../../projects/cdk/tokens/taiga-ui-cdk-tokens.ts"],"sourcesContent":["import {ɵAnimationEngine as AnimationEngine} from '@angular/animations/browser';\nimport {inject, InjectFlags, InjectionToken} from '@angular/core';\nimport {BehaviorSubject, Observable, timer} from 'rxjs';\nimport {map, share, startWith, switchMap} from 'rxjs/operators';\n\n/**\n * Element currently being removed by AnimationEngine\n */\nexport const TUI_REMOVED_ELEMENT = new InjectionToken<Observable<Element | null>>(\n `[TUI_REMOVED_ELEMENT]`,\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.call(engine, element, context);\n };\n\n return element$.pipe(\n switchMap(element =>\n timer(0).pipe(\n map(() => null),\n startWith(element),\n ),\n ),\n share(),\n );\n },\n },\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 repeatWhen,\n share,\n startWith,\n switchMap,\n take,\n takeUntil,\n withLatestFrom,\n} from 'rxjs/operators';\n\nimport {TUI_REMOVED_ELEMENT} from './removed-element';\n\n/**\n * Active element on the document for ActiveZone\n */\nexport const TUI_ACTIVE_ELEMENT = new InjectionToken<Observable<EventTarget | null>>(\n `[TUI_ACTIVE_ELEMENT]`,\n {\n factory: () => {\n const removedElement$ = inject(TUI_REMOVED_ELEMENT);\n const win = inject(WINDOW);\n const doc = inject(DOCUMENT);\n const focusout$ = tuiTypedFromEvent(win, `focusout`);\n const focusin$ = tuiTypedFromEvent(win, `focusin`);\n const blur$ = tuiTypedFromEvent(win, `blur`);\n const mousedown$ = tuiTypedFromEvent(win, `mousedown`);\n const mouseup$ = tuiTypedFromEvent(win, `mouseup`);\n\n return merge(\n focusout$.pipe(\n // eslint-disable-next-line rxjs/no-unsafe-takeuntil\n takeUntil(mousedown$),\n /**\n * TODO: replace to\n * repeat({delay: () => mouseup$})\n * in RxJS 7\n */\n // eslint-disable-next-line rxjs/no-ignored-notifier\n repeatWhen(() => mouseup$),\n withLatestFrom(removedElement$),\n filter(([event, removedElement]) =>\n isValidFocusout(tuiGetActualTarget(event), removedElement),\n ),\n map(([{relatedTarget}]) => relatedTarget),\n ),\n blur$.pipe(\n map(() => doc.activeElement),\n filter(element => !!element?.matches(`iframe`)),\n ),\n focusin$.pipe(\n switchMap(event => {\n const target = tuiGetActualTarget(event);\n const root = tuiGetDocumentOrShadowRoot(target) as Document;\n\n return root === doc\n ? of(target)\n : shadowRootActiveElement(root).pipe(startWith(target));\n }),\n ),\n mousedown$.pipe(\n switchMap(event => {\n const actualTargetInCurrentTime = tuiGetActualTarget(event);\n\n return !doc.activeElement || doc.activeElement === doc.body\n ? of(actualTargetInCurrentTime)\n : focusout$.pipe(\n take(1),\n map(\n /**\n * Do not use `map(() => tuiGetActualTarget(event))`\n * because we have different result in runtime\n */\n () => actualTargetInCurrentTime,\n ),\n takeUntil(timer(0)),\n );\n }),\n ),\n ).pipe(distinctUntilChanged(), share());\n },\n },\n);\n\n// Checks if focusout event should be considered leaving active zone\nfunction isValidFocusout(target: any, removedElement: Element | null = null): boolean {\n return (\n // Not due to switching tabs/going to DevTools\n tuiGetDocumentOrShadowRoot(target).activeElement !== target &&\n // Not due to button/input becoming disabled or under disabled fieldset\n !target.matches(`:disabled`) &&\n // Not due to element being removed from DOM\n !removedElement?.contains(target)\n );\n}\n\nfunction shadowRootActiveElement(root: Document): Observable<EventTarget | null> {\n return merge(\n tuiTypedFromEvent(root, `focusin`).pipe(map(({target}) => target)),\n tuiTypedFromEvent(root, `focusout`).pipe(\n filter(\n ({target, relatedTarget}) => !!relatedTarget && isValidFocusout(target),\n ),\n map(({relatedTarget}) => relatedTarget),\n ),\n );\n}\n","import {Provider, Type} from '@angular/core';\nimport {TuiAriaDialogContext} from '@taiga-ui/cdk/interfaces';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils';\nimport {Observable} from 'rxjs';\n\n/**\n * A stream of alerts\n */\nexport const TUI_ALERTS = tuiCreateToken<\n ReadonlyArray<Observable<readonly TuiAriaDialogContext[]>>\n>([]);\n\nexport function tuiAsAlerts(\n useExisting: Type<Observable<readonly TuiAriaDialogContext[]>>,\n): Provider {\n return {\n provide: TUI_ALERTS,\n multi: true,\n useExisting,\n };\n}\n","import {inject, InjectionToken, Renderer2, RendererFactory2} from '@angular/core';\n\n/**\n * A Renderer2 for global services\n * https://github.com/angular/angular/issues/17824#issuecomment-353239017\n * @deprecated unnecessary\n * TODO: remove in 4.0\n */\nexport const TUI_DEFAULT_RENDERER = new InjectionToken<Renderer2>(\n `[TUI_DEFAULT_RENDERER]`,\n {\n // @ts-ignore\n factory: () => inject(RendererFactory2).createRenderer(null, null),\n },\n);\n","import {Provider, Type} from '@angular/core';\nimport {TuiAriaDialogContext} from '@taiga-ui/cdk/interfaces';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils';\nimport {Observable} from 'rxjs';\n\n/**\n * A stream of dialogs\n */\nexport const TUI_DIALOGS = tuiCreateToken<\n ReadonlyArray<Observable<readonly TuiAriaDialogContext[]>>\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 {DOCUMENT} from '@angular/common';\nimport {inject, InjectionToken} from '@angular/core';\n\nexport const TUI_ENSURE_BASE_HREF: InjectionToken<string> = new InjectionToken<string>(\n `[TUI_ENSURE_BASE_HREF]`,\n {\n factory: () => {\n const baseHref = inject(DOCUMENT).querySelector(`base`)?.href;\n\n if (baseHref) {\n return baseHref;\n }\n\n const link = inject(DOCUMENT).createElement(`a`);\n\n link.href = ``;\n\n return link.pathname;\n },\n },\n);\n","import {InjectionToken, Provider, Type} from '@angular/core';\nimport {TuiFocusableElementAccessor} from '@taiga-ui/cdk/interfaces';\n\n/**\n * A component that can be focused\n */\nexport const TUI_FOCUSABLE_ITEM_ACCESSOR =\n new InjectionToken<TuiFocusableElementAccessor>(`[TUI_FOCUSABLE_ITEM_ACCESSOR]`);\n\nexport function tuiAsFocusableItemAccessor(\n useExisting: Type<TuiFocusableElementAccessor>,\n): Provider {\n return {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting,\n };\n}\n","import {inject, InjectionToken} from '@angular/core';\nimport {NAVIGATOR} from '@ng-web-apis/common';\nimport {tuiIsIos} from '@taiga-ui/cdk/utils';\n\n/**\n * iOS browser detection\n */\nexport const TUI_IS_IOS = new InjectionToken<boolean>(`[TUI_IS_IOS]`, {\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\n/**\n * Mobile browser detection\n */\nexport const TUI_IS_MOBILE = new InjectionToken<boolean>(`[TUI_IS_MOBILE]`, {\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\n/**\n * Mobile browser that is not iOS (technically includes Windows Phone, Blackberry etc.)\n */\nexport const TUI_IS_ANDROID = new InjectionToken<boolean>(`[TUI_IS_ANDROID]`, {\n factory: () => inject(TUI_IS_MOBILE) && !inject(TUI_IS_IOS),\n});\n","import {inject, InjectionToken} from '@angular/core';\nimport {NAVIGATOR} from '@ng-web-apis/common';\nimport {tuiIsApple} from '@taiga-ui/cdk/utils';\n\n/**\n * Apple(safari/webkit) detection\n */\nexport const TUI_IS_APPLE = new InjectionToken<boolean>(`[TUI_IS_APPLE]`, {\n factory: () => tuiIsApple(inject(NAVIGATOR)),\n});\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\n/**\n * Chromium browser engine detection\n */\nexport const TUI_IS_CHROMIUM = new InjectionToken<boolean>(`[TUI_IS_CHROMIUM]`, {\n factory: () => !!(inject(WINDOW) as Window & {chrome: unknown}).chrome,\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 * Detect if app is running under Cypress\n * {@link https://docs.cypress.io/faq/questions/using-cypress-faq#Is-there-any-way-to-detect-if-my-app-is-running-under-Cypress Cypress docs}\n */\nexport const TUI_IS_CYPRESS = new InjectionToken<boolean>(`[TUI_IS_CYPRESS]`, {\n factory: () => !!inject<WindowWithCypress>(WINDOW).Cypress,\n});\n","import {InjectionToken} from '@angular/core';\nimport {ALWAYS_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\n\n/**\n * Detect if app is running under Playwright\n */\nexport const TUI_IS_PLAYWRIGHT = new InjectionToken<boolean>(`[TUI_IS_PLAYWRIGHT]`, {\n factory: ALWAYS_FALSE_HANDLER,\n});\n","import {inject, InjectionToken} from '@angular/core';\n\nimport {TUI_IS_CYPRESS} from './is-cypress';\nimport {TUI_IS_PLAYWRIGHT} from './is-playwright';\n\n/**\n * Detect if app is running under any of test frameworks\n */\nexport const TUI_IS_E2E = new InjectionToken<boolean>(`[TUI_IS_E2E]`, {\n factory: () => inject(TUI_IS_CYPRESS) || inject(TUI_IS_PLAYWRIGHT),\n});\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\n/**\n * Firefox browser engine detection\n */\nexport const TUI_IS_FIREFOX = new InjectionToken<boolean>(`[TUI_IS_FIREFOX]`, {\n factory: () =>\n typeof (inject(WINDOW) as Window & {mozCancelFullScreen: unknown})\n ?.mozCancelFullScreen !== `undefined`,\n});\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\nexport const TUI_IS_STACKBLITZ = new InjectionToken<boolean>(`[TUI_IS_STACKBLITZ]`, {\n factory: () => inject(WINDOW).location.host.endsWith(`stackblitz.io`),\n});\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\n/**\n * Webkit browser engine detection\n */\nexport const TUI_IS_WEBKIT = new InjectionToken<boolean>(`[TUI_IS_WEBKIT]`, {\n factory: () =>\n !!(inject(WINDOW) as unknown as {webkitConvertPointFromNodeToPage?: unknown})\n ?.webkitConvertPointFromNodeToPage,\n});\n","import {inject} from '@angular/core';\nimport {TuiPlatform} from '@taiga-ui/cdk/types';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils';\n\nimport {TUI_IS_ANDROID} from './is-android';\nimport {TUI_IS_IOS} from './is-ios';\n\n// TODO: Switch to factory in 4.0\nexport const TUI_PLATFORM = tuiCreateToken<TuiPlatform>(`web`);\n\nexport function tuiPlatformFactory(): TuiPlatform {\n if (inject(TUI_IS_IOS)) {\n return `ios`;\n }\n\n if (inject(TUI_IS_ANDROID)) {\n return `android`;\n }\n\n return `web`;\n}\n","import {isPlatformBrowser} from '@angular/common';\nimport {inject, InjectionToken, PLATFORM_ID} from '@angular/core';\n\n/**\n * SSR safe default empty Range\n */\nexport const TUI_RANGE = new InjectionToken<Range>(`[TUI_RANGE]`, {\n factory: () =>\n isPlatformBrowser(inject(PLATFORM_ID)) ? new Range() : ({} as unknown as Range),\n});\n","import {TuiSwipeOptions} from '@taiga-ui/cdk/interfaces';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils';\n\n/**\n * Swipe options\n */\nexport const TUI_SWIPE_OPTIONS = tuiCreateToken<TuiSwipeOptions>({\n timeout: 500,\n threshold: 30,\n});\n","import {InjectionToken} from '@angular/core';\nimport {ALWAYS_TRUE_HANDLER} from '@taiga-ui/cdk/constants';\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>(`[TUI_TAKE_ONLY_TRUSTED_EVENTS]`, {\n factory: ALWAYS_TRUE_HANDLER,\n });\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\nexport const TUI_TOUCH_SUPPORTED = new InjectionToken(`[TUI_TOUCH_SUPPORTED]`, {\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_SIZE = new InjectionToken<Observable<ClientRect>>(\n `[TUI_WINDOW_SIZE]`,\n {\n factory: () => {\n const w = inject(WINDOW);\n\n return tuiTypedFromEvent(w, `resize`).pipe(\n startWith(null),\n map(() => {\n const width = Math.max(w.innerWidth, w.visualViewport?.width || 0);\n const height = Math.max(w.innerHeight, w.visualViewport?.height || 0);\n\n return {\n width,\n height,\n top: 0,\n left: 0,\n right: width,\n bottom: height,\n };\n }),\n shareReplay({bufferSize: 1, refCount: true}),\n );\n },\n },\n);\n","import {inject, InjectionToken} from '@angular/core';\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {TUI_WINDOW_SIZE} from './window-size';\n\n/**\n * @deprecated Use {@link TUI_WINDOW_SIZE} instead\n */\nexport const TUI_WINDOW_HEIGHT = new InjectionToken<Observable<number>>(\n `[TUI_WINDOW_HEIGHT]`,\n {\n factory: () => inject(TUI_WINDOW_SIZE).pipe(map(({height}) => height)),\n },\n);\n","import {TuiZoomOptions} from '@taiga-ui/cdk/interfaces';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils';\n\n/**\n * Zoom options\n */\nexport const TUI_ZOOM_OPTIONS = tuiCreateToken<TuiZoomOptions>({\n wheelSensitivity: 0.01,\n});\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["AnimationEngine"],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-cdk-tokens.js","sources":["../../../projects/cdk/tokens/removed-element.ts","../../../projects/cdk/tokens/active-element.ts","../../../projects/cdk/tokens/alerts.ts","../../../projects/cdk/tokens/default-renderer.ts","../../../projects/cdk/tokens/dialogs.ts","../../../projects/cdk/tokens/ensure-base-href.ts","../../../projects/cdk/tokens/focusable-item-accessor.ts","../../../projects/cdk/tokens/is-ios.ts","../../../projects/cdk/tokens/is-mobile.ts","../../../projects/cdk/tokens/is-android.ts","../../../projects/cdk/tokens/is-apple.ts","../../../projects/cdk/tokens/is-chromium.ts","../../../projects/cdk/tokens/is-cypress.ts","../../../projects/cdk/tokens/is-playwright.ts","../../../projects/cdk/tokens/is-e2e.ts","../../../projects/cdk/tokens/is-firefox.ts","../../../projects/cdk/tokens/is-stackblitz.ts","../../../projects/cdk/tokens/is-webkit.ts","../../../projects/cdk/tokens/platform.ts","../../../projects/cdk/tokens/range.ts","../../../projects/cdk/tokens/swipe-options.ts","../../../projects/cdk/tokens/take-only-trusted-events.ts","../../../projects/cdk/tokens/touch-supported.ts","../../../projects/cdk/tokens/window-size.ts","../../../projects/cdk/tokens/window-height.ts","../../../projects/cdk/tokens/zoom-options.ts","../../../projects/cdk/tokens/taiga-ui-cdk-tokens.ts"],"sourcesContent":["import {ɵAnimationEngine as AnimationEngine} from '@angular/animations/browser';\nimport {inject, InjectFlags} from '@angular/core';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\nimport {BehaviorSubject, timer} from 'rxjs';\nimport {map, share, startWith, switchMap} from 'rxjs/operators';\n\n/**\n * Element currently being removed by AnimationEngine\n */\nexport const TUI_REMOVED_ELEMENT = tuiCreateTokenFromFactory(() => {\n const stub = {onRemovalComplete: () => {}};\n const element$ = new BehaviorSubject<Element | null>(null);\n const engine = inject(AnimationEngine, InjectFlags.Optional) || stub;\n const {onRemovalComplete = stub.onRemovalComplete} = engine;\n\n engine.onRemovalComplete = (element, context) => {\n element$.next(element);\n onRemovalComplete.call(engine, element, context);\n };\n\n return element$.pipe(\n switchMap(element =>\n timer(0).pipe(\n map(() => null),\n startWith(element),\n ),\n ),\n share(),\n );\n});\n","import {DOCUMENT} from '@angular/common';\nimport {inject} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {\n tuiCreateTokenFromFactory,\n tuiGetActualTarget,\n tuiGetDocumentOrShadowRoot,\n} from '@taiga-ui/cdk/utils';\nimport {merge, Observable, of, timer} from 'rxjs';\nimport {\n distinctUntilChanged,\n filter,\n map,\n repeatWhen,\n share,\n startWith,\n switchMap,\n take,\n takeUntil,\n withLatestFrom,\n} from 'rxjs/operators';\n\nimport {TUI_REMOVED_ELEMENT} from './removed-element';\n\n/**\n * Active element on the document for ActiveZone\n */\nexport const TUI_ACTIVE_ELEMENT = tuiCreateTokenFromFactory<\n Observable<EventTarget | null>\n>(() => {\n const removedElement$ = inject(TUI_REMOVED_ELEMENT);\n const win = inject(WINDOW);\n const doc = inject(DOCUMENT);\n const focusout$ = tuiTypedFromEvent(win, `focusout`);\n const focusin$ = tuiTypedFromEvent(win, `focusin`);\n const blur$ = tuiTypedFromEvent(win, `blur`);\n const mousedown$ = tuiTypedFromEvent(win, `mousedown`);\n const mouseup$ = tuiTypedFromEvent(win, `mouseup`);\n\n return merge(\n focusout$.pipe(\n // eslint-disable-next-line rxjs/no-unsafe-takeuntil\n takeUntil(mousedown$),\n /**\n * TODO: replace to\n * repeat({delay: () => mouseup$})\n * in RxJS 7\n */\n // eslint-disable-next-line rxjs/no-ignored-notifier\n repeatWhen(() => mouseup$),\n withLatestFrom(removedElement$),\n filter(([event, removedElement]) =>\n isValidFocusout(tuiGetActualTarget(event), removedElement),\n ),\n map(([{relatedTarget}]) => relatedTarget),\n ),\n blur$.pipe(\n map(() => doc.activeElement),\n filter(element => !!element?.matches(`iframe`)),\n ),\n focusin$.pipe(\n switchMap(event => {\n const target = tuiGetActualTarget(event);\n const root = tuiGetDocumentOrShadowRoot(target) as Document;\n\n return root === doc\n ? of(target)\n : shadowRootActiveElement(root).pipe(startWith(target));\n }),\n ),\n mousedown$.pipe(\n switchMap(event => {\n const actualTargetInCurrentTime = tuiGetActualTarget(event);\n\n return !doc.activeElement || doc.activeElement === doc.body\n ? of(actualTargetInCurrentTime)\n : focusout$.pipe(\n take(1),\n map(\n /**\n * Do not use `map(() => tuiGetActualTarget(event))`\n * because we have different result in runtime\n */\n () => actualTargetInCurrentTime,\n ),\n takeUntil(timer(0)),\n );\n }),\n ),\n ).pipe(distinctUntilChanged(), share());\n});\n\n// Checks if focusout event should be considered leaving active zone\nfunction isValidFocusout(target: any, removedElement: Element | null = null): boolean {\n return (\n // Not due to switching tabs/going to DevTools\n tuiGetDocumentOrShadowRoot(target).activeElement !== target &&\n // Not due to button/input becoming disabled or under disabled fieldset\n !target.matches(`:disabled`) &&\n // Not due to element being removed from DOM\n !removedElement?.contains(target)\n );\n}\n\nfunction shadowRootActiveElement(root: Document): Observable<EventTarget | null> {\n return merge(\n tuiTypedFromEvent(root, `focusin`).pipe(map(({target}) => target)),\n tuiTypedFromEvent(root, `focusout`).pipe(\n filter(\n ({target, relatedTarget}) => !!relatedTarget && isValidFocusout(target),\n ),\n map(({relatedTarget}) => relatedTarget),\n ),\n );\n}\n","import {Provider, Type} from '@angular/core';\nimport {TuiAriaDialogContext} from '@taiga-ui/cdk/interfaces';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils';\nimport {Observable} from 'rxjs';\n\n/**\n * A stream of alerts\n */\nexport const TUI_ALERTS = tuiCreateToken<\n ReadonlyArray<Observable<readonly TuiAriaDialogContext[]>>\n>([]);\n\nexport function tuiAsAlerts(\n useExisting: Type<Observable<readonly TuiAriaDialogContext[]>>,\n): Provider {\n return {\n provide: TUI_ALERTS,\n multi: true,\n useExisting,\n };\n}\n","import {inject, Renderer2, RendererFactory2} from '@angular/core';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\n\n/**\n * A Renderer2 for global services\n * https://github.com/angular/angular/issues/17824#issuecomment-353239017\n * @deprecated unnecessary\n * TODO: remove in 4.0\n */\nexport const TUI_DEFAULT_RENDERER = tuiCreateTokenFromFactory<Renderer2>(\n // @ts-ignore\n () => inject(RendererFactory2).createRenderer(null, null),\n);\n","import {Provider, Type} from '@angular/core';\nimport {TuiAriaDialogContext} from '@taiga-ui/cdk/interfaces';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils';\nimport {Observable} from 'rxjs';\n\n/**\n * A stream of dialogs\n */\nexport const TUI_DIALOGS = tuiCreateToken<\n ReadonlyArray<Observable<readonly TuiAriaDialogContext[]>>\n>([]);\n\nexport function tuiAsDialog(\n useExisting: Type<Observable<readonly TuiAriaDialogContext[]>>,\n): Provider {\n return {\n provide: TUI_DIALOGS,\n multi: true,\n useExisting,\n };\n}\n","import {DOCUMENT} from '@angular/common';\nimport {inject} from '@angular/core';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\n\nexport const TUI_ENSURE_BASE_HREF = tuiCreateTokenFromFactory(() => {\n const baseHref = inject(DOCUMENT).querySelector(`base`)?.href;\n\n if (baseHref) {\n return baseHref;\n }\n\n const link = inject(DOCUMENT).createElement(`a`);\n\n link.href = ``;\n\n return link.pathname;\n});\n","import {InjectionToken, Provider, Type} from '@angular/core';\nimport {TuiFocusableElementAccessor} from '@taiga-ui/cdk/interfaces';\n\n/**\n * A component that can be focused\n */\nexport const TUI_FOCUSABLE_ITEM_ACCESSOR =\n new InjectionToken<TuiFocusableElementAccessor>(`[TUI_FOCUSABLE_ITEM_ACCESSOR]`);\n\nexport function tuiAsFocusableItemAccessor(\n useExisting: Type<TuiFocusableElementAccessor>,\n): Provider {\n return {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting,\n };\n}\n","import {inject} from '@angular/core';\nimport {NAVIGATOR} from '@ng-web-apis/common';\nimport {tuiCreateTokenFromFactory, tuiIsIos} from '@taiga-ui/cdk/utils';\n\n/**\n * iOS browser detection\n */\nexport const TUI_IS_IOS = tuiCreateTokenFromFactory(() => tuiIsIos(inject(NAVIGATOR)));\n","import {inject} from '@angular/core';\nimport {USER_AGENT} from '@ng-web-apis/common';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\n\n// https://stackoverflow.com/a/11381730/2706426 http://detectmobilebrowsers.com/\nconst firstRegex =\n /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/;\nconst secondRegex =\n /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/;\n\n/**\n * Mobile browser detection\n */\nexport const TUI_IS_MOBILE = tuiCreateTokenFromFactory(\n () =>\n firstRegex.test(inject(USER_AGENT).toLowerCase()) ||\n secondRegex.test(inject(USER_AGENT).slice(0, 4).toLowerCase()),\n);\n","import {inject} from '@angular/core';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\n\nimport {TUI_IS_IOS} from './is-ios';\nimport {TUI_IS_MOBILE} from './is-mobile';\n\n/**\n * Mobile browser that is not iOS (technically includes Windows Phone, Blackberry etc.)\n */\nexport const TUI_IS_ANDROID = tuiCreateTokenFromFactory(\n () => inject(TUI_IS_MOBILE) && !inject(TUI_IS_IOS),\n);\n","import {inject} from '@angular/core';\nimport {NAVIGATOR} from '@ng-web-apis/common';\nimport {tuiCreateTokenFromFactory, tuiIsApple} from '@taiga-ui/cdk/utils';\n\n/**\n * Apple(safari/webkit) detection\n */\nexport const TUI_IS_APPLE = tuiCreateTokenFromFactory(() =>\n tuiIsApple(inject(NAVIGATOR)),\n);\n","import {inject} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\n\n/**\n * Chromium browser engine detection\n */\nexport const TUI_IS_CHROMIUM = tuiCreateTokenFromFactory(\n () => !!(inject(WINDOW) as Window & {chrome: unknown}).chrome,\n);\n","import {inject} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\n\ninterface WindowWithCypress extends Window {\n Cypress?: unknown;\n}\n\n/**\n * Detect if app is running under Cypress\n * {@link https://docs.cypress.io/faq/questions/using-cypress-faq#Is-there-any-way-to-detect-if-my-app-is-running-under-Cypress Cypress docs}\n */\nexport const TUI_IS_CYPRESS = tuiCreateTokenFromFactory(\n () => !!inject<WindowWithCypress>(WINDOW).Cypress,\n);\n","import {ALWAYS_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\n\n/**\n * Detect if app is running under Playwright\n */\nexport const TUI_IS_PLAYWRIGHT = tuiCreateTokenFromFactory<boolean>(ALWAYS_FALSE_HANDLER);\n","import {inject} from '@angular/core';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\n\nimport {TUI_IS_CYPRESS} from './is-cypress';\nimport {TUI_IS_PLAYWRIGHT} from './is-playwright';\n\n/**\n * Detect if app is running under any of test frameworks\n */\nexport const TUI_IS_E2E = tuiCreateTokenFromFactory(\n () => inject(TUI_IS_CYPRESS) || inject(TUI_IS_PLAYWRIGHT),\n);\n","import {inject} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\n\n/**\n * Firefox browser engine detection\n */\nexport const TUI_IS_FIREFOX = tuiCreateTokenFromFactory(\n () =>\n typeof (inject(WINDOW) as Window & {mozCancelFullScreen: unknown})\n ?.mozCancelFullScreen !== `undefined`,\n);\n","import {inject} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\n\nexport const TUI_IS_STACKBLITZ = tuiCreateTokenFromFactory(() =>\n inject(WINDOW).location.host.endsWith(`stackblitz.io`),\n);\n","import {inject} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\n\n/**\n * Webkit browser engine detection\n */\nexport const TUI_IS_WEBKIT = tuiCreateTokenFromFactory(\n () =>\n !!(inject(WINDOW) as unknown as {webkitConvertPointFromNodeToPage?: unknown})\n ?.webkitConvertPointFromNodeToPage,\n);\n","import {inject} from '@angular/core';\nimport {TuiPlatform} from '@taiga-ui/cdk/types';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils';\n\nimport {TUI_IS_ANDROID} from './is-android';\nimport {TUI_IS_IOS} from './is-ios';\n\n// TODO: Switch to factory in 4.0\nexport const TUI_PLATFORM = tuiCreateToken<TuiPlatform>(`web`);\n\nexport function tuiPlatformFactory(): TuiPlatform {\n if (inject(TUI_IS_IOS)) {\n return `ios`;\n }\n\n if (inject(TUI_IS_ANDROID)) {\n return `android`;\n }\n\n return `web`;\n}\n","import {isPlatformBrowser} from '@angular/common';\nimport {inject, PLATFORM_ID} from '@angular/core';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\n\n/**\n * SSR safe default empty Range\n */\nexport const TUI_RANGE = tuiCreateTokenFromFactory(() =>\n isPlatformBrowser(inject(PLATFORM_ID)) ? new Range() : ({} as unknown as Range),\n);\n","import {TuiSwipeOptions} from '@taiga-ui/cdk/interfaces';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils';\n\n/**\n * Swipe options\n */\nexport const TUI_SWIPE_OPTIONS = tuiCreateToken<TuiSwipeOptions>({\n timeout: 500,\n threshold: 30,\n});\n","import {ALWAYS_TRUE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\n\n/**\n * @description:\n * The isTrusted read-only property of the Event interface is a boolean value that is true\n * when the event was generated by a user action, and false when the event was created or\n * modified by a script or dispatched via EventTarget.dispatchEvent().\n */\nexport const TUI_TAKE_ONLY_TRUSTED_EVENTS =\n tuiCreateTokenFromFactory<boolean>(ALWAYS_TRUE_HANDLER);\n","import {inject} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\n\nexport const TUI_TOUCH_SUPPORTED = tuiCreateTokenFromFactory(\n () => inject(WINDOW).matchMedia(`(any-pointer: coarse)`).matches,\n);\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {Observable} from 'rxjs';\nimport {map, shareReplay, startWith} from 'rxjs/operators';\n\nexport const TUI_WINDOW_SIZE = new InjectionToken<Observable<ClientRect>>(\n `[TUI_WINDOW_SIZE]`,\n {\n factory: () => {\n const w = inject(WINDOW);\n\n return tuiTypedFromEvent(w, `resize`).pipe(\n startWith(null),\n map(() => {\n const width = Math.max(w.innerWidth, w.visualViewport?.width || 0);\n const height = Math.max(w.innerHeight, w.visualViewport?.height || 0);\n\n return {\n width,\n height,\n top: 0,\n left: 0,\n right: width,\n bottom: height,\n };\n }),\n shareReplay({bufferSize: 1, refCount: true}),\n );\n },\n },\n);\n","import {inject} from '@angular/core';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\nimport {map} from 'rxjs/operators';\n\nimport {TUI_WINDOW_SIZE} from './window-size';\n\n/**\n * @deprecated Use {@link TUI_WINDOW_SIZE} instead\n */\nexport const TUI_WINDOW_HEIGHT = tuiCreateTokenFromFactory(() =>\n inject(TUI_WINDOW_SIZE).pipe(map(({height}) => height)),\n);\n","import {TuiZoomOptions} from '@taiga-ui/cdk/interfaces';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils';\n\n/**\n * Zoom options\n */\nexport const TUI_ZOOM_OPTIONS = tuiCreateToken<TuiZoomOptions>({\n wheelSensitivity: 0.01,\n});\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["AnimationEngine"],"mappings":"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"}
@@ -28,22 +28,18 @@ function checkValueIsEmpty(value) {
28
28
  return [undefined, null, NaN, ``].includes(nextValue);
29
29
  }
30
30
 
31
- /** @deprecated use {@link tuiCreateToken} instead */
32
- function tuiCreateOptions(defaults) {
33
- return new InjectionToken(``, {
34
- factory: () => defaults,
35
- });
36
- }
37
-
38
31
  function tuiCreateToken(defaults) {
39
- return new InjectionToken(``, {
40
- factory: () => defaults,
41
- });
32
+ return tuiCreateTokenFromFactory(() => defaults);
42
33
  }
43
34
  function tuiCreateTokenFromFactory(factory) {
44
35
  return new InjectionToken(``, { factory });
45
36
  }
46
37
 
38
+ /** @deprecated use {@link tuiCreateToken} instead */
39
+ function tuiCreateOptions(defaults) {
40
+ return tuiCreateTokenFromFactory(() => defaults);
41
+ }
42
+
47
43
  function tuiDefaultSort(x, y) {
48
44
  if (x === y) {
49
45
  return 0;
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-utils-miscellaneous.js","sources":["../../../projects/cdk/utils/miscellaneous/array-remove.ts","../../../projects/cdk/utils/miscellaneous/array-shallow-equals.ts","../../../projects/cdk/utils/miscellaneous/array-toggle.ts","../../../projects/cdk/utils/miscellaneous/is-string.ts","../../../projects/cdk/utils/miscellaneous/clean-object.ts","../../../projects/cdk/utils/miscellaneous/create-options.ts","../../../projects/cdk/utils/miscellaneous/create-token.ts","../../../projects/cdk/utils/miscellaneous/default-sort.ts","../../../projects/cdk/utils/miscellaneous/distance-between-touches.ts","../../../projects/cdk/utils/miscellaneous/ease-in-out-quad.ts","../../../projects/cdk/utils/miscellaneous/flat-length.ts","../../../projects/cdk/utils/miscellaneous/get-original-array-from-query-list.ts","../../../projects/cdk/utils/miscellaneous/get-swipe-direction.ts","../../../projects/cdk/utils/miscellaneous/is-falsy.ts","../../../projects/cdk/utils/miscellaneous/is-number.ts","../../../projects/cdk/utils/miscellaneous/is-object.ts","../../../projects/cdk/utils/miscellaneous/is-present.ts","../../../projects/cdk/utils/miscellaneous/is-valid-url.ts","../../../projects/cdk/utils/miscellaneous/mark-control-as-touched-and-validate.ts","../../../projects/cdk/utils/miscellaneous/nullable-same.ts","../../../projects/cdk/utils/miscellaneous/object-from-entries.ts","../../../projects/cdk/utils/miscellaneous/provide-options.ts","../../../projects/cdk/utils/miscellaneous/uniq-by.ts","../../../projects/cdk/utils/miscellaneous/taiga-ui-cdk-utils-miscellaneous.ts"],"sourcesContent":["export function tuiArrayRemove<T>(array: readonly T[], index: number): T[] {\n return array.slice(0, Math.max(index, 0)).concat(array.slice(Math.max(index + 1, 0)));\n}\n","export function tuiArrayShallowEquals<T>(a: readonly T[], b: readonly T[]): boolean {\n return a.length === b.length && a.every((item, index) => item === b[index]);\n}\n","import {tuiArrayRemove} from './array-remove';\n\nexport function tuiArrayToggle<T>(array: readonly T[], item: T): T[] {\n const index = array.indexOf(item);\n\n return index === -1 ? [...array, item] : tuiArrayRemove(array, index);\n}\n","export function tuiIsString(value: unknown): value is string {\n // eslint-disable-next-line @taiga-ui/experience/no-typeof\n return typeof value === `string`;\n}\n","import {TuiDeepPartial} from '@taiga-ui/cdk/types';\n\nimport {tuiIsString} from './is-string';\n\nexport function tuiCleanObject<T>(object: T): TuiDeepPartial<T> {\n return JSON.parse(\n JSON.stringify(object, (_key: string, value: unknown) =>\n checkValueIsEmpty(value) ? undefined : value,\n ),\n );\n}\n\ntype EmptyValue = '' | null | undefined;\n\nfunction checkValueIsEmpty<T>(value: EmptyValue | T): value is EmptyValue {\n const nextValue: any = tuiIsString(value) ? value.trim() : value;\n\n return [undefined, null, NaN, ``].includes(nextValue);\n}\n","import {InjectionToken} from '@angular/core';\n\n/** @deprecated use {@link tuiCreateToken} instead */\nexport function tuiCreateOptions<T>(defaults: T): InjectionToken<T> {\n return new InjectionToken<T>(``, {\n factory: () => defaults,\n });\n}\n","import {InjectionToken} from '@angular/core';\n\nexport function tuiCreateToken<T>(defaults: T): InjectionToken<T> {\n return new InjectionToken<T>(``, {\n factory: () => defaults,\n });\n}\n\nexport function tuiCreateTokenFromFactory<T>(factory: () => T): InjectionToken<T> {\n return new InjectionToken<T>(``, {factory});\n}\n","import {tuiIsString} from './is-string';\n\nexport function tuiDefaultSort<T>(x: T, y: T): number {\n if (x === y) {\n return 0;\n }\n\n if (tuiIsString(x) && tuiIsString(y)) {\n return x.localeCompare(y);\n }\n\n return x > y ? 1 : -1;\n}\n","export function tuiDistanceBetweenTouches({touches}: TouchEvent): number {\n return Math.hypot(\n touches[0].clientX - touches[1].clientX,\n touches[0].clientY - touches[1].clientY,\n );\n}\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\nexport function tuiEaseInOutQuad(t: number): number {\n ngDevMode &&\n tuiAssert.assert(\n t >= 0 && t <= 1,\n `Input must be between 0 and 1 inclusive but received `,\n t,\n );\n\n return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\n}\n","/**\n * Flattens two-dimensional array and calculates resulting length\n *\n * @param array twi dimensional array\n */\nexport function tuiFlatLength(array: ReadonlyArray<readonly unknown[]>): number {\n return array.reduce((count, section) => count + section.length, 0);\n}\n","import {QueryList} from '@angular/core';\n\n/**\n * Extracts original array from {@link QueryList} rather than\n * creating a copy like {@link QueryList.toArray} does.\n * @param queryList\n * @returns original array from {@link QueryList}.\n */\nexport function tuiGetOriginalArrayFromQueryList<T>(\n queryList: QueryList<T>,\n): readonly T[] {\n let array: readonly T[] = [];\n\n queryList.find((_item, _index, originalArray) => {\n array = originalArray;\n\n return true;\n });\n\n return array;\n}\n","import {TuiSwipeDirection} from '@taiga-ui/cdk/interfaces';\n\nexport function tuiGetSwipeDirection(deltaX: number, deltaY: number): TuiSwipeDirection {\n if (Math.abs(deltaY) > Math.abs(deltaX)) {\n return deltaY > 0 ? `top` : `bottom`;\n }\n\n return deltaX > 0 ? `left` : `right`;\n}\n","export function tuiIsFalsy(value: unknown): boolean {\n return !value;\n}\n","export function tuiIsNumber(value: unknown): value is number {\n // eslint-disable-next-line @taiga-ui/experience/no-typeof\n return typeof value === `number`;\n}\n","export function tuiIsObject<T extends Record<string, any>>(\n value: unknown,\n): value is NonNullable<T> {\n // eslint-disable-next-line @taiga-ui/experience/no-typeof\n return typeof value === `object` && !!value;\n}\n","export function tuiIsPresent<T>(value?: T | null): value is T {\n return value !== null && value !== undefined;\n}\n","export function tuiIsValidUrl(url: string): boolean {\n const pattern = new RegExp(\n `^([a-zA-Z]+:\\\\/\\\\/)?` + // protocol\n `((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|localhost|` + // domain name\n `((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))` + // OR IP (v4) address\n `(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*` + // port and path\n `(\\\\?[;&a-z\\\\d%_.~+=-]*)?` + // query string\n `(\\\\#[-a-z\\\\d_]*)?$`, // fragment locator\n `i`,\n );\n\n return pattern.test(url);\n}\n","import {AbstractControl, FormArray, FormGroup} from '@angular/forms';\n\nexport function tuiMarkControlAsTouchedAndValidate(control: AbstractControl): void {\n if (control instanceof FormArray) {\n control.controls.forEach(nestedControl => {\n tuiMarkControlAsTouchedAndValidate(nestedControl);\n });\n }\n\n if (control instanceof FormGroup) {\n Object.values(control.controls).forEach(nestedControl => {\n tuiMarkControlAsTouchedAndValidate(nestedControl);\n });\n }\n\n control.markAsTouched();\n control.updateValueAndValidity();\n}\n","import {TuiIdentityMatcher} from '@taiga-ui/cdk/types';\n\n/**\n * Checks identity for nullable elements.\n *\n * @param a element a\n * @param b element b\n * @param handler called if both elements are not null\n * @return true if either both are null or they pass identity handler\n */\nexport function tuiNullableSame<T>(\n a: T | null,\n b: T | null,\n handler: TuiIdentityMatcher<T>,\n): boolean {\n if (a === null) {\n return b === null;\n }\n\n if (b === null) {\n return false;\n }\n\n return handler(a, b);\n}\n","/**\n * @deprecated use `Object.fromEntries` instead\n * (check browser support first https://caniuse.com/mdn-javascript_builtins_object_fromentries)\n * ___\n * TODO: after we bump Firefox to 63+ replace this function with `Object.fromEntries`.\n * TODO: Add `es2019.object` to `tsconfig.json` => `compilerOptions.lib`.\n *\n */\nexport function tuiObjectFromEntries<K extends number | string, V>(\n keyValuePairs: Array<[K, V]>,\n): Record<K, V> {\n return keyValuePairs.reduce(\n (obj, [key, val]) => ({...obj, [key]: val}),\n {} as Record<K, V>,\n );\n}\n","import {FactoryProvider, InjectionToken, Optional, SkipSelf} from '@angular/core';\n\nexport function tuiProvideOptions<T>(\n provide: InjectionToken<T>,\n options: Partial<T>,\n fallback: T,\n): FactoryProvider {\n return {\n provide,\n deps: [[new Optional(), new SkipSelf(), provide]],\n useFactory: (parent: T | null): T => ({\n ...(parent || fallback),\n ...options,\n }),\n };\n}\n","import {TuiValuesOf} from '@taiga-ui/cdk/types';\n\nexport function tuiUniqBy<T extends Record<string, any>>(\n array: readonly T[],\n key: keyof T,\n): readonly T[] {\n return Array.from(\n array\n .reduce(\n (map, item) => (map.has(item[key]) ? map : map.set(item[key], item)),\n new Map<TuiValuesOf<T>, T>(),\n )\n .values(),\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAAgB,SAAA,cAAc,CAAI,KAAmB,EAAE,KAAa,EAAA;AAChE,IAAA,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1F;;ACFgB,SAAA,qBAAqB,CAAI,CAAe,EAAE,CAAe,EAAA;IACrE,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAChF;;ACAgB,SAAA,cAAc,CAAI,KAAmB,EAAE,IAAO,EAAA;IAC1D,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAElC,OAAO,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,GAAG,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAC1E;;ACNM,SAAU,WAAW,CAAC,KAAc,EAAA;;AAEtC,IAAA,OAAO,OAAO,KAAK,KAAK,CAAA,MAAA,CAAQ,CAAC;AACrC;;ACCM,SAAU,cAAc,CAAI,MAAS,EAAA;AACvC,IAAA,OAAO,IAAI,CAAC,KAAK,CACb,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,KAAc,KAChD,iBAAiB,CAAC,KAAK,CAAC,GAAG,SAAS,GAAG,KAAK,CAC/C,CACJ,CAAC;AACN,CAAC;AAID,SAAS,iBAAiB,CAAI,KAAqB,EAAA;AAC/C,IAAA,MAAM,SAAS,GAAQ,WAAW,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC;AAEjE,IAAA,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,CAAE,CAAA,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC1D;;AChBA;AACM,SAAU,gBAAgB,CAAI,QAAW,EAAA;AAC3C,IAAA,OAAO,IAAI,cAAc,CAAI,CAAA,CAAE,EAAE;AAC7B,QAAA,OAAO,EAAE,MAAM,QAAQ;AAC1B,KAAA,CAAC,CAAC;AACP;;ACLM,SAAU,cAAc,CAAI,QAAW,EAAA;AACzC,IAAA,OAAO,IAAI,cAAc,CAAI,CAAA,CAAE,EAAE;AAC7B,QAAA,OAAO,EAAE,MAAM,QAAQ;AAC1B,KAAA,CAAC,CAAC;AACP,CAAC;AAEK,SAAU,yBAAyB,CAAI,OAAgB,EAAA;IACzD,OAAO,IAAI,cAAc,CAAI,CAAA,CAAE,EAAE,EAAC,OAAO,EAAC,CAAC,CAAC;AAChD;;ACRgB,SAAA,cAAc,CAAI,CAAI,EAAE,CAAI,EAAA;IACxC,IAAI,CAAC,KAAK,CAAC,EAAE;AACT,QAAA,OAAO,CAAC,CAAC;AACZ,KAAA;IAED,IAAI,WAAW,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE;AAClC,QAAA,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AAC7B,KAAA;AAED,IAAA,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1B;;ACZgB,SAAA,yBAAyB,CAAC,EAAC,OAAO,EAAa,EAAA;AAC3D,IAAA,OAAO,IAAI,CAAC,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,EACvC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAC1C,CAAC;AACN;;ACHM,SAAU,gBAAgB,CAAC,CAAS,EAAA;IACtC,SAAS;AACL,QAAA,SAAS,CAAC,MAAM,CACZ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAChB,CAAA,qDAAA,CAAuD,EACvD,CAAC,CACJ,CAAC;IAEN,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACtD;;ACXA;;;;AAIG;AACG,SAAU,aAAa,CAAC,KAAwC,EAAA;AAClE,IAAA,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AACvE;;ACLA;;;;;AAKG;AACG,SAAU,gCAAgC,CAC5C,SAAuB,EAAA;IAEvB,IAAI,KAAK,GAAiB,EAAE,CAAC;IAE7B,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,KAAI;QAC5C,KAAK,GAAG,aAAa,CAAC;AAEtB,QAAA,OAAO,IAAI,CAAC;AAChB,KAAC,CAAC,CAAC;AAEH,IAAA,OAAO,KAAK,CAAC;AACjB;;AClBgB,SAAA,oBAAoB,CAAC,MAAc,EAAE,MAAc,EAAA;AAC/D,IAAA,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QACrC,OAAO,MAAM,GAAG,CAAC,GAAG,CAAA,GAAA,CAAK,GAAG,CAAA,MAAA,CAAQ,CAAC;AACxC,KAAA;IAED,OAAO,MAAM,GAAG,CAAC,GAAG,CAAA,IAAA,CAAM,GAAG,CAAA,KAAA,CAAO,CAAC;AACzC;;ACRM,SAAU,UAAU,CAAC,KAAc,EAAA;IACrC,OAAO,CAAC,KAAK,CAAC;AAClB;;ACFM,SAAU,WAAW,CAAC,KAAc,EAAA;;AAEtC,IAAA,OAAO,OAAO,KAAK,KAAK,CAAA,MAAA,CAAQ,CAAC;AACrC;;ACHM,SAAU,WAAW,CACvB,KAAc,EAAA;;IAGd,OAAO,OAAO,KAAK,KAAK,CAAA,MAAA,CAAQ,IAAI,CAAC,CAAC,KAAK,CAAC;AAChD;;ACLM,SAAU,YAAY,CAAI,KAAgB,EAAA;AAC5C,IAAA,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;AACjD;;ACFM,SAAU,aAAa,CAAC,GAAW,EAAA;AACrC,IAAA,MAAM,OAAO,GAAG,IAAI,MAAM,CACtB,CAAA,oBAAA,CAAsB;AAClB,QAAA,CAAA,0DAAA,CAA4D;AAC5D,QAAA,CAAA,2BAAA,CAA6B;AAC7B,QAAA,CAAA,+BAAA,CAAiC;AACjC,QAAA,CAAA,wBAAA,CAA0B;AAC1B,QAAA,CAAA,kBAAA,CAAoB;AACxB,IAAA,CAAA,CAAA,CAAG,CACN,CAAC;AAEF,IAAA,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7B;;ACVM,SAAU,kCAAkC,CAAC,OAAwB,EAAA;IACvE,IAAI,OAAO,YAAY,SAAS,EAAE;AAC9B,QAAA,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,IAAG;YACrC,kCAAkC,CAAC,aAAa,CAAC,CAAC;AACtD,SAAC,CAAC,CAAC;AACN,KAAA;IAED,IAAI,OAAO,YAAY,SAAS,EAAE;AAC9B,QAAA,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,aAAa,IAAG;YACpD,kCAAkC,CAAC,aAAa,CAAC,CAAC;AACtD,SAAC,CAAC,CAAC;AACN,KAAA;IAED,OAAO,CAAC,aAAa,EAAE,CAAC;IACxB,OAAO,CAAC,sBAAsB,EAAE,CAAC;AACrC;;ACfA;;;;;;;AAOG;SACa,eAAe,CAC3B,CAAW,EACX,CAAW,EACX,OAA8B,EAAA;IAE9B,IAAI,CAAC,KAAK,IAAI,EAAE;QACZ,OAAO,CAAC,KAAK,IAAI,CAAC;AACrB,KAAA;IAED,IAAI,CAAC,KAAK,IAAI,EAAE;AACZ,QAAA,OAAO,KAAK,CAAC;AAChB,KAAA;AAED,IAAA,OAAO,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACzB;;ACxBA;;;;;;;AAOG;AACG,SAAU,oBAAoB,CAChC,aAA4B,EAAA;IAE5B,OAAO,aAAa,CAAC,MAAM,CACvB,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,MAAU,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,GAAG,CAAE,EAAA,EAAA,CAAC,GAAG,GAAG,GAAG,EAAE,CAAA,CAAA,EAC3C,EAAkB,CACrB,CAAC;AACN;;SCbgB,iBAAiB,CAC7B,OAA0B,EAC1B,OAAmB,EACnB,QAAW,EAAA;IAEX,OAAO;QACH,OAAO;AACP,QAAA,IAAI,EAAE,CAAC,CAAC,IAAI,QAAQ,EAAE,EAAE,IAAI,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;AACjD,QAAA,UAAU,EAAE,CAAC,MAAgB,MAAQ,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,GAC7B,MAAM,IAAI,QAAQ,EAAC,EACpB,OAAO,CACZ,CAAA;KACL,CAAC;AACN;;ACbgB,SAAA,SAAS,CACrB,KAAmB,EACnB,GAAY,EAAA;AAEZ,IAAA,OAAO,KAAK,CAAC,IAAI,CACb,KAAK;AACA,SAAA,MAAM,CACH,CAAC,GAAG,EAAE,IAAI,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,EACpE,IAAI,GAAG,EAAqB,CAC/B;SACA,MAAM,EAAE,CAChB,CAAC;AACN;;ACdA;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-cdk-utils-miscellaneous.js","sources":["../../../projects/cdk/utils/miscellaneous/array-remove.ts","../../../projects/cdk/utils/miscellaneous/array-shallow-equals.ts","../../../projects/cdk/utils/miscellaneous/array-toggle.ts","../../../projects/cdk/utils/miscellaneous/is-string.ts","../../../projects/cdk/utils/miscellaneous/clean-object.ts","../../../projects/cdk/utils/miscellaneous/create-token.ts","../../../projects/cdk/utils/miscellaneous/create-options.ts","../../../projects/cdk/utils/miscellaneous/default-sort.ts","../../../projects/cdk/utils/miscellaneous/distance-between-touches.ts","../../../projects/cdk/utils/miscellaneous/ease-in-out-quad.ts","../../../projects/cdk/utils/miscellaneous/flat-length.ts","../../../projects/cdk/utils/miscellaneous/get-original-array-from-query-list.ts","../../../projects/cdk/utils/miscellaneous/get-swipe-direction.ts","../../../projects/cdk/utils/miscellaneous/is-falsy.ts","../../../projects/cdk/utils/miscellaneous/is-number.ts","../../../projects/cdk/utils/miscellaneous/is-object.ts","../../../projects/cdk/utils/miscellaneous/is-present.ts","../../../projects/cdk/utils/miscellaneous/is-valid-url.ts","../../../projects/cdk/utils/miscellaneous/mark-control-as-touched-and-validate.ts","../../../projects/cdk/utils/miscellaneous/nullable-same.ts","../../../projects/cdk/utils/miscellaneous/object-from-entries.ts","../../../projects/cdk/utils/miscellaneous/provide-options.ts","../../../projects/cdk/utils/miscellaneous/uniq-by.ts","../../../projects/cdk/utils/miscellaneous/taiga-ui-cdk-utils-miscellaneous.ts"],"sourcesContent":["export function tuiArrayRemove<T>(array: readonly T[], index: number): T[] {\n return array.slice(0, Math.max(index, 0)).concat(array.slice(Math.max(index + 1, 0)));\n}\n","export function tuiArrayShallowEquals<T>(a: readonly T[], b: readonly T[]): boolean {\n return a.length === b.length && a.every((item, index) => item === b[index]);\n}\n","import {tuiArrayRemove} from './array-remove';\n\nexport function tuiArrayToggle<T>(array: readonly T[], item: T): T[] {\n const index = array.indexOf(item);\n\n return index === -1 ? [...array, item] : tuiArrayRemove(array, index);\n}\n","export function tuiIsString(value: unknown): value is string {\n // eslint-disable-next-line @taiga-ui/experience/no-typeof\n return typeof value === `string`;\n}\n","import {TuiDeepPartial} from '@taiga-ui/cdk/types';\n\nimport {tuiIsString} from './is-string';\n\nexport function tuiCleanObject<T>(object: T): TuiDeepPartial<T> {\n return JSON.parse(\n JSON.stringify(object, (_key: string, value: unknown) =>\n checkValueIsEmpty(value) ? undefined : value,\n ),\n );\n}\n\ntype EmptyValue = '' | null | undefined;\n\nfunction checkValueIsEmpty<T>(value: EmptyValue | T): value is EmptyValue {\n const nextValue: any = tuiIsString(value) ? value.trim() : value;\n\n return [undefined, null, NaN, ``].includes(nextValue);\n}\n","import {InjectionToken} from '@angular/core';\n\nexport function tuiCreateToken<T>(defaults: T): InjectionToken<T> {\n return tuiCreateTokenFromFactory(() => defaults);\n}\n\nexport function tuiCreateTokenFromFactory<T>(factory: () => T): InjectionToken<T> {\n return new InjectionToken<T>(``, {factory});\n}\n","import {InjectionToken} from '@angular/core';\n\nimport {tuiCreateTokenFromFactory} from './create-token';\n\n/** @deprecated use {@link tuiCreateToken} instead */\nexport function tuiCreateOptions<T>(defaults: T): InjectionToken<T> {\n return tuiCreateTokenFromFactory(() => defaults);\n}\n","import {tuiIsString} from './is-string';\n\nexport function tuiDefaultSort<T>(x: T, y: T): number {\n if (x === y) {\n return 0;\n }\n\n if (tuiIsString(x) && tuiIsString(y)) {\n return x.localeCompare(y);\n }\n\n return x > y ? 1 : -1;\n}\n","export function tuiDistanceBetweenTouches({touches}: TouchEvent): number {\n return Math.hypot(\n touches[0].clientX - touches[1].clientX,\n touches[0].clientY - touches[1].clientY,\n );\n}\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\nexport function tuiEaseInOutQuad(t: number): number {\n ngDevMode &&\n tuiAssert.assert(\n t >= 0 && t <= 1,\n `Input must be between 0 and 1 inclusive but received `,\n t,\n );\n\n return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\n}\n","/**\n * Flattens two-dimensional array and calculates resulting length\n *\n * @param array twi dimensional array\n */\nexport function tuiFlatLength(array: ReadonlyArray<readonly unknown[]>): number {\n return array.reduce((count, section) => count + section.length, 0);\n}\n","import {QueryList} from '@angular/core';\n\n/**\n * Extracts original array from {@link QueryList} rather than\n * creating a copy like {@link QueryList.toArray} does.\n * @param queryList\n * @returns original array from {@link QueryList}.\n */\nexport function tuiGetOriginalArrayFromQueryList<T>(\n queryList: QueryList<T>,\n): readonly T[] {\n let array: readonly T[] = [];\n\n queryList.find((_item, _index, originalArray) => {\n array = originalArray;\n\n return true;\n });\n\n return array;\n}\n","import {TuiSwipeDirection} from '@taiga-ui/cdk/interfaces';\n\nexport function tuiGetSwipeDirection(deltaX: number, deltaY: number): TuiSwipeDirection {\n if (Math.abs(deltaY) > Math.abs(deltaX)) {\n return deltaY > 0 ? `top` : `bottom`;\n }\n\n return deltaX > 0 ? `left` : `right`;\n}\n","export function tuiIsFalsy(value: unknown): boolean {\n return !value;\n}\n","export function tuiIsNumber(value: unknown): value is number {\n // eslint-disable-next-line @taiga-ui/experience/no-typeof\n return typeof value === `number`;\n}\n","export function tuiIsObject<T extends Record<string, any>>(\n value: unknown,\n): value is NonNullable<T> {\n // eslint-disable-next-line @taiga-ui/experience/no-typeof\n return typeof value === `object` && !!value;\n}\n","export function tuiIsPresent<T>(value?: T | null): value is T {\n return value !== null && value !== undefined;\n}\n","export function tuiIsValidUrl(url: string): boolean {\n const pattern = new RegExp(\n `^([a-zA-Z]+:\\\\/\\\\/)?` + // protocol\n `((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|localhost|` + // domain name\n `((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))` + // OR IP (v4) address\n `(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*` + // port and path\n `(\\\\?[;&a-z\\\\d%_.~+=-]*)?` + // query string\n `(\\\\#[-a-z\\\\d_]*)?$`, // fragment locator\n `i`,\n );\n\n return pattern.test(url);\n}\n","import {AbstractControl, FormArray, FormGroup} from '@angular/forms';\n\nexport function tuiMarkControlAsTouchedAndValidate(control: AbstractControl): void {\n if (control instanceof FormArray) {\n control.controls.forEach(nestedControl => {\n tuiMarkControlAsTouchedAndValidate(nestedControl);\n });\n }\n\n if (control instanceof FormGroup) {\n Object.values(control.controls).forEach(nestedControl => {\n tuiMarkControlAsTouchedAndValidate(nestedControl);\n });\n }\n\n control.markAsTouched();\n control.updateValueAndValidity();\n}\n","import {TuiIdentityMatcher} from '@taiga-ui/cdk/types';\n\n/**\n * Checks identity for nullable elements.\n *\n * @param a element a\n * @param b element b\n * @param handler called if both elements are not null\n * @return true if either both are null or they pass identity handler\n */\nexport function tuiNullableSame<T>(\n a: T | null,\n b: T | null,\n handler: TuiIdentityMatcher<T>,\n): boolean {\n if (a === null) {\n return b === null;\n }\n\n if (b === null) {\n return false;\n }\n\n return handler(a, b);\n}\n","/**\n * @deprecated use `Object.fromEntries` instead\n * (check browser support first https://caniuse.com/mdn-javascript_builtins_object_fromentries)\n * ___\n * TODO: after we bump Firefox to 63+ replace this function with `Object.fromEntries`.\n * TODO: Add `es2019.object` to `tsconfig.json` => `compilerOptions.lib`.\n *\n */\nexport function tuiObjectFromEntries<K extends number | string, V>(\n keyValuePairs: Array<[K, V]>,\n): Record<K, V> {\n return keyValuePairs.reduce(\n (obj, [key, val]) => ({...obj, [key]: val}),\n {} as Record<K, V>,\n );\n}\n","import {FactoryProvider, InjectionToken, Optional, SkipSelf} from '@angular/core';\n\nexport function tuiProvideOptions<T>(\n provide: InjectionToken<T>,\n options: Partial<T>,\n fallback: T,\n): FactoryProvider {\n return {\n provide,\n deps: [[new Optional(), new SkipSelf(), provide]],\n useFactory: (parent: T | null): T => ({\n ...(parent || fallback),\n ...options,\n }),\n };\n}\n","import {TuiValuesOf} from '@taiga-ui/cdk/types';\n\nexport function tuiUniqBy<T extends Record<string, any>>(\n array: readonly T[],\n key: keyof T,\n): readonly T[] {\n return Array.from(\n array\n .reduce(\n (map, item) => (map.has(item[key]) ? map : map.set(item[key], item)),\n new Map<TuiValuesOf<T>, T>(),\n )\n .values(),\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.44.1",
3
+ "version": "3.45.0-canary.1c27922",
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",