@taiga-ui/cdk 3.23.1-dev.main-d8b7500 → 3.23.1-dev.main-3d032b2

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 (224) hide show
  1. package/abstract/control.d.ts +2 -2
  2. package/abstract/dialog.directive.d.ts +1 -1
  3. package/abstract/portal-host.d.ts +4 -4
  4. package/abstract/theme-switcher.d.ts +2 -2
  5. package/bundles/taiga-ui-cdk-abstract.umd.js +20 -20
  6. package/bundles/taiga-ui-cdk-abstract.umd.js.map +1 -1
  7. package/bundles/taiga-ui-cdk-classes.umd.js +6 -1
  8. package/bundles/taiga-ui-cdk-classes.umd.js.map +1 -1
  9. package/bundles/taiga-ui-cdk-components-alert-host.umd.js +1 -1
  10. package/bundles/taiga-ui-cdk-components-alert-host.umd.js.map +1 -1
  11. package/bundles/taiga-ui-cdk-constants.umd.js +8 -0
  12. package/bundles/taiga-ui-cdk-constants.umd.js.map +1 -1
  13. package/bundles/taiga-ui-cdk-date-time.umd.js +20 -16
  14. package/bundles/taiga-ui-cdk-date-time.umd.js.map +1 -1
  15. package/bundles/taiga-ui-cdk-decorators.umd.js +12 -10
  16. package/bundles/taiga-ui-cdk-decorators.umd.js.map +1 -1
  17. package/bundles/taiga-ui-cdk-directives-active-zone.umd.js +3 -3
  18. package/bundles/taiga-ui-cdk-directives-active-zone.umd.js.map +1 -1
  19. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.js +20 -21
  20. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.js.map +1 -1
  21. package/bundles/taiga-ui-cdk-directives-checked.umd.js +3 -3
  22. package/bundles/taiga-ui-cdk-directives-checked.umd.js.map +1 -1
  23. package/bundles/taiga-ui-cdk-directives-control.umd.js +82 -0
  24. package/bundles/taiga-ui-cdk-directives-control.umd.js.map +1 -0
  25. package/bundles/taiga-ui-cdk-directives-copy-processor.umd.js +3 -3
  26. package/bundles/taiga-ui-cdk-directives-copy-processor.umd.js.map +1 -1
  27. package/bundles/taiga-ui-cdk-directives-drag.umd.js +3 -3
  28. package/bundles/taiga-ui-cdk-directives-drag.umd.js.map +1 -1
  29. package/bundles/taiga-ui-cdk-directives-focus-trap.umd.js +8 -8
  30. package/bundles/taiga-ui-cdk-directives-focus-trap.umd.js.map +1 -1
  31. package/bundles/taiga-ui-cdk-directives-for-async.umd.js +20 -7
  32. package/bundles/taiga-ui-cdk-directives-for-async.umd.js.map +1 -1
  33. package/bundles/taiga-ui-cdk-directives-hovered.umd.js +4 -4
  34. package/bundles/taiga-ui-cdk-directives-hovered.umd.js.map +1 -1
  35. package/bundles/taiga-ui-cdk-directives-media.umd.js +9 -9
  36. package/bundles/taiga-ui-cdk-directives-media.umd.js.map +1 -1
  37. package/bundles/taiga-ui-cdk-directives-pressed.umd.js +3 -3
  38. package/bundles/taiga-ui-cdk-directives-pressed.umd.js.map +1 -1
  39. package/bundles/taiga-ui-cdk-directives-prevent-default.umd.js +3 -3
  40. package/bundles/taiga-ui-cdk-directives-prevent-default.umd.js.map +1 -1
  41. package/bundles/taiga-ui-cdk-directives-value-changes.umd.js +90 -0
  42. package/bundles/taiga-ui-cdk-directives-value-changes.umd.js.map +1 -0
  43. package/bundles/taiga-ui-cdk-directives.umd.js +16 -4
  44. package/bundles/taiga-ui-cdk-directives.umd.js.map +1 -1
  45. package/bundles/taiga-ui-cdk-observables.umd.js +2 -2
  46. package/bundles/taiga-ui-cdk-observables.umd.js.map +1 -1
  47. package/bundles/taiga-ui-cdk-services.umd.js +19 -19
  48. package/bundles/taiga-ui-cdk-services.umd.js.map +1 -1
  49. package/bundles/taiga-ui-cdk-tokens.umd.js +12 -13
  50. package/bundles/taiga-ui-cdk-tokens.umd.js.map +1 -1
  51. package/bundles/taiga-ui-cdk-utils-browser.umd.js +7 -8
  52. package/bundles/taiga-ui-cdk-utils-browser.umd.js.map +1 -1
  53. package/bundles/taiga-ui-cdk-utils-dom.umd.js +8 -8
  54. package/bundles/taiga-ui-cdk-utils-dom.umd.js.map +1 -1
  55. package/bundles/taiga-ui-cdk-utils-focus.umd.js +6 -6
  56. package/bundles/taiga-ui-cdk-utils-focus.umd.js.map +1 -1
  57. package/bundles/taiga-ui-cdk-utils-format.umd.js +1 -1
  58. package/bundles/taiga-ui-cdk-utils-format.umd.js.map +1 -1
  59. package/bundles/taiga-ui-cdk-utils-math.umd.js +17 -16
  60. package/bundles/taiga-ui-cdk-utils-math.umd.js.map +1 -1
  61. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.js +2 -1
  62. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.js.map +1 -1
  63. package/classes/assert.d.ts +5 -0
  64. package/constants/parent-animation.d.ts +7 -0
  65. package/directives/active-zone/active-zone.directive.d.ts +2 -2
  66. package/directives/auto-focus/autofocus.options.d.ts +1 -1
  67. package/directives/auto-focus/handlers/abstract.handler.d.ts +3 -3
  68. package/directives/auto-focus/handlers/default.handler.d.ts +1 -1
  69. package/directives/auto-focus/handlers/ios.handler.d.ts +2 -2
  70. package/directives/auto-focus/handlers/sync.handler.d.ts +1 -1
  71. package/directives/checked/checked.directive.d.ts +2 -2
  72. package/directives/control/control.directive.d.ts +9 -0
  73. package/directives/control/control.module.d.ts +7 -0
  74. package/directives/control/index.d.ts +2 -0
  75. package/directives/control/package.json +10 -0
  76. package/directives/control/taiga-ui-cdk-directives-control.d.ts +5 -0
  77. package/directives/copy-processor/copy-processor.directive.d.ts +2 -2
  78. package/directives/drag/drag.directive.d.ts +2 -2
  79. package/directives/focus-trap/focus-trap.directive.d.ts +3 -3
  80. package/directives/for-async/for-async.directive.d.ts +2 -0
  81. package/directives/hovered/hovered.service.d.ts +2 -2
  82. package/directives/index.d.ts +2 -0
  83. package/directives/media/media.directive.d.ts +2 -2
  84. package/directives/pressed/pressed.directive.d.ts +2 -2
  85. package/directives/prevent-default/prevent-default.directive.d.ts +2 -2
  86. package/directives/value-changes/index.d.ts +2 -0
  87. package/directives/value-changes/package.json +10 -0
  88. package/directives/value-changes/taiga-ui-cdk-directives-value-changes.d.ts +5 -0
  89. package/directives/value-changes/value-changes.directive.d.ts +14 -0
  90. package/directives/value-changes/value-changes.module.d.ts +7 -0
  91. package/esm2015/abstract/control.js +6 -6
  92. package/esm2015/abstract/dialog.directive.js +3 -3
  93. package/esm2015/abstract/portal-host.js +8 -8
  94. package/esm2015/abstract/theme-switcher.js +7 -7
  95. package/esm2015/classes/assert.js +7 -2
  96. package/esm2015/components/alert-host/alert-host.component.js +2 -2
  97. package/esm2015/constants/parent-animation.js +8 -1
  98. package/esm2015/date-time/day-range.js +2 -2
  99. package/esm2015/date-time/day.js +7 -5
  100. package/esm2015/date-time/month-range.js +2 -2
  101. package/esm2015/date-time/month.js +3 -3
  102. package/esm2015/date-time/time.js +6 -4
  103. package/esm2015/date-time/year.js +6 -6
  104. package/esm2015/decorators/default-prop.js +10 -9
  105. package/esm2015/decorators/required-setter.js +4 -3
  106. package/esm2015/directives/active-zone/active-zone.directive.js +4 -4
  107. package/esm2015/directives/auto-focus/autofocus.options.js +4 -4
  108. package/esm2015/directives/auto-focus/handlers/abstract.handler.js +5 -6
  109. package/esm2015/directives/auto-focus/handlers/default.handler.js +3 -3
  110. package/esm2015/directives/auto-focus/handlers/ios.handler.js +10 -10
  111. package/esm2015/directives/auto-focus/handlers/sync.handler.js +3 -3
  112. package/esm2015/directives/checked/checked.directive.js +4 -4
  113. package/esm2015/directives/control/control.directive.js +25 -0
  114. package/esm2015/directives/control/control.module.js +16 -0
  115. package/esm2015/directives/control/index.js +3 -0
  116. package/esm2015/directives/control/taiga-ui-cdk-directives-control.js +5 -0
  117. package/esm2015/directives/copy-processor/copy-processor.directive.js +4 -4
  118. package/esm2015/directives/drag/drag.directive.js +4 -4
  119. package/esm2015/directives/focus-trap/focus-trap.directive.js +9 -9
  120. package/esm2015/directives/for-async/for-async.directive.js +14 -5
  121. package/esm2015/directives/hovered/hovered.service.js +5 -5
  122. package/esm2015/directives/index.js +3 -1
  123. package/esm2015/directives/media/media.directive.js +10 -10
  124. package/esm2015/directives/pressed/pressed.directive.js +4 -4
  125. package/esm2015/directives/prevent-default/prevent-default.directive.js +4 -4
  126. package/esm2015/directives/value-changes/index.js +3 -0
  127. package/esm2015/directives/value-changes/taiga-ui-cdk-directives-value-changes.js +5 -0
  128. package/esm2015/directives/value-changes/value-changes.directive.js +39 -0
  129. package/esm2015/directives/value-changes/value-changes.module.js +16 -0
  130. package/esm2015/interfaces/focusable-element-accessor.js +1 -1
  131. package/esm2015/observables/watch.js +3 -3
  132. package/esm2015/services/focus-visible.service.js +3 -3
  133. package/esm2015/services/obscured.service.js +3 -3
  134. package/esm2015/services/pan.service.js +5 -5
  135. package/esm2015/services/parents-scroll.service.js +4 -4
  136. package/esm2015/services/resize.service.js +4 -4
  137. package/esm2015/services/scroll.service.js +4 -4
  138. package/esm2015/services/swipe.service.js +3 -3
  139. package/esm2015/tokens/active-element.js +11 -12
  140. package/esm2015/tokens/window-height.js +3 -3
  141. package/esm2015/utils/browser/is-safari.js +8 -9
  142. package/esm2015/utils/dom/get-element-obscurers.js +6 -6
  143. package/esm2015/utils/dom/get-element-offset.js +2 -2
  144. package/esm2015/utils/dom/is-inside-iframe.js +3 -3
  145. package/esm2015/utils/focus/blur-native-focused.js +3 -3
  146. package/esm2015/utils/focus/get-native-focused.js +5 -5
  147. package/esm2015/utils/format/px.js +2 -2
  148. package/esm2015/utils/math/clamp.js +5 -5
  149. package/esm2015/utils/math/in-range.js +5 -5
  150. package/esm2015/utils/math/normalize-to-int-number.js +4 -4
  151. package/esm2015/utils/math/quantize.js +4 -4
  152. package/esm2015/utils/math/round.js +4 -3
  153. package/esm2015/utils/miscellaneous/ease-in-out-quad.js +3 -2
  154. package/fesm2015/taiga-ui-cdk-abstract.js +20 -20
  155. package/fesm2015/taiga-ui-cdk-abstract.js.map +1 -1
  156. package/fesm2015/taiga-ui-cdk-classes.js +6 -1
  157. package/fesm2015/taiga-ui-cdk-classes.js.map +1 -1
  158. package/fesm2015/taiga-ui-cdk-components-alert-host.js +1 -1
  159. package/fesm2015/taiga-ui-cdk-components-alert-host.js.map +1 -1
  160. package/fesm2015/taiga-ui-cdk-constants.js +8 -1
  161. package/fesm2015/taiga-ui-cdk-constants.js.map +1 -1
  162. package/fesm2015/taiga-ui-cdk-date-time.js +20 -16
  163. package/fesm2015/taiga-ui-cdk-date-time.js.map +1 -1
  164. package/fesm2015/taiga-ui-cdk-decorators.js +12 -10
  165. package/fesm2015/taiga-ui-cdk-decorators.js.map +1 -1
  166. package/fesm2015/taiga-ui-cdk-directives-active-zone.js +3 -3
  167. package/fesm2015/taiga-ui-cdk-directives-active-zone.js.map +1 -1
  168. package/fesm2015/taiga-ui-cdk-directives-auto-focus.js +20 -21
  169. package/fesm2015/taiga-ui-cdk-directives-auto-focus.js.map +1 -1
  170. package/fesm2015/taiga-ui-cdk-directives-checked.js +3 -3
  171. package/fesm2015/taiga-ui-cdk-directives-checked.js.map +1 -1
  172. package/fesm2015/taiga-ui-cdk-directives-control.js +45 -0
  173. package/fesm2015/taiga-ui-cdk-directives-control.js.map +1 -0
  174. package/fesm2015/taiga-ui-cdk-directives-copy-processor.js +3 -3
  175. package/fesm2015/taiga-ui-cdk-directives-copy-processor.js.map +1 -1
  176. package/fesm2015/taiga-ui-cdk-directives-drag.js +3 -3
  177. package/fesm2015/taiga-ui-cdk-directives-drag.js.map +1 -1
  178. package/fesm2015/taiga-ui-cdk-directives-focus-trap.js +8 -8
  179. package/fesm2015/taiga-ui-cdk-directives-focus-trap.js.map +1 -1
  180. package/fesm2015/taiga-ui-cdk-directives-for-async.js +13 -4
  181. package/fesm2015/taiga-ui-cdk-directives-for-async.js.map +1 -1
  182. package/fesm2015/taiga-ui-cdk-directives-hovered.js +4 -4
  183. package/fesm2015/taiga-ui-cdk-directives-hovered.js.map +1 -1
  184. package/fesm2015/taiga-ui-cdk-directives-media.js +9 -9
  185. package/fesm2015/taiga-ui-cdk-directives-media.js.map +1 -1
  186. package/fesm2015/taiga-ui-cdk-directives-pressed.js +3 -3
  187. package/fesm2015/taiga-ui-cdk-directives-pressed.js.map +1 -1
  188. package/fesm2015/taiga-ui-cdk-directives-prevent-default.js +3 -3
  189. package/fesm2015/taiga-ui-cdk-directives-prevent-default.js.map +1 -1
  190. package/fesm2015/taiga-ui-cdk-directives-value-changes.js +59 -0
  191. package/fesm2015/taiga-ui-cdk-directives-value-changes.js.map +1 -0
  192. package/fesm2015/taiga-ui-cdk-directives.js +2 -0
  193. package/fesm2015/taiga-ui-cdk-directives.js.map +1 -1
  194. package/fesm2015/taiga-ui-cdk-observables.js +2 -2
  195. package/fesm2015/taiga-ui-cdk-observables.js.map +1 -1
  196. package/fesm2015/taiga-ui-cdk-services.js +19 -19
  197. package/fesm2015/taiga-ui-cdk-services.js.map +1 -1
  198. package/fesm2015/taiga-ui-cdk-tokens.js +12 -13
  199. package/fesm2015/taiga-ui-cdk-tokens.js.map +1 -1
  200. package/fesm2015/taiga-ui-cdk-utils-browser.js +7 -8
  201. package/fesm2015/taiga-ui-cdk-utils-browser.js.map +1 -1
  202. package/fesm2015/taiga-ui-cdk-utils-dom.js +8 -8
  203. package/fesm2015/taiga-ui-cdk-utils-dom.js.map +1 -1
  204. package/fesm2015/taiga-ui-cdk-utils-focus.js +6 -6
  205. package/fesm2015/taiga-ui-cdk-utils-focus.js.map +1 -1
  206. package/fesm2015/taiga-ui-cdk-utils-format.js +1 -1
  207. package/fesm2015/taiga-ui-cdk-utils-format.js.map +1 -1
  208. package/fesm2015/taiga-ui-cdk-utils-math.js +17 -16
  209. package/fesm2015/taiga-ui-cdk-utils-math.js.map +1 -1
  210. package/fesm2015/taiga-ui-cdk-utils-miscellaneous.js +2 -1
  211. package/fesm2015/taiga-ui-cdk-utils-miscellaneous.js.map +1 -1
  212. package/interfaces/focusable-element-accessor.d.ts +1 -0
  213. package/observables/watch.d.ts +1 -1
  214. package/package.json +1 -1
  215. package/services/focus-visible.service.d.ts +1 -1
  216. package/services/obscured.service.d.ts +1 -1
  217. package/services/pan.service.d.ts +1 -1
  218. package/services/parents-scroll.service.d.ts +1 -1
  219. package/services/resize.service.d.ts +1 -1
  220. package/services/swipe.service.d.ts +1 -1
  221. package/utils/browser/is-safari.d.ts +1 -1
  222. package/utils/dom/is-inside-iframe.d.ts +1 -1
  223. package/utils/focus/blur-native-focused.d.ts +1 -1
  224. package/utils/focus/get-native-focused.d.ts +1 -1
