@taiga-ui/cdk 2.36.0 → 2.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/abstract/control.d.ts +2 -2
  2. package/abstract/index.d.ts +2 -0
  3. package/abstract/portal-host.d.ts +13 -0
  4. package/abstract/portal-service.d.ts +14 -0
  5. package/abstract/taiga-ui-cdk-abstract.metadata.json +1 -1
  6. package/bundles/taiga-ui-cdk-abstract.umd.js +94 -6
  7. package/bundles/taiga-ui-cdk-abstract.umd.js.map +1 -1
  8. package/bundles/taiga-ui-cdk-abstract.umd.min.js +2 -2
  9. package/bundles/taiga-ui-cdk-abstract.umd.min.js.map +1 -1
  10. package/bundles/taiga-ui-cdk-components-dropdown-host.umd.js +280 -0
  11. package/bundles/taiga-ui-cdk-components-dropdown-host.umd.js.map +1 -0
  12. package/bundles/taiga-ui-cdk-components-dropdown-host.umd.min.js +16 -0
  13. package/bundles/taiga-ui-cdk-components-dropdown-host.umd.min.js.map +1 -0
  14. package/bundles/taiga-ui-cdk-components-portal-host.umd.js +10 -114
  15. package/bundles/taiga-ui-cdk-components-portal-host.umd.js.map +1 -1
  16. package/bundles/taiga-ui-cdk-components-portal-host.umd.min.js +2 -2
  17. package/bundles/taiga-ui-cdk-components-portal-host.umd.min.js.map +1 -1
  18. package/bundles/taiga-ui-cdk-components.umd.js +12 -4
  19. package/bundles/taiga-ui-cdk-components.umd.js.map +1 -1
  20. package/bundles/taiga-ui-cdk-components.umd.min.js +1 -1
  21. package/bundles/taiga-ui-cdk-date-time.umd.js +2 -2
  22. package/bundles/taiga-ui-cdk-date-time.umd.js.map +1 -1
  23. package/bundles/taiga-ui-cdk-date-time.umd.min.js.map +1 -1
  24. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.js +78 -36
  25. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.js.map +1 -1
  26. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.min.js +2 -2
  27. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.min.js.map +1 -1
  28. package/bundles/taiga-ui-cdk-directives-for.umd.js +3 -2
  29. package/bundles/taiga-ui-cdk-directives-for.umd.js.map +1 -1
  30. package/bundles/taiga-ui-cdk-directives-for.umd.min.js +1 -1
  31. package/bundles/taiga-ui-cdk-directives-for.umd.min.js.map +1 -1
  32. package/bundles/taiga-ui-cdk-services.umd.js +17 -4
  33. package/bundles/taiga-ui-cdk-services.umd.js.map +1 -1
  34. package/bundles/taiga-ui-cdk-services.umd.min.js +1 -1
  35. package/bundles/taiga-ui-cdk-services.umd.min.js.map +1 -1
  36. package/bundles/taiga-ui-cdk-tokens.umd.js +1 -2
  37. package/bundles/taiga-ui-cdk-tokens.umd.js.map +1 -1
  38. package/bundles/taiga-ui-cdk-tokens.umd.min.js +1 -1
  39. package/bundles/taiga-ui-cdk-tokens.umd.min.js.map +1 -1
  40. package/bundles/taiga-ui-cdk-utils-focus.umd.js +1 -1
  41. package/bundles/taiga-ui-cdk-utils-focus.umd.js.map +1 -1
  42. package/bundles/taiga-ui-cdk-utils-focus.umd.min.js.map +1 -1
  43. package/components/dropdown-host/dropdown-host.component.d.ts +8 -0
  44. package/components/dropdown-host/dropdown-host.module.d.ts +2 -0
  45. package/components/dropdown-host/index.d.ts +2 -0
  46. package/components/dropdown-host/package.json +13 -0
  47. package/components/dropdown-host/taiga-ui-cdk-components-dropdown-host.d.ts +4 -0
  48. package/components/dropdown-host/taiga-ui-cdk-components-dropdown-host.metadata.json +1 -0
  49. package/components/index.d.ts +1 -0
  50. package/components/portal-host/index.d.ts +0 -2
  51. package/components/portal-host/portal.service.d.ts +4 -11
  52. package/components/portal-host/taiga-ui-cdk-components-portal-host.metadata.json +1 -1
  53. package/components/taiga-ui-cdk-components.metadata.json +1 -1
  54. package/directives/auto-focus/autofocus.directive.d.ts +8 -4
  55. package/directives/auto-focus/taiga-ui-cdk-directives-auto-focus.metadata.json +1 -1
  56. package/directives/for/for.directive.d.ts +4 -4
  57. package/directives/for/taiga-ui-cdk-directives-for.metadata.json +1 -1
  58. package/esm2015/abstract/control.js +5 -3
  59. package/esm2015/abstract/index.js +3 -1
  60. package/esm2015/abstract/portal-host.js +44 -0
  61. package/esm2015/abstract/portal-service.js +34 -0
  62. package/esm2015/components/dropdown-host/dropdown-host.component.js +36 -0
  63. package/esm2015/components/dropdown-host/dropdown-host.module.js +13 -0
  64. package/esm2015/components/dropdown-host/index.js +3 -0
  65. package/esm2015/components/dropdown-host/taiga-ui-cdk-components-dropdown-host.js +5 -0
  66. package/esm2015/components/index.js +2 -1
  67. package/esm2015/components/portal-host/index.js +1 -3
  68. package/esm2015/components/portal-host/portal.service.js +6 -26
  69. package/esm2015/date-time/time.js +3 -3
  70. package/esm2015/directives/auto-focus/autofocus.directive.js +71 -39
  71. package/esm2015/directives/for/for.directive.js +6 -5
  72. package/esm2015/services/directive-styles.service.js +19 -6
  73. package/esm2015/tokens/is-ios.js +2 -3
  74. package/esm2015/utils/focus/get-closest-keyboard-focusable.js +2 -2
  75. package/esm5/abstract/control.js +5 -3
  76. package/esm5/abstract/index.js +3 -1
  77. package/esm5/abstract/portal-host.js +50 -0
  78. package/esm5/abstract/portal-service.js +42 -0
  79. package/esm5/components/dropdown-host/dropdown-host.component.js +41 -0
  80. package/esm5/components/dropdown-host/dropdown-host.module.js +16 -0
  81. package/esm5/components/dropdown-host/index.js +3 -0
  82. package/esm5/components/dropdown-host/taiga-ui-cdk-components-dropdown-host.js +5 -0
  83. package/esm5/components/index.js +2 -1
  84. package/esm5/components/portal-host/index.js +1 -3
  85. package/esm5/components/portal-host/portal.service.js +10 -33
  86. package/esm5/date-time/time.js +3 -3
  87. package/esm5/directives/auto-focus/autofocus.directive.js +81 -39
  88. package/esm5/directives/for/for.directive.js +6 -5
  89. package/esm5/services/directive-styles.service.js +19 -6
  90. package/esm5/tokens/is-ios.js +2 -3
  91. package/esm5/utils/focus/get-closest-keyboard-focusable.js +2 -2
  92. package/fesm2015/taiga-ui-cdk-abstract.js +77 -4
  93. package/fesm2015/taiga-ui-cdk-abstract.js.map +1 -1
  94. package/fesm2015/taiga-ui-cdk-components-dropdown-host.js +51 -0
  95. package/fesm2015/taiga-ui-cdk-components-dropdown-host.js.map +1 -0
  96. package/fesm2015/taiga-ui-cdk-components-portal-host.js +7 -97
  97. package/fesm2015/taiga-ui-cdk-components-portal-host.js.map +1 -1
  98. package/fesm2015/taiga-ui-cdk-components.js +1 -0
  99. package/fesm2015/taiga-ui-cdk-components.js.map +1 -1
  100. package/fesm2015/taiga-ui-cdk-date-time.js +2 -2
  101. package/fesm2015/taiga-ui-cdk-date-time.js.map +1 -1
  102. package/fesm2015/taiga-ui-cdk-directives-auto-focus.js +70 -38
  103. package/fesm2015/taiga-ui-cdk-directives-auto-focus.js.map +1 -1
  104. package/fesm2015/taiga-ui-cdk-directives-for.js +5 -4
  105. package/fesm2015/taiga-ui-cdk-directives-for.js.map +1 -1
  106. package/fesm2015/taiga-ui-cdk-services.js +18 -5
  107. package/fesm2015/taiga-ui-cdk-services.js.map +1 -1
  108. package/fesm2015/taiga-ui-cdk-tokens.js +1 -2
  109. package/fesm2015/taiga-ui-cdk-tokens.js.map +1 -1
  110. package/fesm2015/taiga-ui-cdk-utils-focus.js +1 -1
  111. package/fesm2015/taiga-ui-cdk-utils-focus.js.map +1 -1
  112. package/fesm5/taiga-ui-cdk-abstract.js +91 -4
  113. package/fesm5/taiga-ui-cdk-abstract.js.map +1 -1
  114. package/fesm5/taiga-ui-cdk-components-dropdown-host.js +59 -0
  115. package/fesm5/taiga-ui-cdk-components-dropdown-host.js.map +1 -0
  116. package/fesm5/taiga-ui-cdk-components-portal-host.js +10 -112
  117. package/fesm5/taiga-ui-cdk-components-portal-host.js.map +1 -1
  118. package/fesm5/taiga-ui-cdk-components.js +1 -0
  119. package/fesm5/taiga-ui-cdk-components.js.map +1 -1
  120. package/fesm5/taiga-ui-cdk-date-time.js +2 -2
  121. package/fesm5/taiga-ui-cdk-date-time.js.map +1 -1
  122. package/fesm5/taiga-ui-cdk-directives-auto-focus.js +80 -38
  123. package/fesm5/taiga-ui-cdk-directives-auto-focus.js.map +1 -1
  124. package/fesm5/taiga-ui-cdk-directives-for.js +5 -4
  125. package/fesm5/taiga-ui-cdk-directives-for.js.map +1 -1
  126. package/fesm5/taiga-ui-cdk-services.js +18 -5
  127. package/fesm5/taiga-ui-cdk-services.js.map +1 -1
  128. package/fesm5/taiga-ui-cdk-tokens.js +1 -2
  129. package/fesm5/taiga-ui-cdk-tokens.js.map +1 -1
  130. package/fesm5/taiga-ui-cdk-utils-focus.js +1 -1
  131. package/fesm5/taiga-ui-cdk-utils-focus.js.map +1 -1
  132. package/package.json +1 -1
  133. package/services/directive-styles.service.d.ts +7 -2
  134. package/services/taiga-ui-cdk-services.metadata.json +1 -1
  135. package/tokens/taiga-ui-cdk-tokens.metadata.json +1 -1
  136. package/utils/focus/get-closest-keyboard-focusable.d.ts +1 -1
  137. package/components/portal-host/portal-host.component.d.ts +0 -15
  138. package/components/portal-host/portal-host.module.d.ts +0 -2
  139. package/esm2015/components/portal-host/portal-host.component.js +0 -65
  140. package/esm2015/components/portal-host/portal-host.module.js +0 -13
  141. package/esm5/components/portal-host/portal-host.component.js +0 -71
  142. package/esm5/components/portal-host/portal-host.module.js +0 -16
