@taiga-ui/cdk 3.44.1-canary.b6b867c → 3.44.1-canary.fd7a856

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 (49) hide show
  1. package/bundles/taiga-ui-cdk-tokens.umd.js +86 -123
  2. package/bundles/taiga-ui-cdk-tokens.umd.js.map +1 -1
  3. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.js +6 -10
  4. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.js.map +1 -1
  5. package/esm2015/tokens/active-element.js +38 -40
  6. package/esm2015/tokens/default-renderer.js +6 -6
  7. package/esm2015/tokens/ensure-base-href.js +12 -13
  8. package/esm2015/tokens/is-android.js +4 -5
  9. package/esm2015/tokens/is-apple.js +4 -6
  10. package/esm2015/tokens/is-chromium.js +4 -5
  11. package/esm2015/tokens/is-cypress.js +4 -5
  12. package/esm2015/tokens/is-e2e.js +4 -5
  13. package/esm2015/tokens/is-firefox.js +6 -7
  14. package/esm2015/tokens/is-ios.js +4 -6
  15. package/esm2015/tokens/is-mobile.js +5 -6
  16. package/esm2015/tokens/is-playwright.js +3 -5
  17. package/esm2015/tokens/is-stackblitz.js +4 -5
  18. package/esm2015/tokens/is-webkit.js +6 -7
  19. package/esm2015/tokens/range.js +4 -5
  20. package/esm2015/tokens/removed-element.js +13 -14
  21. package/esm2015/tokens/take-only-trusted-events.js +3 -5
  22. package/esm2015/tokens/touch-supported.js +4 -5
  23. package/esm2015/tokens/window-height.js +4 -5
  24. package/esm2015/utils/miscellaneous/create-options.js +3 -5
  25. package/esm2015/utils/miscellaneous/create-token.js +2 -4
  26. package/fesm2015/taiga-ui-cdk-tokens.js +79 -116
  27. package/fesm2015/taiga-ui-cdk-tokens.js.map +1 -1
  28. package/fesm2015/taiga-ui-cdk-utils-miscellaneous.js +6 -10
  29. package/fesm2015/taiga-ui-cdk-utils-miscellaneous.js.map +1 -1
  30. package/package.json +1 -1
  31. package/tokens/active-element.d.ts +1 -2
  32. package/tokens/default-renderer.d.ts +2 -2
  33. package/tokens/ensure-base-href.d.ts +1 -2
  34. package/tokens/is-android.d.ts +1 -2
  35. package/tokens/is-apple.d.ts +1 -2
  36. package/tokens/is-chromium.d.ts +1 -2
  37. package/tokens/is-cypress.d.ts +1 -2
  38. package/tokens/is-e2e.d.ts +1 -2
  39. package/tokens/is-firefox.d.ts +1 -2
  40. package/tokens/is-ios.d.ts +1 -2
  41. package/tokens/is-mobile.d.ts +1 -2
  42. package/tokens/is-playwright.d.ts +1 -2
  43. package/tokens/is-stackblitz.d.ts +1 -2
  44. package/tokens/is-webkit.d.ts +1 -2
  45. package/tokens/range.d.ts +1 -2
  46. package/tokens/removed-element.d.ts +1 -3
  47. package/tokens/take-only-trusted-events.d.ts +1 -2
  48. package/tokens/touch-supported.d.ts +1 -2
  49. package/tokens/window-height.d.ts +1 -3
@@ -1,13 +1,12 @@
1
- import { inject, InjectionToken } from '@angular/core';
1
+ import { inject } from '@angular/core';
2
2
  import { USER_AGENT } from '@ng-web-apis/common';
3
+ import { tuiCreateTokenFromFactory } from '@taiga-ui/cdk/utils';
3
4
  // https://stackoverflow.com/a/11381730/2706426 http://detectmobilebrowsers.com/
4
5
  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/;
5
6
  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-/;
6
7
  /**
7
8
  * Mobile browser detection
8
9
  */