@@ -0,0 +1,2 @@
1
+ export * from './value-changes.directive';
2
+ export * from './value-changes.module';
@@ -0,0 +1,10 @@
1
+ {
2
+ "main": "../../bundles/taiga-ui-cdk-directives-value-changes.umd.js",
3
+ "module": "../../fesm2015/taiga-ui-cdk-directives-value-changes.js",
4
+ "es2015": "../../fesm2015/taiga-ui-cdk-directives-value-changes.js",
5
+ "esm2015": "../../esm2015/directives/value-changes/taiga-ui-cdk-directives-value-changes.js",
6
+ "fesm2015": "../../fesm2015/taiga-ui-cdk-directives-value-changes.js",
7
+ "typings": "taiga-ui-cdk-directives-value-changes.d.ts",
8
+ "sideEffects": false,
9
+ "name": "@taiga-ui/cdk/directives/value-changes"
10
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@taiga-ui/cdk/directives/value-changes" />
5
+ export * from './index';
@@ -0,0 +1,14 @@
1
+ import { DoCheck } from '@angular/core';
2
+ import { ControlContainer, NgControl } from '@angular/forms';
3
+ import { Observable } from 'rxjs';
4
+ import * as i0 from "@angular/core";
5
+ export declare class TuiValueChangesDirective<T> implements DoCheck {
6
+ private readonly container;
7
+ private readonly control;
8
+ private readonly refresh$;
9
+ readonly tuiValueChanges: Observable<T>;
10
+ constructor(container: ControlContainer | null, control: NgControl | null);
11
+ ngDoCheck(): void;
12
+ static ɵfac: i0.ɵɵFactoryDeclaration<TuiValueChangesDirective<any>, [{ optional: true; }, { optional: true; }]>;
13
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TuiValueChangesDirective<any>, "[tuiValueChanges]", never, {}, { "tuiValueChanges": "tuiValueChanges"; }, never>;
14
+ }
@@ -0,0 +1,7 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./value-changes.directive";
3
+ export declare class TuiValueChangesModule {
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<TuiValueChangesModule, never>;
5
+ static ɵmod: i0.ɵɵNgModuleDeclaration<TuiValueChangesModule, [typeof i1.TuiValueChangesDirective], never, [typeof i1.TuiValueChangesDirective]>;
6
+ static ɵinj: i0.ɵɵInjectorDeclaration<TuiValueChangesModule>;
7
+ }
@@ -14,10 +14,10 @@ import * as i1 from "@angular/forms";
14
14
  * Basic ControlValueAccessor class to build form components upon
15
15
  */
16
16
  export class AbstractTuiControl extends AbstractTuiInteractive {
17
- constructor(ngControl, changeDetectorRef, valueTransformer) {
17
+ constructor(ngControl, cdr, valueTransformer) {
18
18
  super();
19
19
  this.ngControl = ngControl;
20
- this.changeDetectorRef = changeDetectorRef;
20
+ this.cdr = cdr;
21
21
  this.valueTransformer = valueTransformer;
22
22
  this.onTouched = EMPTY_FUNCTION;
23
23
  this.onChange = EMPTY_FUNCTION;
@@ -25,10 +25,10 @@ export class AbstractTuiControl extends AbstractTuiInteractive {
25
25
  this.destroy$ = new Subject();
26
26
  this.readOnly = false;
27
27
  this.pseudoInvalid = null;
28
- if (this.ngControl === null) {
28
+ if (ngDevMode && this.ngControl === null) {
29
29
  tuiAssert.assert(false, `NgControl not injected in ${this.constructor.name}!\n`, `Use [(ngModel)] or [formControl] or formControlName for correct work.`);
30
30
  }
31
- else {
31
+ if (this.ngControl) {
32
32
  this.ngControl.valueAccessor = this;
33
33
  }
34
34
  }
@@ -99,7 +99,7 @@ export class AbstractTuiControl extends AbstractTuiInteractive {
99
99
  this.destroy$.complete();
100
100
  }
101
101
  checkControlUpdate() {
102
- this.changeDetectorRef.markForCheck();
102
+ this.cdr.markForCheck();
103
103
  }
104
104
  registerOnChange(onChange) {
105
105
  this.onChange = (componentValue) => {
@@ -198,4 +198,4 @@ export function tuiAsControl(useExisting) {
198
198
  useExisting,
199
199
  };
200
200
  }
201
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9hYnN0cmFjdC9jb250cm9sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUgsU0FBUyxFQUNULFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUdMLFFBQVEsR0FHWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQW1ELE9BQU8sRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pGLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNoRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBRXhELE9BQU8sRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6QyxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0scUJBQXFCLENBQUM7OztBQUVoRTs7R0FFRztBQUVILE1BQU0sT0FBZ0Isa0JBQ2xCLFNBQVEsc0JBQXNCO0lBc0I5QixZQUVxQixTQUEyQixFQUN6QixpQkFBb0MsRUFHcEMsZ0JBQXVEO1FBRTFFLEtBQUssRUFBRSxDQUFDO1FBTlMsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDekIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUdwQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXVDO1FBdkJ0RSxjQUFTLEdBQUcsY0FBYyxDQUFDO1FBRTNCLGFBQVEsR0FBRyxjQUFjLENBQUM7UUFFZixrQkFBYSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBRXhDLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxD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InNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIFByb3ZpZGVyLFxuICAgIFR5cGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBYnN0cmFjdENvbnRyb2wsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOZ0NvbnRyb2wsIE5nTW9kZWx9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7dHVpQXNzZXJ0fSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NsYXNzZXMnO1xuaW1wb3J0IHtFTVBUWV9GVU5DVElPTn0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jb25zdGFudHMnO1xuaW1wb3J0IHt0dWlEZWZhdWx0UHJvcH0gZnJvbSAnQHRhaWdhLXVpL2Nkay9kZWNvcmF0b3JzJztcbmltcG9ydCB7VHVpQ29udHJvbFZhbHVlVHJhbnNmb3JtZXJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvaW50ZXJmYWNlcyc7XG5pbXBvcnQge21lcmdlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7dGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7QWJzdHJhY3RUdWlJbnRlcmFjdGl2ZX0gZnJvbSAnLi9pbnRlcmFjdGl2ZSc7XG5pbXBvcnQge0Fic3RyYWN0VHVpVmFsdWVUcmFuc2Zvcm1lcn0gZnJvbSAnLi92YWx1ZS10cmFuc2Zvcm1lcic7XG5cbi8qKlxuICogQmFzaWMgQ29udHJvbFZhbHVlQWNjZXNzb3IgY2xhc3MgdG8gYnVpbGQgZm9ybSBjb21wb25lbnRzIHVwb25cbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RUdWlDb250cm9sPFQ+XG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aUludGVyYWN0aXZlXG4gICAgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3JcbntcbiAgICBwcml2YXRlIHByZXZpb3VzSW50ZXJuYWxWYWx1ZT86IFQgfCBudWxsO1xuXG4gICAgcHJpdmF0ZSBvblRvdWNoZWQgPSBFTVBUWV9GVU5DVElPTjtcblxuICAgIHByaXZhdGUgb25DaGFuZ2UgPSBFTVBUWV9GVU5DVElPTjtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBmYWxsYmFja1ZhbHVlID0gdGhpcy5nZXRGYWxsYmFja1ZhbHVlKCk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoYGNsYXNzLl9yZWFkb25seWApXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICByZWFkT25seSA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHBzZXVkb0ludmFsaWQ6IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG5nQ29udHJvbDogTmdDb250cm9sIHwgbnVsbCxcbiAgICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQEluamVjdChBYnN0cmFjdFR1aVZhbHVlVHJhbnNmb3JtZXIpXG4gICAgICAgIHByb3RlY3RlZCByZWFkb25seSB2YWx1ZVRyYW5zZm9ybWVyPzogVHVpQ29udHJvbFZhbHVlVHJhbnNmb3JtZXI8VD4gfCBudWxsLFxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdHVpQXNzZXJ0LmFzc2VydChcbiAgICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgICBgTmdDb250cm9sIG5vdCBpbmplY3RlZCBpbiAke3RoaXMuY29uc3RydWN0b3IubmFtZX0hXFxuYCxcbiAgICAgICAgICAgICAgICBgVXNlIFsobmdNb2RlbCldIG9yIFtmb3JtQ29udHJvbF0gb3IgZm9ybUNvbnRyb2xOYW1lIGZvciBjb3JyZWN0IHdvcmsuYCxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXRGYWxsYmFja1ZhbHVlKCk6IFQ7XG5cbiAgICBASG9zdEJpbmRpbmcoYGNsYXNzLl9pbnZhbGlkYClcbiAgICBnZXQgY29tcHV0ZWRJbnZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5pbnRlcmFjdGl2ZSAmJlxuICAgICAgICAgICAgKHRoaXMucHNldWRvSW52YWxpZCAhPT0gbnVsbFxuICAgICAgICAgICAgICAgID8gdGhpcy5wc2V1ZG9JbnZhbGlkXG4gICAgICAgICAgICAgICAgOiB0aGlzLnRvdWNoZWQgJiYgdGhpcy5pbnZhbGlkKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCB2YWx1ZSgpOiBUIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJldmlvdXNJbnRlcm5hbFZhbHVlID8/IHRoaXMuZmFsbGJhY2tWYWx1ZTtcbiAgICB9XG5cbiAgICBzZXQgdmFsdWUodmFsdWU6IFQpIHtcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgZ2V0IHNhZmVDdXJyZW50VmFsdWUoKTogVCB7XG4gICAgICAgIHJldHVybiB0aGlzLnJhd1ZhbHVlID8/IHRoaXMuZmFsbGJhY2tWYWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgaW52YWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2FmZU5nQ29udHJvbERhdGE8Ym9vbGVhbj4oKHtpbnZhbGlkfSkgPT4gaW52YWxpZCwgZmFsc2UpO1xuICAgIH1cblxuICAgIGdldCB2YWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2FmZU5nQ29udHJvbERhdGE8Ym9vbGVhbj4oKHt2YWxpZH0pID0+IHZhbGlkLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgZ2V0IHRvdWNoZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNhZmVOZ0NvbnRyb2xEYXRhPGJvb2xlYW4+KCh7dG91Y2hlZH0pID0+IHRvdWNoZWQsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNhZmVOZ0NvbnRyb2xEYXRhPGJvb2xlYW4+KCh7ZGlzYWJsZWR9KSA9PiBkaXNhYmxlZCwgZmFsc2UpO1xuICAgIH1cblxuICAgIGdldCBpbnRlcmFjdGl2ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLnJlYWRPbmx5ICYmICF0aGlzLmNvbXB1dGVkRGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgZ2V0IGNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLnNhZmVOZ0NvbnRyb2xEYXRhPEFic3RyYWN0Q29udHJvbCB8IG51bGw+KFxuICAgICAgICAgICAgKHtjb250cm9sfSkgPT4gY29udHJvbCxcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkTmFtZSgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbE5hbWU/LnRvU3RyaW5nKCkgPz8gbnVsbDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGNvbnRyb2xOYW1lKCk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5uZ0NvbnRyb2w/Lm5hbWU/LnRvU3RyaW5nKCkgPz8gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCByYXdWYWx1ZSgpOiBUIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgY29uc3Qge25nQ29udHJvbH0gPSB0aGlzO1xuXG4gICAgICAgIGlmIChuZ0NvbnRyb2wgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb250cm9sVmFsdWUgPVxuICAgICAgICAgICAgbmdDb250cm9sIGluc3RhbmNlb2YgTmdNb2RlbCAmJiB0aGlzLnByZXZpb3VzSW50ZXJuYWxWYWx1ZSA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgPyBuZ0NvbnRyb2wudmlld01vZGVsXG4gICAgICAgICAgICAgICAgOiBuZ0NvbnRyb2wudmFsdWU7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZnJvbUNvbnRyb2xWYWx1ZShjb250cm9sVmFsdWUpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMubmdDb250cm9sPy52YWx1ZUNoYW5nZXMgfHwgIXRoaXMubmdDb250cm9sPy5zdGF0dXNDaGFuZ2VzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBtZXJnZSh0aGlzLm5nQ29udHJvbC52YWx1ZUNoYW5nZXMsIHRoaXMubmdDb250cm9sLnN0YXR1c0NoYW5nZXMpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMucmVmcmVzaExvY2FsVmFsdWUodGhpcy5zYWZlQ3VycmVudFZhbHVlKSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgY2hlY2tDb250cm9sVXBkYXRlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2Uob25DaGFuZ2U6ICh2YWx1ZTogVCB8IHVua25vd24pID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IChjb21wb25lbnRWYWx1ZTogVCkgPT4ge1xuICAgICAgICAgICAgb25DaGFuZ2UodGhpcy50b0NvbnRyb2xWYWx1ZShjb21wb25lbnRWYWx1ZSkpO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKG9uVG91Y2hlZDogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IG9uVG91Y2hlZDtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNoZWNrQ29udHJvbFVwZGF0ZSgpO1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IFQgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNvbnRyb2xWYWx1ZSA9XG4gICAgICAgICAgICB0aGlzLm5nQ29udHJvbCBpbnN0YW5jZW9mIE5nTW9kZWwgJiYgdGhpcy5wcmV2aW91c0ludGVybmFsVmFsdWUgPT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgID8gdGhpcy5uZ0NvbnRyb2wubW9kZWxcbiAgICAgICAgICAgICAgICA6IHZhbHVlO1xuXG4gICAgICAgIHRoaXMucmVmcmVzaExvY2FsVmFsdWUodGhpcy5mcm9tQ29udHJvbFZhbHVlKGNvbnRyb2xWYWx1ZSkpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSB1cGRhdGVGb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKCFmb2N1c2VkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2xNYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgIH1cblxuICAgICAgICBzdXBlci51cGRhdGVGb2N1c2VkKGZvY3VzZWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBgdmFsdWVgIHNldHRlclxuICAgICAqL1xuICAgIHByb3RlY3RlZCB1cGRhdGVWYWx1ZSh2YWx1ZTogVCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLnZhbHVlSWRlbnRpY2FsQ29tcGFyYXRvcih0aGlzLnZhbHVlLCB2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucHJldmlvdXNJbnRlcm5hbFZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuY29udHJvbFNldFZhbHVlKHZhbHVlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdmFsdWVJZGVudGljYWxDb21wYXJhdG9yKG9sZFZhbHVlOiBULCBuZXdWYWx1ZTogVCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gb2xkVmFsdWUgPT09IG5ld1ZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2FmZU5nQ29udHJvbERhdGE8VD4oXG4gICAgICAgIGV4dHJhY3RvcjogKG5nQ29udHJvbDogTmdDb250cm9sKSA9PiBUIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgICAgICAgZGVmYXVsdEZpZWxkVmFsdWU6IFQsXG4gICAgKTogVCB7XG4gICAgICAgIHJldHVybiAodGhpcy5uZ0NvbnRyb2wgJiYgZXh0cmFjdG9yKHRoaXMubmdDb250cm9sKSkgPz8gZGVmYXVsdEZpZWxkVmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb250cm9sTWFya0FzVG91Y2hlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5jaGVja0NvbnRyb2xVcGRhdGUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbnRyb2xTZXRWYWx1ZSh2YWx1ZTogVCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5jaGVja0NvbnRyb2xVcGRhdGUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlZnJlc2hMb2NhbFZhbHVlKHZhbHVlOiBUIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICB0aGlzLnByZXZpb3VzSW50ZXJuYWxWYWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLmNoZWNrQ29udHJvbFVwZGF0ZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZnJvbUNvbnRyb2xWYWx1ZShjb250cm9sVmFsdWU6IHVua25vd24pOiBUIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVUcmFuc2Zvcm1lclxuICAgICAgICAgICAgPyB0aGlzLnZhbHVlVHJhbnNmb3JtZXIuZnJvbUNvbnRyb2xWYWx1ZShjb250cm9sVmFsdWUpXG4gICAgICAgICAgICA6IChjb250cm9sVmFsdWUgYXMgVCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB0b0NvbnRyb2xWYWx1ZShjb21wb25lbnRWYWx1ZTogVCk6IHVua25vd24ge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZVRyYW5zZm9ybWVyXG4gICAgICAgICAgICA/IHRoaXMudmFsdWVUcmFuc2Zvcm1lci50b0NvbnRyb2xWYWx1ZShjb21wb25lbnRWYWx1ZSlcbiAgICAgICAgICAgIDogY29tcG9uZW50VmFsdWU7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHVpQXNDb250cm9sPFQ+KHVzZUV4aXN0aW5nOiBUeXBlPEFic3RyYWN0VHVpQ29udHJvbDxUPj4pOiBQcm92aWRlciB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcHJvdmlkZTogQWJzdHJhY3RUdWlDb250cm9sLFxuICAgICAgICB1c2VFeGlzdGluZyxcbiAgICB9O1xufVxuIl19
201
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9hYnN0cmFjdC9jb250cm9sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUgsU0FBUyxFQUNULFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUdMLFFBQVEsR0FHWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQW1ELE9BQU8sRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pGLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNoRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBRXhELE9BQU8sRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6QyxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0scUJBQXFCLENBQUM7OztBQUVoRTs7R0FFRztBQUVILE1BQU0sT0FBZ0Isa0JBQ2xCLFNBQVEsc0JBQXNCO0lBc0I5QixZQUVxQixTQUEyQixFQUN6QixHQUFzQixFQUd0QixnQkFBdUQ7UUFFMUUsS0FBSyxFQUFFLENBQUM7UUFOUyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUN6QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUd0QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXVDO1FBdkJ0RSxjQUFTLEdBQUcsY0FBYyxDQUFDO1FBRTNCLGFBQVEsR0FBRyxjQUFjLENBQUM7UUFFZixrQkFBYSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBRXhDLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FB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QixXQUFXO0tBQ2QsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBQcm92aWRlcixcbiAgICBUeXBlLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWJzdHJhY3RDb250cm9sLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgTmdDb250cm9sLCBOZ01vZGVsfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge3R1aUFzc2VydH0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jbGFzc2VzJztcbmltcG9ydCB7RU1QVFlfRlVOQ1RJT059IGZyb20gJ0B0YWlnYS11aS9jZGsvY29uc3RhbnRzJztcbmltcG9ydCB7dHVpRGVmYXVsdFByb3B9IGZyb20gJ0B0YWlnYS11aS9jZGsvZGVjb3JhdG9ycyc7XG5pbXBvcnQge1R1aUNvbnRyb2xWYWx1ZVRyYW5zZm9ybWVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2ludGVyZmFjZXMnO1xuaW1wb3J0IHttZXJnZSwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge3Rha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge0Fic3RyYWN0VHVpSW50ZXJhY3RpdmV9IGZyb20gJy4vaW50ZXJhY3RpdmUnO1xuaW1wb3J0IHtBYnN0cmFjdFR1aVZhbHVlVHJhbnNmb3JtZXJ9IGZyb20gJy4vdmFsdWUtdHJhbnNmb3JtZXInO1xuXG4vKipcbiAqIEJhc2ljIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGNsYXNzIHRvIGJ1aWxkIGZvcm0gY29tcG9uZW50cyB1cG9uXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0VHVpQ29udHJvbDxUPlxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlJbnRlcmFjdGl2ZVxuICAgIGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yXG57XG4gICAgcHJpdmF0ZSBwcmV2aW91c0ludGVybmFsVmFsdWU/OiBUIHwgbnVsbDtcblxuICAgIHByaXZhdGUgb25Ub3VjaGVkID0gRU1QVFlfRlVOQ1RJT047XG5cbiAgICBwcml2YXRlIG9uQ2hhbmdlID0gRU1QVFlfRlVOQ1RJT047XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZmFsbGJhY2tWYWx1ZSA9IHRoaXMuZ2V0RmFsbGJhY2tWYWx1ZSgpO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKGBjbGFzcy5fcmVhZG9ubHlgKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgcmVhZE9ubHkgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBwc2V1ZG9JbnZhbGlkOiBib29sZWFuIHwgbnVsbCA9IG51bGw7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBuZ0NvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIHByb3RlY3RlZCByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBASW5qZWN0KEFic3RyYWN0VHVpVmFsdWVUcmFuc2Zvcm1lcilcbiAgICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IHZhbHVlVHJhbnNmb3JtZXI/OiBUdWlDb250cm9sVmFsdWVUcmFuc2Zvcm1lcjxUPiB8IG51bGwsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgaWYgKG5nRGV2TW9kZSAmJiB0aGlzLm5nQ29udHJvbCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdHVpQXNzZXJ0LmFzc2VydChcbiAgICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgICBgTmdDb250cm9sIG5vdCBpbmplY3RlZCBpbiAke3RoaXMuY29uc3RydWN0b3IubmFtZX0hXFxuYCxcbiAgICAgICAgICAgICAgICBgVXNlIFsobmdNb2RlbCldIG9yIFtmb3JtQ29udHJvbF0gb3IgZm9ybUNvbnRyb2xOYW1lIGZvciBjb3JyZWN0IHdvcmsuYCxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldEZhbGxiYWNrVmFsdWUoKTogVDtcblxuICAgIEBIb3N0QmluZGluZyhgY2xhc3MuX2ludmFsaWRgKVxuICAgIGdldCBjb21wdXRlZEludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLmludGVyYWN0aXZlICYmXG4gICAgICAgICAgICAodGhpcy5wc2V1ZG9JbnZhbGlkICE9PSBudWxsXG4gICAgICAgICAgICAgICAgPyB0aGlzLnBzZXVkb0ludmFsaWRcbiAgICAgICAgICAgICAgICA6IHRoaXMudG91Y2hlZCAmJiB0aGlzLmludmFsaWQpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IHZhbHVlKCk6IFQge1xuICAgICAgICByZXR1cm4gdGhpcy5wcmV2aW91c0ludGVybmFsVmFsdWUgPz8gdGhpcy5mYWxsYmFja1ZhbHVlO1xuICAgIH1cblxuICAgIHNldCB2YWx1ZSh2YWx1ZTogVCkge1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHZhbHVlKTtcbiAgICB9XG5cbiAgICBnZXQgc2FmZUN1cnJlbnRWYWx1ZSgpOiBUIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmF3VmFsdWUgPz8gdGhpcy5mYWxsYmFja1ZhbHVlO1xuICAgIH1cblxuICAgIGdldCBpbnZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zYWZlTmdDb250cm9sRGF0YTxib29sZWFuPigoe2ludmFsaWR9KSA9PiBpbnZhbGlkLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgZ2V0IHZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zYWZlTmdDb250cm9sRGF0YTxib29sZWFuPigoe3ZhbGlkfSkgPT4gdmFsaWQsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBnZXQgdG91Y2hlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2FmZU5nQ29udHJvbERhdGE8Ym9vbGVhbj4oKHt0b3VjaGVkfSkgPT4gdG91Y2hlZCwgZmFsc2UpO1xuICAgIH1cblxuICAgIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2FmZU5nQ29udHJvbERhdGE8Ym9vbGVhbj4oKHtkaXNhYmxlZH0pID0+IGRpc2FibGVkLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgZ2V0IGludGVyYWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMucmVhZE9ubHkgJiYgIXRoaXMuY29tcHV0ZWREaXNhYmxlZDtcbiAgICB9XG5cbiAgICBnZXQgY29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2FmZU5nQ29udHJvbERhdGE8QWJzdHJhY3RDb250cm9sIHwgbnVsbD4oXG4gICAgICAgICAgICAoe2NvbnRyb2x9KSA9PiBjb250cm9sLFxuICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWROYW1lKCk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sTmFtZT8udG9TdHJpbmcoKSA/PyBudWxsO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgY29udHJvbE5hbWUoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLm5nQ29udHJvbD8ubmFtZT8udG9TdHJpbmcoKSA/PyBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IHJhd1ZhbHVlKCk6IFQgfCB1bmRlZmluZWQge1xuICAgICAgICBjb25zdCB7bmdDb250cm9sfSA9IHRoaXM7XG5cbiAgICAgICAgaWYgKG5nQ29udHJvbCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvbnRyb2xWYWx1ZSA9XG4gICAgICAgICAgICBuZ0NvbnRyb2wgaW5zdGFuY2VvZiBOZ01vZGVsICYmIHRoaXMucHJldmlvdXNJbnRlcm5hbFZhbHVlID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICA/IG5nQ29udHJvbC52aWV3TW9kZWxcbiAgICAgICAgICAgICAgICA6IG5nQ29udHJvbC52YWx1ZTtcblxuICAgICAgICByZXR1cm4gdGhpcy5mcm9tQ29udHJvbFZhbHVlKGNvbnRyb2xWYWx1ZSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5uZ0NvbnRyb2w/LnZhbHVlQ2hhbmdlcyB8fCAhdGhpcy5uZ0NvbnRyb2w/LnN0YXR1c0NoYW5nZXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIG1lcmdlKHRoaXMubmdDb250cm9sLnZhbHVlQ2hhbmdlcywgdGhpcy5uZ0NvbnRyb2wuc3RhdHVzQ2hhbmdlcylcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5yZWZyZXNoTG9jYWxWYWx1ZSh0aGlzLnNhZmVDdXJyZW50VmFsdWUpKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBjaGVja0NvbnRyb2xVcGRhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2Uob25DaGFuZ2U6ICh2YWx1ZTogVCB8IHVua25vd24pID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IChjb21wb25lbnRWYWx1ZTogVCkgPT4ge1xuICAgICAgICAgICAgb25DaGFuZ2UodGhpcy50b0NvbnRyb2xWYWx1ZShjb21wb25lbnRWYWx1ZSkpO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKG9uVG91Y2hlZDogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IG9uVG91Y2hlZDtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNoZWNrQ29udHJvbFVwZGF0ZSgpO1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IFQgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNvbnRyb2xWYWx1ZSA9XG4gICAgICAgICAgICB0aGlzLm5nQ29udHJvbCBpbnN0YW5jZW9mIE5nTW9kZWwgJiYgdGhpcy5wcmV2aW91c0ludGVybmFsVmFsdWUgPT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgID8gdGhpcy5uZ0NvbnRyb2wubW9kZWxcbiAgICAgICAgICAgICAgICA6IHZhbHVlO1xuXG4gICAgICAgIHRoaXMucmVmcmVzaExvY2FsVmFsdWUodGhpcy5mcm9tQ29udHJvbFZhbHVlKGNvbnRyb2xWYWx1ZSkpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSB1cGRhdGVGb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKCFmb2N1c2VkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2xNYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgIH1cblxuICAgICAgICBzdXBlci51cGRhdGVGb2N1c2VkKGZvY3VzZWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBgdmFsdWVgIHNldHRlclxuICAgICAqL1xuICAgIHByb3RlY3RlZCB1cGRhdGVWYWx1ZSh2YWx1ZTogVCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLnZhbHVlSWRlbnRpY2FsQ29tcGFyYXRvcih0aGlzLnZhbHVlLCB2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucHJldmlvdXNJbnRlcm5hbFZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuY29udHJvbFNldFZhbHVlKHZhbHVlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdmFsdWVJZGVudGljYWxDb21wYXJhdG9yKG9sZFZhbHVlOiBULCBuZXdWYWx1ZTogVCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gb2xkVmFsdWUgPT09IG5ld1ZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2FmZU5nQ29udHJvbERhdGE8VD4oXG4gICAgICAgIGV4dHJhY3RvcjogKG5nQ29udHJvbDogTmdDb250cm9sKSA9PiBUIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgICAgICAgZGVmYXVsdEZpZWxkVmFsdWU6IFQsXG4gICAgKTogVCB7XG4gICAgICAgIHJldHVybiAodGhpcy5uZ0NvbnRyb2wgJiYgZXh0cmFjdG9yKHRoaXMubmdDb250cm9sKSkgPz8gZGVmYXVsdEZpZWxkVmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb250cm9sTWFya0FzVG91Y2hlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5jaGVja0NvbnRyb2xVcGRhdGUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbnRyb2xTZXRWYWx1ZSh2YWx1ZTogVCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5jaGVja0NvbnRyb2xVcGRhdGUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlZnJlc2hMb2NhbFZhbHVlKHZhbHVlOiBUIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICB0aGlzLnByZXZpb3VzSW50ZXJuYWxWYWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLmNoZWNrQ29udHJvbFVwZGF0ZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZnJvbUNvbnRyb2xWYWx1ZShjb250cm9sVmFsdWU6IHVua25vd24pOiBUIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVUcmFuc2Zvcm1lclxuICAgICAgICAgICAgPyB0aGlzLnZhbHVlVHJhbnNmb3JtZXIuZnJvbUNvbnRyb2xWYWx1ZShjb250cm9sVmFsdWUpXG4gICAgICAgICAgICA6IChjb250cm9sVmFsdWUgYXMgVCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB0b0NvbnRyb2xWYWx1ZShjb21wb25lbnRWYWx1ZTogVCk6IHVua25vd24ge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZVRyYW5zZm9ybWVyXG4gICAgICAgICAgICA/IHRoaXMudmFsdWVUcmFuc2Zvcm1lci50b0NvbnRyb2xWYWx1ZShjb21wb25lbnRWYWx1ZSlcbiAgICAgICAgICAgIDogY29tcG9uZW50VmFsdWU7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHVpQXNDb250cm9sPFQ+KHVzZUV4aXN0aW5nOiBUeXBlPEFic3RyYWN0VHVpQ29udHJvbDxUPj4pOiBQcm92aWRlciB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcHJvdmlkZTogQWJzdHJhY3RUdWlDb250cm9sLFxuICAgICAgICB1c2VFeGlzdGluZyxcbiAgICB9O1xufVxuIl19
@@ -7,8 +7,8 @@ import { AbstractTuiDialogService } from './dialog.service';
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "./dialog.service";
9
9
  export class AbstractTuiDialogDirective extends PolymorpheusTemplate {
10
- constructor(templateRef, changeDetectorRef, service) {
11
- super(templateRef, changeDetectorRef);
10
+ constructor(templateRef, cdr, service) {
11
+ super(templateRef, cdr);
12
12
  this.service = service;
13
13
  this.open$ = new Subject();
14
14
  this.options = {};
@@ -32,4 +32,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
32
32
  type: Inject,
33
33
  args: [AbstractTuiDialogService]
34
34
  }] }]; } });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9hYnN0cmFjdC9kaWFsb2cuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFFbkQsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDOUQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5RCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBRzFELE1BQU0sT0FBZ0IsMEJBQThCLFNBQVEsb0JBRTNEO0lBZ0JHLFlBRUksV0FBNEMsRUFDakIsaUJBQW9DLEVBRTlDLE9BQW9DO1FBRXJELEtBQUssQ0FBQyxXQUFXLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUZyQixZQUFPLEdBQVAsT0FBTyxDQUE2QjtRQXBCeEMsVUFBSyxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFFaEQsWUFBTyxHQUFlLEVBQUUsQ0FBQztRQU16QixlQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQ3hCLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FDVixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDL0UsRUFDRCxLQUFLLEVBQUUsQ0FDVixDQUFDO0lBVUYsQ0FBQztJQW5CRCxJQUFJLElBQUksQ0FBQyxJQUFhO1FBQ2xCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFCLENBQUM7O3dIQVRpQiwwQkFBMEIsa0JBbUJoQyxXQUFXLGFBRVgsaUJBQWlCLGFBQ2pCLHdCQUF3Qjs0R0F0QmxCLDBCQUEwQjs0RkFBMUIsMEJBQTBCO2tCQUQvQyxTQUFTOzswQkFvQkQsTUFBTTsyQkFBQyxXQUFXOzswQkFFbEIsTUFBTTsyQkFBQyxpQkFBaUI7OzBCQUN4QixNQUFNOzJCQUFDLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0b3JSZWYsIERpcmVjdGl2ZSwgSW5qZWN0LCBUZW1wbGF0ZVJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3R1aUlmTWFwfSBmcm9tICdAdGFpZ2EtdWkvY2RrL29ic2VydmFibGVzJztcbmltcG9ydCB7VHVpRGlhbG9nfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3R5cGVzJztcbmltcG9ydCB7UG9seW1vcnBoZXVzVGVtcGxhdGV9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5pbXBvcnQge1N1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtlbmRXaXRoLCBpZ25vcmVFbGVtZW50cywgc2hhcmV9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtBYnN0cmFjdFR1aURpYWxvZ1NlcnZpY2V9IGZyb20gJy4vZGlhbG9nLnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdFR1aURpYWxvZ0RpcmVjdGl2ZTxUPiBleHRlbmRzIFBvbHltb3JwaGV1c1RlbXBsYXRlPFxuICAgIFR1aURpYWxvZzxULCB2b2lkPlxuPiB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBvcGVuJCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICBvcHRpb25zOiBQYXJ0aWFsPFQ+ID0ge307XG5cbiAgICBzZXQgb3BlbihvcGVuOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMub3BlbiQubmV4dChvcGVuKTtcbiAgICB9XG5cbiAgICBvcGVuQ2hhbmdlID0gdGhpcy5vcGVuJC5waXBlKFxuICAgICAgICB0dWlJZk1hcCgoKSA9PlxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLm9wZW4odGhpcywgdGhpcy5vcHRpb25zKS5waXBlKGlnbm9yZUVsZW1lbnRzKCksIGVuZFdpdGgoZmFsc2UpKSxcbiAgICAgICAgKSxcbiAgICAgICAgc2hhcmUoKSxcbiAgICApO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoVGVtcGxhdGVSZWYpXG4gICAgICAgIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxUdWlEaWFsb2c8VCwgdm9pZD4+LFxuICAgICAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBJbmplY3QoQWJzdHJhY3RUdWlEaWFsb2dTZXJ2aWNlKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHNlcnZpY2U6IEFic3RyYWN0VHVpRGlhbG9nU2VydmljZTxUPixcbiAgICApIHtcbiAgICAgICAgc3VwZXIodGVtcGxhdGVSZWYsIGNoYW5nZURldGVjdG9yUmVmKTtcbiAgICB9XG59XG4iXX0=
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9hYnN0cmFjdC9kaWFsb2cuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFFbkQsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDOUQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5RCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBRzFELE1BQU0sT0FBZ0IsMEJBQThCLFNBQVEsb0JBRTNEO0lBZ0JHLFlBRUksV0FBNEMsRUFDakIsR0FBc0IsRUFFaEMsT0FBb0M7UUFFckQsS0FBSyxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUZQLFlBQU8sR0FBUCxPQUFPLENBQTZCO1FBcEJ4QyxVQUFLLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUVoRCxZQUFPLEdBQWUsRUFBRSxDQUFDO1FBTXpCLGVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDeEIsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUNWLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUMvRSxFQUNELEtBQUssRUFBRSxDQUNWLENBQUM7SUFVRixDQUFDO0lBbkJELElBQUksSUFBSSxDQUFDLElBQWE7UUFDbEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQzs7d0hBVGlCLDBCQUEwQixrQkFtQmhDLFdBQVcsYUFFWCxpQkFBaUIsYUFDakIsd0JBQXdCOzRHQXRCbEIsMEJBQTBCOzRGQUExQiwwQkFBMEI7a0JBRC9DLFNBQVM7OzBCQW9CRCxNQUFNOzJCQUFDLFdBQVc7OzBCQUVsQixNQUFNOzJCQUFDLGlCQUFpQjs7MEJBQ3hCLE1BQU07MkJBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3RvclJlZiwgRGlyZWN0aXZlLCBJbmplY3QsIFRlbXBsYXRlUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dHVpSWZNYXB9IGZyb20gJ0B0YWlnYS11aS9jZGsvb2JzZXJ2YWJsZXMnO1xuaW1wb3J0IHtUdWlEaWFsb2d9IGZyb20gJ0B0YWlnYS11aS9jZGsvdHlwZXMnO1xuaW1wb3J0IHtQb2x5bW9ycGhldXNUZW1wbGF0ZX0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcbmltcG9ydCB7U3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2VuZFdpdGgsIGlnbm9yZUVsZW1lbnRzLCBzaGFyZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge0Fic3RyYWN0VHVpRGlhbG9nU2VydmljZX0gZnJvbSAnLi9kaWFsb2cuc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0VHVpRGlhbG9nRGlyZWN0aXZlPFQ+IGV4dGVuZHMgUG9seW1vcnBoZXVzVGVtcGxhdGU8XG4gICAgVHVpRGlhbG9nPFQsIHZvaWQ+XG4+IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9wZW4kID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICAgIG9wdGlvbnM6IFBhcnRpYWw8VD4gPSB7fTtcblxuICAgIHNldCBvcGVuKG9wZW46IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5vcGVuJC5uZXh0KG9wZW4pO1xuICAgIH1cblxuICAgIG9wZW5DaGFuZ2UgPSB0aGlzLm9wZW4kLnBpcGUoXG4gICAgICAgIHR1aUlmTWFwKCgpID0+XG4gICAgICAgICAgICB0aGlzLnNlcnZpY2Uub3Blbih0aGlzLCB0aGlzLm9wdGlvbnMpLnBpcGUoaWdub3JlRWxlbWVudHMoKSwgZW5kV2l0aChmYWxzZSkpLFxuICAgICAgICApLFxuICAgICAgICBzaGFyZSgpLFxuICAgICk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChUZW1wbGF0ZVJlZilcbiAgICAgICAgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPFR1aURpYWxvZzxULCB2b2lkPj4sXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBJbmplY3QoQWJzdHJhY3RUdWlEaWFsb2dTZXJ2aWNlKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHNlcnZpY2U6IEFic3RyYWN0VHVpRGlhbG9nU2VydmljZTxUPixcbiAgICApIHtcbiAgICAgICAgc3VwZXIodGVtcGxhdGVSZWYsIGNkcik7XG4gICAgfVxufVxuIl19
@@ -8,13 +8,13 @@ import * as i1 from "./portal-service";
8
8
  * Abstract class for host element for dynamically created portals.
9
9
  */
10
10
  export class AbstractTuiPortalHostComponent {
11
- constructor(injector, elementRef, portalService) {
11
+ constructor(injector, el, portalService) {
12
12
  this.injector = injector;
13
- this.elementRef = elementRef;
13
+ this.el = el;
14
14
  portalService.attach(this);
15
15
  }
16
16
  get clientRect() {
17
- return this.elementRef.nativeElement.getBoundingClientRect();
17
+ return this.el.nativeElement.getBoundingClientRect();
18
18
  }
19
19
  addComponentChild(component) {
20
20
  const parent = component.createInjector(this.injector);
@@ -22,16 +22,16 @@ export class AbstractTuiPortalHostComponent {
22
22
  const factory = resolver.resolveComponentFactory(component.component);
23
23
  const providers = [{ provide: AbstractTuiPortalHostComponent, useValue: this }];
24
24
  const injector = Injector.create({ parent, providers });
25
- const ref = this.viewContainerRef.createComponent(factory, undefined, injector);
25
+ const ref = this.vcr.createComponent(factory, undefined, injector);
26
26
  ref.changeDetectorRef.detectChanges();
27
27
  return ref;
28
28
  }
29
29
  addTemplateChild(templateRef, context) {
30
- return this.viewContainerRef.createEmbeddedView(templateRef, context);
30
+ return this.vcr.createEmbeddedView(templateRef, context);
31
31
  }
32
32
  }
33
33
  AbstractTuiPortalHostComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AbstractTuiPortalHostComponent, deps: [{ token: INJECTOR }, { token: ElementRef }, { token: AbstractTuiPortalService }], target: i0.ɵɵFactoryTarget.Directive });
34
- AbstractTuiPortalHostComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: AbstractTuiPortalHostComponent, viewQueries: [{ propertyName: "viewContainerRef", first: true, predicate: ["viewContainer"], descendants: true, read: ViewContainerRef }], ngImport: i0 });
34
+ AbstractTuiPortalHostComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: AbstractTuiPortalHostComponent, viewQueries: [{ propertyName: "vcr", first: true, predicate: ["viewContainer"], descendants: true, read: ViewContainerRef }], ngImport: i0 });
35
35
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AbstractTuiPortalHostComponent, decorators: [{
36
36
  type: Directive
37
37
  }], ctorParameters: function () { return [{ type: i0.Injector, decorators: [{
@@ -43,8 +43,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
43
43
  }] }, { type: i1.AbstractTuiPortalService, decorators: [{
44
44
  type: Inject,
45
45
  args: [AbstractTuiPortalService]
46
- }] }]; }, propDecorators: { viewContainerRef: [{
46
+ }] }]; }, propDecorators: { vcr: [{
47
47
  type: ViewChild,
48
48
  args: [`viewContainer`, { read: ViewContainerRef }]
49
49
  }] } });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLWhvc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvYWJzdHJhY3QvcG9ydGFsLWhvc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHdCQUF3QixFQUV4QixTQUFTLEVBQ1QsVUFBVSxFQUVWLE1BQU0sRUFDTixRQUFRLEVBQ1IsUUFBUSxFQUVSLFNBQVMsRUFDVCxnQkFBZ0IsR0FDbkIsTUFBTSxlQUFlLENBQUM7QUFHdkIsNENBQTRDO0FBQzVDLDJDQUEyQztBQUMzQyxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBRTFEOztHQUVHO0FBRUgsTUFBTSxPQUFnQiw4QkFBOEI7SUFJaEQsWUFDdUMsUUFBa0IsRUFFNUMsVUFBbUMsRUFDVixhQUF1QztRQUh0QyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBRTVDLGVBQVUsR0FBVixVQUFVLENBQXlCO1FBRzVDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUNqRSxDQUFDO0lBRUQsaUJBQWlCLENBQUksU0FBd0M7UUFDekQsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdkQsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQ3RELE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdEUsTUFBTSxTQUFTLEdBQUcsQ0FBQyxFQUFDLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztRQUM5RSxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUMsTUFBTSxFQUFFLFNBQVMsRUFBQyxDQUFDLENBQUM7UUFDdEQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRWhGLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUV0QyxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7SUFFRCxnQkFBZ0IsQ0FBSSxXQUEyQixFQUFFLE9BQVc7UUFDeEQsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzFFLENBQUM7OzRIQWhDaUIsOEJBQThCLGtCQUtwQyxRQUFRLGFBQ1IsVUFBVSxhQUVWLHdCQUF3QjtnSEFSbEIsOEJBQThCLHdIQUNiLGdCQUFnQjs0RkFEakMsOEJBQThCO2tCQURuRCxTQUFTOzswQkFNRCxNQUFNOzJCQUFDLFFBQVE7OzBCQUNmLE1BQU07MkJBQUMsVUFBVTs7MEJBRWpCLE1BQU07MkJBQUMsd0JBQXdCOzRDQU5wQyxnQkFBZ0I7c0JBRGYsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBDb21wb25lbnRSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRW1iZWRkZWRWaWV3UmVmLFxuICAgIEluamVjdCxcbiAgICBJTkpFQ1RPUixcbiAgICBJbmplY3RvcixcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbXBvbmVudH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcblxuLy8gVE9ETzogZmluZCB0aGUgYmVzdCB3YXkgZm9yIHByZXZlbnQgY3ljbGVcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tY3ljbGVcbmltcG9ydCB7QWJzdHJhY3RUdWlQb3J0YWxTZXJ2aWNlfSBmcm9tICcuL3BvcnRhbC1zZXJ2aWNlJztcblxuLyoqXG4gKiBBYnN0cmFjdCBjbGFzcyBmb3IgaG9zdCBlbGVtZW50IGZvciBkeW5hbWljYWxseSBjcmVhdGVkIHBvcnRhbHMuXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0VHVpUG9ydGFsSG9zdENvbXBvbmVudCB7XG4gICAgQFZpZXdDaGlsZChgdmlld0NvbnRhaW5lcmAsIHtyZWFkOiBWaWV3Q29udGFpbmVyUmVmfSlcbiAgICB2aWV3Q29udGFpbmVyUmVmITogVmlld0NvbnRhaW5lclJlZjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KElOSkVDVE9SKSBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgQEluamVjdChFbGVtZW50UmVmKVxuICAgICAgICByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgQEluamVjdChBYnN0cmFjdFR1aVBvcnRhbFNlcnZpY2UpIHBvcnRhbFNlcnZpY2U6IEFic3RyYWN0VHVpUG9ydGFsU2VydmljZSxcbiAgICApIHtcbiAgICAgICAgcG9ydGFsU2VydmljZS5hdHRhY2godGhpcyk7XG4gICAgfVxuXG4gICAgZ2V0IGNsaWVudFJlY3QoKTogQ2xpZW50UmVjdCB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICB9XG5cbiAgICBhZGRDb21wb25lbnRDaGlsZDxDPihjb21wb25lbnQ6IFBvbHltb3JwaGV1c0NvbXBvbmVudDxDLCBhbnk+KTogQ29tcG9uZW50UmVmPEM+IHtcbiAgICAgICAgY29uc3QgcGFyZW50ID0gY29tcG9uZW50LmNyZWF0ZUluamVjdG9yKHRoaXMuaW5qZWN0b3IpO1xuICAgICAgICBjb25zdCByZXNvbHZlciA9IHBhcmVudC5nZXQoQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyKTtcbiAgICAgICAgY29uc3QgZmFjdG9yeSA9IHJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGNvbXBvbmVudC5jb21wb25lbnQpO1xuICAgICAgICBjb25zdCBwcm92aWRlcnMgPSBbe3Byb3ZpZGU6IEFic3RyYWN0VHVpUG9ydGFsSG9zdENvbXBvbmVudCwgdXNlVmFsdWU6IHRoaXN9XTtcbiAgICAgICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe3BhcmVudCwgcHJvdmlkZXJzfSk7XG4gICAgICAgIGNvbnN0IHJlZiA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoZmFjdG9yeSwgdW5kZWZpbmVkLCBpbmplY3Rvcik7XG5cbiAgICAgICAgcmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICByZXR1cm4gcmVmO1xuICAgIH1cblxuICAgIGFkZFRlbXBsYXRlQ2hpbGQ8Qz4odGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPEM+LCBjb250ZXh0PzogQyk6IEVtYmVkZGVkVmlld1JlZjxDPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KHRlbXBsYXRlUmVmLCBjb250ZXh0KTtcbiAgICB9XG59XG4iXX0=
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLWhvc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvYWJzdHJhY3QvcG9ydGFsLWhvc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHdCQUF3QixFQUV4QixTQUFTLEVBQ1QsVUFBVSxFQUVWLE1BQU0sRUFDTixRQUFRLEVBQ1IsUUFBUSxFQUVSLFNBQVMsRUFDVCxnQkFBZ0IsR0FDbkIsTUFBTSxlQUFlLENBQUM7QUFHdkIsNENBQTRDO0FBQzVDLDJDQUEyQztBQUMzQyxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBRTFEOztHQUVHO0FBRUgsTUFBTSxPQUFnQiw4QkFBOEI7SUFJaEQsWUFDdUMsUUFBa0IsRUFDaEIsRUFBMkIsRUFDOUIsYUFBdUM7UUFGdEMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNoQixPQUFFLEdBQUYsRUFBRSxDQUF5QjtRQUdoRSxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDekQsQ0FBQztJQUVELGlCQUFpQixDQUFJLFNBQXdDO1FBQ3pELE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUN0RCxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sU0FBUyxHQUFHLENBQUMsRUFBQyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7UUFDOUUsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUMsQ0FBQyxDQUFDO1FBQ3RELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFbkUsR0FBRyxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRXRDLE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztJQUVELGdCQUFnQixDQUFJLFdBQTJCLEVBQUUsT0FBVztRQUN4RCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzdELENBQUM7OzRIQS9CaUIsOEJBQThCLGtCQUtwQyxRQUFRLGFBQ1IsVUFBVSxhQUNWLHdCQUF3QjtnSEFQbEIsOEJBQThCLDJHQUNiLGdCQUFnQjs0RkFEakMsOEJBQThCO2tCQURuRCxTQUFTOzswQkFNRCxNQUFNOzJCQUFDLFFBQVE7OzBCQUNmLE1BQU07MkJBQUMsVUFBVTs7MEJBQ2pCLE1BQU07MkJBQUMsd0JBQXdCOzRDQUxuQixHQUFHO3NCQURuQixTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIENvbXBvbmVudFJlZixcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBFbWJlZGRlZFZpZXdSZWYsXG4gICAgSW5qZWN0LFxuICAgIElOSkVDVE9SLFxuICAgIEluamVjdG9yLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29tcG9uZW50fSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuXG4vLyBUT0RPOiBmaW5kIHRoZSBiZXN0IHdheSBmb3IgcHJldmVudCBjeWNsZVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1jeWNsZVxuaW1wb3J0IHtBYnN0cmFjdFR1aVBvcnRhbFNlcnZpY2V9IGZyb20gJy4vcG9ydGFsLXNlcnZpY2UnO1xuXG4vKipcbiAqIEFic3RyYWN0IGNsYXNzIGZvciBob3N0IGVsZW1lbnQgZm9yIGR5bmFtaWNhbGx5IGNyZWF0ZWQgcG9ydGFscy5cbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RUdWlQb3J0YWxIb3N0Q29tcG9uZW50IHtcbiAgICBAVmlld0NoaWxkKGB2aWV3Q29udGFpbmVyYCwge3JlYWQ6IFZpZXdDb250YWluZXJSZWZ9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgdmNyITogVmlld0NvbnRhaW5lclJlZjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KElOSkVDVE9SKSBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgQEluamVjdChFbGVtZW50UmVmKSBwcml2YXRlIHJlYWRvbmx5IGVsOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgQEluamVjdChBYnN0cmFjdFR1aVBvcnRhbFNlcnZpY2UpIHBvcnRhbFNlcnZpY2U6IEFic3RyYWN0VHVpUG9ydGFsU2VydmljZSxcbiAgICApIHtcbiAgICAgICAgcG9ydGFsU2VydmljZS5hdHRhY2godGhpcyk7XG4gICAgfVxuXG4gICAgZ2V0IGNsaWVudFJlY3QoKTogQ2xpZW50UmVjdCB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgfVxuXG4gICAgYWRkQ29tcG9uZW50Q2hpbGQ8Qz4oY29tcG9uZW50OiBQb2x5bW9ycGhldXNDb21wb25lbnQ8QywgYW55Pik6IENvbXBvbmVudFJlZjxDPiB7XG4gICAgICAgIGNvbnN0IHBhcmVudCA9IGNvbXBvbmVudC5jcmVhdGVJbmplY3Rvcih0aGlzLmluamVjdG9yKTtcbiAgICAgICAgY29uc3QgcmVzb2x2ZXIgPSBwYXJlbnQuZ2V0KENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcik7XG4gICAgICAgIGNvbnN0IGZhY3RvcnkgPSByZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShjb21wb25lbnQuY29tcG9uZW50KTtcbiAgICAgICAgY29uc3QgcHJvdmlkZXJzID0gW3twcm92aWRlOiBBYnN0cmFjdFR1aVBvcnRhbEhvc3RDb21wb25lbnQsIHVzZVZhbHVlOiB0aGlzfV07XG4gICAgICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtwYXJlbnQsIHByb3ZpZGVyc30pO1xuICAgICAgICBjb25zdCByZWYgPSB0aGlzLnZjci5jcmVhdGVDb21wb25lbnQoZmFjdG9yeSwgdW5kZWZpbmVkLCBpbmplY3Rvcik7XG5cbiAgICAgICAgcmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICByZXR1cm4gcmVmO1xuICAgIH1cblxuICAgIGFkZFRlbXBsYXRlQ2hpbGQ8Qz4odGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPEM+LCBjb250ZXh0PzogQyk6IEVtYmVkZGVkVmlld1JlZjxDPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnZjci5jcmVhdGVFbWJlZGRlZFZpZXcodGVtcGxhdGVSZWYsIGNvbnRleHQpO1xuICAgIH1cbn1cbiJdfQ==
@@ -8,13 +8,13 @@ import * as i0 from "@angular/core";
8
8
  * switch theme on or off.