@@ -0,0 +1,44 @@
1
+ var AbstractTuiPortalHostComponent_1;
2
+ import { __decorate, __param } from "tslib";
3
+ import { ComponentFactory, ComponentRef, Directive, ElementRef, EmbeddedViewRef, Inject, Injector, TemplateRef, ViewChild, ViewContainerRef, } from '@angular/core';
4
+ import { AbstractTuiPortalService } from './portal-service';
5
+ /**
6
+ * Abstract class for host element for dynamically created portals.
7
+ */
8
+ let AbstractTuiPortalHostComponent = AbstractTuiPortalHostComponent_1 = class AbstractTuiPortalHostComponent {
9
+ constructor(elementRef, portalService) {
10
+ this.elementRef = elementRef;
11
+ portalService.attach(this);
12
+ }
13
+ get clientRect() {
14
+ return this.elementRef.nativeElement.getBoundingClientRect();
15
+ }
16
+ addComponentChild(componentFactory, injector) {
17
+ return this.viewContainerRef.createComponent(componentFactory, undefined, Injector.create({
18
+ parent: injector,
19
+ providers: [
20
+ {
21
+ provide: AbstractTuiPortalHostComponent_1,
22
+ useValue: this,
23
+ },
24
+ ],
25
+ }));
26
+ }
27
+ addTemplateChild(templateRef, context) {
28
+ return this.viewContainerRef.createEmbeddedView(templateRef, context);
29
+ }
30
+ };
31
+ AbstractTuiPortalHostComponent.ctorParameters = () => [
32
+ { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
33
+ { type: AbstractTuiPortalService, decorators: [{ type: Inject, args: [AbstractTuiPortalService,] }] }
34
+ ];
35
+ __decorate([
36
+ ViewChild('viewContainer', { read: ViewContainerRef })
37
+ ], AbstractTuiPortalHostComponent.prototype, "viewContainerRef", void 0);
38
+ AbstractTuiPortalHostComponent = AbstractTuiPortalHostComponent_1 = __decorate([
39
+ Directive(),
40
+ __param(0, Inject(ElementRef)),
41
+ __param(1, Inject(AbstractTuiPortalService))
42
+ ], AbstractTuiPortalHostComponent);
43
+ export { AbstractTuiPortalHostComponent };
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLWhvc3QuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2Fic3RyYWN0LyIsInNvdXJjZXMiOlsicG9ydGFsLWhvc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQ0gsZ0JBQWdCLEVBQ2hCLFlBQVksRUFDWixTQUFTLEVBQ1QsVUFBVSxFQUNWLGVBQWUsRUFDZixNQUFNLEVBQ04sUUFBUSxFQUNSLFdBQVcsRUFDWCxTQUFTLEVBQ1QsZ0JBQWdCLEdBQ25CLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBRTFEOztHQUVHO0FBRUgsSUFBc0IsOEJBQThCLHNDQUFwRCxNQUFzQiw4QkFBOEI7SUFJaEQsWUFFYSxVQUFtQyxFQUNWLGFBQXVDO1FBRGhFLGVBQVUsR0FBVixVQUFVLENBQXlCO1FBRzVDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUNqRSxDQUFDO0lBRUQsaUJBQWlCLENBQ2IsZ0JBQXFDLEVBQ3JDLFFBQWtCO1FBRWxCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FDeEMsZ0JBQWdCLEVBQ2hCLFNBQVMsRUFDVCxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQ1osTUFBTSxFQUFFLFFBQVE7WUFDaEIsU0FBUyxFQUFFO2dCQUNQO29CQUNJLE9BQU8sRUFBRSxnQ0FBOEI7b0JBQ3ZDLFFBQVEsRUFBRSxJQUFJO2lCQUNqQjthQUNKO1NBQ0osQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDO0lBRUQsZ0JBQWdCLENBQUksV0FBMkIsRUFBRSxPQUFXO1FBQ3hELE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMxRSxDQUFDO0NBQ0osQ0FBQTs7WUFoQzRCLFVBQVUsdUJBRDlCLE1BQU0sU0FBQyxVQUFVO1lBRStCLHdCQUF3Qix1QkFBeEUsTUFBTSxTQUFDLHdCQUF3Qjs7QUFMcEM7SUFEQyxTQUFTLENBQUMsZUFBZSxFQUFFLEVBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFDLENBQUM7d0VBQ2pCO0FBRmxCLDhCQUE4QjtJQURuRCxTQUFTLEVBQUU7SUFNSCxXQUFBLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUVsQixXQUFBLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFBO0dBUG5CLDhCQUE4QixDQXNDbkQ7U0F0Q3FCLDhCQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50RmFjdG9yeSxcbiAgICBDb21wb25lbnRSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRW1iZWRkZWRWaWV3UmVmLFxuICAgIEluamVjdCxcbiAgICBJbmplY3RvcixcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7QWJzdHJhY3RUdWlQb3J0YWxTZXJ2aWNlfSBmcm9tICcuL3BvcnRhbC1zZXJ2aWNlJztcblxuLyoqXG4gKiBBYnN0cmFjdCBjbGFzcyBmb3IgaG9zdCBlbGVtZW50IGZvciBkeW5hbWljYWxseSBjcmVhdGVkIHBvcnRhbHMuXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0VHVpUG9ydGFsSG9zdENvbXBvbmVudCB7XG4gICAgQFZpZXdDaGlsZCgndmlld0NvbnRhaW5lcicsIHtyZWFkOiBWaWV3Q29udGFpbmVyUmVmfSlcbiAgICB2aWV3Q29udGFpbmVyUmVmITogVmlld0NvbnRhaW5lclJlZjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KEVsZW1lbnRSZWYpXG4gICAgICAgIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBASW5qZWN0KEFic3RyYWN0VHVpUG9ydGFsU2VydmljZSkgcG9ydGFsU2VydmljZTogQWJzdHJhY3RUdWlQb3J0YWxTZXJ2aWNlLFxuICAgICkge1xuICAgICAgICBwb3J0YWxTZXJ2aWNlLmF0dGFjaCh0aGlzKTtcbiAgICB9XG5cbiAgICBnZXQgY2xpZW50UmVjdCgpOiBDbGllbnRSZWN0IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIH1cblxuICAgIGFkZENvbXBvbmVudENoaWxkPEM+KFxuICAgICAgICBjb21wb25lbnRGYWN0b3J5OiBDb21wb25lbnRGYWN0b3J5PEM+LFxuICAgICAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgKTogQ29tcG9uZW50UmVmPEM+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQ8Qz4oXG4gICAgICAgICAgICBjb21wb25lbnRGYWN0b3J5LFxuICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgICAgICAgICAgICBwYXJlbnQ6IGluamVjdG9yLFxuICAgICAgICAgICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBBYnN0cmFjdFR1aVBvcnRhbEhvc3RDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICB1c2VWYWx1ZTogdGhpcyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgYWRkVGVtcGxhdGVDaGlsZDxDPih0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8Qz4sIGNvbnRleHQ/OiBDKTogRW1iZWRkZWRWaWV3UmVmPEM+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVFbWJlZGRlZFZpZXcodGVtcGxhdGVSZWYsIGNvbnRleHQpO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,34 @@
1
+ import { __decorate } from "tslib";
2
+ import { Injectable, } from '@angular/core';
3
+ import { TuiNoHostException } from '@taiga-ui/cdk/exceptions';
4
+ /**
5
+ * Abstract service for displaying portals
6
+ */
7
+ let AbstractTuiPortalService = class AbstractTuiPortalService {
8
+ get safeHost() {
9
+ if (!this.host) {
10
+ throw new TuiNoHostException();
11
+ }
12
+ return this.host;
13
+ }
14
+ attach(host) {
15
+ this.host = host;
16
+ }
17
+ add(componentFactory, injector) {
18
+ return this.safeHost.addComponentChild(componentFactory, injector);
19
+ }
20
+ remove({ hostView }) {
21
+ hostView.destroy();
22
+ }
23
+ addTemplate(templateRef, context) {
24
+ return this.safeHost.addTemplateChild(templateRef, context);
25
+ }
26
+ removeTemplate(viewRef) {
27
+ viewRef.destroy();
28
+ }
29
+ };
30
+ AbstractTuiPortalService = __decorate([
31
+ Injectable()
32
+ ], AbstractTuiPortalService);
33
+ export { AbstractTuiPortalService };
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLXNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2Fic3RyYWN0LyIsInNvdXJjZXMiOlsicG9ydGFsLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFJSCxVQUFVLEdBR2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFJNUQ7O0dBRUc7QUFFSCxJQUFzQix3QkFBd0IsR0FBOUMsTUFBc0Isd0JBQXdCO0lBRzFDLElBQWMsUUFBUTtRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNaLE1BQU0sSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1NBQ2xDO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBb0M7UUFDdkMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQUVELEdBQUcsQ0FBSSxnQkFBcUMsRUFBRSxRQUFrQjtRQUM1RCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELE1BQU0sQ0FBSSxFQUFDLFFBQVEsRUFBa0I7UUFDakMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxXQUFXLENBQUksV0FBMkIsRUFBRSxPQUFXO1FBQ25ELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELGNBQWMsQ0FBSSxPQUEyQjtRQUN6QyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDdEIsQ0FBQztDQUNKLENBQUE7QUE5QnFCLHdCQUF3QjtJQUQ3QyxVQUFVLEVBQUU7R0FDUyx3QkFBd0IsQ0E4QjdDO1NBOUJxQix3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudEZhY3RvcnksXG4gICAgQ29tcG9uZW50UmVmLFxuICAgIEVtYmVkZGVkVmlld1JlZixcbiAgICBJbmplY3RhYmxlLFxuICAgIEluamVjdG9yLFxuICAgIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VHVpTm9Ib3N0RXhjZXB0aW9ufSBmcm9tICdAdGFpZ2EtdWkvY2RrL2V4Y2VwdGlvbnMnO1xuXG5pbXBvcnQge0Fic3RyYWN0VHVpUG9ydGFsSG9zdENvbXBvbmVudH0gZnJvbSAnLi9wb3J0YWwtaG9zdCc7XG5cbi8qKlxuICogQWJzdHJhY3Qgc2VydmljZSBmb3IgZGlzcGxheWluZyBwb3J0YWxzXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdFR1aVBvcnRhbFNlcnZpY2Uge1xuICAgIHByb3RlY3RlZCBob3N0PzogQWJzdHJhY3RUdWlQb3J0YWxIb3N0Q29tcG9uZW50O1xuXG4gICAgcHJvdGVjdGVkIGdldCBzYWZlSG9zdCgpOiBBYnN0cmFjdFR1aVBvcnRhbEhvc3RDb21wb25lbnQge1xuICAgICAgICBpZiAoIXRoaXMuaG9zdCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFR1aU5vSG9zdEV4Y2VwdGlvbigpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaG9zdDtcbiAgICB9XG5cbiAgICBhdHRhY2goaG9zdDogQWJzdHJhY3RUdWlQb3J0YWxIb3N0Q29tcG9uZW50KSB7XG4gICAgICAgIHRoaXMuaG9zdCA9IGhvc3Q7XG4gICAgfVxuXG4gICAgYWRkPEM+KGNvbXBvbmVudEZhY3Rvcnk6IENvbXBvbmVudEZhY3Rvcnk8Qz4sIGluamVjdG9yOiBJbmplY3Rvcik6IENvbXBvbmVudFJlZjxDPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNhZmVIb3N0LmFkZENvbXBvbmVudENoaWxkKGNvbXBvbmVudEZhY3RvcnksIGluamVjdG9yKTtcbiAgICB9XG5cbiAgICByZW1vdmU8Qz4oe2hvc3RWaWV3fTogQ29tcG9uZW50UmVmPEM+KSB7XG4gICAgICAgIGhvc3RWaWV3LmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICBhZGRUZW1wbGF0ZTxDPih0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8Qz4sIGNvbnRleHQ/OiBDKTogRW1iZWRkZWRWaWV3UmVmPEM+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2FmZUhvc3QuYWRkVGVtcGxhdGVDaGlsZCh0ZW1wbGF0ZVJlZiwgY29udGV4dCk7XG4gICAgfVxuXG4gICAgcmVtb3ZlVGVtcGxhdGU8Qz4odmlld1JlZjogRW1iZWRkZWRWaWV3UmVmPEM+KSB7XG4gICAgICAgIHZpZXdSZWYuZGVzdHJveSgpO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,36 @@
1
+ import { __decorate } from "tslib";
2
+ import { ChangeDetectionStrategy, Component, ViewChild } from '@angular/core';
3
+ import { AbstractTuiPortalHostComponent, AbstractTuiPortalService, } from '@taiga-ui/cdk/abstract';
4
+ import { TuiPortalService } from '@taiga-ui/cdk/components/portal-host';
5
+ const BLANK_CLIENT_RECT = {
6
+ bottom: 0,
7
+ height: 0,
8
+ left: 0,
9
+ right: 0,
10
+ top: 0,
11
+ width: 0,
12
+ };
13
+ /**
14
+ * Host element for dynamically created portals, for example using {@link TuiDropdownDirective}.
15
+ */
16
+ let TuiDropdownHostComponent = class TuiDropdownHostComponent extends AbstractTuiPortalHostComponent {
17
+ fixedPositionOffset() {
18
+ var _a;
19
+ return (((_a = this.positionFixedOffsetRef) === null || _a === void 0 ? void 0 : _a.nativeElement.getBoundingClientRect()) ||
20
+ BLANK_CLIENT_RECT);
21
+ }
22
+ };
23
+ __decorate([
24
+ ViewChild('positionFixedOffset')
25
+ ], TuiDropdownHostComponent.prototype, "positionFixedOffsetRef", void 0);
26
+ TuiDropdownHostComponent = __decorate([
27
+ Component({
28
+ selector: 'tui-dropdown-host',
29
+ template: "<div #positionFixedOffset class=\"position-fixed-offset\"></div>\n<ng-content></ng-content>\n<ng-container #viewContainer></ng-container>\n",
30
+ changeDetection: ChangeDetectionStrategy.OnPush,
31
+ providers: [{ provide: AbstractTuiPortalService, useExisting: TuiPortalService }],
32
+ styles: [":host{position:relative;z-index:0;display:block;height:100%}:host:before{content:'';display:block;overflow:hidden}.position-fixed-offset{position:fixed;left:0;top:0;pointer-events:none;visibility:hidden;width:100%;height:100%}"]
33
+ })
34
+ ], TuiDropdownHostComponent);
35
+ export { TuiDropdownHostComponent };
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24taG9zdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2NvbXBvbmVudHMvZHJvcGRvd24taG9zdC8iLCJzb3VyY2VzIjpbImRyb3Bkb3duLWhvc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFjLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN4RixPQUFPLEVBQ0gsOEJBQThCLEVBQzlCLHdCQUF3QixHQUMzQixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBRXRFLE1BQU0saUJBQWlCLEdBQWU7SUFDbEMsTUFBTSxFQUFFLENBQUM7SUFDVCxNQUFNLEVBQUUsQ0FBQztJQUNULElBQUksRUFBRSxDQUFDO0lBQ1AsS0FBSyxFQUFFLENBQUM7SUFDUixHQUFHLEVBQUUsQ0FBQztJQUNOLEtBQUssRUFBRSxDQUFDO0NBQ1gsQ0FBQztBQUVGOztHQUVHO0FBUUgsSUFBYSx3QkFBd0IsR0FBckMsTUFBYSx3QkFBeUIsU0FBUSw4QkFBOEI7SUFJeEUsbUJBQW1COztRQUNmLE9BQU8sQ0FDSCxPQUFBLElBQUksQ0FBQyxzQkFBc0IsMENBQUUsYUFBYSxDQUFDLHFCQUFxQjtZQUNoRSxpQkFBaUIsQ0FDcEIsQ0FBQztJQUNOLENBQUM7Q0FDSixDQUFBO0FBUkc7SUFEQyxTQUFTLENBQUMscUJBQXFCLENBQUM7d0VBQ29DO0FBRjVELHdCQUF3QjtJQVBwQyxTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUsbUJBQW1CO1FBQzdCLHVKQUE0QztRQUU1QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtRQUMvQyxTQUFTLEVBQUUsQ0FBQyxFQUFDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUMsQ0FBQzs7S0FDbEYsQ0FBQztHQUNXLHdCQUF3QixDQVVwQztTQVZZLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlQb3J0YWxIb3N0Q29tcG9uZW50LFxuICAgIEFic3RyYWN0VHVpUG9ydGFsU2VydmljZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkay9hYnN0cmFjdCc7XG5pbXBvcnQge1R1aVBvcnRhbFNlcnZpY2V9IGZyb20gJ0B0YWlnYS11aS9jZGsvY29tcG9uZW50cy9wb3J0YWwtaG9zdCc7XG5cbmNvbnN0IEJMQU5LX0NMSUVOVF9SRUNUOiBDbGllbnRSZWN0ID0ge1xuICAgIGJvdHRvbTogMCxcbiAgICBoZWlnaHQ6IDAsXG4gICAgbGVmdDogMCxcbiAgICByaWdodDogMCxcbiAgICB0b3A6IDAsXG4gICAgd2lkdGg6IDAsXG59O1xuXG4vKipcbiAqIEhvc3QgZWxlbWVudCBmb3IgZHluYW1pY2FsbHkgY3JlYXRlZCBwb3J0YWxzLCBmb3IgZXhhbXBsZSB1c2luZyB7QGxpbmsgVHVpRHJvcGRvd25EaXJlY3RpdmV9LlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1kcm9wZG93bi1ob3N0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZHJvcGRvd24taG9zdC50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kcm9wZG93bi1ob3N0LnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFt7cHJvdmlkZTogQWJzdHJhY3RUdWlQb3J0YWxTZXJ2aWNlLCB1c2VFeGlzdGluZzogVHVpUG9ydGFsU2VydmljZX1dLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlEcm9wZG93bkhvc3RDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdFR1aVBvcnRhbEhvc3RDb21wb25lbnQge1xuICAgIEBWaWV3Q2hpbGQoJ3Bvc2l0aW9uRml4ZWRPZmZzZXQnKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgcG9zaXRpb25GaXhlZE9mZnNldFJlZj86IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gICAgZml4ZWRQb3NpdGlvbk9mZnNldCgpOiBDbGllbnRSZWN0IHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb25GaXhlZE9mZnNldFJlZj8ubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSB8fFxuICAgICAgICAgICAgQkxBTktfQ0xJRU5UX1JFQ1RcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,13 @@
1
+ import { __decorate } from "tslib";
2
+ import { NgModule } from '@angular/core';
3
+ import { TuiDropdownHostComponent } from './dropdown-host.component';
4
+ let TuiDropdownHostModule = class TuiDropdownHostModule {
5
+ };
6
+ TuiDropdownHostModule = __decorate([
7
+ NgModule({
8
+ declarations: [TuiDropdownHostComponent],
9
+ exports: [TuiDropdownHostComponent],
10
+ })
11
+ ], TuiDropdownHostModule);
12
+ export { TuiDropdownHostModule };
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24taG9zdC5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2NvbXBvbmVudHMvZHJvcGRvd24taG9zdC8iLCJzb3VyY2VzIjpbImRyb3Bkb3duLWhvc3QubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXZDLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBTW5FLElBQWEscUJBQXFCLEdBQWxDLE1BQWEscUJBQXFCO0NBQUcsQ0FBQTtBQUF4QixxQkFBcUI7SUFKakMsUUFBUSxDQUFDO1FBQ04sWUFBWSxFQUFFLENBQUMsd0JBQXdCLENBQUM7UUFDeEMsT0FBTyxFQUFFLENBQUMsd0JBQXdCLENBQUM7S0FDdEMsQ0FBQztHQUNXLHFCQUFxQixDQUFHO1NBQXhCLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1R1aURyb3Bkb3duSG9zdENvbXBvbmVudH0gZnJvbSAnLi9kcm9wZG93bi1ob3N0LmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbVHVpRHJvcGRvd25Ib3N0Q29tcG9uZW50XSxcbiAgICBleHBvcnRzOiBbVHVpRHJvcGRvd25Ib3N0Q29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpRHJvcGRvd25Ib3N0TW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,3 @@
1
+ export * from './dropdown-host.component';
2
+ export * from './dropdown-host.module';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2NvbXBvbmVudHMvZHJvcGRvd24taG9zdC8iLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZHJvcGRvd24taG9zdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9kcm9wZG93bi1ob3N0Lm1vZHVsZSc7XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFpZ2EtdWktY2RrLWNvbXBvbmVudHMtZHJvcGRvd24taG9zdC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvY29tcG9uZW50cy9kcm9wZG93bi1ob3N0LyIsInNvdXJjZXMiOlsidGFpZ2EtdWktY2RrLWNvbXBvbmVudHMtZHJvcGRvd24taG9zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -1,3 +1,4 @@
1
1
  export * from '@taiga-ui/cdk/components/dialog-host';
2
+ export * from '@taiga-ui/cdk/components/dropdown-host';
2
3
  export * from '@taiga-ui/cdk/components/portal-host';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2NvbXBvbmVudHMvIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsc0NBQXNDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkvY2RrL2NvbXBvbmVudHMvZGlhbG9nLWhvc3QnO1xuZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2Nkay9jb21wb25lbnRzL3BvcnRhbC1ob3N0JztcbiJdfQ==
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2NvbXBvbmVudHMvIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxzQ0FBc0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9jZGsvY29tcG9uZW50cy9kaWFsb2ctaG9zdCc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkvY2RrL2NvbXBvbmVudHMvZHJvcGRvd24taG9zdCc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkvY2RrL2NvbXBvbmVudHMvcG9ydGFsLWhvc3QnO1xuIl19
@@ -1,4 +1,2 @@
1
1
  export * from './portal.service';
2
- export * from './portal-host.component';
3
- export * from './portal-host.module';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2NvbXBvbmVudHMvcG9ydGFsLWhvc3QvIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcG9ydGFsLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9wb3J0YWwtaG9zdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9wb3J0YWwtaG9zdC5tb2R1bGUnO1xuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2NvbXBvbmVudHMvcG9ydGFsLWhvc3QvIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wb3J0YWwuc2VydmljZSc7XG4iXX0=
@@ -1,32 +1,12 @@
1
1
  import { __decorate } from "tslib";
2
- import { Injectable, } from '@angular/core';
3
- import { TuiNoHostException } from '@taiga-ui/cdk/exceptions';
2
+ import { Injectable } from '@angular/core';
3
+ import { AbstractTuiPortalService } from '@taiga-ui/cdk/abstract';
4
4
  import * as i0 from "@angular/core";
5
5
  /**
6
- * Service for displaying portals
6
+ * @deprecated create your own portal (see {@link https://taiga-ui.dev/portals Portals})
7
+ * TODO: replace with {@link TuiDropdownPortalService} in 3.0
7
8
  */
8
- let TuiPortalService = class TuiPortalService {
9
- get safeHost() {
10
- if (!this.host) {
11
- throw new TuiNoHostException();
12
- }
13
- return this.host;
14
- }
15
- attach(host) {
16
- this.host = host;
17
- }
18
- add(componentFactory, injector) {
19
- return this.safeHost.addComponentChild(componentFactory, injector);
20
- }
21
- remove({ hostView }) {
22
- hostView.destroy();
23
- }
24
- addTemplate(templateRef, context) {
25
- return this.safeHost.addTemplateChild(templateRef, context);
26
- }
27
- removeTemplate(viewRef) {
28
- viewRef.destroy();
29
- }
9
+ let TuiPortalService = class TuiPortalService extends AbstractTuiPortalService {
30
10
  };
31
11
  TuiPortalService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TuiPortalService_Factory() { return new TuiPortalService(); }, token: TuiPortalService, providedIn: "root" });