9
- export const TUI_IS_MOBILE = new InjectionToken(`[TUI_IS_MOBILE]`, {
10
- factory: () => firstRegex.test(inject(USER_AGENT).toLowerCase()) ||
11
- secondRegex.test(inject(USER_AGENT).slice(0, 4).toLowerCase()),
12
- });
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtbW9iaWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3Rva2Vucy9pcy1tb2JpbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxjQUFjLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRS9DLGdGQUFnRjtBQUNoRixNQUFNLFVBQVUsR0FDWix5VEFBeVQsQ0FBQztBQUM5VCxNQUFNLFdBQVcsR0FDYiwwaERBQTBoRCxDQUFDO0FBRS9oRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxJQUFJLGNBQWMsQ0FBVSxpQkFBaUIsRUFBRTtJQUN4RSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQ1YsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakQsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztDQUNyRSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2luamVjdCwgSW5qZWN0aW9uVG9rZW59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtVU0VSX0FHRU5UfSBmcm9tICdAbmctd2ViLWFwaXMvY29tbW9uJztcblxuLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzExMzgxNzMwLzI3MDY0MjYgaHR0cDovL2RldGVjdG1vYmlsZWJyb3dzZXJzLmNvbS9cbmNvbnN0IGZpcnN0UmVnZXggPVxuICAgIC8oYW5kcm9pZHxiYlxcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXFwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcmlzfGtpbmRsZXxsZ2UgfG1hZW1vfG1pZHB8bW1wfG1vYmlsZS4rZmlyZWZveHxuZXRmcm9udHxvcGVyYSBtKG9ifGluKWl8cGFsbSggb3MpP3xwaG9uZXxwKGl4aXxyZSlcXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyBjZXx4ZGF8eGlpbm8vO1xuY29uc3Qgc2Vjb25kUmVnZXggPVxuICAgIC8xMjA3fDYzMTB8NjU5MHwzZ3NvfDR0aHB8NTBbMS02XWl8Nzcwc3w4MDJzfGEgd2F8YWJhY3xhYyhlcnxvb3xzLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3LShufHUpfGM1NVxcL3xjYXBpfGNjd2F8Y2RtLXxjZWxsfGNodG18Y2xkY3xjbWQtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8LWQpfGVsKDQ5fGFpKXxlbShsMnx1bCl8ZXIoaWN8azApfGVzbDh8ZXooWzQtN10wfG9zfHdhfHplKXxmZXRjfGZseSgtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmLTV8Zy1tb3xnbyhcXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkLShtfHB8dCl8aGVpLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzLWN8aHQoYygtfCB8X3xhfGd8cHxzfHQpfHRwKXxodShhd3x0Yyl8aS0oMjB8Z298bWEpfGkyMzB8aWFjKCB8LXxcXC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XFwvKXxrbG9ufGtwdCB8a3djLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XFwvKGt8bHx1KXw1MHw1NHwtW2Etd10pfGxpYnd8bHlueHxtMS13fG0zZ2F8bTUwXFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bS1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dCgtfCB8b3x2KXx6eil8bXQoNTB8cDF8diApfG13YnB8bXl3YXxuMTBbMC0yXXxuMjBbMi0zXXxuMzAoMHwyKXxuNTAoMHwyfDUpfG43KDAoMHwxKXwxMCl8bmUoKGN8bSktfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3wtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuLTJ8cG8oY2t8cnR8c2UpfHByb3h8cHNpb3xwdC1nfHFhLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8LVsyLTddfGktKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVxcL3xzYShnZXxtYXxtbXxtc3xueXx2YSl8c2MoMDF8aC18b298cC0pfHNka1xcL3xzZShjKC18MHwxKXw0N3xtY3xuZHxyaSl8c2doLXxzaGFyfHNpZSgtfG0pfHNrLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aC18di18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2wtfHRkZy18dGVsKGl8bSl8dGltLXx0LW1vfHRvKHBsfHNoKXx0cyg3MHxtLXxtM3xtNSl8dHgtOXx1cChcXC5ifGcxfHNpKXx1dHN0fHY0MDB8djc1MHx2ZXJpfHZpKHJnfHRlKXx2ayg0MHw1WzAtM118LXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhcy18eW91cnx6ZXRvfHp0ZS0vO1xuXG4vKipcbiAqIE1vYmlsZSBicm93c2VyIGRldGVjdGlvblxuICovXG5leHBvcnQgY29uc3QgVFVJX0lTX01PQklMRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxib29sZWFuPihgW1RVSV9JU19NT0JJTEVdYCwge1xuICAgIGZhY3Rvcnk6ICgpID0+XG4gICAgICAgIGZpcnN0UmVnZXgudGVzdChpbmplY3QoVVNFUl9BR0VOVCkudG9Mb3dlckNhc2UoKSkgfHxcbiAgICAgICAgc2Vjb25kUmVnZXgudGVzdChpbmplY3QoVVNFUl9BR0VOVCkuc2xpY2UoMCwgNCkudG9Mb3dlckNhc2UoKSksXG59KTtcbiJdfQ==
10
+ export const TUI_IS_MOBILE = tuiCreateTokenFromFactory(() => firstRegex.test(inject(USER_AGENT).toLowerCase()) ||
11
+ secondRegex.test(inject(USER_AGENT).slice(0, 4).toLowerCase()));
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtbW9iaWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3Rva2Vucy9pcy1tb2JpbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFOUQsZ0ZBQWdGO0FBQ2hGLE1BQU0sVUFBVSxHQUNaLHlUQUF5VCxDQUFDO0FBQzlULE1BQU0sV0FBVyxHQUNiLDBoREFBMGhELENBQUM7QUFFL2hEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLHlCQUF5QixDQUNsRCxHQUFHLEVBQUUsQ0FDRCxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNqRCxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQ3JFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2luamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1VTRVJfQUdFTlR9IGZyb20gJ0BuZy13ZWItYXBpcy9jb21tb24nO1xuaW1wb3J0IHt0dWlDcmVhdGVUb2tlbkZyb21GYWN0b3J5fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzJztcblxuLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzExMzgxNzMwLzI3MDY0MjYgaHR0cDovL2RldGVjdG1vYmlsZWJyb3dzZXJzLmNvbS9cbmNvbnN0IGZpcnN0UmVnZXggPVxuICAgIC8oYW5kcm9pZHxiYlxcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXFwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcmlzfGtpbmRsZXxsZ2UgfG1hZW1vfG1pZHB8bW1wfG1vYmlsZS4rZmlyZWZveHxuZXRmcm9udHxvcGVyYSBtKG9ifGluKWl8cGFsbSggb3MpP3xwaG9uZXxwKGl4aXxyZSlcXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyBjZXx4ZGF8eGlpbm8vO1xuY29uc3Qgc2Vjb25kUmVnZXggPVxuICAgIC8xMjA3fDYzMTB8NjU5MHwzZ3NvfDR0aHB8NTBbMS02XWl8Nzcwc3w4MDJzfGEgd2F8YWJhY3xhYyhlcnxvb3xzLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3LShufHUpfGM1NVxcL3xjYXBpfGNjd2F8Y2RtLXxjZWxsfGNodG18Y2xkY3xjbWQtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8LWQpfGVsKDQ5fGFpKXxlbShsMnx1bCl8ZXIoaWN8azApfGVzbDh8ZXooWzQtN10wfG9zfHdhfHplKXxmZXRjfGZseSgtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmLTV8Zy1tb3xnbyhcXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkLShtfHB8dCl8aGVpLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzLWN8aHQoYygtfCB8X3xhfGd8cHxzfHQpfHRwKXxodShhd3x0Yyl8aS0oMjB8Z298bWEpfGkyMzB8aWFjKCB8LXxcXC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XFwvKXxrbG9ufGtwdCB8a3djLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XFwvKGt8bHx1KXw1MHw1NHwtW2Etd10pfGxpYnd8bHlueHxtMS13fG0zZ2F8bTUwXFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bS1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dCgtfCB8b3x2KXx6eil8bXQoNTB8cDF8diApfG13YnB8bXl3YXxuMTBbMC0yXXxuMjBbMi0zXXxuMzAoMHwyKXxuNTAoMHwyfDUpfG43KDAoMHwxKXwxMCl8bmUoKGN8bSktfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3wtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuLTJ8cG8oY2t8cnR8c2UpfHByb3h8cHNpb3xwdC1nfHFhLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8LVsyLTddfGktKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVxcL3xzYShnZXxtYXxtbXxtc3xueXx2YSl8c2MoMDF8aC18b298cC0pfHNka1xcL3xzZShjKC18MHwxKXw0N3xtY3xuZHxyaSl8c2doLXxzaGFyfHNpZSgtfG0pfHNrLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aC18di18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2wtfHRkZy18dGVsKGl8bSl8dGltLXx0LW1vfHRvKHBsfHNoKXx0cyg3MHxtLXxtM3xtNSl8dHgtOXx1cChcXC5ifGcxfHNpKXx1dHN0fHY0MDB8djc1MHx2ZXJpfHZpKHJnfHRlKXx2ayg0MHw1WzAtM118LXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhcy18eW91cnx6ZXRvfHp0ZS0vO1xuXG4vKipcbiAqIE1vYmlsZSBicm93c2VyIGRldGVjdGlvblxuICovXG5leHBvcnQgY29uc3QgVFVJX0lTX01PQklMRSA9IHR1aUNyZWF0ZVRva2VuRnJvbUZhY3RvcnkoXG4gICAgKCkgPT5cbiAgICAgICAgZmlyc3RSZWdleC50ZXN0KGluamVjdChVU0VSX0FHRU5UKS50b0xvd2VyQ2FzZSgpKSB8fFxuICAgICAgICBzZWNvbmRSZWdleC50ZXN0KGluamVjdChVU0VSX0FHRU5UKS5zbGljZSgwLCA0KS50b0xvd2VyQ2FzZSgpKSxcbik7XG4iXX0=
@@ -1,9 +1,7 @@
1
- import { InjectionToken } from '@angular/core';
2
1
  import { ALWAYS_FALSE_HANDLER } from '@taiga-ui/cdk/constants';