9
9
  */
10
10
  export class AbstractTuiThemeSwitcher {
11
- constructor(documentRef) {
12
- this.documentRef = documentRef;
11
+ constructor(doc) {
12
+ this.doc = doc;
13
13
  if (this.style !== null) {
14
14
  this.addTheme();
15
15
  return;
16
16
  }
17
- const styles = this.documentRef.head.querySelectorAll(`style`);
17
+ const styles = this.doc.head.querySelectorAll(`style`);
18
18
  this.constructor.style =
19
19
  styles[styles.length - 1];
20
20
  }
@@ -26,12 +26,12 @@ export class AbstractTuiThemeSwitcher {
26
26
  }
27
27
  addTheme() {
28
28
  if (this.style) {
29
- this.documentRef.head.appendChild(this.style);
29
+ this.doc.head.appendChild(this.style);
30
30
  }
31
31
  }
32
32
  removeTheme() {
33
- if (this.style && this.documentRef.head.contains(this.style)) {
34
- this.documentRef.head.removeChild(this.style);
33
+ if (this.style && this.doc.head.contains(this.style)) {
34
+ this.doc.head.removeChild(this.style);
35
35
  }
36
36
  }
37
37
  }
@@ -44,4 +44,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
44
44
  type: Inject,
45
45
  args: [DOCUMENT]
46
46
  }] }]; } });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtc3dpdGNoZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvYWJzdHJhY3QvdGhlbWUtc3dpdGNoZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFZLE1BQU0sZUFBZSxDQUFDOztBQUUzRDs7Ozs7R0FLRztBQUVILE1BQU0sT0FBZ0Isd0JBQXdCO0lBRzFDLFlBQStDLFdBQXFCO1FBQXJCLGdCQUFXLEdBQVgsV0FBVyxDQUFVO1FBQ2hFLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLEVBQUU7WUFDckIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBRWhCLE9BQU87U0FDVjtRQUVELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTlELElBQUksQ0FBQyxXQUErQyxDQUFDLEtBQUs7WUFDdkQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQUksS0FBSztRQUNMLE9BQVEsSUFBSSxDQUFDLFdBQStDLENBQUMsS0FBSyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTyxRQUFRO1FBQ1osSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1osSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNqRDtJQUNMLENBQUM7SUFFTyxXQUFXO1FBQ2YsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDMUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNqRDtJQUNMLENBQUM7O0FBakNNLDhCQUFLLEdBQTRCLElBQUksQ0FBQztzSEFEM0Isd0JBQXdCLGtCQUd0QixRQUFROzBHQUhWLHdCQUF3Qjs0RkFBeEIsd0JBQXdCO2tCQUQ3QyxTQUFTOzBEQUlzRCxRQUFROzBCQUF2RCxNQUFNOzJCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RPQ1VNRU5UfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtEaXJlY3RpdmUsIEluamVjdCwgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBVc2UgdGhpcyBhYnN0cmFjdCBjbGFzcyB0byBjcmVhdGUgeW91ciBvd24gdG9nZ2xlYWJsZSB0aGVtZXMuXG4gKiBBIGNvbXBvbmVudCBleHRlbmRpbmcgdGhpcyBjbGFzcyBtdXN0IGhhdmUgQ1NTIHZhcmlhYmxlcyBkZWZpbml0aW9uc1xuICogYW5kIGhhdmUgVmlld0VuY2Fwc3VsYXRpb24gc2V0IHRvIE5PTkUuIEEgYm9vbGVhbiBpbnB1dCBhbGxvd3MgdG9cbiAqIHN3aXRjaCB0aGVtZSBvbiBvciBvZmYuXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0VHVpVGhlbWVTd2l0Y2hlciBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgc3RhdGljIHN0eWxlOiBIVE1MU3R5bGVFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50UmVmOiBEb2N1bWVudCkge1xuICAgICAgICBpZiAodGhpcy5zdHlsZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5hZGRUaGVtZSgpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzdHlsZXMgPSB0aGlzLmRvY3VtZW50UmVmLmhlYWQucXVlcnlTZWxlY3RvckFsbChgc3R5bGVgKTtcblxuICAgICAgICAodGhpcy5jb25zdHJ1Y3RvciBhcyB0eXBlb2YgQWJzdHJhY3RUdWlUaGVtZVN3aXRjaGVyKS5zdHlsZSA9XG4gICAgICAgICAgICBzdHlsZXNbc3R5bGVzLmxlbmd0aCAtIDFdO1xuICAgIH1cblxuICAgIGdldCBzdHlsZSgpOiBIVE1MU3R5bGVFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiAodGhpcy5jb25zdHJ1Y3RvciBhcyB0eXBlb2YgQWJzdHJhY3RUdWlUaGVtZVN3aXRjaGVyKS5zdHlsZTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW1vdmVUaGVtZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWRkVGhlbWUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnN0eWxlKSB7XG4gICAgICAgICAgICB0aGlzLmRvY3VtZW50UmVmLmhlYWQuYXBwZW5kQ2hpbGQodGhpcy5zdHlsZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbW92ZVRoZW1lKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zdHlsZSAmJiB0aGlzLmRvY3VtZW50UmVmLmhlYWQuY29udGFpbnModGhpcy5zdHlsZSkpIHtcbiAgICAgICAgICAgIHRoaXMuZG9jdW1lbnRSZWYuaGVhZC5yZW1vdmVDaGlsZCh0aGlzLnN0eWxlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtc3dpdGNoZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvYWJzdHJhY3QvdGhlbWUtc3dpdGNoZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFZLE1BQU0sZUFBZSxDQUFDOztBQUUzRDs7Ozs7R0FLRztBQUVILE1BQU0sT0FBZ0Isd0JBQXdCO0lBRzFDLFlBQStDLEdBQWE7UUFBYixRQUFHLEdBQUgsR0FBRyxDQUFVO1FBQ3hELElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLEVBQUU7WUFDckIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBRWhCLE9BQU87U0FDVjtRQUVELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXRELElBQUksQ0FBQyxXQUErQyxDQUFDLEtBQUs7WUFDdkQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQUksS0FBSztRQUNMLE9BQVEsSUFBSSxDQUFDLFdBQStDLENBQUMsS0FBSyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTyxRQUFRO1FBQ1osSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1osSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN6QztJQUNMLENBQUM7SUFFTyxXQUFXO1FBQ2YsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDbEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN6QztJQUNMLENBQUM7O0FBakNNLDhCQUFLLEdBQTRCLElBQUksQ0FBQztzSEFEM0Isd0JBQXdCLGtCQUd0QixRQUFROzBHQUhWLHdCQUF3Qjs0RkFBeEIsd0JBQXdCO2tCQUQ3QyxTQUFTOzBEQUk4QyxRQUFROzBCQUEvQyxNQUFNOzJCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RPQ1VNRU5UfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtEaXJlY3RpdmUsIEluamVjdCwgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBVc2UgdGhpcyBhYnN0cmFjdCBjbGFzcyB0byBjcmVhdGUgeW91ciBvd24gdG9nZ2xlYWJsZSB0aGVtZXMuXG4gKiBBIGNvbXBvbmVudCBleHRlbmRpbmcgdGhpcyBjbGFzcyBtdXN0IGhhdmUgQ1NTIHZhcmlhYmxlcyBkZWZpbml0aW9uc1xuICogYW5kIGhhdmUgVmlld0VuY2Fwc3VsYXRpb24gc2V0IHRvIE5PTkUuIEEgYm9vbGVhbiBpbnB1dCBhbGxvd3MgdG9cbiAqIHN3aXRjaCB0aGVtZSBvbiBvciBvZmYuXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0VHVpVGhlbWVTd2l0Y2hlciBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgc3RhdGljIHN0eWxlOiBIVE1MU3R5bGVFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIHJlYWRvbmx5IGRvYzogRG9jdW1lbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuc3R5bGUgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuYWRkVGhlbWUoKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc3R5bGVzID0gdGhpcy5kb2MuaGVhZC5xdWVyeVNlbGVjdG9yQWxsKGBzdHlsZWApO1xuXG4gICAgICAgICh0aGlzLmNvbnN0cnVjdG9yIGFzIHR5cGVvZiBBYnN0cmFjdFR1aVRoZW1lU3dpdGNoZXIpLnN0eWxlID1cbiAgICAgICAgICAgIHN0eWxlc1tzdHlsZXMubGVuZ3RoIC0gMV07XG4gICAgfVxuXG4gICAgZ2V0IHN0eWxlKCk6IEhUTUxTdHlsZUVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLmNvbnN0cnVjdG9yIGFzIHR5cGVvZiBBYnN0cmFjdFR1aVRoZW1lU3dpdGNoZXIpLnN0eWxlO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbW92ZVRoZW1lKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRUaGVtZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc3R5bGUpIHtcbiAgICAgICAgICAgIHRoaXMuZG9jLmhlYWQuYXBwZW5kQ2hpbGQodGhpcy5zdHlsZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbW92ZVRoZW1lKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zdHlsZSAmJiB0aGlzLmRvYy5oZWFkLmNvbnRhaW5zKHRoaXMuc3R5bGUpKSB7XG4gICAgICAgICAgICB0aGlzLmRvYy5oZWFkLnJlbW92ZUNoaWxkKHRoaXMuc3R5bGUpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -1,10 +1,15 @@