32
12
  TuiPortalService = __decorate([
@@ -35,4 +15,4 @@ TuiPortalService = __decorate([
35
15
  })
36
16
  ], TuiPortalService);
37
17
  export { TuiPortalService };
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2NvbXBvbmVudHMvcG9ydGFsLWhvc3QvIiwic291cmNlcyI6WyJwb3J0YWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUlILFVBQVUsR0FHYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQzs7QUFJNUQ7O0dBRUc7QUFJSCxJQUFhLGdCQUFnQixHQUE3QixNQUFhLGdCQUFnQjtJQUd6QixJQUFZLFFBQVE7UUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDWixNQUFNLElBQUksa0JBQWtCLEVBQUUsQ0FBQztTQUNsQztRQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNyQixDQUFDO0lBRUQsTUFBTSxDQUFDLElBQTRCO1FBQy9CLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxHQUFHLENBQUksZ0JBQXFDLEVBQUUsUUFBa0I7UUFDNUQsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxNQUFNLENBQUksRUFBQyxRQUFRLEVBQWtCO1FBQ2pDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsV0FBVyxDQUFJLFdBQTJCLEVBQUUsT0FBVztRQUNuRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxjQUFjLENBQUksT0FBMkI7UUFDekMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3RCLENBQUM7Q0FDSixDQUFBOztBQTlCWSxnQkFBZ0I7SUFINUIsVUFBVSxDQUFDO1FBQ1IsVUFBVSxFQUFFLE1BQU07S0FDckIsQ0FBQztHQUNXLGdCQUFnQixDQThCNUI7U0E5QlksZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnRGYWN0b3J5LFxuICAgIENvbXBvbmVudFJlZixcbiAgICBFbWJlZGRlZFZpZXdSZWYsXG4gICAgSW5qZWN0YWJsZSxcbiAgICBJbmplY3RvcixcbiAgICBUZW1wbGF0ZVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1R1aU5vSG9zdEV4Y2VwdGlvbn0gZnJvbSAnQHRhaWdhLXVpL2Nkay9leGNlcHRpb25zJztcblxuaW1wb3J0IHtUdWlQb3J0YWxIb3N0Q29tcG9uZW50fSBmcm9tICcuL3BvcnRhbC1ob3N0LmNvbXBvbmVudCc7XG5cbi8qKlxuICogU2VydmljZSBmb3IgZGlzcGxheWluZyBwb3J0YWxzXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFR1aVBvcnRhbFNlcnZpY2Uge1xuICAgIHByaXZhdGUgaG9zdD86IFR1aVBvcnRhbEhvc3RDb21wb25lbnQ7XG5cbiAgICBwcml2YXRlIGdldCBzYWZlSG9zdCgpOiBUdWlQb3J0YWxIb3N0Q29tcG9uZW50IHtcbiAgICAgICAgaWYgKCF0aGlzLmhvc3QpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUdWlOb0hvc3RFeGNlcHRpb24oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmhvc3Q7XG4gICAgfVxuXG4gICAgYXR0YWNoKGhvc3Q6IFR1aVBvcnRhbEhvc3RDb21wb25lbnQpIHtcbiAgICAgICAgdGhpcy5ob3N0ID0gaG9zdDtcbiAgICB9XG5cbiAgICBhZGQ8Qz4oY29tcG9uZW50RmFjdG9yeTogQ29tcG9uZW50RmFjdG9yeTxDPiwgaW5qZWN0b3I6IEluamVjdG9yKTogQ29tcG9uZW50UmVmPEM+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2FmZUhvc3QuYWRkQ29tcG9uZW50Q2hpbGQoY29tcG9uZW50RmFjdG9yeSwgaW5qZWN0b3IpO1xuICAgIH1cblxuICAgIHJlbW92ZTxDPih7aG9zdFZpZXd9OiBDb21wb25lbnRSZWY8Qz4pIHtcbiAgICAgICAgaG9zdFZpZXcuZGVzdHJveSgpO1xuICAgIH1cblxuICAgIGFkZFRlbXBsYXRlPEM+KHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxDPiwgY29udGV4dD86IEMpOiBFbWJlZGRlZFZpZXdSZWY8Qz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zYWZlSG9zdC5hZGRUZW1wbGF0ZUNoaWxkKHRlbXBsYXRlUmVmLCBjb250ZXh0KTtcbiAgICB9XG5cbiAgICByZW1vdmVUZW1wbGF0ZTxDPih2aWV3UmVmOiBFbWJlZGRlZFZpZXdSZWY8Qz4pIHtcbiAgICAgICAgdmlld1JlZi5kZXN0cm95KCk7XG4gICAgfVxufVxuIl19
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2NvbXBvbmVudHMvcG9ydGFsLWhvc3QvIiwic291cmNlcyI6WyJwb3J0YWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQzs7QUFFaEU7OztHQUdHO0FBSUgsSUFBYSxnQkFBZ0IsR0FBN0IsTUFBYSxnQkFBaUIsU0FBUSx3QkFBd0I7Q0FBRyxDQUFBOztBQUFwRCxnQkFBZ0I7SUFINUIsVUFBVSxDQUFDO1FBQ1IsVUFBVSxFQUFFLE1BQU07S0FDckIsQ0FBQztHQUNXLGdCQUFnQixDQUFvQztTQUFwRCxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBYnN0cmFjdFR1aVBvcnRhbFNlcnZpY2V9IGZyb20gJ0B0YWlnYS11aS9jZGsvYWJzdHJhY3QnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIGNyZWF0ZSB5b3VyIG93biBwb3J0YWwgKHNlZSB7QGxpbmsgaHR0cHM6Ly90YWlnYS11aS5kZXYvcG9ydGFscyBQb3J0YWxzfSlcbiAqIFRPRE86IHJlcGxhY2Ugd2l0aCB7QGxpbmsgVHVpRHJvcGRvd25Qb3J0YWxTZXJ2aWNlfSBpbiAzLjBcbiAqL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgVHVpUG9ydGFsU2VydmljZSBleHRlbmRzIEFic3RyYWN0VHVpUG9ydGFsU2VydmljZSB7fVxuIl19
@@ -96,8 +96,8 @@ export class TuiTime {
96
96
  const needAddMs = mode === 'HH:MM:SS.MSS' || (!mode && this.ms > 0);
97
97
  const needAddSeconds = needAddMs || mode === 'HH:MM:SS' || (!mode && this.seconds > 0);
98
98
  return (`${this.formatTime(this.hours)}:${this.formatTime(this.minutes)}` +
99
- `${needAddSeconds ? ':' + this.formatTime(this.seconds) : ''}` +
100
- `${needAddMs ? '.' + this.formatTime(this.ms, 3) : ''}`);
99
+ `${needAddSeconds ? `:${this.formatTime(this.seconds)}` : ''}` +
100
+ `${needAddMs ? `.${this.formatTime(this.ms, 3)}` : ''}`);
101
101
  }