2
+ import { tuiCreateTokenFromFactory } from '@taiga-ui/cdk/utils';
3
3
  /**
4
4
  * Detect if app is running under Playwright
5
5
  */
6
- export const TUI_IS_PLAYWRIGHT = new InjectionToken(`[TUI_IS_PLAYWRIGHT]`, {
7
- factory: ALWAYS_FALSE_HANDLER,
8
- });
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtcGxheXdyaWdodC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay90b2tlbnMvaXMtcGxheXdyaWdodC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzdDLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRTdEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQVUscUJBQXFCLEVBQUU7SUFDaEYsT0FBTyxFQUFFLG9CQUFvQjtDQUNoQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGlvblRva2VufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QUxXQVlTX0ZBTFNFX0hBTkRMRVJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvY29uc3RhbnRzJztcblxuLyoqXG4gKiBEZXRlY3QgaWYgYXBwIGlzIHJ1bm5pbmcgdW5kZXIgUGxheXdyaWdodFxuICovXG5leHBvcnQgY29uc3QgVFVJX0lTX1BMQVlXUklHSFQgPSBuZXcgSW5qZWN0aW9uVG9rZW48Ym9vbGVhbj4oYFtUVUlfSVNfUExBWVdSSUdIVF1gLCB7XG4gICAgZmFjdG9yeTogQUxXQVlTX0ZBTFNFX0hBTkRMRVIsXG59KTtcbiJdfQ==
6
+ export const TUI_IS_PLAYWRIGHT = tuiCreateTokenFromFactory(ALWAYS_FALSE_HANDLER);
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtcGxheXdyaWdodC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay90b2tlbnMvaXMtcGxheXdyaWdodC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUU5RDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLHlCQUF5QixDQUFVLG9CQUFvQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FMV0FZU19GQUxTRV9IQU5ETEVSfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NvbnN0YW50cyc7XG5pbXBvcnQge3R1aUNyZWF0ZVRva2VuRnJvbUZhY3Rvcnl9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMnO1xuXG4vKipcbiAqIERldGVjdCBpZiBhcHAgaXMgcnVubmluZyB1bmRlciBQbGF5d3JpZ2h0XG4gKi9cbmV4cG9ydCBjb25zdCBUVUlfSVNfUExBWVdSSUdIVCA9IHR1aUNyZWF0ZVRva2VuRnJvbUZhY3Rvcnk8Ym9vbGVhbj4oQUxXQVlTX0ZBTFNFX0hBTkRMRVIpO1xuIl19
@@ -1,6 +1,5 @@
1
- import { inject, InjectionToken } from '@angular/core';
1
+ import { inject } from '@angular/core';
2
2
  import { WINDOW } from '@ng-web-apis/common';
3
- export const TUI_IS_STACKBLITZ = new InjectionToken(`[TUI_IS_STACKBLITZ]`, {
4
- factory: () => inject(WINDOW).location.host.endsWith(`stackblitz.io`),
5
- });
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtc3RhY2tibGl0ei5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay90b2tlbnMvaXMtc3RhY2tibGl0ei50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFM0MsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQVUscUJBQXFCLEVBQUU7SUFDaEYsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUM7Q0FDeEUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtpbmplY3QsIEluamVjdGlvblRva2VufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7V0lORE9XfSBmcm9tICdAbmctd2ViLWFwaXMvY29tbW9uJztcblxuZXhwb3J0IGNvbnN0IFRVSV9JU19TVEFDS0JMSVRaID0gbmV3IEluamVjdGlvblRva2VuPGJvb2xlYW4+KGBbVFVJX0lTX1NUQUNLQkxJVFpdYCwge1xuICAgIGZhY3Rvcnk6ICgpID0+IGluamVjdChXSU5ET1cpLmxvY2F0aW9uLmhvc3QuZW5kc1dpdGgoYHN0YWNrYmxpdHouaW9gKSxcbn0pO1xuIl19
3
+ import { tuiCreateTokenFromFactory } from '@taiga-ui/cdk/utils';
4
+ export const TUI_IS_STACKBLITZ = tuiCreateTokenFromFactory(() => inject(WINDOW).location.host.endsWith(`stackblitz.io`));
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtc3RhY2tibGl0ei5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay90b2tlbnMvaXMtc3RhY2tibGl0ei50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JDLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUMzQyxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUU5RCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyx5QkFBeUIsQ0FBQyxHQUFHLEVBQUUsQ0FDNUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUN6RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtXSU5ET1d9IGZyb20gJ0BuZy13ZWItYXBpcy9jb21tb24nO1xuaW1wb3J0IHt0dWlDcmVhdGVUb2tlbkZyb21GYWN0b3J5fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzJztcblxuZXhwb3J0IGNvbnN0IFRVSV9JU19TVEFDS0JMSVRaID0gdHVpQ3JlYXRlVG9rZW5Gcm9tRmFjdG9yeSgoKSA9PlxuICAgIGluamVjdChXSU5ET1cpLmxvY2F0aW9uLmhvc3QuZW5kc1dpdGgoYHN0YWNrYmxpdHouaW9gKSxcbik7XG4iXX0=
@@ -1,12 +1,11 @@
1
- import { inject, InjectionToken } from '@angular/core';
1
+ import { inject } from '@angular/core';
2
2
  import { WINDOW } from '@ng-web-apis/common';
3
+ import { tuiCreateTokenFromFactory } from '@taiga-ui/cdk/utils';
3
4
  /**
4
5
  * Webkit browser engine detection
5
6
  */