1
1
  import { EMPTY_FUNCTION } from '@taiga-ui/cdk/constants';
2
2
  export const tuiAssert = {
3
+ /**
4
+ * @deprecated:
5
+ * The current field no longer matters as
6
+ * it will not be provided in production
7
+ */
3
8
  enabled: false,
4
9
  get assert() {
5
- return this.enabled
10
+ return ngDevMode
6
11
  ? Function.prototype.bind.call(console.assert, console)
7
12
  : EMPTY_FUNCTION;
8
13
  },
9
14
  };
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXJ0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL2NsYXNzZXMvYXNzZXJ0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUV2RCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUc7SUFDckIsT0FBTyxFQUFFLEtBQUs7SUFDZCxJQUFJLE1BQU07UUFDTixPQUFPLElBQUksQ0FBQyxPQUFPO1lBQ2YsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQztZQUN2RCxDQUFDLENBQUMsY0FBYyxDQUFDO0lBQ3pCLENBQUM7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtFTVBUWV9GVU5DVElPTn0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jb25zdGFudHMnO1xuXG5leHBvcnQgY29uc3QgdHVpQXNzZXJ0ID0ge1xuICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgIGdldCBhc3NlcnQoKTogKGFzc2VydGlvbjogYm9vbGVhbiwgLi4uYXJnczogdW5rbm93bltdKSA9PiB2b2lkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW5hYmxlZFxuICAgICAgICAgICAgPyBGdW5jdGlvbi5wcm90b3R5cGUuYmluZC5jYWxsKGNvbnNvbGUuYXNzZXJ0LCBjb25zb2xlKVxuICAgICAgICAgICAgOiBFTVBUWV9GVU5DVElPTjtcbiAgICB9LFxufTtcbiJdfQ==
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXJ0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL2NsYXNzZXMvYXNzZXJ0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUV2RCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUc7SUFDckI7Ozs7T0FJRztJQUNILE9BQU8sRUFBRSxLQUFLO0lBQ2QsSUFBSSxNQUFNO1FBQ04sT0FBTyxTQUFTO1lBQ1osQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQztZQUN2RCxDQUFDLENBQUMsY0FBYyxDQUFDO0lBQ3pCLENBQUM7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtFTVBUWV9GVU5DVElPTn0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jb25zdGFudHMnO1xuXG5leHBvcnQgY29uc3QgdHVpQXNzZXJ0ID0ge1xuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkOlxuICAgICAqIFRoZSBjdXJyZW50IGZpZWxkIG5vIGxvbmdlciBtYXR0ZXJzIGFzXG4gICAgICogaXQgd2lsbCBub3QgYmUgcHJvdmlkZWQgaW4gcHJvZHVjdGlvblxuICAgICAqL1xuICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgIGdldCBhc3NlcnQoKTogKGFzc2VydGlvbjogYm9vbGVhbiwgLi4uYXJnczogdW5rbm93bltdKSA9PiB2b2lkIHtcbiAgICAgICAgcmV0dXJuIG5nRGV2TW9kZVxuICAgICAgICAgICAgPyBGdW5jdGlvbi5wcm90b3R5cGUuYmluZC5jYWxsKGNvbnNvbGUuYXNzZXJ0LCBjb25zb2xlKVxuICAgICAgICAgICAgOiBFTVBUWV9GVU5DVElPTjtcbiAgICB9LFxufTtcbiJdfQ==
@@ -21,7 +21,7 @@ export class TuiAlertHostComponent {
21
21
  }