102
102
  /**
103
103
  * Converts TuiTime to milliseconds
@@ -112,4 +112,4 @@ export class TuiTime {
112
112
  return padStart(String(time), digits, '0');
113
113
  }
114
114
  }
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvZGF0ZS10aW1lLyIsInNvdXJjZXMiOlsidGltZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFHaEQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUVqRCxPQUFPLEVBQ0gsWUFBWSxFQUNaLG1CQUFtQixFQUNuQixvQkFBb0IsRUFDcEIsc0JBQXNCLEVBQ3RCLGVBQWUsRUFDZixpQkFBaUIsR0FDcEIsTUFBTSxhQUFhLENBQUM7QUFFckI7O0dBRUc7QUFDSCxNQUFNLE9BQU8sT0FBTztJQUNoQixZQUNhLEtBQWEsRUFDYixPQUFlLEVBQ2YsVUFBa0IsQ0FBQyxFQUNuQixLQUFhLENBQUM7UUFIZCxVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2IsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDbkIsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUV2QixTQUFTLENBQUMsTUFBTSxDQUNaLE9BQU8sQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLEVBQ2hELDZCQUE2QixFQUM3QixLQUFLLEVBQ0wsT0FBTyxFQUNQLE9BQU8sRUFDUCxFQUFFLENBQ0wsQ0FBQztJQUNOLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxXQUFXLENBQ2QsS0FBYSxFQUNiLE9BQWUsRUFDZixVQUFrQixDQUFDLEVBQ25CLEtBQWEsQ0FBQztRQUVkLE9BQU8sQ0FDSCxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztZQUN2QixPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxZQUFZLENBQUM7WUFDL0IsTUFBTSxDQUFDLFNBQVMsQ0FB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QUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDMUQsQ0FBQztJQUNOLENBQUM7SUFFRDs7T0FFRztJQUNILHNCQUFzQjtRQUNsQixPQUFPLENBQ0gsSUFBSSxDQUFDLEtBQUssR0FBRyxvQkFBb0I7WUFDakMsSUFBSSxDQUFDLE9BQU8sR0FBRyxzQkFBc0I7WUFDckMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJO1lBQ25CLElBQUksQ0FBQyxFQUFFLENBQ1YsQ0FBQztJQUNOLENBQUM7SUFFTyxVQUFVLENBQUMsSUFBWSxFQUFFLFNBQWlCLENBQUM7UUFDL0MsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMvQyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3R1aUFzc2VydH0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jbGFzc2VzJztcbmltcG9ydCB7VHVpVGltZUxpa2V9IGZyb20gJ0B0YWlnYS11aS9jZGsvaW50ZXJmYWNlcyc7XG5pbXBvcnQge1R1aVRpbWVNb2RlfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3R5cGVzJztcbmltcG9ydCB7cGFkU3RhcnR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvZm9ybWF0JztcbmltcG9ydCB7aW5SYW5nZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9tYXRoJztcblxuaW1wb3J0IHtcbiAgICBIT1VSU19JTl9EQVksXG4gICAgTUlMTElTRUNPTkRTX0lOX0RBWSxcbiAgICBNSUxMSVNFQ09ORFNfSU5fSE9VUixcbiAgICBNSUxMSVNFQ09ORFNfSU5fTUlOVVRFLFxuICAgIE1JTlVURVNfSU5fSE9VUixcbiAgICBTRUNPTkRTX0lOX01JTlVURSxcbn0gZnJvbSAnLi9kYXRlLXRpbWUnO1xuXG4vKipcbiAqIEltbXV0YWJsZSB0aW1lIG9iamVjdCB3aXRoIGhvdXJzLCBtaW51dGVzLCBzZWNvbmRzIGFuZCBtc1xuICovXG5leHBvcnQgY2xhc3MgVHVpVGltZSBpbXBsZW1lbnRzIFR1aVRpbWVMaWtlIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcmVhZG9ubHkgaG91cnM6IG51bWJlcixcbiAgICAgICAgcmVhZG9ubHkgbWludXRlczogbnVtYmVyLFxuICAgICAgICByZWFkb25seSBzZWNvbmRzOiBudW1iZXIgPSAwLFxuICAgICAgICByZWFkb25seSBtczogbnVtYmVyID0gMCxcbiAgICApIHtcbiAgICAgICAgdHVpQXNzZXJ0LmFzc2VydChcbiAgICAgICAgICAgIFR1aVRpbWUuaXNWYWxpZFRpbWUoaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMsIG1zKSxcbiAgICAgICAgICAgICdUaW1lIG11c3QgYmUgcmVhbCwgYnV0IGdvdDonLFxuICAgICAgICAgICAgaG91cnMsXG4gICAgICAgICAgICBtaW51dGVzLFxuICAgICAgICAgICAgc2Vjb25kcyxcbiAgICAgICAgICAgIG1zLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiB0aW1lIGlzIHZhbGlkXG4gICAgICovXG4gICAgc3RhdGljIGlzVmFsaWRUaW1lKFxuICAgICAgICBob3VyczogbnVtYmVyLFxuICAgICAgICBtaW51dGVzOiBudW1iZXIsXG4gICAgICAgIHNlY29uZHM6IG51bWJlciA9IDAsXG4gICAgICAgIG1zOiBudW1iZXIgPSAwLFxuICAgICk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgTnVtYmVyLmlzSW50ZWdlcihob3VycykgJiZcbiAgICAgICAgICAgIGluUmFuZ2UoaG91cnMsIDAsIEhPVVJTX0lOX0RBWSkgJiZcbiAgICAgICAgICAgIE51bWJlci5pc0ludGVnZXIobWludXRlcykgJiZcbiAgICAgICAgICAgIGluUmFuZ2UobWludXRlcywgMCwgTUlOVVRFU19JTl9IT1VSKSAmJlxuICAgICAgICAgICAgTnVtYmVyLmlzSW50ZWdlcihzZWNvbmRzKSAmJlxuICAgICAgICAgICAgaW5SYW5nZShzZWNvbmRzLCAwLCBTRUNPTkRTX0lOX01JTlVURSkgJiZcbiAgICAgICAgICAgIE51bWJlci5pc0ludGVnZXIobXMpICYmXG4gICAgICAgICAgICBpblJhbmdlKG1zLCAwLCAxMDAwKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEN1cnJlbnQgVVRDIHRpbWUuXG4gICAgICovXG4gICAgc3RhdGljIGN1cnJlbnQoKTogVHVpVGltZSB7XG4gICAgICAgIHJldHVybiBUdWlUaW1lLmZyb21BYnNvbHV0ZU1pbGxpc2Vjb25kcyhEYXRlLm5vdygpICUgTUlMTElTRUNPTkRTX0lOX0RBWSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3VycmVudCB0aW1lIGluIGxvY2FsIHRpbWV6b25lXG4gICAgICovXG4gICAgc3RhdGljIGN1cnJlbnRMb2NhbCgpOiBUdWlUaW1lIHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKCk7XG5cbiAgICAgICAgcmV0dXJuIFR1aVRpbWUuZnJvbUFic29sdXRlTWlsbGlzZWNvbmRzKFxuICAgICAgICAgICAgKERhdGUubm93KCkgLSBkYXRlLmdldFRpbWV6b25lT2Zmc2V0KCkgKiBNSUxMSVNFQ09ORFNfSU5fTUlOVVRFKSAlXG4gICAgICAgICAgICAgICAgTUlMTElTRUNPTkRTX0lOX0RBWSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxjdWxhdGVzIFR1aVRpbWUgZnJvbSBtaWxsaXNlY29uZHNcbiAgICAgKi9cbiAgICBzdGF0aWMgZnJvbUFic29sdXRlTWlsbGlzZWNvbmRzKG1pbGxpc2Vjb25kczogbnVtYmVyKTogVHVpVGltZSB7XG4gICAgICAgIHR1aUFzc2VydC5hc3NlcnQoTnVtYmVyLmlzSW50ZWdlcihtaWxsaXNlY29uZHMpKTtcbiAgICAgICAgdHVpQXNzZXJ0LmFzc2VydChcbiAgICAgICAgICAgIGluUmFuZ2UobWlsbGlzZWNvbmRzLCAwLCBNSUxMSVNFQ09ORFNfSU5fREFZKSxcbiAgICAgICAgICAgIGBNaWxsaXNlY29uZHMgbXVzdCBiZSBiZWxvdyAke01JTExJU0VDT05EU19JTl9EQVl9IChtaWxsaXNlY29uZHMgaW4gYSBkYXkpLmAsXG4gICAgICAgICk7XG5cbiAgICAgICAgY29uc3QgaG91cnMgPSBNYXRoLmZsb29yKG1pbGxpc2Vjb25kcyAvIE1JTExJU0VDT05EU19JTl9IT1VSKTtcbiAgICAgICAgY29uc3QgbWludXRlcyA9IE1hdGguZmxvb3IoXG4gICAgICAgICAgICAobWlsbGlzZWNvbmRzICUgTUlMTElTRUNPTkRTX0lOX0hPVVIpIC8gTUlMTElTRUNPTkRTX0lOX01JTlVURSxcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3Qgc2Vjb25kcyA9XG4gICAgICAgICAgICBNYXRoLmZsb29yKFxuICAgICAgICAgICAgICAgICgobWlsbGlzZWNvbmRzICUgTUlMTElTRUNPTkRTX0lOX0hPVVIpICUgTUlMTElTRUNPTkRTX0lOX01JTlVURSkgLyAxMDAwLFxuICAgICAgICAgICAgKSB8fCAwO1xuICAgICAgICBjb25zdCBtcyA9XG4gICAgICAgICAgICBNYXRoLmZsb29yKFxuICAgICAgICAgICAgICAgICgobWlsbGlzZWNvbmRzICUgTUlMTElTRUNPTkRTX0lOX0hPVVIpICUgTUlMTElTRUNPTkRTX0lOX01JTlVURSkgJSAxMDAwLFxuICAgICAgICAgICAgKSB8fCAwO1xuXG4gICAgICAgIHJldHVybiBuZXcgVHVpVGltZShob3VycywgbWludXRlcywgc2Vjb25kcywgbXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBhcnNlcyBzdHJpbmcgaW50byBUdWlUaW1lIG9iamVjdFxuICAgICAqL1xuICAgIHN0YXRpYyBmcm9tU3RyaW5nKHRpbWU6IHN0cmluZyk6IFR1aVRpbWUge1xuICAgICAgICBjb25zdCBob3VycyA9IE51bWJlcih0aW1lLnNsaWNlKDAsIDIpKTtcbiAgICAgICAgY29uc3QgbWludXRlcyA9IE51bWJlcih0aW1lLnNsaWNlKDMsIDUpKTtcbiAgICAgICAgY29uc3Qgc2Vjb25kcyA9IE51bWJlcih0aW1lLnNsaWNlKDYsIDgpKSB8fCAwO1xuICAgICAgICBjb25zdCBtcyA9IE51bWJlcih0aW1lLnNsaWNlKDksIDEyKSkgfHwgMDtcblxuICAgICAgICByZXR1cm4gbmV3IFR1aVRpbWUoaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMsIG1zKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBEYXRlIG9iamVjdCBpbnRvIFR1aVRpbWVcbiAgICAgKiBAcGFyYW0gZGF0ZVxuICAgICAqL1xuICAgIHN0YXRpYyBmcm9tTG9jYWxOYXRpdmVEYXRlKGRhdGU6IERhdGUpOiBUdWlUaW1lIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUdWlUaW1lKFxuICAgICAgICAgICAgZGF0ZS5nZXRIb3VycygpLFxuICAgICAgICAgICAgZGF0ZS5nZXRNaW51dGVzKCksXG4gICAgICAgICAgICBkYXRlLmdldFNlY29uZHMoKSxcbiAgICAgICAgICAgIGRhdGUuZ2V0TWlsbGlzZWNvbmRzKCksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2hpZnRzIHRpbWUgYnkgaG91cnMgYW5kIG1pbnV0ZXNcbiAgICAgKi9cbiAgICBzaGlmdCh7aG91cnMgPSAwLCBtaW51dGVzID0gMCwgc2Vjb25kcyA9IDAsIG1zID0gMH06IFR1aVRpbWVMaWtlKTogVHVpVGltZSB7XG4gICAgICAgIGNvbnN0IG5ld01zID0gKDEwMDAgKyB0aGlzLm1zICsgKG1zICUgMTAwMCkpICUgMTAwMDtcblxuICAgICAgICBjb25zdCBzZWNvbmRzSW5NcyA9IG1zIDwgMCA/IE1hdGguY2VpbChtcyAvIDEwMDApIDogTWF0aC5mbG9vcihtcyAvIDEwMDApO1xuICAgICAgICBjb25zdCBzZWNvbmRzVG9BZGQgPSBzZWNvbmRzSW5NcyArIHNlY29uZHM7XG4gICAgICAgIGNvbnN0IG5ld1NlY29uZHMgPSAoNjAgKyB0aGlzLnNlY29uZHMgKyAoc2Vjb25kc1RvQWRkICUgNjApKSAlIDYwO1xuXG4gICAgICAgIGNvbnN0IG1pbnV0ZXNJblNlY29uZHMgPVxuICAgICAgICAgICAgc2Vjb25kc1RvQWRkIDwgMFxuICAgICAgICAgICAgICAgID8gTWF0aC5jZWlsKHNlY29uZHNUb0FkZCAvIDYwKVxuICAgICAgICAgICAgICAgIDogTWF0aC5mbG9vcihzZWNvbmRzVG9BZGQgLyA2MCk7XG4gICAgICAgIGNvbnN0IG1pbnV0ZXNUb0FkZCA9IG1pbnV0ZXNJblNlY29uZHMgKyBtaW51dGVzO1xuICAgICAgICBjb25zdCBuZXdNaW51dGVzID0gKDYwICsgdGhpcy5taW51dGVzICsgKG1pbnV0ZXNUb0FkZCAlIDYwKSkgJSA2MDtcblxuICAgICAgICBjb25zdCBob3Vyc0luTWludXRlcyA9XG4gICAgICAgICAgICBtaW51dGVzVG9BZGQgPCAwXG4gICAgICAgICAgICAgICAgPyBNYXRoLmNlaWwobWludXRlc1RvQWRkIC8gNjApXG4gICAgICAgICAgICAgICAgOiBNYXRoLmZsb29yKG1pbnV0ZXNUb0FkZCAvIDYwKTtcbiAgICAgICAgY29uc3QgaG91cnNUb0FkZCA9IGhvdXJzSW5NaW51dGVzICsgaG91cnM7XG4gICAgICAgIGNvbnN0IG5ld0hvdXJzID0gKDI0ICsgdGhpcy5ob3VycyArIChob3Vyc1RvQWRkICUgMjQpKSAlIDI0O1xuXG4gICAgICAgIHJldHVybiBuZXcgVHVpVGltZShuZXdIb3VycywgbmV3TWludXRlcywgbmV3U2Vjb25kcywgbmV3TXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIFR1aVRpbWUgdG8gc3RyaW5nXG4gICAgICovXG4gICAgdG9TdHJpbmcobW9kZT86IFR1aVRpbWVNb2RlKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgbmVlZEFkZE1zID0gbW9kZSA9PT0gJ0hIOk1NOlNTLk1TUycgfHwgKCFtb2RlICYmIHRoaXMubXMgPiAwKTtcbiAgICAgICAgY29uc3QgbmVlZEFkZFNlY29uZHMgPVxuICAgICAgICAgICAgbmVlZEFkZE1zIHx8IG1vZGUgPT09ICdISDpNTTpTUycgfHwgKCFtb2RlICYmIHRoaXMuc2Vjb25kcyA+IDApO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBgJHt0aGlzLmZvcm1hdFRpbWUodGhpcy5ob3Vycyl9OiR7dGhpcy5mb3JtYXRUaW1lKHRoaXMubWludXRlcyl9YCArXG4gICAgICAgICAgICBgJHtuZWVkQWRkU2Vjb25kcyA/ICc6JyArIHRoaXMuZm9ybWF0VGltZSh0aGlzLnNlY29uZHMpIDogJyd9YCArXG4gICAgICAgICAgICBgJHtuZWVkQWRkTXMgPyAnLicgKyB0aGlzLmZvcm1hdFRpbWUodGhpcy5tcywgMykgOiAnJ31gXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgVHVpVGltZSB0byBtaWxsaXNlY29uZHNcbiAgICAgKi9cbiAgICB0b0Fic29sdXRlTWlsbGlzZWNvbmRzKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLmhvdXJzICogTUlMTElTRUNPTkRTX0lOX0hPVVIgK1xuICAgICAgICAgICAgdGhpcy5taW51dGVzICogTUlMTElTRUNPTkRTX0lOX01JTlVURSArXG4gICAgICAgICAgICB0aGlzLnNlY29uZHMgKiAxMDAwICtcbiAgICAgICAgICAgIHRoaXMubXNcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZvcm1hdFRpbWUodGltZTogbnVtYmVyLCBkaWdpdHM6IG51bWJlciA9IDIpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gcGFkU3RhcnQoU3RyaW5nKHRpbWUpLCBkaWdpdHMsICcwJyk7XG4gICAgfVxufVxuIl19
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvZGF0ZS10aW1lLyIsInNvdXJjZXMiOlsidGltZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFHaEQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUVqRCxPQUFPLEVBQ0gsWUFBWSxFQUNaLG1CQUFtQixFQUNuQixvQkFBb0IsRUFDcEIsc0JBQXNCLEVBQ3RCLGVBQWUsRUFDZixpQkFBaUIsR0FDcEIsTUFBTSxhQUFhLENBQUM7QUFFckI7O0dBRUc7QUFDSCxNQUFNLE9BQU8sT0FBTztJQUNoQixZQUNhLEtBQWEsRUFDYixPQUFlLEVBQ2YsVUFBa0IsQ0FBQyxFQUNuQixLQUFhLENBQUM7UUFIZCxVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2IsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDbkIsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUV2QixTQUFTLENBQUMsTUFBTSxDQUNaLE9BQU8sQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLEVBQ2hELDZCQUE2QixFQUM3QixLQUFLLEVBQ0wsT0FBTyxFQUNQLE9BQU8sRUFDUCxFQUFFLENBQ0wsQ0FBQztJQUNOLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxXQUFXLENBQ2QsS0FBYSxFQUNiLE9BQWUsRUFDZixVQUFrQixDQUFDLEVBQ25CLEtBQWEsQ0FBQztRQUVkLE9BQU8sQ0FDSCxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztZQUN2QixPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxZQUFZLENBQUM7WUFDL0IsTUFBTSxDQUFDLFNBQVMsQ0FB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QUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDMUQsQ0FBQztJQUNOLENBQUM7SUFFRDs7T0FFRztJQUNILHNCQUFzQjtRQUNsQixPQUFPLENBQ0gsSUFBSSxDQUFDLEtBQUssR0FBRyxvQkFBb0I7WUFDakMsSUFBSSxDQUFDLE9BQU8sR0FBRyxzQkFBc0I7WUFDckMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJO1lBQ25CLElBQUksQ0FBQyxFQUFFLENBQ1YsQ0FBQztJQUNOLENBQUM7SUFFTyxVQUFVLENBQUMsSUFBWSxFQUFFLFNBQWlCLENBQUM7UUFDL0MsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMvQyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3R1aUFzc2VydH0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jbGFzc2VzJztcbmltcG9ydCB7VHVpVGltZUxpa2V9IGZyb20gJ0B0YWlnYS11aS9jZGsvaW50ZXJmYWNlcyc7XG5pbXBvcnQge1R1aVRpbWVNb2RlfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3R5cGVzJztcbmltcG9ydCB7cGFkU3RhcnR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvZm9ybWF0JztcbmltcG9ydCB7aW5SYW5nZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9tYXRoJztcblxuaW1wb3J0IHtcbiAgICBIT1VSU19JTl9EQVksXG4gICAgTUlMTElTRUNPTkRTX0lOX0RBWSxcbiAgICBNSUxMSVNFQ09ORFNfSU5fSE9VUixcbiAgICBNSUxMSVNFQ09ORFNfSU5fTUlOVVRFLFxuICAgIE1JTlVURVNfSU5fSE9VUixcbiAgICBTRUNPTkRTX0lOX01JTlVURSxcbn0gZnJvbSAnLi9kYXRlLXRpbWUnO1xuXG4vKipcbiAqIEltbXV0YWJsZSB0aW1lIG9iamVjdCB3aXRoIGhvdXJzLCBtaW51dGVzLCBzZWNvbmRzIGFuZCBtc1xuICovXG5leHBvcnQgY2xhc3MgVHVpVGltZSBpbXBsZW1lbnRzIFR1aVRpbWVMaWtlIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcmVhZG9ubHkgaG91cnM6IG51bWJlcixcbiAgICAgICAgcmVhZG9ubHkgbWludXRlczogbnVtYmVyLFxuICAgICAgICByZWFkb25seSBzZWNvbmRzOiBudW1iZXIgPSAwLFxuICAgICAgICByZWFkb25seSBtczogbnVtYmVyID0gMCxcbiAgICApIHtcbiAgICAgICAgdHVpQXNzZXJ0LmFzc2VydChcbiAgICAgICAgICAgIFR1aVRpbWUuaXNWYWxpZFRpbWUoaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMsIG1zKSxcbiAgICAgICAgICAgICdUaW1lIG11c3QgYmUgcmVhbCwgYnV0IGdvdDonLFxuICAgICAgICAgICAgaG91cnMsXG4gICAgICAgICAgICBtaW51dGVzLFxuICAgICAgICAgICAgc2Vjb25kcyxcbiAgICAgICAgICAgIG1zLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiB0aW1lIGlzIHZhbGlkXG4gICAgICovXG4gICAgc3RhdGljIGlzVmFsaWRUaW1lKFxuICAgICAgICBob3VyczogbnVtYmVyLFxuICAgICAgICBtaW51dGVzOiBudW1iZXIsXG4gICAgICAgIHNlY29uZHM6IG51bWJlciA9IDAsXG4gICAgICAgIG1zOiBudW1iZXIgPSAwLFxuICAgICk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgTnVtYmVyLmlzSW50ZWdlcihob3VycykgJiZcbiAgICAgICAgICAgIGluUmFuZ2UoaG91cnMsIDAsIEhPVVJTX0lOX0RBWSkgJiZcbiAgICAgICAgICAgIE51bWJlci5pc0ludGVnZXIobWludXRlcykgJiZcbiAgICAgICAgICAgIGluUmFuZ2UobWludXRlcywgMCwgTUlOVVRFU19JTl9IT1VSKSAmJlxuICAgICAgICAgICAgTnVtYmVyLmlzSW50ZWdlcihzZWNvbmRzKSAmJlxuICAgICAgICAgICAgaW5SYW5nZShzZWNvbmRzLCAwLCBTRUNPTkRTX0lOX01JTlVURSkgJiZcbiAgICAgICAgICAgIE51bWJlci5pc0ludGVnZXIobXMpICYmXG4gICAgICAgICAgICBpblJhbmdlKG1zLCAwLCAxMDAwKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEN1cnJlbnQgVVRDIHRpbWUuXG4gICAgICovXG4gICAgc3RhdGljIGN1cnJlbnQoKTogVHVpVGltZSB7XG4gICAgICAgIHJldHVybiBUdWlUaW1lLmZyb21BYnNvbHV0ZU1pbGxpc2Vjb25kcyhEYXRlLm5vdygpICUgTUlMTElTRUNPTkRTX0lOX0RBWSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3VycmVudCB0aW1lIGluIGxvY2FsIHRpbWV6b25lXG4gICAgICovXG4gICAgc3RhdGljIGN1cnJlbnRMb2NhbCgpOiBUdWlUaW1lIHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKCk7XG5cbiAgICAgICAgcmV0dXJuIFR1aVRpbWUuZnJvbUFic29sdXRlTWlsbGlzZWNvbmRzKFxuICAgICAgICAgICAgKERhdGUubm93KCkgLSBkYXRlLmdldFRpbWV6b25lT2Zmc2V0KCkgKiBNSUxMSVNFQ09ORFNfSU5fTUlOVVRFKSAlXG4gICAgICAgICAgICAgICAgTUlMTElTRUNPTkRTX0lOX0RBWSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxjdWxhdGVzIFR1aVRpbWUgZnJvbSBtaWxsaXNlY29uZHNcbiAgICAgKi9cbiAgICBzdGF0aWMgZnJvbUFic29sdXRlTWlsbGlzZWNvbmRzKG1pbGxpc2Vjb25kczogbnVtYmVyKTogVHVpVGltZSB7XG4gICAgICAgIHR1aUFzc2VydC5hc3NlcnQoTnVtYmVyLmlzSW50ZWdlcihtaWxsaXNlY29uZHMpKTtcbiAgICAgICAgdHVpQXNzZXJ0LmFzc2VydChcbiAgICAgICAgICAgIGluUmFuZ2UobWlsbGlzZWNvbmRzLCAwLCBNSUxMSVNFQ09ORFNfSU5fREFZKSxcbiAgICAgICAgICAgIGBNaWxsaXNlY29uZHMgbXVzdCBiZSBiZWxvdyAke01JTExJU0VDT05EU19JTl9EQVl9IChtaWxsaXNlY29uZHMgaW4gYSBkYXkpLmAsXG4gICAgICAgICk7XG5cbiAgICAgICAgY29uc3QgaG91cnMgPSBNYXRoLmZsb29yKG1pbGxpc2Vjb25kcyAvIE1JTExJU0VDT05EU19JTl9IT1VSKTtcbiAgICAgICAgY29uc3QgbWludXRlcyA9IE1hdGguZmxvb3IoXG4gICAgICAgICAgICAobWlsbGlzZWNvbmRzICUgTUlMTElTRUNPTkRTX0lOX0hPVVIpIC8gTUlMTElTRUNPTkRTX0lOX01JTlVURSxcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3Qgc2Vjb25kcyA9XG4gICAgICAgICAgICBNYXRoLmZsb29yKFxuICAgICAgICAgICAgICAgICgobWlsbGlzZWNvbmRzICUgTUlMTElTRUNPTkRTX0lOX0hPVVIpICUgTUlMTElTRUNPTkRTX0lOX01JTlVURSkgLyAxMDAwLFxuICAgICAgICAgICAgKSB8fCAwO1xuICAgICAgICBjb25zdCBtcyA9XG4gICAgICAgICAgICBNYXRoLmZsb29yKFxuICAgICAgICAgICAgICAgICgobWlsbGlzZWNvbmRzICUgTUlMTElTRUNPTkRTX0lOX0hPVVIpICUgTUlMTElTRUNPTkRTX0lOX01JTlVURSkgJSAxMDAwLFxuICAgICAgICAgICAgKSB8fCAwO1xuXG4gICAgICAgIHJldHVybiBuZXcgVHVpVGltZShob3VycywgbWludXRlcywgc2Vjb25kcywgbXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBhcnNlcyBzdHJpbmcgaW50byBUdWlUaW1lIG9iamVjdFxuICAgICAqL1xuICAgIHN0YXRpYyBmcm9tU3RyaW5nKHRpbWU6IHN0cmluZyk6IFR1aVRpbWUge1xuICAgICAgICBjb25zdCBob3VycyA9IE51bWJlcih0aW1lLnNsaWNlKDAsIDIpKTtcbiAgICAgICAgY29uc3QgbWludXRlcyA9IE51bWJlcih0aW1lLnNsaWNlKDMsIDUpKTtcbiAgICAgICAgY29uc3Qgc2Vjb25kcyA9IE51bWJlcih0aW1lLnNsaWNlKDYsIDgpKSB8fCAwO1xuICAgICAgICBjb25zdCBtcyA9IE51bWJlcih0aW1lLnNsaWNlKDksIDEyKSkgfHwgMDtcblxuICAgICAgICByZXR1cm4gbmV3IFR1aVRpbWUoaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMsIG1zKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBEYXRlIG9iamVjdCBpbnRvIFR1aVRpbWVcbiAgICAgKiBAcGFyYW0gZGF0ZVxuICAgICAqL1xuICAgIHN0YXRpYyBmcm9tTG9jYWxOYXRpdmVEYXRlKGRhdGU6IERhdGUpOiBUdWlUaW1lIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUdWlUaW1lKFxuICAgICAgICAgICAgZGF0ZS5nZXRIb3VycygpLFxuICAgICAgICAgICAgZGF0ZS5nZXRNaW51dGVzKCksXG4gICAgICAgICAgICBkYXRlLmdldFNlY29uZHMoKSxcbiAgICAgICAgICAgIGRhdGUuZ2V0TWlsbGlzZWNvbmRzKCksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2hpZnRzIHRpbWUgYnkgaG91cnMgYW5kIG1pbnV0ZXNcbiAgICAgKi9cbiAgICBzaGlmdCh7aG91cnMgPSAwLCBtaW51dGVzID0gMCwgc2Vjb25kcyA9IDAsIG1zID0gMH06IFR1aVRpbWVMaWtlKTogVHVpVGltZSB7XG4gICAgICAgIGNvbnN0IG5ld01zID0gKDEwMDAgKyB0aGlzLm1zICsgKG1zICUgMTAwMCkpICUgMTAwMDtcblxuICAgICAgICBjb25zdCBzZWNvbmRzSW5NcyA9IG1zIDwgMCA/IE1hdGguY2VpbChtcyAvIDEwMDApIDogTWF0aC5mbG9vcihtcyAvIDEwMDApO1xuICAgICAgICBjb25zdCBzZWNvbmRzVG9BZGQgPSBzZWNvbmRzSW5NcyArIHNlY29uZHM7XG4gICAgICAgIGNvbnN0IG5ld1NlY29uZHMgPSAoNjAgKyB0aGlzLnNlY29uZHMgKyAoc2Vjb25kc1RvQWRkICUgNjApKSAlIDYwO1xuXG4gICAgICAgIGNvbnN0IG1pbnV0ZXNJblNlY29uZHMgPVxuICAgICAgICAgICAgc2Vjb25kc1RvQWRkIDwgMFxuICAgICAgICAgICAgICAgID8gTWF0aC5jZWlsKHNlY29uZHNUb0FkZCAvIDYwKVxuICAgICAgICAgICAgICAgIDogTWF0aC5mbG9vcihzZWNvbmRzVG9BZGQgLyA2MCk7XG4gICAgICAgIGNvbnN0IG1pbnV0ZXNUb0FkZCA9IG1pbnV0ZXNJblNlY29uZHMgKyBtaW51dGVzO1xuICAgICAgICBjb25zdCBuZXdNaW51dGVzID0gKDYwICsgdGhpcy5taW51dGVzICsgKG1pbnV0ZXNUb0FkZCAlIDYwKSkgJSA2MDtcblxuICAgICAgICBjb25zdCBob3Vyc0luTWludXRlcyA9XG4gICAgICAgICAgICBtaW51dGVzVG9BZGQgPCAwXG4gICAgICAgICAgICAgICAgPyBNYXRoLmNlaWwobWludXRlc1RvQWRkIC8gNjApXG4gICAgICAgICAgICAgICAgOiBNYXRoLmZsb29yKG1pbnV0ZXNUb0FkZCAvIDYwKTtcbiAgICAgICAgY29uc3QgaG91cnNUb0FkZCA9IGhvdXJzSW5NaW51dGVzICsgaG91cnM7XG4gICAgICAgIGNvbnN0IG5ld0hvdXJzID0gKDI0ICsgdGhpcy5ob3VycyArIChob3Vyc1RvQWRkICUgMjQpKSAlIDI0O1xuXG4gICAgICAgIHJldHVybiBuZXcgVHVpVGltZShuZXdIb3VycywgbmV3TWludXRlcywgbmV3U2Vjb25kcywgbmV3TXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIFR1aVRpbWUgdG8gc3RyaW5nXG4gICAgICovXG4gICAgdG9TdHJpbmcobW9kZT86IFR1aVRpbWVNb2RlKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgbmVlZEFkZE1zID0gbW9kZSA9PT0gJ0hIOk1NOlNTLk1TUycgfHwgKCFtb2RlICYmIHRoaXMubXMgPiAwKTtcbiAgICAgICAgY29uc3QgbmVlZEFkZFNlY29uZHMgPVxuICAgICAgICAgICAgbmVlZEFkZE1zIHx8IG1vZGUgPT09ICdISDpNTTpTUycgfHwgKCFtb2RlICYmIHRoaXMuc2Vjb25kcyA+IDApO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBgJHt0aGlzLmZvcm1hdFRpbWUodGhpcy5ob3Vycyl9OiR7dGhpcy5mb3JtYXRUaW1lKHRoaXMubWludXRlcyl9YCArXG4gICAgICAgICAgICBgJHtuZWVkQWRkU2Vjb25kcyA/IGA6JHt0aGlzLmZvcm1hdFRpbWUodGhpcy5zZWNvbmRzKX1gIDogJyd9YCArXG4gICAgICAgICAgICBgJHtuZWVkQWRkTXMgPyBgLiR7dGhpcy5mb3JtYXRUaW1lKHRoaXMubXMsIDMpfWAgOiAnJ31gXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgVHVpVGltZSB0byBtaWxsaXNlY29uZHNcbiAgICAgKi9cbiAgICB0b0Fic29sdXRlTWlsbGlzZWNvbmRzKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLmhvdXJzICogTUlMTElTRUNPTkRTX0lOX0hPVVIgK1xuICAgICAgICAgICAgdGhpcy5taW51dGVzICogTUlMTElTRUNPTkRTX0lOX01JTlVURSArXG4gICAgICAgICAgICB0aGlzLnNlY29uZHMgKiAxMDAwICtcbiAgICAgICAgICAgIHRoaXMubXNcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZvcm1hdFRpbWUodGltZTogbnVtYmVyLCBkaWdpdHM6IG51bWJlciA9IDIpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gcGFkU3RhcnQoU3RyaW5nKHRpbWUpLCBkaWdpdHMsICcwJyk7XG4gICAgfVxufVxuIl19
@@ -1,45 +1,90 @@
1
1
  import { __decorate, __param } from "tslib";
2
- import { AfterViewInit, Directive, ElementRef, Inject, INJECTOR, Injector, Input, Optional, Renderer2, Self, ViewContainerRef, } from '@angular/core';
2
+ import { AfterViewInit, Directive, ElementRef, Inject, Input, NgZone, Optional, Renderer2, Self, } from '@angular/core';
3
3
  import { ANIMATION_FRAME } from '@ng-web-apis/common';
4
4
  import { POLLING_TIME } from '@taiga-ui/cdk/constants';
5
5
  import { TUI_FOCUSABLE_ITEM_ACCESSOR, TUI_IS_IOS } from '@taiga-ui/cdk/tokens';
6
6
  import { setNativeFocused } from '@taiga-ui/cdk/utils/focus';
7
7
  import { Observable, race, timer } from 'rxjs';
8
- import { filter, map, take, throttleTime } from 'rxjs/operators';
8
+ import { map, skipWhile, take, throttleTime } from 'rxjs/operators';
9
9
  const TIMEOUT = 1000;
10
10
  const NG_ANIMATION_SELECTOR = '.ng-animating';
11
- // @bad TODO: Consider removing iOS hacks
12
11
  // TODO: in 3.0 change input name to tuiAutoFocus and handle empty string
12
+ // TODO: refactor on this whole thing in 3.0
13
13
  let TuiAutoFocusDirective = class TuiAutoFocusDirective {
14
- constructor(injector, elementRef, tuiFocusableComponent, isIos, animationFrame$) {
15
- this.injector = injector;
16
- this.elementRef = elementRef;
14
+ constructor(tuiFocusableComponent, isIos, animationFrame$, ngZone, elementRef, renderer) {
17
15
  this.tuiFocusableComponent = tuiFocusableComponent;
18
16
  this.isIos = isIos;
19
17
  this.animationFrame$ = animationFrame$;
18
+ this.ngZone = ngZone;
19
+ this.elementRef = elementRef;
20
+ this.renderer = renderer;
20
21
  this.autoFocus = true;
21
22
  }
22
23
  ngAfterViewInit() {
23
- var _a;
24
24
  if (!this.autoFocus) {
25
25
  return;
26
26
  }
27
- const element = ((_a = this.tuiFocusableComponent) === null || _a === void 0 ? void 0 : _a.nativeFocusableElement) ||
28
- this.elementRef.nativeElement;
29
- if (this.isIos) {
30
- veryVerySadIosFix(this.injector);
27
+ if (this.isTextFieldElement) {
28
+ if (this.isIos) {
29
+ this.ngZone.runOutsideAngular(() => this.iosWebkitAutofocus());
30
+ }
31
+ else {
32
+ race(timer(TIMEOUT), this.animationFrame$.pipe(throttleTime(POLLING_TIME), map(() => this.element.closest(NG_ANIMATION_SELECTOR)), skipWhile(Boolean), take(1))).subscribe(() => setNativeFocused(this.element));
33
+ }
34
+ return;
31
35
  }
32
- race(timer(TIMEOUT), this.animationFrame$.pipe(throttleTime(POLLING_TIME), map(() => element.closest(NG_ANIMATION_SELECTOR)), filter(v => !v), take(1))).subscribe(() => {
33
- setNativeFocused(element);
34
- });
36
+ setNativeFocused(this.element);
37
+ }
38
+ get element() {
39
+ var _a;
40
+ return (((_a = this.tuiFocusableComponent) === null || _a === void 0 ? void 0 : _a.nativeFocusableElement) ||
41
+ this.elementRef.nativeElement);
42
+ }
43
+ get isTextFieldElement() {
44
+ return this.element.matches('input, textarea');
45
+ }
46
+ iosWebkitAutofocus() {
47
+ var _a;
48
+ const fakeInput = this.renderer.createElement('input');
49
+ fakeInput.style.position = 'absolute';
50
+ fakeInput.style.opacity = '0';
51
+ fakeInput.style.height = '0';
52
+ const blurHandler = () => setNativeFocused(fakeInput);
53
+ const focusHandler = () => {
54
+ setTimeout(() => {
55
+ setNativeFocused(this.element);
56
+ /**
57
+ * @note:
58
+ * We can't remove the element immediately, because it breaks flow
59
+ */
60
+ setTimeout(() => {
61
+ fakeInput.removeEventListener('blur', blurHandler);
62
+ fakeInput.removeEventListener('focus', focusHandler);
63
+ fakeInput.remove();
64
+ });
65
+ });
66
+ };
67
+ /**
68
+ * @note: ping-pong eager strategy hack
69
+ * After creating an element and bringing it into DOM,
70
+ * the browser automatically focuses on the invisible element.
71
+ * And then, after focus is triggered, we try to focus on target element, and if we managed to refocus,
72
+ * then we try to focus again on an invisible element, so that the keyboard slowly appears.
73
+ * This ping pong allows the keyboard to not overlap the modal window.
74
+ */
75
+ fakeInput.addEventListener('blur', blurHandler, { once: true });
76
+ fakeInput.addEventListener('focus', focusHandler);
77
+ (_a = this.element.parentElement) === null || _a === void 0 ? void 0 : _a.appendChild(fakeInput);
78
+ setNativeFocused(fakeInput);
35
79
  }
