@taiga-ui/cdk 2.36.0 → 2.38.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 (145) hide show
  1. package/abstract/control.d.ts +2 -2
  2. package/abstract/index.d.ts +2 -0
  3. package/abstract/interactive.d.ts +8 -0
  4. package/abstract/portal-host.d.ts +13 -0
  5. package/abstract/portal-service.d.ts +14 -0
  6. package/abstract/taiga-ui-cdk-abstract.metadata.json +1 -1
  7. package/bundles/taiga-ui-cdk-abstract.umd.js +103 -6
  8. package/bundles/taiga-ui-cdk-abstract.umd.js.map +1 -1
  9. package/bundles/taiga-ui-cdk-abstract.umd.min.js +2 -2
  10. package/bundles/taiga-ui-cdk-abstract.umd.min.js.map +1 -1
  11. package/bundles/taiga-ui-cdk-components-dropdown-host.umd.js +280 -0
  12. package/bundles/taiga-ui-cdk-components-dropdown-host.umd.js.map +1 -0
  13. package/bundles/taiga-ui-cdk-components-dropdown-host.umd.min.js +16 -0
  14. package/bundles/taiga-ui-cdk-components-dropdown-host.umd.min.js.map +1 -0
  15. package/bundles/taiga-ui-cdk-components-portal-host.umd.js +10 -114
  16. package/bundles/taiga-ui-cdk-components-portal-host.umd.js.map +1 -1
  17. package/bundles/taiga-ui-cdk-components-portal-host.umd.min.js +2 -2
  18. package/bundles/taiga-ui-cdk-components-portal-host.umd.min.js.map +1 -1
  19. package/bundles/taiga-ui-cdk-components.umd.js +12 -4
  20. package/bundles/taiga-ui-cdk-components.umd.js.map +1 -1
  21. package/bundles/taiga-ui-cdk-components.umd.min.js +1 -1
  22. package/bundles/taiga-ui-cdk-date-time.umd.js +2 -2
  23. package/bundles/taiga-ui-cdk-date-time.umd.js.map +1 -1
  24. package/bundles/taiga-ui-cdk-date-time.umd.min.js.map +1 -1
  25. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.js +78 -36
  26. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.js.map +1 -1
  27. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.min.js +2 -2
  28. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.min.js.map +1 -1
  29. package/bundles/taiga-ui-cdk-directives-for.umd.js +3 -2
  30. package/bundles/taiga-ui-cdk-directives-for.umd.js.map +1 -1
  31. package/bundles/taiga-ui-cdk-directives-for.umd.min.js +1 -1
  32. package/bundles/taiga-ui-cdk-directives-for.umd.min.js.map +1 -1
  33. package/bundles/taiga-ui-cdk-services.umd.js +17 -4
  34. package/bundles/taiga-ui-cdk-services.umd.js.map +1 -1
  35. package/bundles/taiga-ui-cdk-services.umd.min.js +1 -1
  36. package/bundles/taiga-ui-cdk-services.umd.min.js.map +1 -1
  37. package/bundles/taiga-ui-cdk-tokens.umd.js +1 -2
  38. package/bundles/taiga-ui-cdk-tokens.umd.js.map +1 -1
  39. package/bundles/taiga-ui-cdk-tokens.umd.min.js +1 -1
  40. package/bundles/taiga-ui-cdk-tokens.umd.min.js.map +1 -1
  41. package/bundles/taiga-ui-cdk-utils-focus.umd.js +1 -1
  42. package/bundles/taiga-ui-cdk-utils-focus.umd.js.map +1 -1
  43. package/bundles/taiga-ui-cdk-utils-focus.umd.min.js.map +1 -1
  44. package/components/dropdown-host/dropdown-host.component.d.ts +8 -0
  45. package/components/dropdown-host/dropdown-host.module.d.ts +2 -0
  46. package/components/dropdown-host/index.d.ts +2 -0
  47. package/components/dropdown-host/package.json +13 -0
  48. package/components/dropdown-host/taiga-ui-cdk-components-dropdown-host.d.ts +4 -0
  49. package/components/dropdown-host/taiga-ui-cdk-components-dropdown-host.metadata.json +1 -0
  50. package/components/index.d.ts +1 -0
  51. package/components/portal-host/index.d.ts +0 -2
  52. package/components/portal-host/portal.service.d.ts +4 -11
  53. package/components/portal-host/taiga-ui-cdk-components-portal-host.metadata.json +1 -1
  54. package/components/taiga-ui-cdk-components.metadata.json +1 -1
  55. package/directives/auto-focus/autofocus.directive.d.ts +8 -4
  56. package/directives/auto-focus/taiga-ui-cdk-directives-auto-focus.metadata.json +1 -1
  57. package/directives/for/for.directive.d.ts +4 -4
  58. package/directives/for/taiga-ui-cdk-directives-for.metadata.json +1 -1
  59. package/esm2015/abstract/control.js +5 -3
  60. package/esm2015/abstract/index.js +3 -1
  61. package/esm2015/abstract/interactive.js +10 -1
  62. package/esm2015/abstract/portal-host.js +44 -0
  63. package/esm2015/abstract/portal-service.js +34 -0
  64. package/esm2015/components/dropdown-host/dropdown-host.component.js +36 -0
  65. package/esm2015/components/dropdown-host/dropdown-host.module.js +13 -0
  66. package/esm2015/components/dropdown-host/index.js +3 -0
  67. package/esm2015/components/dropdown-host/taiga-ui-cdk-components-dropdown-host.js +5 -0
  68. package/esm2015/components/index.js +2 -1
  69. package/esm2015/components/portal-host/index.js +1 -3
  70. package/esm2015/components/portal-host/portal.service.js +6 -26
  71. package/esm2015/date-time/time.js +3 -3
  72. package/esm2015/directives/auto-focus/autofocus.directive.js +71 -39
  73. package/esm2015/directives/for/for.directive.js +6 -5
  74. package/esm2015/services/directive-styles.service.js +19 -6
  75. package/esm2015/tokens/is-ios.js +2 -3
  76. package/esm2015/utils/focus/get-closest-keyboard-focusable.js +2 -2
  77. package/esm5/abstract/control.js +5 -3
  78. package/esm5/abstract/index.js +3 -1
  79. package/esm5/abstract/interactive.js +10 -1
  80. package/esm5/abstract/portal-host.js +50 -0
  81. package/esm5/abstract/portal-service.js +42 -0
  82. package/esm5/components/dropdown-host/dropdown-host.component.js +41 -0
  83. package/esm5/components/dropdown-host/dropdown-host.module.js +16 -0
  84. package/esm5/components/dropdown-host/index.js +3 -0
  85. package/esm5/components/dropdown-host/taiga-ui-cdk-components-dropdown-host.js +5 -0
  86. package/esm5/components/index.js +2 -1
  87. package/esm5/components/portal-host/index.js +1 -3
  88. package/esm5/components/portal-host/portal.service.js +10 -33
  89. package/esm5/date-time/time.js +3 -3
  90. package/esm5/directives/auto-focus/autofocus.directive.js +81 -39
  91. package/esm5/directives/for/for.directive.js +6 -5
  92. package/esm5/services/directive-styles.service.js +19 -6
  93. package/esm5/tokens/is-ios.js +2 -3
  94. package/esm5/utils/focus/get-closest-keyboard-focusable.js +2 -2
  95. package/fesm2015/taiga-ui-cdk-abstract.js +86 -4
  96. package/fesm2015/taiga-ui-cdk-abstract.js.map +1 -1
  97. package/fesm2015/taiga-ui-cdk-components-dropdown-host.js +51 -0
  98. package/fesm2015/taiga-ui-cdk-components-dropdown-host.js.map +1 -0
  99. package/fesm2015/taiga-ui-cdk-components-portal-host.js +7 -97
  100. package/fesm2015/taiga-ui-cdk-components-portal-host.js.map +1 -1
  101. package/fesm2015/taiga-ui-cdk-components.js +1 -0
  102. package/fesm2015/taiga-ui-cdk-components.js.map +1 -1
  103. package/fesm2015/taiga-ui-cdk-date-time.js +2 -2
  104. package/fesm2015/taiga-ui-cdk-date-time.js.map +1 -1
  105. package/fesm2015/taiga-ui-cdk-directives-auto-focus.js +70 -38
  106. package/fesm2015/taiga-ui-cdk-directives-auto-focus.js.map +1 -1
  107. package/fesm2015/taiga-ui-cdk-directives-for.js +5 -4
  108. package/fesm2015/taiga-ui-cdk-directives-for.js.map +1 -1
  109. package/fesm2015/taiga-ui-cdk-services.js +18 -5
  110. package/fesm2015/taiga-ui-cdk-services.js.map +1 -1
  111. package/fesm2015/taiga-ui-cdk-tokens.js +1 -2
  112. package/fesm2015/taiga-ui-cdk-tokens.js.map +1 -1
  113. package/fesm2015/taiga-ui-cdk-utils-focus.js +1 -1
  114. package/fesm2015/taiga-ui-cdk-utils-focus.js.map +1 -1
  115. package/fesm5/taiga-ui-cdk-abstract.js +100 -4
  116. package/fesm5/taiga-ui-cdk-abstract.js.map +1 -1
  117. package/fesm5/taiga-ui-cdk-components-dropdown-host.js +59 -0
  118. package/fesm5/taiga-ui-cdk-components-dropdown-host.js.map +1 -0
  119. package/fesm5/taiga-ui-cdk-components-portal-host.js +10 -112
  120. package/fesm5/taiga-ui-cdk-components-portal-host.js.map +1 -1
  121. package/fesm5/taiga-ui-cdk-components.js +1 -0
  122. package/fesm5/taiga-ui-cdk-components.js.map +1 -1
  123. package/fesm5/taiga-ui-cdk-date-time.js +2 -2
  124. package/fesm5/taiga-ui-cdk-date-time.js.map +1 -1
  125. package/fesm5/taiga-ui-cdk-directives-auto-focus.js +80 -38
  126. package/fesm5/taiga-ui-cdk-directives-auto-focus.js.map +1 -1
  127. package/fesm5/taiga-ui-cdk-directives-for.js +5 -4
  128. package/fesm5/taiga-ui-cdk-directives-for.js.map +1 -1
  129. package/fesm5/taiga-ui-cdk-services.js +18 -5
  130. package/fesm5/taiga-ui-cdk-services.js.map +1 -1
  131. package/fesm5/taiga-ui-cdk-tokens.js +1 -2
  132. package/fesm5/taiga-ui-cdk-tokens.js.map +1 -1
  133. package/fesm5/taiga-ui-cdk-utils-focus.js +1 -1
  134. package/fesm5/taiga-ui-cdk-utils-focus.js.map +1 -1
  135. package/package.json +1 -1
  136. package/services/directive-styles.service.d.ts +7 -2
  137. package/services/taiga-ui-cdk-services.metadata.json +1 -1
  138. package/tokens/taiga-ui-cdk-tokens.metadata.json +1 -1
  139. package/utils/focus/get-closest-keyboard-focusable.d.ts +1 -1
  140. package/components/portal-host/portal-host.component.d.ts +0 -15
  141. package/components/portal-host/portal-host.module.d.ts +0 -2
  142. package/esm2015/components/portal-host/portal-host.component.js +0 -65
  143. package/esm2015/components/portal-host/portal-host.module.js +0 -13
  144. package/esm5/components/portal-host/portal-host.component.js +0 -71
  145. package/esm5/components/portal-host/portal-host.module.js +0 -16