22
22
  }
23
23
  TuiAlertHostComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiAlertHostComponent, deps: [{ token: TUI_ALERTS }, { token: INJECTOR }], target: i0.ɵɵFactoryTarget.Component });
24
- TuiAlertHostComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiAlertHostComponent, selector: "tui-alert-host", ngImport: i0, template: "<div\n *ngFor=\"let alert$ of alerts\"\n class=\"t-notifications-wrapper\"\n @tuiParentAnimation\n>\n <ng-container\n *ngFor=\"let item of alert$ | async\"\n [ngComponentOutlet]=\"item.component.component\"\n [ngComponentOutletInjector]=\"item | tuiMapper : mapper\"\n ></ng-container>\n</div>\n", styles: ["tui-alert-host>.t-notifications-wrapper{position:fixed;top:0;left:0;display:flex;width:100%;height:100%;flex-direction:column;pointer-events:none}tui-alert-host>.t-notifications-wrapper>*{pointer-events:auto}\n"], directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModuleFactory"] }], pipes: { "tuiMapper": i2.TuiMapperPipe, "async": i1.AsyncPipe }, animations: [TUI_PARENT_ANIMATION], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
24
+ TuiAlertHostComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiAlertHostComponent, selector: "tui-alert-host", ngImport: i0, template: "<div\n *ngFor=\"let alert$ of alerts\"\n class=\"t-wrapper\"\n @tuiParentAnimation\n>\n <ng-container\n *ngFor=\"let item of alert$ | async\"\n [ngComponentOutlet]=\"item.component.component\"\n [ngComponentOutletInjector]=\"item | tuiMapper : mapper\"\n ></ng-container>\n</div>\n", styles: ["tui-alert-host>.t-wrapper{position:fixed;top:0;left:0;display:flex;width:100%;height:100%;flex-direction:column;pointer-events:none}tui-alert-host>.t-wrapper>*{pointer-events:auto}\n"], directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModuleFactory"] }], pipes: { "tuiMapper": i2.TuiMapperPipe, "async": i1.AsyncPipe }, animations: [TUI_PARENT_ANIMATION], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
25
25
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiAlertHostComponent, decorators: [{
26
26
  type: Component,
27
27
  args: [{
@@ -41,4 +41,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
41
41
  type: Inject,
42
42
  args: [INJECTOR]
43
43
  }] }]; } });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQtaG9zdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvY29tcG9uZW50cy9hbGVydC1ob3N0L2FsZXJ0LWhvc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL2NvbXBvbmVudHMvYWxlcnQtaG9zdC9hbGVydC1ob3N0LnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxFQUNOLFFBQVEsRUFDUixRQUFRLEVBQ1IsaUJBQWlCLEdBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUVoRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQzs7OztBQWE5RCxNQUFNLE9BQU8scUJBQXFCO0lBQzlCLFlBQ2lDLE1BQXVDLEVBQ2pDLFFBQWtCO1FBRHhCLFdBQU0sR0FBTixNQUFNLENBQWlDO1FBQ2pDLGFBQVEsR0FBUixRQUFRLENBQVU7UUFHaEQsV0FBTSxHQUFpQyxRQUFRLENBQUMsRUFBRSxDQUN2RCxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQ1osU0FBUyxFQUFFO2dCQUNQO29CQUNJLE9BQU8sRUFBRSxvQkFBb0I7b0JBQzdCLFFBQVE7aUJBQ1g7YUFDSjtZQUNELE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUTtTQUN4QixDQUFDLENBQUM7SUFYSixDQUFDOzttSEFKSyxxQkFBcUIsa0JBRWxCLFVBQVUsYUFDVixRQUFRO3VHQUhYLHFCQUFxQixzREN4QmxDLDZVQVdBLG9tQkRVZ0IsQ0FBQyxvQkFBb0IsQ0FBQzs0RkFHekIscUJBQXFCO2tCQVZqQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFdBQVcsRUFBRSw0QkFBNEI7b0JBQ3pDLFNBQVMsRUFBRSxDQUFDLHlCQUF5QixDQUFDO29CQUN0QyxrREFBa0Q7b0JBQ2xELHFGQUFxRjtvQkFDckYsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE9BQU87b0JBQ2hELFVBQVUsRUFBRSxDQUFDLG9CQUFvQixDQUFDO29CQUNsQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtpQkFDeEM7MERBRzRDLEtBQUs7MEJBQXpDLE1BQU07MkJBQUMsVUFBVTs7MEJBQ2pCLE1BQU07MkJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEluamVjdCxcbiAgICBJTkpFQ1RPUixcbiAgICBJbmplY3RvcixcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1RVSV9QQVJFTlRfQU5JTUFUSU9OfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NvbnN0YW50cyc7XG5pbXBvcnQge1RVSV9BTEVSVFN9IGZyb20gJ0B0YWlnYS11aS9jZGsvdG9rZW5zJztcbmltcG9ydCB7VHVpRGlhbG9nLCBUdWlNYXBwZXJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvdHlwZXMnO1xuaW1wb3J0IHtQT0xZTU9SUEhFVVNfQ09OVEVYVH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLWFsZXJ0LWhvc3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9hbGVydC1ob3N0LnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2FsZXJ0LWhvc3Quc3R5bGUubGVzcyddLFxuICAgIC8vIFNvIHRoYXQgd2UgZG8gbm90IGZvcmNlIE9uUHVzaCBvbiBjdXN0b20gYWxlcnRzXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9wcmVmZXItb24tcHVzaC1jb21wb25lbnQtY2hhbmdlLWRldGVjdGlvblxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcbiAgICBhbmltYXRpb25zOiBbVFVJX1BBUkVOVF9BTklNQVRJT05dLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIFR1aUFsZXJ0SG9zdENvbXBvbmVudDxUIGV4dGVuZHMgVHVpRGlhbG9nPHVua25vd24sIHVua25vd24+PiB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoVFVJX0FMRVJUUykgcmVhZG9ubHkgYWxlcnRzOiBBcnJheTxPYnNlcnZhYmxlPHJlYWRvbmx5IFRbXT4+LFxuICAgICAgICBASW5qZWN0KElOSkVDVE9SKSBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvcixcbiAgICApIHt9XG5cbiAgICByZWFkb25seSBtYXBwZXI6IFR1aU1hcHBlcjx1bmtub3duLCBJbmplY3Rvcj4gPSB1c2VWYWx1ZSA9PlxuICAgICAgICBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBQT0xZTU9SUEhFVVNfQ09OVEVYVCxcbiAgICAgICAgICAgICAgICAgICAgdXNlVmFsdWUsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBwYXJlbnQ6IHRoaXMuaW5qZWN0b3IsXG4gICAgICAgIH0pO1xufVxuIiwiPGRpdlxuICAgICpuZ0Zvcj1cImxldCBhbGVydCQgb2YgYWxlcnRzXCJcbiAgICBjbGFzcz1cInQtbm90aWZpY2F0aW9ucy13cmFwcGVyXCJcbiAgICBAdHVpUGFyZW50QW5pbWF0aW9uXG4+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBhbGVydCQgfCBhc3luY1wiXG4gICAgICAgIFtuZ0NvbXBvbmVudE91dGxldF09XCJpdGVtLmNvbXBvbmVudC5jb21wb25lbnRcIlxuICAgICAgICBbbmdDb21wb25lbnRPdXRsZXRJbmplY3Rvcl09XCJpdGVtIHwgdHVpTWFwcGVyIDogbWFwcGVyXCJcbiAgICA+PC9uZy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQtaG9zdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvY29tcG9uZW50cy9hbGVydC1ob3N0L2FsZXJ0LWhvc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL2NvbXBvbmVudHMvYWxlcnQtaG9zdC9hbGVydC1ob3N0LnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxFQUNOLFFBQVEsRUFDUixRQUFRLEVBQ1IsaUJBQWlCLEdBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUVoRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQzs7OztBQWE5RCxNQUFNLE9BQU8scUJBQXFCO0lBQzlCLFlBQ2lDLE1BQXVDLEVBQ2pDLFFBQWtCO1FBRHhCLFdBQU0sR0FBTixNQUFNLENBQWlDO1FBQ2pDLGFBQVEsR0FBUixRQUFRLENBQVU7UUFHaEQsV0FBTSxHQUFpQyxRQUFRLENBQUMsRUFBRSxDQUN2RCxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQ1osU0FBUyxFQUFFO2dCQUNQO29CQUNJLE9BQU8sRUFBRSxvQkFBb0I7b0JBQzdCLFFBQVE7aUJBQ1g7YUFDSjtZQUNELE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUTtTQUN4QixDQUFDLENBQUM7SUFYSixDQUFDOzttSEFKSyxxQkFBcUIsa0JBRWxCLFVBQVUsYUFDVixRQUFRO3VHQUhYLHFCQUFxQixzREN4QmxDLCtUQVdBLHdrQkRVZ0IsQ0FBQyxvQkFBb0IsQ0FBQzs0RkFHekIscUJBQXFCO2tCQVZqQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFdBQVcsRUFBRSw0QkFBNEI7b0JBQ3pDLFNBQVMsRUFBRSxDQUFDLHlCQUF5QixDQUFDO29CQUN0QyxrREFBa0Q7b0JBQ2xELHFGQUFxRjtvQkFDckYsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE9BQU87b0JBQ2hELFVBQVUsRUFBRSxDQUFDLG9CQUFvQixDQUFDO29CQUNsQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtpQkFDeEM7MERBRzRDLEtBQUs7MEJBQXpDLE1BQU07MkJBQUMsVUFBVTs7MEJBQ2pCLE1BQU07MkJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEluamVjdCxcbiAgICBJTkpFQ1RPUixcbiAgICBJbmplY3RvcixcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1RVSV9QQVJFTlRfQU5JTUFUSU9OfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NvbnN0YW50cyc7XG5pbXBvcnQge1RVSV9BTEVSVFN9IGZyb20gJ0B0YWlnYS11aS9jZGsvdG9rZW5zJztcbmltcG9ydCB7VHVpRGlhbG9nLCBUdWlNYXBwZXJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvdHlwZXMnO1xuaW1wb3J0IHtQT0xZTU9SUEhFVVNfQ09OVEVYVH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLWFsZXJ0LWhvc3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9hbGVydC1ob3N0LnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2FsZXJ0LWhvc3Quc3R5bGUubGVzcyddLFxuICAgIC8vIFNvIHRoYXQgd2UgZG8gbm90IGZvcmNlIE9uUHVzaCBvbiBjdXN0b20gYWxlcnRzXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9wcmVmZXItb24tcHVzaC1jb21wb25lbnQtY2hhbmdlLWRldGVjdGlvblxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcbiAgICBhbmltYXRpb25zOiBbVFVJX1BBUkVOVF9BTklNQVRJT05dLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIFR1aUFsZXJ0SG9zdENvbXBvbmVudDxUIGV4dGVuZHMgVHVpRGlhbG9nPHVua25vd24sIHVua25vd24+PiB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoVFVJX0FMRVJUUykgcmVhZG9ubHkgYWxlcnRzOiBBcnJheTxPYnNlcnZhYmxlPHJlYWRvbmx5IFRbXT4+LFxuICAgICAgICBASW5qZWN0KElOSkVDVE9SKSBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvcixcbiAgICApIHt9XG5cbiAgICByZWFkb25seSBtYXBwZXI6IFR1aU1hcHBlcjx1bmtub3duLCBJbmplY3Rvcj4gPSB1c2VWYWx1ZSA9PlxuICAgICAgICBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBQT0xZTU9SUEhFVVNfQ09OVEVYVCxcbiAgICAgICAgICAgICAgICAgICAgdXNlVmFsdWUsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBwYXJlbnQ6IHRoaXMuaW5qZWN0b3IsXG4gICAgICAgIH0pO1xufVxuIiwiPGRpdlxuICAgICpuZ0Zvcj1cImxldCBhbGVydCQgb2YgYWxlcnRzXCJcbiAgICBjbGFzcz1cInQtd3JhcHBlclwiXG4gICAgQHR1aVBhcmVudEFuaW1hdGlvblxuPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgYWxlcnQkIHwgYXN5bmNcIlxuICAgICAgICBbbmdDb21wb25lbnRPdXRsZXRdPVwiaXRlbS5jb21wb25lbnQuY29tcG9uZW50XCJcbiAgICAgICAgW25nQ29tcG9uZW50T3V0bGV0SW5qZWN0b3JdPVwiaXRlbSB8IHR1aU1hcHBlciA6IG1hcHBlclwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=