6
- export const TUI_IS_WEBKIT = new InjectionToken(`[TUI_IS_WEBKIT]`, {
7
- factory: () => {
8
- var _a;
9
- return !!((_a = inject(WINDOW)) === null || _a === void 0 ? void 0 : _a.webkitConvertPointFromNodeToPage);
10
- },
7
+ export const TUI_IS_WEBKIT = tuiCreateTokenFromFactory(() => {
8
+ var _a;
9
+ return !!((_a = inject(WINDOW)) === null || _a === void 0 ? void 0 : _a.webkitConvertPointFromNodeToPage);
11
10
  });
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtd2Via2l0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3Rva2Vucy9pcy13ZWJraXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxjQUFjLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRTNDOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLElBQUksY0FBYyxDQUFVLGlCQUFpQixFQUFFO0lBQ3hFLE9BQU8sRUFBRSxHQUFHLEVBQUU7O1FBQ1YsT0FBQSxDQUFDLENBQUMsQ0FBQSxNQUFDLE1BQU0sQ0FBQyxNQUFNLENBQTZELDBDQUN2RSxnQ0FBZ0MsQ0FBQSxDQUFBO0tBQUE7Q0FDN0MsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtpbmplY3QsIEluamVjdGlvblRva2VufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7V0lORE9XfSBmcm9tICdAbmctd2ViLWFwaXMvY29tbW9uJztcblxuLyoqXG4gKiBXZWJraXQgYnJvd3NlciBlbmdpbmUgZGV0ZWN0aW9uXG4gKi9cbmV4cG9ydCBjb25zdCBUVUlfSVNfV0VCS0lUID0gbmV3IEluamVjdGlvblRva2VuPGJvb2xlYW4+KGBbVFVJX0lTX1dFQktJVF1gLCB7XG4gICAgZmFjdG9yeTogKCkgPT5cbiAgICAgICAgISEoaW5qZWN0KFdJTkRPVykgYXMgdW5rbm93biBhcyB7d2Via2l0Q29udmVydFBvaW50RnJvbU5vZGVUb1BhZ2U/OiB1bmtub3dufSlcbiAgICAgICAgICAgID8ud2Via2l0Q29udmVydFBvaW50RnJvbU5vZGVUb1BhZ2UsXG59KTtcbiJdfQ==
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtd2Via2l0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3Rva2Vucy9pcy13ZWJraXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyQyxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDM0MsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFOUQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcseUJBQXlCLENBQ2xELEdBQUcsRUFBRTs7SUFDRCxPQUFBLENBQUMsQ0FBQyxDQUFBLE1BQUMsTUFBTSxDQUFDLE1BQU0sQ0FBNkQsMENBQ3ZFLGdDQUFnQyxDQUFBLENBQUE7Q0FBQSxDQUM3QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtXSU5ET1d9IGZyb20gJ0BuZy13ZWItYXBpcy9jb21tb24nO1xuaW1wb3J0IHt0dWlDcmVhdGVUb2tlbkZyb21GYWN0b3J5fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzJztcblxuLyoqXG4gKiBXZWJraXQgYnJvd3NlciBlbmdpbmUgZGV0ZWN0aW9uXG4gKi9cbmV4cG9ydCBjb25zdCBUVUlfSVNfV0VCS0lUID0gdHVpQ3JlYXRlVG9rZW5Gcm9tRmFjdG9yeShcbiAgICAoKSA9PlxuICAgICAgICAhIShpbmplY3QoV0lORE9XKSBhcyB1bmtub3duIGFzIHt3ZWJraXRDb252ZXJ0UG9pbnRGcm9tTm9kZVRvUGFnZT86IHVua25vd259KVxuICAgICAgICAgICAgPy53ZWJraXRDb252ZXJ0UG9pbnRGcm9tTm9kZVRvUGFnZSxcbik7XG4iXX0=
@@ -1,9 +1,8 @@
1
1
  import { isPlatformBrowser } from '@angular/common';
2
- import { inject, InjectionToken, PLATFORM_ID } from '@angular/core';
2
+ import { inject, PLATFORM_ID } from '@angular/core';
3
+ import { tuiCreateTokenFromFactory } from '@taiga-ui/cdk/utils';
3
4
  /**
4
5
  * SSR safe default empty Range
5
6
  */
6
- export const TUI_RANGE = new InjectionToken(`[TUI_RANGE]`, {
7
- factory: () => isPlatformBrowser(inject(PLATFORM_ID)) ? new Range() : {},
8
- });
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvdG9rZW5zL3JhbmdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBQyxNQUFNLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVsRTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxJQUFJLGNBQWMsQ0FBUSxhQUFhLEVBQUU7SUFDOUQsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUNWLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBRSxFQUF1QjtDQUN0RixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2lzUGxhdGZvcm1Ccm93c2VyfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtpbmplY3QsIEluamVjdGlvblRva2VuLCBQTEFURk9STV9JRH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogU1NSIHNhZmUgZGVmYXVsdCBlbXB0eSBSYW5nZVxuICovXG5leHBvcnQgY29uc3QgVFVJX1JBTkdFID0gbmV3IEluamVjdGlvblRva2VuPFJhbmdlPihgW1RVSV9SQU5HRV1gLCB7XG4gICAgZmFjdG9yeTogKCkgPT5cbiAgICAgICAgaXNQbGF0Zm9ybUJyb3dzZXIoaW5qZWN0KFBMQVRGT1JNX0lEKSkgPyBuZXcgUmFuZ2UoKSA6ICh7fSBhcyB1bmtub3duIGFzIFJhbmdlKSxcbn0pO1xuIl19
7
+ export const TUI_RANGE = tuiCreateTokenFromFactory(() => isPlatformBrowser(inject(PLATFORM_ID)) ? new Range() : {});
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvdG9rZW5zL3JhbmdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBQyxNQUFNLEVBQUUsV0FBVyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRTlEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLHlCQUF5QixDQUFDLEdBQUcsRUFBRSxDQUNwRCxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUUsRUFBdUIsQ0FDbEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aXNQbGF0Zm9ybUJyb3dzZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge2luamVjdCwgUExBVEZPUk1fSUR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0dWlDcmVhdGVUb2tlbkZyb21GYWN0b3J5fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzJztcblxuLyoqXG4gKiBTU1Igc2FmZSBkZWZhdWx0IGVtcHR5IFJhbmdlXG4gKi9cbmV4cG9ydCBjb25zdCBUVUlfUkFOR0UgPSB0dWlDcmVhdGVUb2tlbkZyb21GYWN0b3J5KCgpID0+XG4gICAgaXNQbGF0Zm9ybUJyb3dzZXIoaW5qZWN0KFBMQVRGT1JNX0lEKSkgPyBuZXcgUmFuZ2UoKSA6ICh7fSBhcyB1bmtub3duIGFzIFJhbmdlKSxcbik7XG4iXX0=
@@ -1,21 +1,20 @@
1
1
  import { ɵAnimationEngine as AnimationEngine } from '@angular/animations/browser';
2
- import { inject, InjectFlags, InjectionToken } from '@angular/core';
2
+ import { inject, InjectFlags } from '@angular/core';
3
+ import { tuiCreateTokenFromFactory } from '@taiga-ui/cdk/utils';
3
4
  import { BehaviorSubject, timer } from 'rxjs';
4
5
  import { map, share, startWith, switchMap } from 'rxjs/operators';
5
6
  /**
6
7
  * Element currently being removed by AnimationEngine
7
8
  */
8
- export const TUI_REMOVED_ELEMENT = new InjectionToken(`[TUI_REMOVED_ELEMENT]`, {
9
- factory: () => {
10
- const stub = { onRemovalComplete: () => { } };
11
- const element$ = new BehaviorSubject(null);
12
- const engine = inject(AnimationEngine, InjectFlags.Optional) || stub;
13
- const { onRemovalComplete = stub.onRemovalComplete } = engine;
14
- engine.onRemovalComplete = (element, context) => {
15
- element$.next(element);
16
- onRemovalComplete.call(engine, element, context);
17
- };
18
- return element$.pipe(switchMap(element => timer(0).pipe(map(() => null), startWith(element))), share());
19
- },
9
+ export const TUI_REMOVED_ELEMENT = tuiCreateTokenFromFactory(() => {
10
+ const stub = { onRemovalComplete: () => { } };
11
+ const element$ = new BehaviorSubject(null);
12
+ const engine = inject(AnimationEngine, InjectFlags.Optional) || stub;
13
+ const { onRemovalComplete = stub.onRemovalComplete } = engine;
14
+ engine.onRemovalComplete = (element, context) => {
15
+ element$.next(element);
16
+ onRemovalComplete.call(engine, element, context);
17
+ };
18
+ return element$.pipe(switchMap(element => timer(0).pipe(map(() => null), startWith(element))), share());
20
19
  });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlZC1lbGVtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3Rva2Vucy9yZW1vdmVkLWVsZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGdCQUFnQixJQUFJLGVBQWUsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ2hGLE9BQU8sRUFBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNsRSxPQUFPLEVBQUMsZUFBZSxFQUFjLEtBQUssRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN4RCxPQUFPLEVBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEU7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLGNBQWMsQ0FDakQsdUJBQXVCLEVBQ3ZCO0lBQ0ksT0FBTyxFQUFFLEdBQUcsRUFBRTtRQUNWLE1BQU0sSUFBSSxHQUFHLEVBQUMsaUJBQWlCLEVBQUUsR0FBRyxFQUFFLEdBQUUsQ0FBQyxFQUFDLENBQUM7UUFDM0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxlQUFlLENBQWlCLElBQUksQ0FBQyxDQUFDO1FBQzNELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxlQUFlLEVBQUUsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksQ0FBQztRQUNyRSxNQUFNLEVBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFDLEdBQUcsTUFBTSxDQUFDO1FBRTVELE1BQU0sQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUM1QyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3ZCLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3JELENBQUMsQ0FBQztRQUVGLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FDaEIsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQ2hCLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ1QsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUNmLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FDckIsQ0FDSixFQUNELEtBQUssRUFBRSxDQUNWLENBQUM7SUFDTixDQUFDO0NBQ0osQ0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHvJtUFuaW1hdGlvbkVuZ2luZSBhcyBBbmltYXRpb25FbmdpbmV9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMvYnJvd3Nlcic7XG5pbXBvcnQge2luamVjdCwgSW5qZWN0RmxhZ3MsIEluamVjdGlvblRva2VufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCB0aW1lcn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcCwgc2hhcmUsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8qKlxuICogRWxlbWVudCBjdXJyZW50bHkgYmVpbmcgcmVtb3ZlZCBieSBBbmltYXRpb25FbmdpbmVcbiAqL1xuZXhwb3J0IGNvbnN0IFRVSV9SRU1PVkVEX0VMRU1FTlQgPSBuZXcgSW5qZWN0aW9uVG9rZW48T2JzZXJ2YWJsZTxFbGVtZW50IHwgbnVsbD4+KFxuICAgIGBbVFVJX1JFTU9WRURfRUxFTUVOVF1gLFxuICAgIHtcbiAgICAgICAgZmFjdG9yeTogKCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3R1YiA9IHtvblJlbW92YWxDb21wbGV0ZTogKCkgPT4ge319O1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgICAgICAgICAgIGNvbnN0IGVuZ2luZSA9IGluamVjdChBbmltYXRpb25FbmdpbmUsIEluamVjdEZsYWdzLk9wdGlvbmFsKSB8fCBzdHViO1xuICAgICAgICAgICAgY29uc3Qge29uUmVtb3ZhbENvbXBsZXRlID0gc3R1Yi5vblJlbW92YWxDb21wbGV0ZX0gPSBlbmdpbmU7XG5cbiAgICAgICAgICAgIGVuZ2luZS5vblJlbW92YWxDb21wbGV0ZSA9IChlbGVtZW50LCBjb250ZXh0KSA9PiB7XG4gICAgICAgICAgICAgICAgZWxlbWVudCQubmV4dChlbGVtZW50KTtcbiAgICAgICAgICAgICAgICBvblJlbW92YWxDb21wbGV0ZS5jYWxsKGVuZ2luZSwgZWxlbWVudCwgY29udGV4dCk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICByZXR1cm4gZWxlbWVudCQucGlwZShcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoZWxlbWVudCA9PlxuICAgICAgICAgICAgICAgICAgICB0aW1lcigwKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgbWFwKCgpID0+IG51bGwpLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRXaXRoKGVsZW1lbnQpLFxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgc2hhcmUoKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0sXG4gICAgfSxcbik7XG4iXX0=
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlZC1lbGVtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3Rva2Vucy9yZW1vdmVkLWVsZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGdCQUFnQixJQUFJLGVBQWUsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ2hGLE9BQU8sRUFBQyxNQUFNLEVBQUUsV0FBVyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQzlELE9BQU8sRUFBQyxlQUFlLEVBQUUsS0FBSyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLHlCQUF5QixDQUFDLEdBQUcsRUFBRTtJQUM5RCxNQUFNLElBQUksR0FBRyxFQUFDLGlCQUFpQixFQUFFLEdBQUcsRUFBRSxHQUFFLENBQUMsRUFBQyxDQUFDO0lBQzNDLE1BQU0sUUFBUSxHQUFHLElBQUksZUFBZSxDQUFpQixJQUFJLENBQUMsQ0FBQztJQUMzRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsZUFBZSxFQUFFLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLENBQUM7SUFDckUsTUFBTSxFQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBQyxHQUFHLE1BQU0sQ0FBQztJQUU1RCxNQUFNLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUU7UUFDNUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2QixpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNyRCxDQUFDLENBQUM7SUFFRixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQ2hCLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUNoQixLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNULEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFDZixTQUFTLENBQUMsT0FBTyxDQUFDLENBQ3JCLENBQ0osRUFDRCxLQUFLLEVBQUUsQ0FDVixDQUFDO0FBQ04sQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge8m1QW5pbWF0aW9uRW5naW5lIGFzIEFuaW1hdGlvbkVuZ2luZX0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucy9icm93c2VyJztcbmltcG9ydCB7aW5qZWN0LCBJbmplY3RGbGFnc30gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3R1aUNyZWF0ZVRva2VuRnJvbUZhY3Rvcnl9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIHRpbWVyfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwLCBzaGFyZSwgc3RhcnRXaXRoLCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuLyoqXG4gKiBFbGVtZW50IGN1cnJlbnRseSBiZWluZyByZW1vdmVkIGJ5IEFuaW1hdGlvbkVuZ2luZVxuICovXG5leHBvcnQgY29uc3QgVFVJX1JFTU9WRURfRUxFTUVOVCA9IHR1aUNyZWF0ZVRva2VuRnJvbUZhY3RvcnkoKCkgPT4ge1xuICAgIGNvbnN0IHN0dWIgPSB7b25SZW1vdmFsQ29tcGxldGU6ICgpID0+IHt9fTtcbiAgICBjb25zdCBlbGVtZW50JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RWxlbWVudCB8IG51bGw+KG51bGwpO1xuICAgIGNvbnN0IGVuZ2luZSA9IGluamVjdChBbmltYXRpb25FbmdpbmUsIEluamVjdEZsYWdzLk9wdGlvbmFsKSB8fCBzdHViO1xuICAgIGNvbnN0IHtvblJlbW92YWxDb21wbGV0ZSA9IHN0dWIub25SZW1vdmFsQ29tcGxldGV9ID0gZW5naW5lO1xuXG4gICAgZW5naW5lLm9uUmVtb3ZhbENvbXBsZXRlID0gKGVsZW1lbnQsIGNvbnRleHQpID0+IHtcbiAgICAgICAgZWxlbWVudCQubmV4dChlbGVtZW50KTtcbiAgICAgICAgb25SZW1vdmFsQ29tcGxldGUuY2FsbChlbmdpbmUsIGVsZW1lbnQsIGNvbnRleHQpO1xuICAgIH07XG5cbiAgICByZXR1cm4gZWxlbWVudCQucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKGVsZW1lbnQgPT5cbiAgICAgICAgICAgIHRpbWVyKDApLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKCgpID0+IG51bGwpLFxuICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChlbGVtZW50KSxcbiAgICAgICAgICAgICksXG4gICAgICAgICksXG4gICAgICAgIHNoYXJlKCksXG4gICAgKTtcbn0pO1xuIl19
@@ -1,12 +1,10 @@
1
- import { InjectionToken } from '@angular/core';
2
1
  import { ALWAYS_TRUE_HANDLER } from '@taiga-ui/cdk/constants';
2
+ import { tuiCreateTokenFromFactory } from '@taiga-ui/cdk/utils';
3
3
  /**
4
4
  * @description:
5
5
  * The isTrusted read-only property of the Event interface is a boolean value that is true
6
6
  * when the event was generated by a user action, and false when the event was created or
7
7
  * modified by a script or dispatched via EventTarget.dispatchEvent().
8
8
  */
9
- export const TUI_TAKE_ONLY_TRUSTED_EVENTS = new InjectionToken(`[TUI_TAKE_ONLY_TRUSTED_EVENTS]`, {
10
- factory: ALWAYS_TRUE_HANDLER,
11
- });
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFrZS1vbmx5LXRydXN0ZWQtZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3Rva2Vucy90YWtlLW9ubHktdHJ1c3RlZC1ldmVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUU1RDs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUNyQyxJQUFJLGNBQWMsQ0FBVSxnQ0FBZ0MsRUFBRTtJQUMxRCxPQUFPLEVBQUUsbUJBQW1CO0NBQy9CLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0aW9uVG9rZW59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBTFdBWVNfVFJVRV9IQU5ETEVSfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NvbnN0YW50cyc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uOlxuICogVGhlIGlzVHJ1c3RlZCByZWFkLW9ubHkgcHJvcGVydHkgb2YgdGhlIEV2ZW50IGludGVyZmFjZSBpcyBhIGJvb2xlYW4gdmFsdWUgdGhhdCBpcyB0cnVlXG4gKiB3aGVuIHRoZSBldmVudCB3YXMgZ2VuZXJhdGVkIGJ5IGEgdXNlciBhY3Rpb24sIGFuZCBmYWxzZSB3aGVuIHRoZSBldmVudCB3YXMgY3JlYXRlZCBvclxuICogbW9kaWZpZWQgYnkgYSBzY3JpcHQgb3IgZGlzcGF0Y2hlZCB2aWEgRXZlbnRUYXJnZXQuZGlzcGF0Y2hFdmVudCgpLlxuICovXG5leHBvcnQgY29uc3QgVFVJX1RBS0VfT05MWV9UUlVTVEVEX0VWRU5UUzogSW5qZWN0aW9uVG9rZW48Ym9vbGVhbj4gPVxuICAgIG5ldyBJbmplY3Rpb25Ub2tlbjxib29sZWFuPihgW1RVSV9UQUtFX09OTFlfVFJVU1RFRF9FVkVOVFNdYCwge1xuICAgICAgICBmYWN0b3J5OiBBTFdBWVNfVFJVRV9IQU5ETEVSLFxuICAgIH0pO1xuIl19
9
+ export const TUI_TAKE_ONLY_TRUSTED_EVENTS = tuiCreateTokenFromFactory(ALWAYS_TRUE_HANDLER);
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFrZS1vbmx5LXRydXN0ZWQtZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3Rva2Vucy90YWtlLW9ubHktdHJ1c3RlZC1ldmVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFOUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FDckMseUJBQXlCLENBQVUsbUJBQW1CLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QUxXQVlTX1RSVUVfSEFORExFUn0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jb25zdGFudHMnO1xuaW1wb3J0IHt0dWlDcmVhdGVUb2tlbkZyb21GYWN0b3J5fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb246XG4gKiBUaGUgaXNUcnVzdGVkIHJlYWQtb25seSBwcm9wZXJ0eSBvZiB0aGUgRXZlbnQgaW50ZXJmYWNlIGlzIGEgYm9vbGVhbiB2YWx1ZSB0aGF0IGlzIHRydWVcbiAqIHdoZW4gdGhlIGV2ZW50IHdhcyBnZW5lcmF0ZWQgYnkgYSB1c2VyIGFjdGlvbiwgYW5kIGZhbHNlIHdoZW4gdGhlIGV2ZW50IHdhcyBjcmVhdGVkIG9yXG4gKiBtb2RpZmllZCBieSBhIHNjcmlwdCBvciBkaXNwYXRjaGVkIHZpYSBFdmVudFRhcmdldC5kaXNwYXRjaEV2ZW50KCkuXG4gKi9cbmV4cG9ydCBjb25zdCBUVUlfVEFLRV9PTkxZX1RSVVNURURfRVZFTlRTID1cbiAgICB0dWlDcmVhdGVUb2tlbkZyb21GYWN0b3J5PGJvb2xlYW4+KEFMV0FZU19UUlVFX0hBTkRMRVIpO1xuIl19
@@ -1,6 +1,5 @@
1
- import { inject, InjectionToken } from '@angular/core';
1
+ import { inject } from '@angular/core';
2
2
  import { WINDOW } from '@ng-web-apis/common';
3
- export const TUI_TOUCH_SUPPORTED = new InjectionToken(`[TUI_TOUCH_SUPPORTED]`, {
4
- factory: () => inject(WINDOW).matchMedia(`(any-pointer: coarse)`).matches,
5
- });
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG91Y2gtc3VwcG9ydGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3Rva2Vucy90b3VjaC1zdXBwb3J0ZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxjQUFjLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRTNDLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLElBQUksY0FBYyxDQUFDLHVCQUF1QixFQUFFO0lBQzNFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsVUFBVSxDQUFDLHVCQUF1QixDQUFDLENBQUMsT0FBTztDQUM1RSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2luamVjdCwgSW5qZWN0aW9uVG9rZW59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtXSU5ET1d9IGZyb20gJ0BuZy13ZWItYXBpcy9jb21tb24nO1xuXG5leHBvcnQgY29uc3QgVFVJX1RPVUNIX1NVUFBPUlRFRCA9IG5ldyBJbmplY3Rpb25Ub2tlbihgW1RVSV9UT1VDSF9TVVBQT1JURURdYCwge1xuICAgIGZhY3Rvcnk6ICgpID0+IGluamVjdChXSU5ET1cpLm1hdGNoTWVkaWEoYChhbnktcG9pbnRlcjogY29hcnNlKWApLm1hdGNoZXMsXG59KTtcbiJdfQ==
3
+ import { tuiCreateTokenFromFactory } from '@taiga-ui/cdk/utils';
4
+ export const TUI_TOUCH_SUPPORTED = tuiCreateTokenFromFactory(() => inject(WINDOW).matchMedia(`(any-pointer: coarse)`).matches);
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG91Y2gtc3VwcG9ydGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3Rva2Vucy90b3VjaC1zdXBwb3J0ZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyQyxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDM0MsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFOUQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcseUJBQXlCLENBQ3hELEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxVQUFVLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxPQUFPLENBQ25FLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2luamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1dJTkRPV30gZnJvbSAnQG5nLXdlYi1hcGlzL2NvbW1vbic7XG5pbXBvcnQge3R1aUNyZWF0ZVRva2VuRnJvbUZhY3Rvcnl9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMnO1xuXG5leHBvcnQgY29uc3QgVFVJX1RPVUNIX1NVUFBPUlRFRCA9IHR1aUNyZWF0ZVRva2VuRnJvbUZhY3RvcnkoXG4gICAgKCkgPT4gaW5qZWN0KFdJTkRPVykubWF0Y2hNZWRpYShgKGFueS1wb2ludGVyOiBjb2Fyc2UpYCkubWF0Y2hlcyxcbik7XG4iXX0=
@@ -1,10 +1,9 @@
1
- import { inject, InjectionToken } from '@angular/core';
1
+ import { inject } from '@angular/core';
2
+ import { tuiCreateTokenFromFactory } from '@taiga-ui/cdk/utils';
2
3
  import { map } from 'rxjs/operators';
3
4
  import { TUI_WINDOW_SIZE } from './window-size';
4
5
  /**
5
6
  * @deprecated Use {@link TUI_WINDOW_SIZE} instead
6
7
  */
7
- export const TUI_WINDOW_HEIGHT = new InjectionToken(`[TUI_WINDOW_HEIGHT]`, {
8
- factory: () => inject(TUI_WINDOW_SIZE).pipe(map(({ height }) => height)),
9
- });
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93LWhlaWdodC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay90b2tlbnMvd2luZG93LWhlaWdodC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVyRCxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU5Qzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLElBQUksY0FBYyxDQUMvQyxxQkFBcUIsRUFDckI7SUFDSSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztDQUN6RSxDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2luamVjdCwgSW5qZWN0aW9uVG9rZW59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7VFVJX1dJTkRPV19TSVpFfSBmcm9tICcuL3dpbmRvdy1zaXplJztcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Uge0BsaW5rIFRVSV9XSU5ET1dfU0laRX0gaW5zdGVhZFxuICovXG5leHBvcnQgY29uc3QgVFVJX1dJTkRPV19IRUlHSFQgPSBuZXcgSW5qZWN0aW9uVG9rZW48T2JzZXJ2YWJsZTxudW1iZXI+PihcbiAgICBgW1RVSV9XSU5ET1dfSEVJR0hUXWAsXG4gICAge1xuICAgICAgICBmYWN0b3J5OiAoKSA9PiBpbmplY3QoVFVJX1dJTkRPV19TSVpFKS5waXBlKG1hcCgoe2hlaWdodH0pID0+IGhlaWdodCkpLFxuICAgIH0sXG4pO1xuIl19
8
+ export const TUI_WINDOW_HEIGHT = tuiCreateTokenFromFactory(() => inject(TUI_WINDOW_SIZE).pipe(map(({ height }) => height)));
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93LWhlaWdodC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay90b2tlbnMvd2luZG93LWhlaWdodC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JDLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQzlELE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuQyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTlDOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcseUJBQXlCLENBQUMsR0FBRyxFQUFFLENBQzVELE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FDMUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dHVpQ3JlYXRlVG9rZW5Gcm9tRmFjdG9yeX0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1RVSV9XSU5ET1dfU0laRX0gZnJvbSAnLi93aW5kb3ctc2l6ZSc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHtAbGluayBUVUlfV0lORE9XX1NJWkV9IGluc3RlYWRcbiAqL1xuZXhwb3J0IGNvbnN0IFRVSV9XSU5ET1dfSEVJR0hUID0gdHVpQ3JlYXRlVG9rZW5Gcm9tRmFjdG9yeSgoKSA9PlxuICAgIGluamVjdChUVUlfV0lORE9XX1NJWkUpLnBpcGUobWFwKCh7aGVpZ2h0fSkgPT4gaGVpZ2h0KSksXG4pO1xuIl19
@@ -1,8 +1,6 @@
1
- import { InjectionToken } from '@angular/core';
1
+ import { tuiCreateTokenFromFactory } from './create-token';
2
2
  /** @deprecated use {@link tuiCreateToken} instead */
3
3
  export function tuiCreateOptions(defaults) {
4
- return new InjectionToken(``, {
5
- factory: () => defaults,
6
- });
4
+ return tuiCreateTokenFromFactory(() => defaults);
7
5
  }
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cy9jcmVhdGUtb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTdDLHFEQUFxRDtBQUNyRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUksUUFBVztJQUMzQyxPQUFPLElBQUksY0FBYyxDQUFJLEVBQUUsRUFBRTtRQUM3QixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsUUFBUTtLQUMxQixDQUFDLENBQUM7QUFDUCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3Rpb25Ub2tlbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKiBAZGVwcmVjYXRlZCB1c2Uge0BsaW5rIHR1aUNyZWF0ZVRva2VufSBpbnN0ZWFkICovXG5leHBvcnQgZnVuY3Rpb24gdHVpQ3JlYXRlT3B0aW9uczxUPihkZWZhdWx0czogVCk6IEluamVjdGlvblRva2VuPFQ+IHtcbiAgICByZXR1cm4gbmV3IEluamVjdGlvblRva2VuPFQ+KGBgLCB7XG4gICAgICAgIGZhY3Rvcnk6ICgpID0+IGRlZmF1bHRzLFxuICAgIH0pO1xufVxuIl19
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cy9jcmVhdGUtb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RCxxREFBcUQ7QUFDckQsTUFBTSxVQUFVLGdCQUFnQixDQUFJLFFBQVc7SUFDM0MsT0FBTyx5QkFBeUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUNyRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3Rpb25Ub2tlbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7dHVpQ3JlYXRlVG9rZW5Gcm9tRmFjdG9yeX0gZnJvbSAnLi9jcmVhdGUtdG9rZW4nO1xuXG4vKiogQGRlcHJlY2F0ZWQgdXNlIHtAbGluayB0dWlDcmVhdGVUb2tlbn0gaW5zdGVhZCAqL1xuZXhwb3J0IGZ1bmN0aW9uIHR1aUNyZWF0ZU9wdGlvbnM8VD4oZGVmYXVsdHM6IFQpOiBJbmplY3Rpb25Ub2tlbjxUPiB7XG4gICAgcmV0dXJuIHR1aUNyZWF0ZVRva2VuRnJvbUZhY3RvcnkoKCkgPT4gZGVmYXVsdHMpO1xufVxuIl19
@@ -1,10 +1,8 @@
1
1
  import { InjectionToken } from '@angular/core';
2
2
  export function tuiCreateToken(defaults) {
3
- return new InjectionToken(``, {
4
- factory: () => defaults,
5
- });
3
+ return tuiCreateTokenFromFactory(() => defaults);
6
4
  }
7
5
  export function tuiCreateTokenFromFactory(factory) {
8
6
  return new InjectionToken(``, { factory });
9
7
  }
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3V0aWxzL21pc2NlbGxhbmVvdXMvY3JlYXRlLXRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFN0MsTUFBTSxVQUFVLGNBQWMsQ0FBSSxRQUFXO0lBQ3pDLE9BQU8sSUFBSSxjQUFjLENBQUksRUFBRSxFQUFFO1FBQzdCLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxRQUFRO0tBQzFCLENBQUMsQ0FBQztBQUNQLENBQUM7QUFFRCxNQUFNLFVBQVUseUJBQXlCLENBQUksT0FBZ0I7SUFDekQsT0FBTyxJQUFJLGNBQWMsQ0FBSSxFQUFFLEVBQUUsRUFBQyxPQUFPLEVBQUMsQ0FBQyxDQUFDO0FBQ2hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGlvblRva2VufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGZ1bmN0aW9uIHR1aUNyZWF0ZVRva2VuPFQ+KGRlZmF1bHRzOiBUKTogSW5qZWN0aW9uVG9rZW48VD4ge1xuICAgIHJldHVybiBuZXcgSW5qZWN0aW9uVG9rZW48VD4oYGAsIHtcbiAgICAgICAgZmFjdG9yeTogKCkgPT4gZGVmYXVsdHMsXG4gICAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0dWlDcmVhdGVUb2tlbkZyb21GYWN0b3J5PFQ+KGZhY3Rvcnk6ICgpID0+IFQpOiBJbmplY3Rpb25Ub2tlbjxUPiB7XG4gICAgcmV0dXJuIG5ldyBJbmplY3Rpb25Ub2tlbjxUPihgYCwge2ZhY3Rvcnl9KTtcbn1cbiJdfQ==
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3V0aWxzL21pc2NlbGxhbmVvdXMvY3JlYXRlLXRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFN0MsTUFBTSxVQUFVLGNBQWMsQ0FBSSxRQUFXO0lBQ3pDLE9BQU8seUJBQXlCLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDckQsQ0FBQztBQUVELE1BQU0sVUFBVSx5QkFBeUIsQ0FBSSxPQUFnQjtJQUN6RCxPQUFPLElBQUksY0FBYyxDQUFJLEVBQUUsRUFBRSxFQUFDLE9BQU8sRUFBQyxDQUFDLENBQUM7QUFDaEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0aW9uVG9rZW59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgZnVuY3Rpb24gdHVpQ3JlYXRlVG9rZW48VD4oZGVmYXVsdHM6IFQpOiBJbmplY3Rpb25Ub2tlbjxUPiB7XG4gICAgcmV0dXJuIHR1aUNyZWF0ZVRva2VuRnJvbUZhY3RvcnkoKCkgPT4gZGVmYXVsdHMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHVpQ3JlYXRlVG9rZW5Gcm9tRmFjdG9yeTxUPihmYWN0b3J5OiAoKSA9PiBUKTogSW5qZWN0aW9uVG9rZW48VD4ge1xuICAgIHJldHVybiBuZXcgSW5qZWN0aW9uVG9rZW48VD4oYGAsIHtmYWN0b3J5fSk7XG59XG4iXX0=
@@ -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