@@ -20,10 +20,14 @@ let AbstractTuiInteractive = AbstractTuiInteractive_1 = class AbstractTuiInterac
20
20
  * Emits 'true' on focus and 'false' on blur.
21
21
  */
22
22
  this.focusedChange = new EventEmitter();
23
+ /** @deprecated use `tuiPressedChange` directive */
23
24
  this.pressedChange = new EventEmitter();
25
+ /** @deprecated use `tuiHoveredChange` directive */
24
26
  this.hoveredChange = new EventEmitter();
25
27
  this.focusVisibleChange = new EventEmitter();
28
+ /** @deprecated use `tuiHoveredChange` directive */
26
29
  this.hovered = false;
30
+ /** @deprecated use `tuiPressedChange` directive */
27
31
  this.pressed = false;
28
32
  this.focusVisible = false;
29
33
  this.autoIdString = `${TUI}${AbstractTuiInteractive_1.autoId++}${Date.now()}`;
@@ -31,10 +35,12 @@ let AbstractTuiInteractive = AbstractTuiInteractive_1 = class AbstractTuiInterac
31
35
  get computedDisabled() {
32
36
  return this.disabled;
33
37
  }
38
+ /** @deprecated */
34
39
  get computedHovered() {
35
40
  var _a;
36
41
  return !this.computedDisabled && ((_a = this.pseudoHovered) !== null && _a !== void 0 ? _a : this.hovered);
37
42
  }