@@ -1,8 +1,15 @@
1
1
  import { animateChild, query, style, transition, trigger } from '@angular/animations';
2
+ /**
3
+ * Add to enable child :leave animation (fixes https://github.com/angular/angular/issues/15753)
4
+ */
2
5
  export const TUI_PARENT_ANIMATION = trigger(`tuiParentAnimation`, [
3
6
  transition(`* => void`, [
4
7
  style({ overflow: `hidden` }),
5
8
  query(`:scope > *`, [animateChild()], { optional: true }),
6
9
  ]),
7
10
  ]);
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyZW50LWFuaW1hdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9jb25zdGFudHMvcGFyZW50LWFuaW1hdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRXBGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRTtJQUM5RCxVQUFVLENBQUMsV0FBVyxFQUFFO1FBQ3BCLEtBQUssQ0FBQyxFQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUMsQ0FBQztRQUMzQixLQUFLLENBQUMsWUFBWSxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUMsRUFBRSxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQztLQUMxRCxDQUFDO0NBQ0wsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHthbmltYXRlQ2hpbGQsIHF1ZXJ5LCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlcn0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5cbmV4cG9ydCBjb25zdCBUVUlfUEFSRU5UX0FOSU1BVElPTiA9IHRyaWdnZXIoYHR1aVBhcmVudEFuaW1hdGlvbmAsIFtcbiAgICB0cmFuc2l0aW9uKGAqID0+IHZvaWRgLCBbXG4gICAgICAgIHN0eWxlKHtvdmVyZmxvdzogYGhpZGRlbmB9KSxcbiAgICAgICAgcXVlcnkoYDpzY29wZSA+ICpgLCBbYW5pbWF0ZUNoaWxkKCldLCB7b3B0aW9uYWw6IHRydWV9KSxcbiAgICBdKSxcbl0pO1xuIl19
11
+ /**
12
+ * Add on parent to stop initial :enter animation for children
13
+ */
14
+ export const TUI_PARENT_STOP = trigger(`tuiParentStop`, [transition(`:enter`, [])]);
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyZW50LWFuaW1hdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9jb25zdGFudHMvcGFyZW50LWFuaW1hdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRXBGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsT0FBTyxDQUFDLG9CQUFvQixFQUFFO0lBQzlELFVBQVUsQ0FBQyxXQUFXLEVBQUU7UUFDcEIsS0FBSyxDQUFDLEVBQUMsUUFBUSxFQUFFLFFBQVEsRUFBQyxDQUFDO1FBQzNCLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDO0tBQzFELENBQUM7Q0FDTCxDQUFDLENBQUM7QUFFSDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsZUFBZSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2FuaW1hdGVDaGlsZCwgcXVlcnksIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcblxuLyoqXG4gKiBBZGQgdG8gZW5hYmxlIGNoaWxkIDpsZWF2ZSBhbmltYXRpb24gKGZpeGVzIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzE1NzUzKVxuICovXG5leHBvcnQgY29uc3QgVFVJX1BBUkVOVF9BTklNQVRJT04gPSB0cmlnZ2VyKGB0dWlQYXJlbnRBbmltYXRpb25gLCBbXG4gICAgdHJhbnNpdGlvbihgKiA9PiB2b2lkYCwgW1xuICAgICAgICBzdHlsZSh7b3ZlcmZsb3c6IGBoaWRkZW5gfSksXG4gICAgICAgIHF1ZXJ5KGA6c2NvcGUgPiAqYCwgW2FuaW1hdGVDaGlsZCgpXSwge29wdGlvbmFsOiB0cnVlfSksXG4gICAgXSksXG5dKTtcblxuLyoqXG4gKiBBZGQgb24gcGFyZW50IHRvIHN0b3AgaW5pdGlhbCA6ZW50ZXIgYW5pbWF0aW9uIGZvciBjaGlsZHJlblxuICovXG5leHBvcnQgY29uc3QgVFVJX1BBUkVOVF9TVE9QID0gdHJpZ2dlcihgdHVpUGFyZW50U3RvcGAsIFt0cmFuc2l0aW9uKGA6ZW50ZXJgLCBbXSldKTtcbiJdfQ==
@@ -11,7 +11,7 @@ export class TuiDayRange extends TuiMonthRange {
11
11
  super(from, to);
12
12
  this.from = from;
13
13
  this.to = to;
14
- tuiAssert.assert(from.daySameOrBefore(to));
14
+ ngDevMode && tuiAssert.assert(from.daySameOrBefore(to));
15
15
  }