36
80
  };
37
81
  TuiAutoFocusDirective.ctorParameters = () => [
38
- { type: Injector, decorators: [{ type: Inject, args: [INJECTOR,] }] },
39
- { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
40
82
  { type: undefined, decorators: [{ type: Optional }, { type: Self }, { type: Inject, args: [TUI_FOCUSABLE_ITEM_ACCESSOR,] }] },
41
83
  { type: Boolean, decorators: [{ type: Inject, args: [TUI_IS_IOS,] }] },
42
- { type: Observable, decorators: [{ type: Inject, args: [ANIMATION_FRAME,] }] }
84
+ { type: Observable, decorators: [{ type: Inject, args: [ANIMATION_FRAME,] }] },
85
+ { type: NgZone, decorators: [{ type: Inject, args: [NgZone,] }] },
86
+ { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
87
+ { type: Renderer2, decorators: [{ type: Inject, args: [Renderer2,] }] }
43
88
  ];
44
89
  __decorate([
45
90
  Input()
@@ -48,27 +93,14 @@ TuiAutoFocusDirective = __decorate([
48
93
  Directive({
49
94
  selector: '[tuiAutoFocus]',
50
95
  }),
51
- __param(0, Inject(INJECTOR)),
52
- __param(1, Inject(ElementRef)),
53
- __param(2, Optional()),
54
- __param(2, Self()),
55
- __param(2, Inject(TUI_FOCUSABLE_ITEM_ACCESSOR)),
56
- __param(3, Inject(TUI_IS_IOS)),
57
- __param(4, Inject(ANIMATION_FRAME))
96
+ __param(0, Optional()),
97
+ __param(0, Self()),
98
+ __param(0, Inject(TUI_FOCUSABLE_ITEM_ACCESSOR)),
99
+ __param(1, Inject(TUI_IS_IOS)),
100
+ __param(2, Inject(ANIMATION_FRAME)),
101
+ __param(3, Inject(NgZone)),
102
+ __param(4, Inject(ElementRef)),
103
+ __param(5, Inject(Renderer2))
58
104
  ], TuiAutoFocusDirective);
59
105
  export { TuiAutoFocusDirective };
60
- function veryVerySadIosFix(injector) {
61
- const renderer = injector.get(Renderer2);
62
- const { nativeElement } = injector.get(ViewContainerRef).element;
63
- const decoy = renderer.createElement('input');
64
- decoy.style.position = 'absolute';
65
- decoy.style.opacity = '0';
66
- decoy.style.height = '0';
67
- renderer.setAttribute(decoy, 'readonly', 'readonly');
68
- renderer.appendChild(nativeElement, decoy);
69
- decoy.addEventListener('blur', () => renderer.removeChild(nativeElement, decoy), {
70
- once: true,
71
- });
72
- setNativeFocused(decoy);
73
- }
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2ZvY3VzLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9hdXRvLWZvY3VzLyIsInNvdXJjZXMiOlsiYXV0b2ZvY3VzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILGFBQWEsRUFDYixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixRQUFRLEVBQ1IsUUFBUSxFQUNSLEtBQUssRUFDTCxRQUFRLEVBQ1IsU0FBUyxFQUNULElBQUksRUFDSixnQkFBZ0IsR0FDbkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUVyRCxPQUFPLEVBQUMsMkJBQTJCLEVBQUUsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDN0UsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUUvRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUM7QUFDckIsTUFBTSxxQkFBcUIsR0FBRyxlQUFlLENBQUM7QUFFOUMseUNBQXlDO0FBQ3pDLHlFQUF5RTtBQUl6RSxJQUFhLHFCQUFxQixHQUFsQyxNQUFhLHFCQUFxQjtJQUk5QixZQUN1QyxRQUFrQixFQUNoQixVQUFtQyxFQUl2RCxxQkFBeUQsRUFDckMsS0FBYyxFQUNULGVBQW1DO1FBUDFDLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDaEIsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFJdkQsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUFv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Z0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEluamVjdCxcbiAgICBJTkpFQ1RPUixcbiAgICBJbmplY3RvcixcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBSZW5kZXJlcjIsXG4gICAgU2VsZixcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QU5JTUFUSU9OX0ZSQU1FfSBmcm9tICdAbmctd2ViLWFwaXMvY29tbW9uJztcbmltcG9ydCB7UE9MTElOR19USU1FfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NvbnN0YW50cyc7XG5pbXBvcnQge1R1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3Nvcn0gZnJvbSAnQHRhaWdhLXVpL2Nkay9pbnRlcmZhY2VzJztcbmltcG9ydCB7VFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLCBUVUlfSVNfSU9TfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3Rva2Vucyc7XG5pbXBvcnQge3NldE5hdGl2ZUZvY3VzZWR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvZm9jdXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCByYWNlLCB0aW1lcn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2ZpbHRlciwgbWFwLCB0YWtlLCB0aHJvdHRsZVRpbWV9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuY29uc3QgVElNRU9VVCA9IDEwMDA7XG5jb25zdCBOR19BTklNQVRJT05fU0VMRUNUT1IgPSAnLm5nLWFuaW1hdGluZyc7XG5cbi8vIEBiYWQgVE9ETzogQ29uc2lkZXIgcmVtb3ZpbmcgaU9TIGhhY2tzXG4vLyBUT0RPOiBpbiAzLjAgY2hhbmdlIGlucHV0IG5hbWUgdG8gdHVpQXV0b0ZvY3VzIGFuZCBoYW5kbGUgZW1wdHkgc3RyaW5nXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1t0dWlBdXRvRm9jdXNdJyxcbn0pXG5leHBvcnQgY2xhc3MgVHVpQXV0b0ZvY3VzRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQElucHV0KClcbiAgICBhdXRvRm9jdXMgPSB0cnVlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoSU5KRUNUT1IpIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBASW5qZWN0KEVsZW1lbnRSZWYpIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdHVpRm9jdXNhYmxlQ29tcG9uZW50OiBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IgfCBudWxsLFxuICAgICAgICBASW5qZWN0KFRVSV9JU19JT1MpIHByaXZhdGUgcmVhZG9ubHkgaXNJb3M6IGJvb2xlYW4sXG4gICAgICAgIEBJbmplY3QoQU5JTUFUSU9OX0ZSQU1FKSBwcml2YXRlIHJlYWRvbmx5IGFuaW1hdGlvbkZyYW1lJDogT2JzZXJ2YWJsZTxudW1iZXI+LFxuICAgICkge31cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmF1dG9Gb2N1cykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZWxlbWVudCA9XG4gICAgICAgICAgICB0aGlzLnR1aUZvY3VzYWJsZUNvbXBvbmVudD8ubmF0aXZlRm9jdXNhYmxlRWxlbWVudCB8fFxuICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNJb3MpIHtcbiAgICAgICAgICAgIHZlcnlWZXJ5U2FkSW9zRml4KHRoaXMuaW5qZWN0b3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmFjZShcbiAgICAgICAgICAgIHRpbWVyKFRJTUVPVVQpLFxuICAgICAgICAgICAgdGhpcy5hbmltYXRpb25GcmFtZSQucGlwZShcbiAgICAgICAgICAgICAgICB0aHJvdHRsZVRpbWUoUE9MTElOR19USU1FKSxcbiAgICAgICAgICAgICAgICBtYXAoKCkgPT4gZWxlbWVudC5jbG9zZXN0KE5HX0FOSU1BVElPTl9TRUxFQ1RPUikpLFxuICAgICAgICAgICAgICAgIGZpbHRlcih2ID0+ICF2KSxcbiAgICAgICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgc2V0TmF0aXZlRm9jdXNlZChlbGVtZW50KTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG5mdW5jdGlvbiB2ZXJ5VmVyeVNhZElvc0ZpeChpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICBjb25zdCByZW5kZXJlciA9IGluamVjdG9yLmdldChSZW5kZXJlcjIpO1xuICAgIGNvbnN0IHtuYXRpdmVFbGVtZW50fSA9IGluamVjdG9yLmdldChWaWV3Q29udGFpbmVyUmVmKS5lbGVtZW50O1xuICAgIGNvbnN0IGRlY295OiBIVE1MRWxlbWVudCA9IHJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG5cbiAgICBkZWNveS5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgZGVjb3kuc3R5bGUub3BhY2l0eSA9ICcwJztcbiAgICBkZWNveS5zdHlsZS5oZWlnaHQgPSAnMCc7XG5cbiAgICByZW5kZXJlci5zZXRBdHRyaWJ1dGUoZGVjb3ksICdyZWFkb25seScsICdyZWFkb25seScpO1xuICAgIHJlbmRlcmVyLmFwcGVuZENoaWxkKG5hdGl2ZUVsZW1lbnQsIGRlY295KTtcbiAgICBkZWNveS5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgKCkgPT4gcmVuZGVyZXIucmVtb3ZlQ2hpbGQobmF0aXZlRWxlbWVudCwgZGVjb3kpLCB7XG4gICAgICAgIG9uY2U6IHRydWUsXG4gICAgfSk7XG5cbiAgICBzZXROYXRpdmVGb2N1c2VkKGRlY295KTtcbn1cbiJdfQ==
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2ZvY3VzLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9hdXRvLWZvY3VzLyIsInNvdXJjZXMiOlsiYXV0b2ZvY3VzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILGFBQWEsRUFDYixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFFBQVEsRUFDUixTQUFTLEVBQ1QsSUFBSSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFLckQsT0FBTyxFQUFDLDJCQUEyQixFQUFFLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzdFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDO0FBQ3JCLE1BQU0scUJBQXFCLEdBQUcsZUFBZSxDQUFDO0FBRTlDLHlFQUF5RTtBQUN6RSw0Q0FBNEM7QUFJNUMsSUFBYSxxQkFBcUIsR0FBbEMsTUFBYSxxQkFBcUI7SUFJOUIsWUFJcUIscUJBQXlELEVBQ3JDLEtBQWMsRUFDVCxlQUFtQyxFQUU1RCxNQUFjLEVBRWQsVUFBbUMsRUFFbkMsUUFBbUI7UUFSbkIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUFvQztRQUNyQyxVQUFLLEdBQUwsS0FBSyxDQUFTO1FBQ1Qsb0JBQWUsR0FBZixlQUFlLENBQW9CO1FBRTVELFdBQU0s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QUFRLFlBQ1IsSUFBSSxZQUNKLE1BQU0sU0FBQywyQkFBMkI7MENBRWxDLE1BQU0sU0FBQyxVQUFVO1lBQ3lDLFVBQVUsdUJBQXBFLE1BQU0sU0FBQyxlQUFlO1lBRUUsTUFBTSx1QkFEOUIsTUFBTSxTQUFDLE1BQU07WUFHZSxVQUFVLHVCQUR0QyxNQUFNLFNBQUMsVUFBVTtZQUdTLFNBQVMsdUJBRG5DLE1BQU0sU0FBQyxTQUFTOztBQWJyQjtJQURDLEtBQUssRUFBRTt3REFDUztBQUZSLHFCQUFxQjtJQUhqQyxTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUsZ0JBQWdCO0tBQzdCLENBQUM7SUFNTyxXQUFBLFFBQVEsRUFBRSxDQUFBO0lBQ1YsV0FBQSxJQUFJLEVBQUUsQ0FBQTtJQUNOLFdBQUEsTUFBTSxDQUFDLDJCQUEyQixDQUFDLENBQUE7SUFFbkMsV0FBQSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDbEIsV0FBQSxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUE7SUFDdkIsV0FBQSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7SUFFZCxXQUFBLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUVsQixXQUFBLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQTtHQWZiLHFCQUFxQixDQStGakM7U0EvRlkscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT3B0aW9uYWwsXG4gICAgUmVuZGVyZXIyLFxuICAgIFNlbGYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBTklNQVRJT05fRlJBTUV9IGZyb20gJ0BuZy13ZWItYXBpcy9jb21tb24nO1xuaW1wb3J0IHtQT0xMSU5HX1RJTUV9IGZyb20gJ0B0YWlnYS11aS9jZGsvY29uc3RhbnRzJztcbmltcG9ydCB7XG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxuICAgIFR1aU5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsvaW50ZXJmYWNlcyc7XG5pbXBvcnQge1RVSV9GT0NVU0FCTEVfSVRFTV9BQ0NFU1NPUiwgVFVJX0lTX0lPU30gZnJvbSAnQHRhaWdhLXVpL2Nkay90b2tlbnMnO1xuaW1wb3J0IHtzZXROYXRpdmVGb2N1c2VkfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL2ZvY3VzJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgcmFjZSwgdGltZXJ9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIHNraXBXaGlsZSwgdGFrZSwgdGhyb3R0bGVUaW1lfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmNvbnN0IFRJTUVPVVQgPSAxMDAwO1xuY29uc3QgTkdfQU5JTUFUSU9OX1NFTEVDVE9SID0gJy5uZy1hbmltYXRpbmcnO1xuXG4vLyBUT0RPOiBpbiAzLjAgY2hhbmdlIGlucHV0IG5hbWUgdG8gdHVpQXV0b0ZvY3VzIGFuZCBoYW5kbGUgZW1wdHkgc3RyaW5nXG4vLyBUT0RPOiByZWZhY3RvciBvbiB0aGlzIHdob2xlIHRoaW5nIGluIDMuMFxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbdHVpQXV0b0ZvY3VzXScsXG59KVxuZXhwb3J0IGNsYXNzIFR1aUF1dG9Gb2N1c0RpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIEBJbnB1dCgpXG4gICAgYXV0b0ZvY3VzID0gdHJ1ZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHR1aUZvY3VzYWJsZUNvbXBvbmVudDogVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yIHwgbnVsbCxcbiAgICAgICAgQEluamVjdChUVUlfSVNfSU9TKSBwcml2YXRlIHJlYWRvbmx5IGlzSW9zOiBib29sZWFuLFxuICAgICAgICBASW5qZWN0KEFOSU1BVElPTl9GUkFNRSkgcHJpdmF0ZSByZWFkb25seSBhbmltYXRpb25GcmFtZSQ6IE9ic2VydmFibGU8bnVtYmVyPixcbiAgICAgICAgQEluamVjdChOZ1pvbmUpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmUsXG4gICAgICAgIEBJbmplY3QoRWxlbWVudFJlZilcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgQEluamVjdChSZW5kZXJlcjIpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICApIHt9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIGlmICghdGhpcy5hdXRvRm9jdXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmlzVGV4dEZpZWxkRWxlbWVudCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNJb3MpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB0aGlzLmlvc1dlYmtpdEF1dG9mb2N1cygpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmFjZShcbiAgICAgICAgICAgICAgICAgICAgdGltZXIoVElNRU9VVCksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uRnJhbWUkLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdHRsZVRpbWUoUE9MTElOR19USU1FKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcCgoKSA9PiB0aGlzLmVsZW1lbnQuY2xvc2VzdChOR19BTklNQVRJT05fU0VMRUNUT1IpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNraXBXaGlsZShCb29sZWFuKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgKS5zdWJzY3JpYmUoKCkgPT4gc2V0TmF0aXZlRm9jdXNlZCh0aGlzLmVsZW1lbnQpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgc2V0TmF0aXZlRm9jdXNlZCh0aGlzLmVsZW1lbnQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGVsZW1lbnQoKTogVHVpTmF0aXZlRm9jdXNhYmxlRWxlbWVudCB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLnR1aUZvY3VzYWJsZUNvbXBvbmVudD8ubmF0aXZlRm9jdXNhYmxlRWxlbWVudCB8fFxuICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBpc1RleHRGaWVsZEVsZW1lbnQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnQubWF0Y2hlcygnaW5wdXQsIHRleHRhcmVhJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpb3NXZWJraXRBdXRvZm9jdXMoKSB7XG4gICAgICAgIGNvbnN0IGZha2VJbnB1dDogSFRNTEVsZW1lbnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG5cbiAgICAgICAgZmFrZUlucHV0LnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJztcbiAgICAgICAgZmFrZUlucHV0LnN0eWxlLm9wYWNpdHkgPSAnMCc7XG4gICAgICAgIGZha2VJbnB1dC5zdHlsZS5oZWlnaHQgPSAnMCc7XG5cbiAgICAgICAgY29uc3QgYmx1ckhhbmRsZXIgPSAoKSA9PiBzZXROYXRpdmVGb2N1c2VkKGZha2VJbnB1dCk7XG4gICAgICAgIGNvbnN0IGZvY3VzSGFuZGxlciA9ICgpID0+IHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHNldE5hdGl2ZUZvY3VzZWQodGhpcy5lbGVtZW50KTtcblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIEBub3RlOlxuICAgICAgICAgICAgICAgICAqIFdlIGNhbid0IHJlbW92ZSB0aGUgZWxlbWVudCBpbW1lZGlhdGVseSwgYmVjYXVzZSBpdCBicmVha3MgZmxvd1xuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBmYWtlSW5wdXQucmVtb3ZlRXZlbnRMaXN0ZW5lcignYmx1cicsIGJsdXJIYW5kbGVyKTtcbiAgICAgICAgICAgICAgICAgICAgZmFrZUlucHV0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgZm9jdXNIYW5kbGVyKTtcbiAgICAgICAgICAgICAgICAgICAgZmFrZUlucHV0LnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBub3RlOiBwaW5nLXBvbmcgZWFnZXIgc3RyYXRlZ3kgaGFja1xuICAgICAgICAgKiBBZnRlciBjcmVhdGluZyBhbiBlbGVtZW50IGFuZCBicmluZ2luZyBpdCBpbnRvIERPTSxcbiAgICAgICAgICogdGhlIGJyb3dzZXIgYXV0b21hdGljYWxseSBmb2N1c2VzIG9uIHRoZSBpbnZpc2libGUgZWxlbWVudC5cbiAgICAgICAgICogQW5kIHRoZW4sIGFmdGVyIGZvY3VzIGlzIHRyaWdnZXJlZCwgd2UgdHJ5IHRvIGZvY3VzIG9uIHRhcmdldCBlbGVtZW50LCBhbmQgaWYgd2UgbWFuYWdlZCB0byByZWZvY3VzLFxuICAgICAgICAgKiB0aGVuIHdlIHRyeSB0byBmb2N1cyBhZ2FpbiBvbiBhbiBpbnZpc2libGUgZWxlbWVudCwgc28gdGhhdCB0aGUga2V5Ym9hcmQgc2xvd2x5IGFwcGVhcnMuXG4gICAgICAgICAqIFRoaXMgcGluZyBwb25nIGFsbG93cyB0aGUga2V5Ym9hcmQgdG8gbm90IG92ZXJsYXAgdGhlIG1vZGFsIHdpbmRvdy5cbiAgICAgICAgICovXG4gICAgICAgIGZha2VJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgYmx1ckhhbmRsZXIsIHtvbmNlOiB0cnVlfSk7XG4gICAgICAgIGZha2VJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIGZvY3VzSGFuZGxlcik7XG5cbiAgICAgICAgdGhpcy5lbGVtZW50LnBhcmVudEVsZW1lbnQ/LmFwcGVuZENoaWxkKGZha2VJbnB1dCk7XG5cbiAgICAgICAgc2V0TmF0aXZlRm9jdXNlZChmYWtlSW5wdXQpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,5 +1,5 @@
1
- import { __decorate } from "tslib";
2
- import { Directive, EmbeddedViewRef, Input, OnChanges, TemplateRef, ViewContainerRef, } from '@angular/core';
1
+ import { __decorate, __param } from "tslib";
2
+ import { Directive, EmbeddedViewRef, Inject, Input, OnChanges, TemplateRef, ViewContainerRef, } from '@angular/core';
3
3
  let TuiForDirective = class TuiForDirective {
4
4
  constructor(vcr) {
5
5
  this.vcr = vcr;
@@ -17,7 +17,7 @@ let TuiForDirective = class TuiForDirective {
17
17
  }
18
18
  };
19
19
  TuiForDirective.ctorParameters = () => [
20
- { type: ViewContainerRef }
20
+ { type: ViewContainerRef, decorators: [{ type: Inject, args: [ViewContainerRef,] }] }
21
21
  ];
22
22
  __decorate([
23
23
  Input()
@@ -31,7 +31,8 @@ __decorate([
31
31
  TuiForDirective = __decorate([
32
32
  Directive({
33
33
  selector: '[ngFor][ngForOf][ngForElse],[ngFor][ngForOf][ngForEmpty]',
34
- })
34
+ }),
35
+ __param(0, Inject(ViewContainerRef))
35
36
  ], TuiForDirective);
36
37
  export { TuiForDirective };
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9mb3IvIiwic291cmNlcyI6WyJmb3IuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULGVBQWUsRUFDZixLQUFLLEVBQ0wsU0FBUyxFQUNULFdBQVcsRUFDWCxnQkFBZ0IsR0FDbkIsTUFBTSxlQUFlLENBQUM7QUFLdkIsSUFBYSxlQUFlLEdBQTVCLE1BQWEsZUFBZTtJQVl4QixZQUE2QixHQUFxQjtRQUFyQixRQUFHLEdBQUgsR0FBRyxDQUFrQjtRQVJsRCxZQUFPLEdBQXFCLEVBQUUsQ0FBQztJQVFzQixDQUFDO0lBRXRELFdBQVc7O1FBQ1AsTUFBQSxJQUFJLENBQUMsR0FBRywwQ0FBRSxPQUFPLEdBQUc7UUFFcEIsSUFBSSxPQUFBLElBQUksQ0FBQyxPQUFPLDBDQUFFLE1BQU0sTUFBSyxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUMvQyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQzNEO2FBQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUN4QyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzFEO0lBQ0wsQ0FBQztDQUNKLENBQUE7O1lBWHFDLGdCQUFnQjs7QUFSbEQ7SUFEQyxLQUFLLEVBQUU7Z0RBQ3VCO0FBRy9CO0lBREMsS0FBSyxFQUFFO2tEQUNvQjtBQUc1QjtJQURDLEtBQUssRUFBRTttREFDcUI7QUFWcEIsZUFBZTtJQUgzQixTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUsMERBQTBEO0tBQ3ZFLENBQUM7R0FDVyxlQUFlLENBdUIzQjtTQXZCWSxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBEaXJlY3RpdmUsXG4gICAgRW1iZWRkZWRWaWV3UmVmLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbbmdGb3JdW25nRm9yT2ZdW25nRm9yRWxzZV0sW25nRm9yXVtuZ0Zvck9mXVtuZ0ZvckVtcHR5XScsXG59KVxuZXhwb3J0IGNsYXNzIFR1aUZvckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgcHJpdmF0ZSByZWY/OiBFbWJlZGRlZFZpZXdSZWY8e30+O1xuXG4gICAgQElucHV0KClcbiAgICBuZ0Zvck9mOiB1bmtub3duW10gfCBudWxsID0gW107XG5cbiAgICBASW5wdXQoKVxuICAgIG5nRm9yRWxzZT86IFRlbXBsYXRlUmVmPHt9PjtcblxuICAgIEBJbnB1dCgpXG4gICAgbmdGb3JFbXB0eT86IFRlbXBsYXRlUmVmPHt9PjtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgdmNyOiBWaWV3Q29udGFpbmVyUmVmKSB7fVxuXG4gICAgbmdPbkNoYW5nZXMoKSB7XG4gICAgICAgIHRoaXMucmVmPy5kZXN0cm95KCk7XG5cbiAgICAgICAgaWYgKHRoaXMubmdGb3JPZj8ubGVuZ3RoID09PSAwICYmIHRoaXMubmdGb3JFbXB0eSkge1xuICAgICAgICAgICAgdGhpcy5yZWYgPSB0aGlzLnZjci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5uZ0ZvckVtcHR5KTtcbiAgICAgICAgfSBlbHNlIGlmICghdGhpcy5uZ0Zvck9mICYmIHRoaXMubmdGb3JFbHNlKSB7XG4gICAgICAgICAgICB0aGlzLnJlZiA9IHRoaXMudmNyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLm5nRm9yRWxzZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9mb3IvIiwic291cmNlcyI6WyJmb3IuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULGVBQWUsRUFDZixNQUFNLEVBQ04sS0FBSyxFQUNMLFNBQVMsRUFDVCxXQUFXLEVBQ1gsZ0JBQWdCLEdBQ25CLE1BQU0sZUFBZSxDQUFDO0FBS3ZCLElBQWEsZUFBZSxHQUE1QixNQUFhLGVBQWU7SUFZeEIsWUFBdUQsR0FBcUI7UUFBckIsUUFBRyxHQUFILEdBQUcsQ0FBa0I7UUFSNUUsWUFBTyxHQUE4QixFQUFFLENBQUM7SUFRdUMsQ0FBQztJQUVoRixXQUFXOztRQUNQLE1BQUEsSUFBSSxDQUFDLEdBQUcsMENBQUUsT0FBTyxHQUFHO1FBRXBCLElBQUksT0FBQSxJQUFJLENBQUMsT0FBTywwQ0FBRSxNQUFNLE1BQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDL0MsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUMzRDthQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDeEMsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUMxRDtJQUNMLENBQUM7Q0FDSixDQUFBOztZQVgrRCxnQkFBZ0IsdUJBQS9ELE1BQU0sU0FBQyxnQkFBZ0I7O0FBUnBDO0lBREMsS0FBSyxFQUFFO2dEQUNnQztBQUd4QztJQURDLEtBQUssRUFBRTtrREFDbUI7QUFHM0I7SUFEQyxLQUFLLEVBQUU7bURBQ29CO0FBVm5CLGVBQWU7SUFIM0IsU0FBUyxDQUFDO1FBQ1AsUUFBUSxFQUFFLDBEQUEwRDtLQUN2RSxDQUFDO0lBYWUsV0FBQSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtHQVo1QixlQUFlLENBdUIzQjtTQXZCWSxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBEaXJlY3RpdmUsXG4gICAgRW1iZWRkZWRWaWV3UmVmLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW25nRm9yXVtuZ0Zvck9mXVtuZ0ZvckVsc2VdLFtuZ0Zvcl1bbmdGb3JPZl1bbmdGb3JFbXB0eV0nLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlGb3JEaXJlY3RpdmU8VCwgSyA9IHt9PiBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgcHJpdmF0ZSByZWY/OiBFbWJlZGRlZFZpZXdSZWY8e30+O1xuXG4gICAgQElucHV0KClcbiAgICBuZ0Zvck9mOiBUW10gfCByZWFkb25seSBUW10gfCBudWxsID0gW107XG5cbiAgICBASW5wdXQoKVxuICAgIG5nRm9yRWxzZT86IFRlbXBsYXRlUmVmPEs+O1xuXG4gICAgQElucHV0KClcbiAgICBuZ0ZvckVtcHR5PzogVGVtcGxhdGVSZWY8Sz47XG5cbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KFZpZXdDb250YWluZXJSZWYpIHByaXZhdGUgcmVhZG9ubHkgdmNyOiBWaWV3Q29udGFpbmVyUmVmKSB7fVxuXG4gICAgbmdPbkNoYW5nZXMoKSB7XG4gICAgICAgIHRoaXMucmVmPy5kZXN0cm95KCk7XG5cbiAgICAgICAgaWYgKHRoaXMubmdGb3JPZj8ubGVuZ3RoID09PSAwICYmIHRoaXMubmdGb3JFbXB0eSkge1xuICAgICAgICAgICAgdGhpcy5yZWYgPSB0aGlzLnZjci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5uZ0ZvckVtcHR5KTtcbiAgICAgICAgfSBlbHNlIGlmICghdGhpcy5uZ0Zvck9mICYmIHRoaXMubmdGb3JFbHNlKSB7XG4gICAgICAgICAgICB0aGlzLnJlZiA9IHRoaXMudmNyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLm5nRm9yRWxzZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -1,6 +1,6 @@
1
1
  import { __decorate, __param } from "tslib";
2
2
  import { DOCUMENT } from '@angular/common';
3
- import { Inject, Injectable, Renderer2 } from '@angular/core';
3
+ import { ComponentFactoryResolver, Inject, Injectable, INJECTOR, Injector, Renderer2, Type, } from '@angular/core';
4
4
  import { TUI_DEFAULT_RENDERER } from '@taiga-ui/cdk/tokens';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@angular/common";
@@ -10,10 +10,19 @@ import * as i2 from "@taiga-ui/cdk/tokens";
10
10
  * @dynamic
11
11
  */
12
12
  let TuiDirectiveStylesService = class TuiDirectiveStylesService {
13
- constructor(documentRef, renderer) {
13
+ constructor(resolver, injector, documentRef, renderer) {
14
+ this.resolver = resolver;
15
+ this.injector = injector;
14
16
  this.documentRef = documentRef;
15
17
  this.renderer = renderer;
18
+ this.map = new Map();
16
19
  }
20
+ addComponent(component) {
21
+ if (!this.map.has(component)) {
22
+ this.map.set(component, this.resolver.resolveComponentFactory(component).create(this.injector));
23
+ }
24
+ }
25
+ /** @deprecated use components approach */
17
26
  addStyle(styles, attribute) {
18
27
  if (this.documentRef.head.querySelector(`style[${attribute}]`)) {
19
28
  return;
@@ -25,16 +34,20 @@ let TuiDirectiveStylesService = class TuiDirectiveStylesService {
25
34
  }
26
35
  };
27
36
  TuiDirectiveStylesService.ctorParameters = () => [
37
+ { type: ComponentFactoryResolver, decorators: [{ type: Inject, args: [ComponentFactoryResolver,] }] },
38
+ { type: Injector, decorators: [{ type: Inject, args: [INJECTOR,] }] },
28
39
  { type: Document, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
29
40
  { type: Renderer2, decorators: [{ type: Inject, args: [TUI_DEFAULT_RENDERER,] }] }
30
41
  ];
31
- TuiDirectiveStylesService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TuiDirectiveStylesService_Factory() { return new TuiDirectiveStylesService(i0.ɵɵinject(i1.DOCUMENT), i0.ɵɵinject(i2.TUI_DEFAULT_RENDERER)); }, token: TuiDirectiveStylesService, providedIn: "root" });
42
+ TuiDirectiveStylesService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TuiDirectiveStylesService_Factory() { return new TuiDirectiveStylesService(i0.ɵɵinject(i0.ComponentFactoryResolver), i0.ɵɵinject(i0.INJECTOR), i0.ɵɵinject(i1.DOCUMENT), i0.ɵɵinject(i2.TUI_DEFAULT_RENDERER)); }, token: TuiDirectiveStylesService, providedIn: "root" });
32
43
  TuiDirectiveStylesService = __decorate([
33
44
  Injectable({
34
45
  providedIn: 'root',
35
46
  }),
36
- __param(0, Inject(DOCUMENT)),
37
- __param(1, Inject(TUI_DEFAULT_RENDERER))
47
+ __param(0, Inject(ComponentFactoryResolver)),
48
+ __param(1, Inject(INJECTOR)),
49
+ __param(2, Inject(DOCUMENT)),
50
+ __param(3, Inject(TUI_DEFAULT_RENDERER))
38
51
  ], TuiDirectiveStylesService);
39
52
  export { TuiDirectiveStylesService };
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aXZlLXN0eWxlcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2Nkay9zZXJ2aWNlcy8iLCJzb3VyY2VzIjpbImRpcmVjdGl2ZS1zdHlsZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQzs7OztBQUUxRDs7O0dBR0c7QUFJSCxJQUFhLHlCQUF5QixHQUF0QyxNQUFhLHlCQUF5QjtJQUNsQyxZQUN1QyxXQUFxQixFQUNULFFBQW1CO1FBRC9CLGdCQUFXLEdBQVgsV0FBVyxDQUFVO1FBQ1QsYUFBUSxHQUFSLFFBQVEsQ0FBVztJQUNuRSxDQUFDO0lBRUosUUFBUSxDQUFDLE1BQWMsRUFBRSxTQUFpQjtRQUN0QyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLFNBQVMsR0FBRyxDQUFDLEVBQUU7WUFDNUQsT0FBTztTQUNWO1FBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFbkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QyxDQUFDO0NBQ0osQ0FBQTs7WUFmdUQsUUFBUSx1QkFBdkQsTUFBTSxTQUFDLFFBQVE7WUFDeUMsU0FBUyx1QkFBakUsTUFBTSxTQUFDLG9CQUFvQjs7O0FBSHZCLHlCQUF5QjtJQUhyQyxVQUFVLENBQUM7UUFDUixVQUFVLEVBQUUsTUFBTTtLQUNyQixDQUFDO0lBR08sV0FBQSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDaEIsV0FBQSxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtHQUh4Qix5QkFBeUIsQ0FpQnJDO1NBakJZLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RE9DVU1FTlR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZSwgUmVuZGVyZXIyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VFVJX0RFRkFVTFRfUkVOREVSRVJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvdG9rZW5zJztcblxuLyoqXG4gKiBTZXJ2aWNlIHRvIHVzZSBzdHlsZXMgd2l0aCBkaXJlY3RpdmVzXG4gKiBAZHluYW1pY1xuICovXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlEaXJlY3RpdmVTdHlsZXNTZXJ2aWNlIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudFJlZjogRG9jdW1lbnQsXG4gICAgICAgIEBJbmplY3QoVFVJX0RFRkFVTFRfUkVOREVSRVIpIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICApIHt9XG5cbiAgICBhZGRTdHlsZShzdHlsZXM6IHN0cmluZywgYXR0cmlidXRlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHRoaXMuZG9jdW1lbnRSZWYuaGVhZC5xdWVyeVNlbGVjdG9yKGBzdHlsZVske2F0dHJpYnV0ZX1dYCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHN0eWxlID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkoc3R5bGUsICd0ZXh0Q29udGVudCcsIHN0eWxlcyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHN0eWxlLCBhdHRyaWJ1dGUsICcnKTtcbiAgICAgICAgdGhpcy5kb2N1bWVudFJlZi5oZWFkLmFwcGVuZENoaWxkKHN0eWxlKTtcbiAgICB9XG59XG4iXX0=
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aXZlLXN0eWxlcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2Nkay9zZXJ2aWNlcy8iLCJzb3VyY2VzIjpbImRpcmVjdGl2ZS1zdHlsZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFDSCx3QkFBd0IsRUFDeEIsTUFBTSxFQUNOLFVBQVUsRUFDVixRQUFRLEVBQ1IsUUFBUSxFQUNSLFNBQVMsRUFDVCxJQUFJLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFFMUQ7OztHQUdHO0FBSUgsSUFBYSx5QkFBeUIsR0FBdEMsTUFBYSx5QkFBeUI7SUFHbEMsWUFFcUIsUUFBa0MsRUFDaEIsUUFBa0IsRUFDbEIsV0FBcUIsRUFDVCxRQUFtQjtRQUhqRCxhQUFRLEdBQVIsUUFBUSxDQUEwQjtRQUNoQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGdCQUFXLEdBQVgsV0FBVyxDQUFVO1FBQ1QsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQVByRCxRQUFHLEdBQUcsSUFBSSxHQUFHLEVBQTBCLENBQUM7SUFRdEQsQ0FBQztJQUVKLFlBQVksQ0FBQyxTQUF3QjtRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQ1IsU0FBUyxFQUNULElBQUksQ0FBQyxRQUFRLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FDekUsQ0FBQztTQUNMO0lBQ0wsQ0FBQztJQUVELDBDQUEwQztJQUMxQyxRQUFRLENBQUMsTUFBYyxFQUFFLFNBQWlCO1FBQ3RDLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsU0FBUyxHQUFHLENBQUMsRUFBRTtZQUM1RCxPQUFPO1NBQ1Y7UUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVuRCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdDLENBQUM7Q0FDSixDQUFBOztZQTNCa0Msd0JBQXdCLHVCQURsRCxNQUFNLFNBQUMsd0JBQXdCO1lBRWEsUUFBUSx1QkFBcEQsTUFBTSxTQUFDLFFBQVE7WUFDZ0MsUUFBUSx1QkFBdkQsTUFBTSxTQUFDLFFBQVE7WUFDeUMsU0FBUyx1QkFBakUsTUFBTSxTQUFDLG9CQUFvQjs7O0FBUnZCLHlCQUF5QjtJQUhyQyxVQUFVLENBQUM7UUFDUixVQUFVLEVBQUUsTUFBTTtLQUNyQixDQUFDO0lBS08sV0FBQSxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQTtJQUVoQyxXQUFBLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUNoQixXQUFBLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUNoQixXQUFBLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO0dBUnhCLHlCQUF5QixDQWdDckM7U0FoQ1kseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIEluamVjdCxcbiAgICBJbmplY3RhYmxlLFxuICAgIElOSkVDVE9SLFxuICAgIEluamVjdG9yLFxuICAgIFJlbmRlcmVyMixcbiAgICBUeXBlLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VFVJX0RFRkFVTFRfUkVOREVSRVJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvdG9rZW5zJztcblxuLyoqXG4gKiBTZXJ2aWNlIHRvIHVzZSBzdHlsZXMgd2l0aCBkaXJlY3RpdmVzXG4gKiBAZHluYW1pY1xuICovXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlEaXJlY3RpdmVTdHlsZXNTZXJ2aWNlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1hcCA9IG5ldyBNYXA8VHlwZTx1bmtub3duPiwgdW5rbm93bj4oKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcilcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSByZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgICBASW5qZWN0KElOSkVDVE9SKSBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudFJlZjogRG9jdW1lbnQsXG4gICAgICAgIEBJbmplY3QoVFVJX0RFRkFVTFRfUkVOREVSRVIpIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICApIHt9XG5cbiAgICBhZGRDb21wb25lbnQoY29tcG9uZW50OiBUeXBlPHVua25vd24+KSB7XG4gICAgICAgIGlmICghdGhpcy5tYXAuaGFzKGNvbXBvbmVudCkpIHtcbiAgICAgICAgICAgIHRoaXMubWFwLnNldChcbiAgICAgICAgICAgICAgICBjb21wb25lbnQsXG4gICAgICAgICAgICAgICAgdGhpcy5yZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShjb21wb25lbnQpLmNyZWF0ZSh0aGlzLmluamVjdG9yKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGRlcHJlY2F0ZWQgdXNlIGNvbXBvbmVudHMgYXBwcm9hY2ggKi9cbiAgICBhZGRTdHlsZShzdHlsZXM6IHN0cmluZywgYXR0cmlidXRlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHRoaXMuZG9jdW1lbnRSZWYuaGVhZC5xdWVyeVNlbGVjdG9yKGBzdHlsZVske2F0dHJpYnV0ZX1dYCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHN0eWxlID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkoc3R5bGUsICd0ZXh0Q29udGVudCcsIHN0eWxlcyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHN0eWxlLCBhdHRyaWJ1dGUsICcnKTtcbiAgICAgICAgdGhpcy5kb2N1bWVudFJlZi5oZWFkLmFwcGVuZENoaWxkKHN0eWxlKTtcbiAgICB9XG59XG4iXX0=
@@ -1,10 +1,9 @@
1
1
  import { inject, InjectionToken } from '@angular/core';
2
2
  import { NAVIGATOR, USER_AGENT } from '@ng-web-apis/common';
3
3
  const IOS_REG_EXP = /ipad|iphone|ipod/;
4
- const APPLE_REG_EXP = /apple/;
5
4
  export const TUI_IS_IOS = new InjectionToken('iOS browser detection', {
6
5
  factory: () => IOS_REG_EXP.test(inject(USER_AGENT).toLowerCase()) ||
7
- (APPLE_REG_EXP.test(inject(USER_AGENT).toLowerCase()) &&
6
+ (inject(USER_AGENT).toLowerCase().includes('apple') &&
8
7
  inject(NAVIGATOR).maxTouchPoints > 1),
9
8
  });
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtaW9zLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2Nkay90b2tlbnMvIiwic291cmNlcyI6WyJpcy1pb3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxjQUFjLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUUxRCxNQUFNLFdBQVcsR0FBRyxrQkFBa0IsQ0FBQztBQUN2QyxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUM7QUFFOUIsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLElBQUksY0FBYyxDQUFVLHVCQUF1QixFQUFFO0lBQzNFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FDVixXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNsRCxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pELE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDO0NBQ2hELENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aW5qZWN0LCBJbmplY3Rpb25Ub2tlbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05BVklHQVRPUiwgVVNFUl9BR0VOVH0gZnJvbSAnQG5nLXdlYi1hcGlzL2NvbW1vbic7XG5cbmNvbnN0IElPU19SRUdfRVhQID0gL2lwYWR8aXBob25lfGlwb2QvO1xuY29uc3QgQVBQTEVfUkVHX0VYUCA9IC9hcHBsZS87XG5cbmV4cG9ydCBjb25zdCBUVUlfSVNfSU9TID0gbmV3IEluamVjdGlvblRva2VuPGJvb2xlYW4+KCdpT1MgYnJvd3NlciBkZXRlY3Rpb24nLCB7XG4gICAgZmFjdG9yeTogKCkgPT5cbiAgICAgICAgSU9TX1JFR19FWFAudGVzdChpbmplY3QoVVNFUl9BR0VOVCkudG9Mb3dlckNhc2UoKSkgfHxcbiAgICAgICAgKEFQUExFX1JFR19FWFAudGVzdChpbmplY3QoVVNFUl9BR0VOVCkudG9Mb3dlckNhc2UoKSkgJiZcbiAgICAgICAgICAgIGluamVjdChOQVZJR0FUT1IpLm1heFRvdWNoUG9pbnRzID4gMSksXG59KTtcbiJdfQ==
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtaW9zLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2Nkay90b2tlbnMvIiwic291cmNlcyI6WyJpcy1pb3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxjQUFjLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUUxRCxNQUFNLFdBQVcsR0FBRyxrQkFBa0IsQ0FBQztBQUV2QyxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsSUFBSSxjQUFjLENBQVUsdUJBQXVCLEVBQUU7SUFDM0UsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUNWLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2xELENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7WUFDL0MsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUM7Q0FDaEQsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtpbmplY3QsIEluamVjdGlvblRva2VufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TkFWSUdBVE9SLCBVU0VSX0FHRU5UfSBmcm9tICdAbmctd2ViLWFwaXMvY29tbW9uJztcblxuY29uc3QgSU9TX1JFR19FWFAgPSAvaXBhZHxpcGhvbmV8aXBvZC87XG5cbmV4cG9ydCBjb25zdCBUVUlfSVNfSU9TID0gbmV3IEluamVjdGlvblRva2VuPGJvb2xlYW4+KCdpT1MgYnJvd3NlciBkZXRlY3Rpb24nLCB7XG4gICAgZmFjdG9yeTogKCkgPT5cbiAgICAgICAgSU9TX1JFR19FWFAudGVzdChpbmplY3QoVVNFUl9BR0VOVCkudG9Mb3dlckNhc2UoKSkgfHxcbiAgICAgICAgKGluamVjdChVU0VSX0FHRU5UKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdhcHBsZScpICYmXG4gICAgICAgICAgICBpbmplY3QoTkFWSUdBVE9SKS5tYXhUb3VjaFBvaW50cyA+IDEpLFxufSk7XG4iXX0=