43
+ /** @deprecated */
38
44
  get computedPressed() {
39
45
  var _a;
40
46
  return !this.computedDisabled && ((_a = this.pseudoPressed) !== null && _a !== void 0 ? _a : this.pressed);
@@ -50,9 +56,11 @@ let AbstractTuiInteractive = AbstractTuiInteractive_1 = class AbstractTuiInterac
50
56
  var _a;
51
57
  return !this.computedDisabled && ((_a = this.pseudoFocused) !== null && _a !== void 0 ? _a : this.focusVisible);
52
58
  }
59
+ // TODO: Consider removing since native input is exposed
53
60
  get id() {
54
61
  return this.nativeId ? this.nativeId : this.autoIdString;
55
62
  }
63
+ /** @deprecated */
56
64
  updateHovered(hovered) {
57
65
  if (this.hovered === hovered) {
58
66
  return;
@@ -60,6 +68,7 @@ let AbstractTuiInteractive = AbstractTuiInteractive_1 = class AbstractTuiInterac
60
68
  this.hovered = hovered;
61
69
  this.hoveredChange.emit(hovered);
62
70
  }
71
+ /** @deprecated */
63
72
  updatePressed(pressed) {
64
73
  if (this.pressed === pressed) {
65
74
  return;
@@ -130,4 +139,4 @@ AbstractTuiInteractive = AbstractTuiInteractive_1 = __decorate([
130
139
  Directive()
131
140
  ], AbstractTuiInteractive);
132
141
  export { AbstractTuiInteractive };
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2Fic3RyYWN0LyIsInNvdXJjZXMiOlsiaW50ZXJhY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFFeEQsTUFBTSxHQUFHLEdBQUcsa0JBQWtCLENBQUM7QUFFL0I7O0dBRUc7QUFFSCxJQUFzQixzQkFBc0IsOEJBQTVDLE1BQXNCLHNCQUFzQjtJQXFEeEM7UUExQ0Esa0JBQWEsR0FBbUIsSUFBSSxDQUFDO1FBSXJDLGtCQUFhLEdBQW1CLElBQUksQ0FBQztRQUlyQyxrQkFBYSxHQUFtQixJQUFJLENBQUM7UUFFckM7O1dBRUc7UUFHSCxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBSWpCLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFFZDs7V0FFRztRQUVNLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUc1QyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFHNUMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRzVDLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFFMUQsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUVoQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRWhCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBR2pCLElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxHQUFHLEdBQUcsd0JBQXNCLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUM7SUFDaEYsQ0FBQztJQUdELElBQUksZ0JBQWdCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFD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QVcsQ0FBQyxnQkFBZ0IsQ0FBQzs2REFHN0I7QUFHRDtJQURDLFdBQVcsQ0FBQyxzQkFBc0IsQ0FBQztrRUFHbkM7QUFwRmlCLHNCQUFzQjtJQUQzQyxTQUFTLEVBQUU7R0FDVSxzQkFBc0IsQ0F3SDNDO1NBeEhxQixzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3R1aURlZmF1bHRQcm9wfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2RlY29yYXRvcnMnO1xuXG5jb25zdCBUVUkgPSAndHVpX2ludGVyYWN0aXZlXyc7XG5cbi8qKlxuICogVGhlIG1vc3QgYmFzaWMgY2xhc3MgZm9yIGludGVyYWN0aXZlIGNvbXBvbmVudHNcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RUdWlJbnRlcmFjdGl2ZSB7XG4gICAgcHJpdmF0ZSBzdGF0aWMgYXV0b0lkID0gMDtcblxuICAgIGFic3RyYWN0IGRpc2FibGVkOiBib29sZWFuO1xuXG4gICAgYWJzdHJhY3QgZm9jdXNlZDogYm9vbGVhbjtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXV0b0lkU3RyaW5nOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgcHNldWRvSG92ZXJlZDogYm9vbGVhbiB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHBzZXVkb1ByZXNzZWQ6IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBwc2V1ZG9Gb2N1c2VkOiBib29sZWFuIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmVzIGlmIGNvbXBvbmVudCBpcyBmb2N1c2FibGUgd2l0aCBrZXlib2FyZC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgZm9jdXNhYmxlID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBuYXRpdmVJZCA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgJ3RydWUnIG9uIGZvY3VzIGFuZCAnZmFsc2UnIG9uIGJsdXIuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgZm9jdXNlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IHByZXNzZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBob3ZlcmVkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgZm9jdXNWaXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgaG92ZXJlZCA9IGZhbHNlO1xuXG4gICAgcHJlc3NlZCA9IGZhbHNlO1xuXG4gICAgZm9jdXNWaXNpYmxlID0gZmFsc2U7XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuYXV0b0lkU3RyaW5nID0gYCR7VFVJfSR7QWJzdHJhY3RUdWlJbnRlcmFjdGl2ZS5hdXRvSWQrK30ke0RhdGUubm93KCl9YDtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLl9kaXNhYmxlZCcpXG4gICAgZ2V0IGNvbXB1dGVkRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpc2FibGVkO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuX2hvdmVyZWQnKVxuICAgIGdldCBjb21wdXRlZEhvdmVyZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5jb21wdXRlZERpc2FibGVkICYmICh0aGlzLnBzZXVkb0hvdmVyZWQgPz8gdGhpcy5ob3ZlcmVkKTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLl9wcmVzc2VkJylcbiAgICBnZXQgY29tcHV0ZWRQcmVzc2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuY29tcHV0ZWREaXNhYmxlZCAmJiAodGhpcy5wc2V1ZG9QcmVzc2VkID8/IHRoaXMucHJlc3NlZCk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkRm9jdXNhYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuY29tcHV0ZWREaXNhYmxlZCAmJiAodGhpcy5mb2N1c2FibGUgfHwgdGhpcy5mb2N1c2VkKTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLl9mb2N1c2VkJylcbiAgICBnZXQgY29tcHV0ZWRGb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuY29tcHV0ZWREaXNhYmxlZCAmJiAodGhpcy5wc2V1ZG9Gb2N1c2VkID8/IHRoaXMuZm9jdXNlZCk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5fZm9jdXMtdmlzaWJsZScpXG4gICAgZ2V0IGNvbXB1dGVkRm9jdXNWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuY29tcHV0ZWREaXNhYmxlZCAmJiAodGhpcy5wc2V1ZG9Gb2N1c2VkID8/IHRoaXMuZm9jdXNWaXNpYmxlKTtcbiAgICB9XG5cbiAgICBnZXQgaWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlSWQgPyB0aGlzLm5hdGl2ZUlkIDogdGhpcy5hdXRvSWRTdHJpbmc7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHVwZGF0ZUhvdmVyZWQoaG92ZXJlZDogYm9vbGVhbikge1xuICAgICAgICBpZiAodGhpcy5ob3ZlcmVkID09PSBob3ZlcmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmhvdmVyZWQgPSBob3ZlcmVkO1xuICAgICAgICB0aGlzLmhvdmVyZWRDaGFuZ2UuZW1pdChob3ZlcmVkKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdXBkYXRlUHJlc3NlZChwcmVzc2VkOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh0aGlzLnByZXNzZWQgPT09IHByZXNzZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucHJlc3NlZCA9IHByZXNzZWQ7XG4gICAgICAgIHRoaXMucHJlc3NlZENoYW5nZS5lbWl0KHByZXNzZWQpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCB1cGRhdGVGb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5mb2N1c2VkQ2hhbmdlLmVtaXQoZm9jdXNlZCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHVwZGF0ZUZvY3VzVmlzaWJsZShmb2N1c1Zpc2libGU6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHRoaXMuZm9jdXNWaXNpYmxlID09PSBmb2N1c1Zpc2libGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZm9jdXNWaXNpYmxlID0gZm9jdXNWaXNpYmxlO1xuICAgICAgICB0aGlzLmZvY3VzVmlzaWJsZUNoYW5nZS5lbWl0KGZvY3VzVmlzaWJsZSk7XG4gICAgfVxufVxuIl19
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2Fic3RyYWN0LyIsInNvdXJjZXMiOlsiaW50ZXJhY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFFeEQsTUFBTSxHQUFHLEdBQUcsa0JBQWtCLENBQUM7QUFFL0I7O0dBRUc7QUFFSCxJQUFzQixzQkFBc0IsOEJBQTVDLE1BQXNCLHNCQUFzQjtJQXlEeEM7UUE5Q0Esa0JBQWEsR0FBbUIsSUFBSSxDQUFDO1FBSXJDLGtCQUFhLEdBQW1CLElBQUksQ0FBQztRQUlyQyxrQkFBYSxHQUFtQixJQUFJLENBQUM7UUFFckM7O1dBRUc7UUFHSCxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBSWpCLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFFZDs7V0FFRztRQUVNLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUVyRCxtREFBbUQ7UUFFMUMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRXJELG1EQUFtRDtRQUUxQyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFHNUMsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUUxRCxtREFBbUQ7UUFDbkQsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUVoQixtREFBbUQ7UUFDbkQsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUVoQixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUdqQixJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsR0FBRyxHQUFHLHdCQUFzQixDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDO0lBQ2hGLENBQUM7SUFHRCxJ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LENBQUMsaUJBQWlCLENBQUM7OERBRzlCO0FBSUQ7SUFEQyxXQUFXLENBQUMsZ0JBQWdCLENBQUM7NkRBRzdCO0FBSUQ7SUFEQyxXQUFXLENBQUMsZ0JBQWdCLENBQUM7NkRBRzdCO0FBT0Q7SUFEQyxXQUFXLENBQUMsZ0JBQWdCLENBQUM7NkRBRzdCO0FBR0Q7SUFEQyxXQUFXLENBQUMsc0JBQXNCLENBQUM7a0VBR25DO0FBMUZpQixzQkFBc0I7SUFEM0MsU0FBUyxFQUFFO0dBQ1Usc0JBQXNCLENBaUkzQztTQWpJcUIsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0dWlEZWZhdWx0UHJvcH0gZnJvbSAnQHRhaWdhLXVpL2Nkay9kZWNvcmF0b3JzJztcblxuY29uc3QgVFVJID0gJ3R1aV9pbnRlcmFjdGl2ZV8nO1xuXG4vKipcbiAqIFRoZSBtb3N0IGJhc2ljIGNsYXNzIGZvciBpbnRlcmFjdGl2ZSBjb21wb25lbnRzXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0VHVpSW50ZXJhY3RpdmUge1xuICAgIHByaXZhdGUgc3RhdGljIGF1dG9JZCA9IDA7XG5cbiAgICBhYnN0cmFjdCBkaXNhYmxlZDogYm9vbGVhbjtcblxuICAgIGFic3RyYWN0IGZvY3VzZWQ6IGJvb2xlYW47XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGF1dG9JZFN0cmluZzogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHBzZXVkb0hvdmVyZWQ6IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBwc2V1ZG9QcmVzc2VkOiBib29sZWFuIHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgcHNldWRvRm9jdXNlZDogYm9vbGVhbiB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogRGV0ZXJtaW5lcyBpZiBjb21wb25lbnQgaXMgZm9jdXNhYmxlIHdpdGgga2V5Ym9hcmQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGZvY3VzYWJsZSA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbmF0aXZlSWQgPSAnJztcblxuICAgIC8qKlxuICAgICAqIEVtaXRzICd0cnVlJyBvbiBmb2N1cyBhbmQgJ2ZhbHNlJyBvbiBibHVyLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IGZvY3VzZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICAvKiogQGRlcHJlY2F0ZWQgdXNlIGB0dWlQcmVzc2VkQ2hhbmdlYCBkaXJlY3RpdmUgKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBwcmVzc2VkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgLyoqIEBkZXByZWNhdGVkIHVzZSBgdHVpSG92ZXJlZENoYW5nZWAgZGlyZWN0aXZlICovXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgaG92ZXJlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IGZvY3VzVmlzaWJsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIC8qKiBAZGVwcmVjYXRlZCB1c2UgYHR1aUhvdmVyZWRDaGFuZ2VgIGRpcmVjdGl2ZSAqL1xuICAgIGhvdmVyZWQgPSBmYWxzZTtcblxuICAgIC8qKiBAZGVwcmVjYXRlZCB1c2UgYHR1aVByZXNzZWRDaGFuZ2VgIGRpcmVjdGl2ZSAqL1xuICAgIHByZXNzZWQgPSBmYWxzZTtcblxuICAgIGZvY3VzVmlzaWJsZSA9IGZhbHNlO1xuXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmF1dG9JZFN0cmluZyA9IGAke1RVSX0ke0Fic3RyYWN0VHVpSW50ZXJhY3RpdmUuYXV0b0lkKyt9JHtEYXRlLm5vdygpfWA7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5fZGlzYWJsZWQnKVxuICAgIGdldCBjb21wdXRlZERpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kaXNhYmxlZDtcbiAgICB9XG5cbiAgICAvKiogQGRlcHJlY2F0ZWQgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLl9ob3ZlcmVkJylcbiAgICBnZXQgY29tcHV0ZWRIb3ZlcmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuY29tcHV0ZWREaXNhYmxlZCAmJiAodGhpcy5wc2V1ZG9Ib3ZlcmVkID8/IHRoaXMuaG92ZXJlZCk7XG4gICAgfVxuXG4gICAgLyoqIEBkZXByZWNhdGVkICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5fcHJlc3NlZCcpXG4gICAgZ2V0IGNvbXB1dGVkUHJlc3NlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmNvbXB1dGVkRGlzYWJsZWQgJiYgKHRoaXMucHNldWRvUHJlc3NlZCA/PyB0aGlzLnByZXNzZWQpO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZEZvY3VzYWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmNvbXB1dGVkRGlzYWJsZWQgJiYgKHRoaXMuZm9jdXNhYmxlIHx8IHRoaXMuZm9jdXNlZCk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5fZm9jdXNlZCcpXG4gICAgZ2V0IGNvbXB1dGVkRm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmNvbXB1dGVkRGlzYWJsZWQgJiYgKHRoaXMucHNldWRvRm9jdXNlZCA/PyB0aGlzLmZvY3VzZWQpO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuX2ZvY3VzLXZpc2libGUnKVxuICAgIGdldCBjb21wdXRlZEZvY3VzVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmNvbXB1dGVkRGlzYWJsZWQgJiYgKHRoaXMucHNldWRvRm9jdXNlZCA/PyB0aGlzLmZvY3VzVmlzaWJsZSk7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogQ29uc2lkZXIgcmVtb3Zpbmcgc2luY2UgbmF0aXZlIGlucHV0IGlzIGV4cG9zZWRcbiAgICBnZXQgaWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlSWQgPyB0aGlzLm5hdGl2ZUlkIDogdGhpcy5hdXRvSWRTdHJpbmc7XG4gICAgfVxuXG4gICAgLyoqIEBkZXByZWNhdGVkICovXG4gICAgcHJvdGVjdGVkIHVwZGF0ZUhvdmVyZWQoaG92ZXJlZDogYm9vbGVhbikge1xuICAgICAgICBpZiAodGhpcy5ob3ZlcmVkID09PSBob3ZlcmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmhvdmVyZWQgPSBob3ZlcmVkO1xuICAgICAgICB0aGlzLmhvdmVyZWRDaGFuZ2UuZW1pdChob3ZlcmVkKTtcbiAgICB9XG5cbiAgICAvKiogQGRlcHJlY2F0ZWQgKi9cbiAgICBwcm90ZWN0ZWQgdXBkYXRlUHJlc3NlZChwcmVzc2VkOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh0aGlzLnByZXNzZWQgPT09IHByZXNzZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucHJlc3NlZCA9IHByZXNzZWQ7XG4gICAgICAgIHRoaXMucHJlc3NlZENoYW5nZS5lbWl0KHByZXNzZWQpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCB1cGRhdGVGb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5mb2N1c2VkQ2hhbmdlLmVtaXQoZm9jdXNlZCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHVwZGF0ZUZvY3VzVmlzaWJsZShmb2N1c1Zpc2libGU6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHRoaXMuZm9jdXNWaXNpYmxlID09PSBmb2N1c1Zpc2libGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZm9jdXNWaXNpYmxlID0gZm9jdXNWaXNpYmxlO1xuICAgICAgICB0aGlzLmZvY3VzVmlzaWJsZUNoYW5nZS5lbWl0KGZvY3VzVmlzaWJsZSk7XG4gICAgfVxufVxuIl19
@@ -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==