16
16
  /**
17
17
  * Creates range from two days after sorting them
@@ -75,4 +75,4 @@ export class TuiDayRange extends TuiMonthRange {
75
75
  return `${from}${RANGE_SEPARATOR_CHAR}${to}`;
76
76
  }
77
77
  }
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5LXJhbmdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL2RhdGUtdGltZS9kYXktcmFuZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBR2hELE9BQU8sRUFBQyxrQkFBa0IsRUFBRSx3QkFBd0IsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVFLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUNqRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sT0FBTyxDQUFDO0FBQzdCLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFNUM7O0dBRUc7QUFDSCxNQUFNLE9BQU8sV0FBWSxTQUFRLGFBQWE7SUFDMUMsWUFBOEIsSUFBWSxFQUFvQixFQUFVO1FBQ3BFLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFEVSxTQUFJLEdBQUosSUFBSSxDQUFRO1FBQW9CLE9BQUUsR0FBRixFQUFFLENBQVE7UUFHcEUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBVSxJQUFJLENBQUMsSUFBWSxFQUFFLElBQVk7UUFDM0MsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQztZQUM3QixDQUFDLENBQUMsSUFBSSxXQUFXLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQztZQUM3QixDQUFDLENBQUMsSUFBSSxXQUFXLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxNQUFNLENBQUMsY0FBYyxDQUNqQixXQUFtQixFQUNuQixXQUF3QixLQUFLO1FBRTdCLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQ2pDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLGtCQUFrQixDQUFDLEVBQ3hDLFFBQVEsQ0FDWCxDQUFDO1FBRUYsSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLHdCQUF3QixFQUFFO1lBQy9DLE9BQU8sSUFBSSxXQUFXLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQzVDO1FBRUQsT0FBTyxXQUFXLENBQUMsSUFBSSxDQUNuQixPQUFPLEVBQ1AsTUFBTSxDQUFDLGNBQWMsQ0FDakIsV0FBVyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsR0FBRyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsRUFDbkUsUUFBUSxDQUNYLENBQ0osQ0FBQztJQUNOLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxPQUFPLENBQUMsT0FBb0I7UUFDeEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxRQUFRLENBQUMsR0FBa0IsRUFBRSxHQUFrQjtRQUMzQyxPQUFPLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRUQ7O09BRUc7SUFDSCxvQkFBb0IsQ0FBQyxVQUF1QixFQUFFLGFBQXFCO1FBQy9ELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUNsRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFFOUQsT0FBTyxHQUFHLElBQUksR0FBRyxvQkFBb0IsR0FBRyxFQUFFLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBRVEsUUFBUSxDQUNiLGFBQTBCLEtBQUssRUFDL0IsZ0JBQXdCLEdBQUc7UUFFM0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUU5RCxPQUFPLEdBQUcsSUFBSSxHQUFHLG9CQUFvQixHQUFHLEVBQUUsRUFBRSxDQUFDO0lBQ2pELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7dHVpQXNzZXJ0fSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NsYXNzZXMnO1xuaW1wb3J0IHtUdWlEYXRlTW9kZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay90eXBlcyc7XG5cbmltcG9ydCB7REFURV9GSUxMRVJfTEVOR1RILCBEQVRFX1JBTkdFX0ZJTExFUl9MRU5HVEh9IGZyb20gJy4vZGF0ZS1maWxsZXJzJztcbmltcG9ydCB7UkFOR0VfU0VQQVJBVE9SX0NIQVJ9IGZyb20gJy4vZGF0ZS10aW1lJztcbmltcG9ydCB7VHVpRGF5fSBmcm9tICcuL2RheSc7XG5pbXBvcnQge1R1aU1vbnRoUmFuZ2V9IGZyb20gJy4vbW9udGgtcmFuZ2UnO1xuXG4vKipcbiAqIEFuIGltbXV0YWJsZSByYW5nZSBvZiB0d28ge0BsaW5rIFR1aURheX0gb2JqZWN0c1xuICovXG5leHBvcnQgY2xhc3MgVHVpRGF5UmFuZ2UgZXh0ZW5kcyBUdWlNb250aFJhbmdlIHtcbiAgICBjb25zdHJ1Y3RvcihvdmVycmlkZSByZWFkb25seSBmcm9tOiBUdWlEYXksIG92ZXJyaWRlIHJlYWRvbmx5IHRvOiBUdWlEYXkpIHtcbiAgICAgICAgc3VwZXIoZnJvbSwgdG8pO1xuXG4gICAgICAgIHR1aUFzc2VydC5hc3NlcnQoZnJvbS5kYXlTYW1lT3JCZWZvcmUodG8pKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIHJhbmdlIGZyb20gdHdvIGRheXMgYWZ0ZXIgc29ydGluZyB0aGVtXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZGF5MVxuICAgICAqIEBwYXJhbSBkYXkyXG4gICAgICogQHJldHVybiBuZXcgcmFuZ2Ugd2l0aCBzb3J0ZWQgZGF5c1xuICAgICAqL1xuICAgIHN0YXRpYyBvdmVycmlkZSBzb3J0KGRheTE6IFR1aURheSwgZGF5MjogVHVpRGF5KTogVHVpRGF5UmFuZ2Uge1xuICAgICAgICByZXR1cm4gZGF5MS5kYXlTYW1lT3JCZWZvcmUoZGF5MilcbiAgICAgICAgICAgID8gbmV3IFR1aURheVJhbmdlKGRheTEsIGRheTIpXG4gICAgICAgICAgICA6IG5ldyBUdWlEYXlSYW5nZShkYXkyLCBkYXkxKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQYXJzZSBhbmQgY29ycmVjdCBhIGRheSByYW5nZSBpbiBzdHJpbmcgZm9ybWF0XG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmFuZ2VTdHJpbmcgYSBzdHJpbmcgb2YgZGF0ZXMgaW4gYSBmb3JtYXQgZGQubW0ueXl5eSAtIGRkLm1tLnl5eXlcbiAgICAgKiBAcGFyYW0gZGF0ZU1vZGUge0BsaW5rIFR1aURhdGVNb2RlfVxuICAgICAqIEByZXR1cm4gbm9ybWFsaXplZCBkYXkgcmFuZ2Ugb2JqZWN0XG4gICAgICovXG4gICAgc3RhdGljIG5vcm1hbGl6ZVBhcnNlKFxuICAgICAgICByYW5nZVN0cmluZzogc3RyaW5nLFxuICAgICAgICBkYXRlTW9kZTogVHVpRGF0ZU1vZGUgPSBgRE1ZYCxcbiAgICApOiBUdWlEYXlSYW5nZSB7XG4gICAgICAgIGNvbnN0IGxlZnREYXkgPSBUdWlEYXkubm9ybWFsaXplUGFyc2UoXG4gICAgICAgICAgICByYW5nZVN0cmluZy5zbGljZSgwLCBEQVRFX0ZJTExFUl9MRU5HVEgpLFxuICAgICAgICAgICAgZGF0ZU1vZGUsXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKHJhbmdlU3RyaW5nLmxlbmd0aCA8IERBVEVfUkFOR0VfRklMTEVSX0xFTkdUSCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBUdWlEYXlSYW5nZShsZWZ0RGF5LCBsZWZ0RGF5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBUdWlEYXlSYW5nZS5zb3J0KFxuICAgICAgICAgICAgbGVmdERheSxcbiAgICAgICAgICAgIFR1aURheS5ub3JtYWxpemVQYXJzZShcbiAgICAgICAgICAgICAgICByYW5nZVN0cmluZy5zbGljZShEQVRFX0ZJTExFUl9MRU5HVEggKyBSQU5HRV9TRVBBUkFUT1JfQ0hBUi5sZW5ndGgpLFxuICAgICAgICAgICAgICAgIGRhdGVNb2RlLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgaXNTaW5nbGVEYXkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZyb20uZGF5U2FtZSh0aGlzLnRvKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUZXN0cyByYW5nZXMgZm9yIGlkZW50aXR5XG4gICAgICpcbiAgICAgKiBAcGFyYW0gYW5vdGhlciBzZWNvbmQgcmFuZ2UgdG8gdGVzdCBhZ2FpbnN0IGN1cnJlbnRcbiAgICAgKiBAcmV0dXJuIGB0cnVlYCBpZiBkYXlzIGFyZSBpZGVudGljYWxcbiAgICAgKi9cbiAgICBkYXlTYW1lKGFub3RoZXI6IFR1aURheVJhbmdlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZyb20uZGF5U2FtZShhbm90aGVyLmZyb20pICYmIHRoaXMudG8uZGF5U2FtZShhbm90aGVyLnRvKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBMb2NrcyByYW5nZSBiZXR3ZWVuIHR3byBkYXlzIGluY2x1ZGVkLCBvciBsaW1pdHMgZnJvbSBvbmUgc2lkZSBpZiB0aGUgb3RoZXIgaXMgbnVsbFxuICAgICAqXG4gICAgICogQHBhcmFtIG1pblxuICAgICAqIEBwYXJhbSBtYXhcbiAgICAgKiBAcmV0dXJuIHJhbmdlIOKAlCBjbGFtcGVkIHJhbmdlXG4gICAgICovXG4gICAgZGF5TGltaXQobWluOiBUdWlEYXkgfCBudWxsLCBtYXg6IFR1aURheSB8IG51bGwpOiBUdWlEYXlSYW5nZSB7XG4gICAgICAgIHJldHVybiBuZXcgVHVpRGF5UmFuZ2UodGhpcy5mcm9tLmRheUxpbWl0KG1pbiwgbWF4KSwgdGhpcy50by5kYXlMaW1pdChtaW4sIG1heCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEh1bWFuIHJlYWRhYmxlIGZvcm1hdC5cbiAgICAgKi9cbiAgICBnZXRGb3JtYXR0ZWREYXlSYW5nZShkYXRlRm9ybWF0OiBUdWlEYXRlTW9kZSwgZGF0ZVNlcGFyYXRvcjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZnJvbSA9IHRoaXMuZnJvbS5nZXRGb3JtYXR0ZWREYXkoZGF0ZUZvcm1hdCwgZGF0ZVNlcGFyYXRvcik7XG4gICAgICAgIGNvbnN0IHRvID0gdGhpcy50by5nZXRGb3JtYXR0ZWREYXkoZGF0ZUZvcm1hdCwgZGF0ZVNlcGFyYXRvcik7XG5cbiAgICAgICAgcmV0dXJuIGAke2Zyb219JHtSQU5HRV9TRVBBUkFUT1JfQ0hBUn0ke3RvfWA7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgdG9TdHJpbmcoXG4gICAgICAgIGRhdGVGb3JtYXQ6IFR1aURhdGVNb2RlID0gYERNWWAsXG4gICAgICAgIGRhdGVTZXBhcmF0b3I6IHN0cmluZyA9IGAuYCxcbiAgICApOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBmcm9tID0gdGhpcy5mcm9tLmdldEZvcm1hdHRlZERheShkYXRlRm9ybWF0LCBkYXRlU2VwYXJhdG9yKTtcbiAgICAgICAgY29uc3QgdG8gPSB0aGlzLnRvLmdldEZvcm1hdHRlZERheShkYXRlRm9ybWF0LCBkYXRlU2VwYXJhdG9yKTtcblxuICAgICAgICByZXR1cm4gYCR7ZnJvbX0ke1JBTkdFX1NFUEFSQVRPUl9DSEFSfSR7dG99YDtcbiAgICB9XG59XG4iXX0=
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5LXJhbmdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL2RhdGUtdGltZS9kYXktcmFuZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBR2hELE9BQU8sRUFBQyxrQkFBa0IsRUFBRSx3QkFBd0IsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVFLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUNqRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sT0FBTyxDQUFDO0FBQzdCLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFNUM7O0dBRUc7QUFDSCxNQUFNLE9BQU8sV0FBWSxTQUFRLGFBQWE7SUFDMUMsWUFBOEIsSUFBWSxFQUFvQixFQUFVO1FBQ3BFLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFEVSxTQUFJLEdBQUosSUFBSSxDQUFRO1FBQW9CLE9BQUUsR0FBRixFQUFFLENBQVE7UUFHcEUsU0FBUyxJQUFJLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxNQUFNLENBQVUsSUFBSSxDQUFDLElBQVksRUFBRSxJQUFZO1FBQzNDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUM7WUFDN0IsQ0FBQyxDQUFDLElBQUksV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUM7WUFDN0IsQ0FBQyxDQUFDLElBQUksV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLGNBQWMsQ0FDakIsV0FBbUIsRUFDbkIsV0FBd0IsS0FBSztRQUU3QixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsY0FBYyxDQUNqQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxrQkFBa0IsQ0FBQyxFQUN4QyxRQUFRLENBQ1gsQ0FBQztRQUVGLElBQUksV0FBVyxDQUFDLE1BQU0sR0FBRyx3QkFBd0IsRUFBRTtZQUMvQyxPQUFPLElBQUksV0FBVyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztTQUM1QztRQUVELE9BQU8sV0FBVyxDQUFDLElBQUksQ0FDbkIsT0FBTyxFQUNQLE1BQU0sQ0FBQyxjQUFjLENBQ2pCLFdBQVcsQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEdBQUcsb0JBQW9CLENBQUMsTUFBTSxDQUFDLEVBQ25FLFFBQVEsQ0FDWCxDQUNKLENBQUM7SUFDTixDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsT0FBTyxDQUFDLE9BQW9CO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsUUFBUSxDQUFDLEdBQWtCLEVBQUUsR0FBa0I7UUFDM0MsT0FBTyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVEOztPQUVHO0lBQ0gsb0JBQW9CLENBQUMsVUFBdUIsRUFBRSxhQUFxQjtRQUMvRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDbEUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBRTlELE9BQU8sR0FBRyxJQUFJLEdBQUcsb0JBQW9CLEdBQUcsRUFBRSxFQUFFLENBQUM7SUFDakQsQ0FBQztJQUVRLFFBQVEsQ0FDYixhQUEwQixLQUFLLEVBQy9CLGdCQUF3QixHQUFHO1FBRTNCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUNsRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFFOUQsT0FBTyxHQUFHLElBQUksR0FBRyxvQkFBb0IsR0FBRyxFQUFFLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3R1aUFzc2VydH0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jbGFzc2VzJztcbmltcG9ydCB7VHVpRGF0ZU1vZGV9IGZyb20gJ0B0YWlnYS11aS9jZGsvdHlwZXMnO1xuXG5pbXBvcnQge0RBVEVfRklMTEVSX0xFTkdUSCwgREFURV9SQU5HRV9GSUxMRVJfTEVOR1RIfSBmcm9tICcuL2RhdGUtZmlsbGVycyc7XG5pbXBvcnQge1JBTkdFX1NFUEFSQVRPUl9DSEFSfSBmcm9tICcuL2RhdGUtdGltZSc7XG5pbXBvcnQge1R1aURheX0gZnJvbSAnLi9kYXknO1xuaW1wb3J0IHtUdWlNb250aFJhbmdlfSBmcm9tICcuL21vbnRoLXJhbmdlJztcblxuLyoqXG4gKiBBbiBpbW11dGFibGUgcmFuZ2Ugb2YgdHdvIHtAbGluayBUdWlEYXl9IG9iamVjdHNcbiAqL1xuZXhwb3J0IGNsYXNzIFR1aURheVJhbmdlIGV4dGVuZHMgVHVpTW9udGhSYW5nZSB7XG4gICAgY29uc3RydWN0b3Iob3ZlcnJpZGUgcmVhZG9ubHkgZnJvbTogVHVpRGF5LCBvdmVycmlkZSByZWFkb25seSB0bzogVHVpRGF5KSB7XG4gICAgICAgIHN1cGVyKGZyb20sIHRvKTtcblxuICAgICAgICBuZ0Rldk1vZGUgJiYgdHVpQXNzZXJ0LmFzc2VydChmcm9tLmRheVNhbWVPckJlZm9yZSh0bykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgcmFuZ2UgZnJvbSB0d28gZGF5cyBhZnRlciBzb3J0aW5nIHRoZW1cbiAgICAgKlxuICAgICAqIEBwYXJhbSBkYXkxXG4gICAgICogQHBhcmFtIGRheTJcbiAgICAgKiBAcmV0dXJuIG5ldyByYW5nZSB3aXRoIHNvcnRlZCBkYXlzXG4gICAgICovXG4gICAgc3RhdGljIG92ZXJyaWRlIHNvcnQoZGF5MTogVHVpRGF5LCBkYXkyOiBUdWlEYXkpOiBUdWlEYXlSYW5nZSB7XG4gICAgICAgIHJldHVybiBkYXkxLmRheVNhbWVPckJlZm9yZShkYXkyKVxuICAgICAgICAgICAgPyBuZXcgVHVpRGF5UmFuZ2UoZGF5MSwgZGF5MilcbiAgICAgICAgICAgIDogbmV3IFR1aURheVJhbmdlKGRheTIsIGRheTEpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBhcnNlIGFuZCBjb3JyZWN0IGEgZGF5IHJhbmdlIGluIHN0cmluZyBmb3JtYXRcbiAgICAgKlxuICAgICAqIEBwYXJhbSByYW5nZVN0cmluZyBhIHN0cmluZyBvZiBkYXRlcyBpbiBhIGZvcm1hdCBkZC5tbS55eXl5IC0gZGQubW0ueXl5eVxuICAgICAqIEBwYXJhbSBkYXRlTW9kZSB7QGxpbmsgVHVpRGF0ZU1vZGV9XG4gICAgICogQHJldHVybiBub3JtYWxpemVkIGRheSByYW5nZSBvYmplY3RcbiAgICAgKi9cbiAgICBzdGF0aWMgbm9ybWFsaXplUGFyc2UoXG4gICAgICAgIHJhbmdlU3RyaW5nOiBzdHJpbmcsXG4gICAgICAgIGRhdGVNb2RlOiBUdWlEYXRlTW9kZSA9IGBETVlgLFxuICAgICk6IFR1aURheVJhbmdlIHtcbiAgICAgICAgY29uc3QgbGVmdERheSA9IFR1aURheS5ub3JtYWxpemVQYXJzZShcbiAgICAgICAgICAgIHJhbmdlU3RyaW5nLnNsaWNlKDAsIERBVEVfRklMTEVSX0xFTkdUSCksXG4gICAgICAgICAgICBkYXRlTW9kZSxcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAocmFuZ2VTdHJpbmcubGVuZ3RoIDwgREFURV9SQU5HRV9GSUxMRVJfTEVOR1RIKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFR1aURheVJhbmdlKGxlZnREYXksIGxlZnREYXkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFR1aURheVJhbmdlLnNvcnQoXG4gICAgICAgICAgICBsZWZ0RGF5LFxuICAgICAgICAgICAgVHVpRGF5Lm5vcm1hbGl6ZVBhcnNlKFxuICAgICAgICAgICAgICAgIHJhbmdlU3RyaW5nLnNsaWNlKERBVEVfRklMTEVSX0xFTkdUSCArIFJBTkdFX1NFUEFSQVRPUl9DSEFSLmxlbmd0aCksXG4gICAgICAgICAgICAgICAgZGF0ZU1vZGUsXG4gICAgICAgICAgICApLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBpc1NpbmdsZURheSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZnJvbS5kYXlTYW1lKHRoaXMudG8pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRlc3RzIHJhbmdlcyBmb3IgaWRlbnRpdHlcbiAgICAgKlxuICAgICAqIEBwYXJhbSBhbm90aGVyIHNlY29uZCByYW5nZSB0byB0ZXN0IGFnYWluc3QgY3VycmVudFxuICAgICAqIEByZXR1cm4gYHRydWVgIGlmIGRheXMgYXJlIGlkZW50aWNhbFxuICAgICAqL1xuICAgIGRheVNhbWUoYW5vdGhlcjogVHVpRGF5UmFuZ2UpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZnJvbS5kYXlTYW1lKGFub3RoZXIuZnJvbSkgJiYgdGhpcy50by5kYXlTYW1lKGFub3RoZXIudG8pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIExvY2tzIHJhbmdlIGJldHdlZW4gdHdvIGRheXMgaW5jbHVkZWQsIG9yIGxpbWl0cyBmcm9tIG9uZSBzaWRlIGlmIHRoZSBvdGhlciBpcyBudWxsXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbWluXG4gICAgICogQHBhcmFtIG1heFxuICAgICAqIEByZXR1cm4gcmFuZ2Ug4oCUIGNsYW1wZWQgcmFuZ2VcbiAgICAgKi9cbiAgICBkYXlMaW1pdChtaW46IFR1aURheSB8IG51bGwsIG1heDogVHVpRGF5IHwgbnVsbCk6IFR1aURheVJhbmdlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUdWlEYXlSYW5nZSh0aGlzLmZyb20uZGF5TGltaXQobWluLCBtYXgpLCB0aGlzLnRvLmRheUxpbWl0KG1pbiwgbWF4KSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSHVtYW4gcmVhZGFibGUgZm9ybWF0LlxuICAgICAqL1xuICAgIGdldEZvcm1hdHRlZERheVJhbmdlKGRhdGVGb3JtYXQ6IFR1aURhdGVNb2RlLCBkYXRlU2VwYXJhdG9yOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBmcm9tID0gdGhpcy5mcm9tLmdldEZvcm1hdHRlZERheShkYXRlRm9ybWF0LCBkYXRlU2VwYXJhdG9yKTtcbiAgICAgICAgY29uc3QgdG8gPSB0aGlzLnRvLmdldEZvcm1hdHRlZERheShkYXRlRm9ybWF0LCBkYXRlU2VwYXJhdG9yKTtcblxuICAgICAgICByZXR1cm4gYCR7ZnJvbX0ke1JBTkdFX1NFUEFSQVRPUl9DSEFSfSR7dG99YDtcbiAgICB9XG5cbiAgICBvdmVycmlkZSB0b1N0cmluZyhcbiAgICAgICAgZGF0ZUZvcm1hdDogVHVpRGF0ZU1vZGUgPSBgRE1ZYCxcbiAgICAgICAgZGF0ZVNlcGFyYXRvcjogc3RyaW5nID0gYC5gLFxuICAgICk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGZyb20gPSB0aGlzLmZyb20uZ2V0Rm9ybWF0dGVkRGF5KGRhdGVGb3JtYXQsIGRhdGVTZXBhcmF0b3IpO1xuICAgICAgICBjb25zdCB0byA9IHRoaXMudG8uZ2V0Rm9ybWF0dGVkRGF5KGRhdGVGb3JtYXQsIGRhdGVTZXBhcmF0b3IpO1xuXG4gICAgICAgIHJldHVybiBgJHtmcm9tfSR7UkFOR0VfU0VQQVJBVE9SX0NIQVJ9JHt0b31gO1xuICAgIH1cbn1cbiJdfQ==