@taiga-ui/cdk 2.36.0 → 2.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/abstract/control.d.ts +2 -2
  2. package/abstract/index.d.ts +2 -0
  3. package/abstract/portal-host.d.ts +13 -0
  4. package/abstract/portal-service.d.ts +14 -0
  5. package/abstract/taiga-ui-cdk-abstract.metadata.json +1 -1
  6. package/bundles/taiga-ui-cdk-abstract.umd.js +94 -6
  7. package/bundles/taiga-ui-cdk-abstract.umd.js.map +1 -1
  8. package/bundles/taiga-ui-cdk-abstract.umd.min.js +2 -2
  9. package/bundles/taiga-ui-cdk-abstract.umd.min.js.map +1 -1
  10. package/bundles/taiga-ui-cdk-components-dropdown-host.umd.js +280 -0
  11. package/bundles/taiga-ui-cdk-components-dropdown-host.umd.js.map +1 -0
  12. package/bundles/taiga-ui-cdk-components-dropdown-host.umd.min.js +16 -0
  13. package/bundles/taiga-ui-cdk-components-dropdown-host.umd.min.js.map +1 -0
  14. package/bundles/taiga-ui-cdk-components-portal-host.umd.js +10 -114
  15. package/bundles/taiga-ui-cdk-components-portal-host.umd.js.map +1 -1
  16. package/bundles/taiga-ui-cdk-components-portal-host.umd.min.js +2 -2
  17. package/bundles/taiga-ui-cdk-components-portal-host.umd.min.js.map +1 -1
  18. package/bundles/taiga-ui-cdk-components.umd.js +12 -4
  19. package/bundles/taiga-ui-cdk-components.umd.js.map +1 -1
  20. package/bundles/taiga-ui-cdk-components.umd.min.js +1 -1
  21. package/bundles/taiga-ui-cdk-date-time.umd.js +2 -2
  22. package/bundles/taiga-ui-cdk-date-time.umd.js.map +1 -1
  23. package/bundles/taiga-ui-cdk-date-time.umd.min.js.map +1 -1
  24. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.js +78 -36
  25. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.js.map +1 -1
  26. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.min.js +2 -2
  27. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.min.js.map +1 -1
  28. package/bundles/taiga-ui-cdk-directives-for.umd.js +3 -2
  29. package/bundles/taiga-ui-cdk-directives-for.umd.js.map +1 -1
  30. package/bundles/taiga-ui-cdk-directives-for.umd.min.js +1 -1
  31. package/bundles/taiga-ui-cdk-directives-for.umd.min.js.map +1 -1
  32. package/bundles/taiga-ui-cdk-services.umd.js +17 -4
  33. package/bundles/taiga-ui-cdk-services.umd.js.map +1 -1
  34. package/bundles/taiga-ui-cdk-services.umd.min.js +1 -1
  35. package/bundles/taiga-ui-cdk-services.umd.min.js.map +1 -1
  36. package/bundles/taiga-ui-cdk-tokens.umd.js +1 -2
  37. package/bundles/taiga-ui-cdk-tokens.umd.js.map +1 -1
  38. package/bundles/taiga-ui-cdk-tokens.umd.min.js +1 -1
  39. package/bundles/taiga-ui-cdk-tokens.umd.min.js.map +1 -1
  40. package/bundles/taiga-ui-cdk-utils-focus.umd.js +1 -1
  41. package/bundles/taiga-ui-cdk-utils-focus.umd.js.map +1 -1
  42. package/bundles/taiga-ui-cdk-utils-focus.umd.min.js.map +1 -1
  43. package/components/dropdown-host/dropdown-host.component.d.ts +8 -0
  44. package/components/dropdown-host/dropdown-host.module.d.ts +2 -0
  45. package/components/dropdown-host/index.d.ts +2 -0
  46. package/components/dropdown-host/package.json +13 -0
  47. package/components/dropdown-host/taiga-ui-cdk-components-dropdown-host.d.ts +4 -0
  48. package/components/dropdown-host/taiga-ui-cdk-components-dropdown-host.metadata.json +1 -0
  49. package/components/index.d.ts +1 -0
  50. package/components/portal-host/index.d.ts +0 -2
  51. package/components/portal-host/portal.service.d.ts +4 -11
  52. package/components/portal-host/taiga-ui-cdk-components-portal-host.metadata.json +1 -1
  53. package/components/taiga-ui-cdk-components.metadata.json +1 -1
  54. package/directives/auto-focus/autofocus.directive.d.ts +8 -4
  55. package/directives/auto-focus/taiga-ui-cdk-directives-auto-focus.metadata.json +1 -1
  56. package/directives/for/for.directive.d.ts +4 -4
  57. package/directives/for/taiga-ui-cdk-directives-for.metadata.json +1 -1
  58. package/esm2015/abstract/control.js +5 -3
  59. package/esm2015/abstract/index.js +3 -1
  60. package/esm2015/abstract/portal-host.js +44 -0
  61. package/esm2015/abstract/portal-service.js +34 -0
  62. package/esm2015/components/dropdown-host/dropdown-host.component.js +36 -0
  63. package/esm2015/components/dropdown-host/dropdown-host.module.js +13 -0
  64. package/esm2015/components/dropdown-host/index.js +3 -0
  65. package/esm2015/components/dropdown-host/taiga-ui-cdk-components-dropdown-host.js +5 -0
  66. package/esm2015/components/index.js +2 -1
  67. package/esm2015/components/portal-host/index.js +1 -3
  68. package/esm2015/components/portal-host/portal.service.js +6 -26
  69. package/esm2015/date-time/time.js +3 -3
  70. package/esm2015/directives/auto-focus/autofocus.directive.js +71 -39
  71. package/esm2015/directives/for/for.directive.js +6 -5
  72. package/esm2015/services/directive-styles.service.js +19 -6
  73. package/esm2015/tokens/is-ios.js +2 -3
  74. package/esm2015/utils/focus/get-closest-keyboard-focusable.js +2 -2
  75. package/esm5/abstract/control.js +5 -3
  76. package/esm5/abstract/index.js +3 -1
  77. package/esm5/abstract/portal-host.js +50 -0
  78. package/esm5/abstract/portal-service.js +42 -0
  79. package/esm5/components/dropdown-host/dropdown-host.component.js +41 -0
  80. package/esm5/components/dropdown-host/dropdown-host.module.js +16 -0
  81. package/esm5/components/dropdown-host/index.js +3 -0
  82. package/esm5/components/dropdown-host/taiga-ui-cdk-components-dropdown-host.js +5 -0
  83. package/esm5/components/index.js +2 -1
  84. package/esm5/components/portal-host/index.js +1 -3
  85. package/esm5/components/portal-host/portal.service.js +10 -33
  86. package/esm5/date-time/time.js +3 -3
  87. package/esm5/directives/auto-focus/autofocus.directive.js +81 -39
  88. package/esm5/directives/for/for.directive.js +6 -5
  89. package/esm5/services/directive-styles.service.js +19 -6
  90. package/esm5/tokens/is-ios.js +2 -3
  91. package/esm5/utils/focus/get-closest-keyboard-focusable.js +2 -2
  92. package/fesm2015/taiga-ui-cdk-abstract.js +77 -4
  93. package/fesm2015/taiga-ui-cdk-abstract.js.map +1 -1
  94. package/fesm2015/taiga-ui-cdk-components-dropdown-host.js +51 -0
  95. package/fesm2015/taiga-ui-cdk-components-dropdown-host.js.map +1 -0
  96. package/fesm2015/taiga-ui-cdk-components-portal-host.js +7 -97
  97. package/fesm2015/taiga-ui-cdk-components-portal-host.js.map +1 -1
  98. package/fesm2015/taiga-ui-cdk-components.js +1 -0
  99. package/fesm2015/taiga-ui-cdk-components.js.map +1 -1
  100. package/fesm2015/taiga-ui-cdk-date-time.js +2 -2
  101. package/fesm2015/taiga-ui-cdk-date-time.js.map +1 -1
  102. package/fesm2015/taiga-ui-cdk-directives-auto-focus.js +70 -38
  103. package/fesm2015/taiga-ui-cdk-directives-auto-focus.js.map +1 -1
  104. package/fesm2015/taiga-ui-cdk-directives-for.js +5 -4
  105. package/fesm2015/taiga-ui-cdk-directives-for.js.map +1 -1
  106. package/fesm2015/taiga-ui-cdk-services.js +18 -5
  107. package/fesm2015/taiga-ui-cdk-services.js.map +1 -1
  108. package/fesm2015/taiga-ui-cdk-tokens.js +1 -2
  109. package/fesm2015/taiga-ui-cdk-tokens.js.map +1 -1
  110. package/fesm2015/taiga-ui-cdk-utils-focus.js +1 -1
  111. package/fesm2015/taiga-ui-cdk-utils-focus.js.map +1 -1
  112. package/fesm5/taiga-ui-cdk-abstract.js +91 -4
  113. package/fesm5/taiga-ui-cdk-abstract.js.map +1 -1
  114. package/fesm5/taiga-ui-cdk-components-dropdown-host.js +59 -0
  115. package/fesm5/taiga-ui-cdk-components-dropdown-host.js.map +1 -0
  116. package/fesm5/taiga-ui-cdk-components-portal-host.js +10 -112
  117. package/fesm5/taiga-ui-cdk-components-portal-host.js.map +1 -1
  118. package/fesm5/taiga-ui-cdk-components.js +1 -0
  119. package/fesm5/taiga-ui-cdk-components.js.map +1 -1
  120. package/fesm5/taiga-ui-cdk-date-time.js +2 -2
  121. package/fesm5/taiga-ui-cdk-date-time.js.map +1 -1
  122. package/fesm5/taiga-ui-cdk-directives-auto-focus.js +80 -38
  123. package/fesm5/taiga-ui-cdk-directives-auto-focus.js.map +1 -1
  124. package/fesm5/taiga-ui-cdk-directives-for.js +5 -4
  125. package/fesm5/taiga-ui-cdk-directives-for.js.map +1 -1
  126. package/fesm5/taiga-ui-cdk-services.js +18 -5
  127. package/fesm5/taiga-ui-cdk-services.js.map +1 -1
  128. package/fesm5/taiga-ui-cdk-tokens.js +1 -2
  129. package/fesm5/taiga-ui-cdk-tokens.js.map +1 -1
  130. package/fesm5/taiga-ui-cdk-utils-focus.js +1 -1
  131. package/fesm5/taiga-ui-cdk-utils-focus.js.map +1 -1
  132. package/package.json +1 -1
  133. package/services/directive-styles.service.d.ts +7 -2
  134. package/services/taiga-ui-cdk-services.metadata.json +1 -1
  135. package/tokens/taiga-ui-cdk-tokens.metadata.json +1 -1
  136. package/utils/focus/get-closest-keyboard-focusable.d.ts +1 -1
  137. package/components/portal-host/portal-host.component.d.ts +0 -15
  138. package/components/portal-host/portal-host.module.d.ts +0 -2
  139. package/esm2015/components/portal-host/portal-host.component.js +0 -65
  140. package/esm2015/components/portal-host/portal-host.module.js +0 -13
  141. package/esm5/components/portal-host/portal-host.component.js +0 -71
  142. package/esm5/components/portal-host/portal-host.module.js +0 -16
@@ -2,7 +2,7 @@ import { svgNodeFilter } from '@taiga-ui/cdk/constants';
2
2
  import { isNativeKeyboardFocusable } from './is-native-keyboard-focusable';
3
3
  import { isNativeMouseFocusable } from './is-native-mouse-focusable';
4
4
  /**
5
- * Finds closest element that can be focused with a keyboard or mouse in theory
5
+ * Finds the closest element that can be focused with a keyboard or mouse in theory
6
6
  *
7
7
  * @param initial current HTML element
8
8
  * @param prev should it look backwards instead (find item that will be focused with Shift + Tab)
@@ -32,4 +32,4 @@ export function getClosestFocusable(initial, prev = false, root, keyboard = true
32
32
  }
33
33
  /** @deprecated use getClosestFocusable */
34
34
  export const getClosestKeyboardFocusable = getClosestFocusable;
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWNsb3Nlc3Qta2V5Ym9hcmQtZm9jdXNhYmxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2Nkay91dGlscy9mb2N1cy8iLCJzb3VyY2VzIjpbImdldC1jbG9zZXN0LWtleWJvYXJkLWZvY3VzYWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFdEQsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDekUsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFFbkU7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQy9CLE9BQW9CLEVBQ3BCLE9BQWdCLEtBQUssRUFDckIsSUFBVSxFQUNWLFdBQW9CLElBQUk7SUFFeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7UUFDckIsT0FBTyxJQUFJLENBQUM7S0FDZjtJQUVELE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDO0lBRTVFLCtDQUErQztJQUMvQyxzRkFBc0Y7SUFDdEYsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FDbEQsSUFBSSxFQUNKLFVBQVUsQ0FBQyxZQUFZLEVBQ3ZCLGFBQWEsRUFDYixLQUFLLENBQ1IsQ0FBQztJQUVGLFVBQVUsQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDO0lBRWpDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsRUFBRTtRQUM3RCx1QkFBdUI7UUFDdkIsSUFBSSxVQUFVLENBQUMsV0FBVyxZQUFZLFdBQVcsRUFBRTtZQUMvQyxPQUFPLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQztTQUNwQztRQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2hCLE9BQU8sT0FBTyxDQUFDO1NBQ2xCO0tBQ0o7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDO0FBRUQsMENBQTBDO0FBQzFDLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtzdmdOb2RlRmlsdGVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NvbnN0YW50cyc7XG5cbmltcG9ydCB7aXNOYXRpdmVLZXlib2FyZEZvY3VzYWJsZX0gZnJvbSAnLi9pcy1uYXRpdmUta2V5Ym9hcmQtZm9jdXNhYmxlJztcbmltcG9ydCB7aXNOYXRpdmVNb3VzZUZvY3VzYWJsZX0gZnJvbSAnLi9pcy1uYXRpdmUtbW91c2UtZm9jdXNhYmxlJztcblxuLyoqXG4gKiBGaW5kcyBjbG9zZXN0IGVsZW1lbnQgdGhhdCBjYW4gYmUgZm9jdXNlZCB3aXRoIGEga2V5Ym9hcmQgb3IgbW91c2UgaW4gdGhlb3J5XG4gKlxuICogQHBhcmFtIGluaXRpYWwgY3VycmVudCBIVE1MIGVsZW1lbnRcbiAqIEBwYXJhbSBwcmV2IHNob3VsZCBpdCBsb29rIGJhY2t3YXJkcyBpbnN0ZWFkIChmaW5kIGl0ZW0gdGhhdCB3aWxsIGJlIGZvY3VzZWQgd2l0aCBTaGlmdCArIFRhYilcbiAqIEBwYXJhbSByb290IHRvcCBOb2RlIGxpbWl0aW5nIHRoZSBzZWFyY2ggYXJlYVxuICogQHBhcmFtIGtleWJvYXJkIGRldGVybWluZSBpZiBvbmx5IGtleWJvYXJkIGZvY3VzIGlzIG9mIGludGVyZXN0XG4gKlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2xvc2VzdEZvY3VzYWJsZShcbiAgICBpbml0aWFsOiBIVE1MRWxlbWVudCxcbiAgICBwcmV2OiBib29sZWFuID0gZmFsc2UsXG4gICAgcm9vdDogTm9kZSxcbiAgICBrZXlib2FyZDogYm9vbGVhbiA9IHRydWUsXG4pOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICAgIGlmICghcm9vdC5vd25lckRvY3VtZW50KSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGNoZWNrID0ga2V5Ym9hcmQgPyBpc05hdGl2ZUtleWJvYXJkRm9jdXNhYmxlIDogaXNOYXRpdmVNb3VzZUZvY3VzYWJsZTtcblxuICAgIC8vIERlcHJlY2F0ZWQgYnV0IG9ueSB0aGlzIG92ZXJsb2FkIHdvcmtzIGluIElFXG4gICAgLy8gRmlsdGVyIG11c3QgYmUgYSBmdW5jdGlvbiBpbiBJRSwgb3RoZXIgbW9kZXJuIGJyb3dzZXJzIGFyZSBjb21wbGlhbnQgdG8gdGhpcyBmb3JtYXRcbiAgICBjb25zdCB0cmVlV2Fsa2VyID0gcm9vdC5vd25lckRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoXG4gICAgICAgIHJvb3QsXG4gICAgICAgIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULFxuICAgICAgICBzdmdOb2RlRmlsdGVyLFxuICAgICAgICBmYWxzZSxcbiAgICApO1xuXG4gICAgdHJlZVdhbGtlci5jdXJyZW50Tm9kZSA9IGluaXRpYWw7XG5cbiAgICB3aGlsZSAocHJldiA/IHRyZWVXYWxrZXIucHJldmlvdXNOb2RlKCkgOiB0cmVlV2Fsa2VyLm5leHROb2RlKCkpIHtcbiAgICAgICAgLy8gVE9ETzogaWZyYW1lIHdhcm5pbmdcbiAgICAgICAgaWYgKHRyZWVXYWxrZXIuY3VycmVudE5vZGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgICAgICAgaW5pdGlhbCA9IHRyZWVXYWxrZXIuY3VycmVudE5vZGU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2hlY2soaW5pdGlhbCkpIHtcbiAgICAgICAgICAgIHJldHVybiBpbml0aWFsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG59XG5cbi8qKiBAZGVwcmVjYXRlZCB1c2UgZ2V0Q2xvc2VzdEZvY3VzYWJsZSAqL1xuZXhwb3J0IGNvbnN0IGdldENsb3Nlc3RLZXlib2FyZEZvY3VzYWJsZSA9IGdldENsb3Nlc3RGb2N1c2FibGU7XG4iXX0=
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWNsb3Nlc3Qta2V5Ym9hcmQtZm9jdXNhYmxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2Nkay91dGlscy9mb2N1cy8iLCJzb3VyY2VzIjpbImdldC1jbG9zZXN0LWtleWJvYXJkLWZvY3VzYWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFdEQsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDekUsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFFbkU7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQy9CLE9BQW9CLEVBQ3BCLE9BQWdCLEtBQUssRUFDckIsSUFBVSxFQUNWLFdBQW9CLElBQUk7SUFFeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7UUFDckIsT0FBTyxJQUFJLENBQUM7S0FDZjtJQUVELE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDO0lBRTVFLCtDQUErQztJQUMvQyxzRkFBc0Y7SUFDdEYsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FDbEQsSUFBSSxFQUNKLFVBQVUsQ0FBQyxZQUFZLEVBQ3ZCLGFBQWEsRUFDYixLQUFLLENBQ1IsQ0FBQztJQUVGLFVBQVUsQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDO0lBRWpDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsRUFBRTtRQUM3RCx1QkFBdUI7UUFDdkIsSUFBSSxVQUFVLENBQUMsV0FBVyxZQUFZLFdBQVcsRUFBRTtZQUMvQyxPQUFPLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQztTQUNwQztRQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2hCLE9BQU8sT0FBTyxDQUFDO1NBQ2xCO0tBQ0o7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDO0FBRUQsMENBQTBDO0FBQzFDLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtzdmdOb2RlRmlsdGVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NvbnN0YW50cyc7XG5cbmltcG9ydCB7aXNOYXRpdmVLZXlib2FyZEZvY3VzYWJsZX0gZnJvbSAnLi9pcy1uYXRpdmUta2V5Ym9hcmQtZm9jdXNhYmxlJztcbmltcG9ydCB7aXNOYXRpdmVNb3VzZUZvY3VzYWJsZX0gZnJvbSAnLi9pcy1uYXRpdmUtbW91c2UtZm9jdXNhYmxlJztcblxuLyoqXG4gKiBGaW5kcyB0aGUgY2xvc2VzdCBlbGVtZW50IHRoYXQgY2FuIGJlIGZvY3VzZWQgd2l0aCBhIGtleWJvYXJkIG9yIG1vdXNlIGluIHRoZW9yeVxuICpcbiAqIEBwYXJhbSBpbml0aWFsIGN1cnJlbnQgSFRNTCBlbGVtZW50XG4gKiBAcGFyYW0gcHJldiBzaG91bGQgaXQgbG9vayBiYWNrd2FyZHMgaW5zdGVhZCAoZmluZCBpdGVtIHRoYXQgd2lsbCBiZSBmb2N1c2VkIHdpdGggU2hpZnQgKyBUYWIpXG4gKiBAcGFyYW0gcm9vdCB0b3AgTm9kZSBsaW1pdGluZyB0aGUgc2VhcmNoIGFyZWFcbiAqIEBwYXJhbSBrZXlib2FyZCBkZXRlcm1pbmUgaWYgb25seSBrZXlib2FyZCBmb2N1cyBpcyBvZiBpbnRlcmVzdFxuICpcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENsb3Nlc3RGb2N1c2FibGUoXG4gICAgaW5pdGlhbDogSFRNTEVsZW1lbnQsXG4gICAgcHJldjogYm9vbGVhbiA9IGZhbHNlLFxuICAgIHJvb3Q6IE5vZGUsXG4gICAga2V5Ym9hcmQ6IGJvb2xlYW4gPSB0cnVlLFxuKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICBpZiAoIXJvb3Qub3duZXJEb2N1bWVudCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBjaGVjayA9IGtleWJvYXJkID8gaXNOYXRpdmVLZXlib2FyZEZvY3VzYWJsZSA6IGlzTmF0aXZlTW91c2VGb2N1c2FibGU7XG5cbiAgICAvLyBEZXByZWNhdGVkIGJ1dCBvbnkgdGhpcyBvdmVybG9hZCB3b3JrcyBpbiBJRVxuICAgIC8vIEZpbHRlciBtdXN0IGJlIGEgZnVuY3Rpb24gaW4gSUUsIG90aGVyIG1vZGVybiBicm93c2VycyBhcmUgY29tcGxpYW50IHRvIHRoaXMgZm9ybWF0XG4gICAgY29uc3QgdHJlZVdhbGtlciA9IHJvb3Qub3duZXJEb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKFxuICAgICAgICByb290LFxuICAgICAgICBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCxcbiAgICAgICAgc3ZnTm9kZUZpbHRlcixcbiAgICAgICAgZmFsc2UsXG4gICAgKTtcblxuICAgIHRyZWVXYWxrZXIuY3VycmVudE5vZGUgPSBpbml0aWFsO1xuXG4gICAgd2hpbGUgKHByZXYgPyB0cmVlV2Fsa2VyLnByZXZpb3VzTm9kZSgpIDogdHJlZVdhbGtlci5uZXh0Tm9kZSgpKSB7XG4gICAgICAgIC8vIFRPRE86IGlmcmFtZSB3YXJuaW5nXG4gICAgICAgIGlmICh0cmVlV2Fsa2VyLmN1cnJlbnROb2RlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgICAgIGluaXRpYWwgPSB0cmVlV2Fsa2VyLmN1cnJlbnROb2RlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoZWNrKGluaXRpYWwpKSB7XG4gICAgICAgICAgICByZXR1cm4gaW5pdGlhbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xufVxuXG4vKiogQGRlcHJlY2F0ZWQgdXNlIGdldENsb3Nlc3RGb2N1c2FibGUgKi9cbmV4cG9ydCBjb25zdCBnZXRDbG9zZXN0S2V5Ym9hcmRGb2N1c2FibGUgPSBnZXRDbG9zZXN0Rm9jdXNhYmxlO1xuIl19
@@ -116,14 +116,16 @@ var AbstractTuiControl = /** @class */ (function (_super) {
116
116
  });
117
117
  Object.defineProperty(AbstractTuiControl.prototype, "computedName", {
118
118
  get: function () {
119
- return this.controlName;
119
+ var _a, _b;
120
+ return (_b = (_a = this.controlName) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : null;
120
121
  },
121
122
  enumerable: true,
122
123
  configurable: true
123
124
  });
124
125
  Object.defineProperty(AbstractTuiControl.prototype, "controlName", {
125
126
  get: function () {
126
- return this.ngControl && this.ngControl.name;
127
+ var _a, _b, _c;
128
+ return (_c = (_b = (_a = this.ngControl) === null || _a === void 0 ? void 0 : _a.name) === null || _b === void 0 ? void 0 : _b.toString()) !== null && _c !== void 0 ? _c : null;
127
129
  },
128
130
  enumerable: true,
129
131
  configurable: true
@@ -242,4 +244,4 @@ var AbstractTuiControl = /** @class */ (function (_super) {
242
244
  return AbstractTuiControl;
243
245
  }(AbstractTuiInteractive));
244
246
  export { AbstractTuiControl };
245
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvYWJzdHJhY3QvIiwic291cmNlcyI6WyJjb250cm9sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsS0FBSyxFQUNMLFNBQVMsRUFDVCxNQUFNLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekYsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ2hELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFFeEQsT0FBTyxFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXpDLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVyRDs7R0FFRztBQUVIO0lBQ1ksc0NBQXNCO0lBc0I5Qiw0QkFDcUIsU0FBMkIsRUFDekIsaUJBQW9DLEVBQ3BDLGdCQUF1RDtRQUg5RSxZQUtJLGlCQUFPLFNBV1Y7UUFmb0IsZUFBUyxHQUFULFNBQVMsQ0FBa0I7UUFDekIsdUJBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxzQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXVDO1FBcEJ0RSxlQUFTLEdBQUcsY0FBYyxDQUFDO1FBRTNCLGNBQVEsR0FBRyxjQUFjLENBQUM7UUFFZixtQkFBYSxHQUFHLEtBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBRXhDLGNBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBS2xELGNBQVEsR0FBRyxLQUFL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QixrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWJzdHJhY3RDb250cm9sLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgTmdDb250cm9sLCBOZ01vZGVsfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge3R1aUFzc2VydH0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jbGFzc2VzJztcbmltcG9ydCB7RU1QVFlfRlVOQ1RJT059IGZyb20gJ0B0YWlnYS11aS9jZGsvY29uc3RhbnRzJztcbmltcG9ydCB7dHVpRGVmYXVsdFByb3B9IGZyb20gJ0B0YWlnYS11aS9jZGsvZGVjb3JhdG9ycyc7XG5pbXBvcnQge1R1aUNvbnRyb2xWYWx1ZVRyYW5zZm9ybWVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2ludGVyZmFjZXMnO1xuaW1wb3J0IHttZXJnZSwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge3Rha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge0Fic3RyYWN0VHVpSW50ZXJhY3RpdmV9IGZyb20gJy4vaW50ZXJhY3RpdmUnO1xuXG4vKipcbiAqIEJhc2ljIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGNsYXNzIHRvIGJ1aWxkIGZvcm0gY29tcG9uZW50cyB1cG9uXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0VHVpQ29udHJvbDxUPlxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlJbnRlcmFjdGl2ZVxuICAgIGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yXG57XG4gICAgcHJpdmF0ZSBwcmV2aW91c0ludGVybmFsVmFsdWU/OiBUIHwgbnVsbDtcblxuICAgIHByaXZhdGUgb25Ub3VjaGVkID0gRU1QVFlfRlVOQ1RJT047XG5cbiAgICBwcml2YXRlIG9uQ2hhbmdlID0gRU1QVFlfRlVOQ1RJT047XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZmFsbGJhY2tWYWx1ZSA9IHRoaXMuZ2V0RmFsbGJhY2tWYWx1ZSgpO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5fcmVhZG9ubHknKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgcmVhZE9ubHkgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBwc2V1ZG9JbnZhbGlkOiBib29sZWFuIHwgbnVsbCA9IG51bGw7XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbmdDb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsLFxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdmFsdWVUcmFuc2Zvcm1lcj86IFR1aUNvbnRyb2xWYWx1ZVRyYW5zZm9ybWVyPFQ+IHwgbnVsbCxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHR1aUFzc2VydC5hc3NlcnQoXG4gICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgYE5nQ29udHJvbCBub3QgaW5qZWN0ZWQgaW4gJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9IVxcbmAsXG4gICAgICAgICAgICAgICAgJ1VzZSBbKG5nTW9kZWwpXSBvciBbZm9ybUNvbnRyb2xdIG9yIGZvcm1Db250cm9sTmFtZSBmb3IgY29ycmVjdCB3b3JrLicsXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0RmFsbGJhY2tWYWx1ZSgpOiBUO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5faW52YWxpZCcpXG4gICAgZ2V0IGNvbXB1dGVkSW52YWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuaW50ZXJhY3RpdmUgJiZcbiAgICAgICAgICAgICh0aGlzLnBzZXVkb0ludmFsaWQgIT09IG51bGxcbiAgICAgICAgICAgICAgICA/IHRoaXMucHNldWRvSW52YWxpZFxuICAgICAgICAgICAgICAgIDogdGhpcy50b3VjaGVkICYmIHRoaXMuaW52YWxpZClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgdmFsdWUoKTogVCB7XG4gICAgICAgIHJldHVybiB0aGlzLnByZXZpb3VzSW50ZXJuYWxWYWx1ZSA/PyB0aGlzLmZhbGxiYWNrVmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IHNhZmVDdXJyZW50VmFsdWUoKTogVCB7XG4gICAgICAgIHJldHVybiB0aGlzLnJhd1ZhbHVlID8/IHRoaXMuZmFsbGJhY2tWYWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgaW52YWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2FmZU5nQ29udHJvbERhdGE8Ym9vbGVhbj4oKHtpbnZhbGlkfSkgPT4gaW52YWxpZCwgZmFsc2UpO1xuICAgIH1cblxuICAgIGdldCB2YWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2FmZU5nQ29udHJvbERhdGE8Ym9vbGVhbj4oKHt2YWxpZH0pID0+IHZhbGlkLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgZ2V0IHRvdWNoZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNhZmVOZ0NvbnRyb2xEYXRhPGJvb2xlYW4+KCh7dG91Y2hlZH0pID0+IHRvdWNoZWQsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNhZmVOZ0NvbnRyb2xEYXRhPGJvb2xlYW4+KCh7ZGlzYWJsZWR9KSA9PiBkaXNhYmxlZCwgZmFsc2UpO1xuICAgIH1cblxuICAgIGdldCBpbnRlcmFjdGl2ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLnJlYWRPbmx5ICYmICF0aGlzLmNvbXB1dGVkRGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgZ2V0IGNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLnNhZmVOZ0NvbnRyb2xEYXRhPEFic3RyYWN0Q29udHJvbCB8IG51bGw+KFxuICAgICAgICAgICAgKHtjb250cm9sfSkgPT4gY29udHJvbCxcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkTmFtZSgpOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbE5hbWU7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBjb250cm9sTmFtZSgpOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmdDb250cm9sICYmIHRoaXMubmdDb250cm9sLm5hbWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgcmF3VmFsdWUoKTogVCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGNvbnN0IHtuZ0NvbnRyb2x9ID0gdGhpcztcblxuICAgICAgICBpZiAobmdDb250cm9sID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY29udHJvbFZhbHVlID1cbiAgICAgICAgICAgIG5nQ29udHJvbCBpbnN0YW5jZW9mIE5nTW9kZWwgJiYgdGhpcy5wcmV2aW91c0ludGVybmFsVmFsdWUgPT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgID8gbmdDb250cm9sLnZpZXdNb2RlbFxuICAgICAgICAgICAgICAgIDogbmdDb250cm9sLnZhbHVlO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmZyb21Db250cm9sVmFsdWUoY29udHJvbFZhbHVlKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLm5nQ29udHJvbD8udmFsdWVDaGFuZ2VzIHx8ICF0aGlzLm5nQ29udHJvbD8uc3RhdHVzQ2hhbmdlcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbWVyZ2UodGhpcy5uZ0NvbnRyb2wudmFsdWVDaGFuZ2VzLCB0aGlzLm5nQ29udHJvbC5zdGF0dXNDaGFuZ2VzKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLnJlZnJlc2hMb2NhbFZhbHVlKHRoaXMuc2FmZUN1cnJlbnRWYWx1ZSkpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIGNoZWNrQ29udHJvbFVwZGF0ZSgpIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uQ2hhbmdlKG9uQ2hhbmdlOiAodmFsdWU6IFQgfCB1bmtub3duKSA9PiB2b2lkKSB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSAoY29tcG9uZW50VmFsdWU6IFQpID0+IHtcbiAgICAgICAgICAgIG9uQ2hhbmdlKHRoaXMudG9Db250cm9sVmFsdWUoY29tcG9uZW50VmFsdWUpKTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChvblRvdWNoZWQ6ICgpID0+IHZvaWQpIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBvblRvdWNoZWQ7XG4gICAgfVxuXG4gICAgc2V0RGlzYWJsZWRTdGF0ZSgpIHtcbiAgICAgICAgdGhpcy5jaGVja0NvbnRyb2xVcGRhdGUoKTtcbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBUIHwgbnVsbCkge1xuICAgICAgICBjb25zdCBjb250cm9sVmFsdWUgPVxuICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wgaW5zdGFuY2VvZiBOZ01vZGVsICYmIHRoaXMucHJldmlvdXNJbnRlcm5hbFZhbHVlID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICA/IHRoaXMubmdDb250cm9sLm1vZGVsXG4gICAgICAgICAgICAgICAgOiB2YWx1ZTtcblxuICAgICAgICB0aGlzLnJlZnJlc2hMb2NhbFZhbHVlKHRoaXMuZnJvbUNvbnRyb2xWYWx1ZShjb250cm9sVmFsdWUpKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdXBkYXRlRm9jdXNlZChmb2N1c2VkOiBib29sZWFuKSB7XG4gICAgICAgIGlmICghZm9jdXNlZCkge1xuICAgICAgICAgICAgdGhpcy5jb250cm9sTWFya0FzVG91Y2hlZCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3VwZXIudXBkYXRlRm9jdXNlZChmb2N1c2VkKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdXBkYXRlVmFsdWUodmFsdWU6IFQpIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy52YWx1ZUlkZW50aWNhbENvbXBhcmF0b3IodGhpcy52YWx1ZSwgdmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnByZXZpb3VzSW50ZXJuYWxWYWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLmNvbnRyb2xTZXRWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHZhbHVlSWRlbnRpY2FsQ29tcGFyYXRvcihvbGRWYWx1ZTogVCwgbmV3VmFsdWU6IFQpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIG9sZFZhbHVlID09PSBuZXdWYWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNhZmVOZ0NvbnRyb2xEYXRhPFQ+KFxuICAgICAgICBleHRyYWN0b3I6IChuZ0NvbnRyb2w6IE5nQ29udHJvbCkgPT4gVCB8IG51bGwgfCB1bmRlZmluZWQsXG4gICAgICAgIGRlZmF1bHRGaWVsZFZhbHVlOiBULFxuICAgICk6IFQge1xuICAgICAgICByZXR1cm4gKHRoaXMubmdDb250cm9sICYmIGV4dHJhY3Rvcih0aGlzLm5nQ29udHJvbCkpID8/IGRlZmF1bHRGaWVsZFZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgY29udHJvbE1hcmtBc1RvdWNoZWQoKSB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICAgIHRoaXMuY2hlY2tDb250cm9sVXBkYXRlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb250cm9sU2V0VmFsdWUodmFsdWU6IFQpIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMuY2hlY2tDb250cm9sVXBkYXRlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWZyZXNoTG9jYWxWYWx1ZSh2YWx1ZTogVCB8IG51bGwpIHtcbiAgICAgICAgdGhpcy5wcmV2aW91c0ludGVybmFsVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5jaGVja0NvbnRyb2xVcGRhdGUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZyb21Db250cm9sVmFsdWUoY29udHJvbFZhbHVlOiB1bmtub3duKTogVCB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlVHJhbnNmb3JtZXJcbiAgICAgICAgICAgID8gdGhpcy52YWx1ZVRyYW5zZm9ybWVyLmZyb21Db250cm9sVmFsdWUoY29udHJvbFZhbHVlKVxuICAgICAgICAgICAgOiAoY29udHJvbFZhbHVlIGFzIFQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdG9Db250cm9sVmFsdWUoY29tcG9uZW50VmFsdWU6IFQpOiB1bmtub3duIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVUcmFuc2Zvcm1lclxuICAgICAgICAgICAgPyB0aGlzLnZhbHVlVHJhbnNmb3JtZXIudG9Db250cm9sVmFsdWUoY29tcG9uZW50VmFsdWUpXG4gICAgICAgICAgICA6IGNvbXBvbmVudFZhbHVlO1xuICAgIH1cbn1cbiJdfQ==
247
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvYWJzdHJhY3QvIiwic291cmNlcyI6WyJjb250cm9sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsS0FBSyxFQUNMLFNBQVMsRUFDVCxNQUFNLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekYsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ2hELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFFeEQsT0FBTyxFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXpDLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVyRDs7R0FFRztBQUVIO0lBQ1ksc0NBQXNCO0lBc0I5Qiw0QkFDcUIsU0FBMkIsRUFDekIsaUJBQW9DLEVBQ3BDLGdCQUF1RDtRQUg5RSxZQUtJLGlCQUFPLFNBV1Y7UUFmb0IsZUFBUyxHQUFULFNBQVMsQ0FBa0I7UUFDekIsdUJBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxzQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXVDO1FBcEJ0RSxlQUFTLEdBQUcsY0FBYyxDQUFDO1FBRTNCLGNBQVEsR0FBRyxjQUFjLENBQUM7UUFFZixtQkFBYSxHQUFHLEtBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBRXhDLGNBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBS2xELGNBQVEsR0FBRyxLQUFL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QS9NRCxDQUNZLHNCQUFzQixHQThNakM7U0EvTXFCLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBYnN0cmFjdENvbnRyb2wsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOZ0NvbnRyb2wsIE5nTW9kZWx9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7dHVpQXNzZXJ0fSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NsYXNzZXMnO1xuaW1wb3J0IHtFTVBUWV9GVU5DVElPTn0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jb25zdGFudHMnO1xuaW1wb3J0IHt0dWlEZWZhdWx0UHJvcH0gZnJvbSAnQHRhaWdhLXVpL2Nkay9kZWNvcmF0b3JzJztcbmltcG9ydCB7VHVpQ29udHJvbFZhbHVlVHJhbnNmb3JtZXJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvaW50ZXJmYWNlcyc7XG5pbXBvcnQge21lcmdlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7dGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7QWJzdHJhY3RUdWlJbnRlcmFjdGl2ZX0gZnJvbSAnLi9pbnRlcmFjdGl2ZSc7XG5cbi8qKlxuICogQmFzaWMgQ29udHJvbFZhbHVlQWNjZXNzb3IgY2xhc3MgdG8gYnVpbGQgZm9ybSBjb21wb25lbnRzIHVwb25cbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RUdWlDb250cm9sPFQ+XG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aUludGVyYWN0aXZlXG4gICAgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3JcbntcbiAgICBwcml2YXRlIHByZXZpb3VzSW50ZXJuYWxWYWx1ZT86IFQgfCBudWxsO1xuXG4gICAgcHJpdmF0ZSBvblRvdWNoZWQgPSBFTVBUWV9GVU5DVElPTjtcblxuICAgIHByaXZhdGUgb25DaGFuZ2UgPSBFTVBUWV9GVU5DVElPTjtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBmYWxsYmFja1ZhbHVlID0gdGhpcy5nZXRGYWxsYmFja1ZhbHVlKCk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLl9yZWFkb25seScpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICByZWFkT25seSA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHBzZXVkb0ludmFsaWQ6IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBuZ0NvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIHByb3RlY3RlZCByZWFkb25seSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByb3RlY3RlZCByZWFkb25seSB2YWx1ZVRyYW5zZm9ybWVyPzogVHVpQ29udHJvbFZhbHVlVHJhbnNmb3JtZXI8VD4gfCBudWxsLFxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdHVpQXNzZXJ0LmFzc2VydChcbiAgICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgICBgTmdDb250cm9sIG5vdCBpbmplY3RlZCBpbiAke3RoaXMuY29uc3RydWN0b3IubmFtZX0hXFxuYCxcbiAgICAgICAgICAgICAgICAnVXNlIFsobmdNb2RlbCldIG9yIFtmb3JtQ29udHJvbF0gb3IgZm9ybUNvbnRyb2xOYW1lIGZvciBjb3JyZWN0IHdvcmsuJyxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXRGYWxsYmFja1ZhbHVlKCk6IFQ7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLl9pbnZhbGlkJylcbiAgICBnZXQgY29tcHV0ZWRJbnZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5pbnRlcmFjdGl2ZSAmJlxuICAgICAgICAgICAgKHRoaXMucHNldWRvSW52YWxpZCAhPT0gbnVsbFxuICAgICAgICAgICAgICAgID8gdGhpcy5wc2V1ZG9JbnZhbGlkXG4gICAgICAgICAgICAgICAgOiB0aGlzLnRvdWNoZWQgJiYgdGhpcy5pbnZhbGlkKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCB2YWx1ZSgpOiBUIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJldmlvdXNJbnRlcm5hbFZhbHVlID8/IHRoaXMuZmFsbGJhY2tWYWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgc2FmZUN1cnJlbnRWYWx1ZSgpOiBUIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmF3VmFsdWUgPz8gdGhpcy5mYWxsYmFja1ZhbHVlO1xuICAgIH1cblxuICAgIGdldCBpbnZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zYWZlTmdDb250cm9sRGF0YTxib29sZWFuPigoe2ludmFsaWR9KSA9PiBpbnZhbGlkLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgZ2V0IHZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zYWZlTmdDb250cm9sRGF0YTxib29sZWFuPigoe3ZhbGlkfSkgPT4gdmFsaWQsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBnZXQgdG91Y2hlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2FmZU5nQ29udHJvbERhdGE8Ym9vbGVhbj4oKHt0b3VjaGVkfSkgPT4gdG91Y2hlZCwgZmFsc2UpO1xuICAgIH1cblxuICAgIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2FmZU5nQ29udHJvbERhdGE8Ym9vbGVhbj4oKHtkaXNhYmxlZH0pID0+IGRpc2FibGVkLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgZ2V0IGludGVyYWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMucmVhZE9ubHkgJiYgIXRoaXMuY29tcHV0ZWREaXNhYmxlZDtcbiAgICB9XG5cbiAgICBnZXQgY29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2FmZU5nQ29udHJvbERhdGE8QWJzdHJhY3RDb250cm9sIHwgbnVsbD4oXG4gICAgICAgICAgICAoe2NvbnRyb2x9KSA9PiBjb250cm9sLFxuICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWROYW1lKCk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sTmFtZT8udG9TdHJpbmcoKSA/PyBudWxsO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgY29udHJvbE5hbWUoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLm5nQ29udHJvbD8ubmFtZT8udG9TdHJpbmcoKSA/PyBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IHJhd1ZhbHVlKCk6IFQgfCB1bmRlZmluZWQge1xuICAgICAgICBjb25zdCB7bmdDb250cm9sfSA9IHRoaXM7XG5cbiAgICAgICAgaWYgKG5nQ29udHJvbCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvbnRyb2xWYWx1ZSA9XG4gICAgICAgICAgICBuZ0NvbnRyb2wgaW5zdGFuY2VvZiBOZ01vZGVsICYmIHRoaXMucHJldmlvdXNJbnRlcm5hbFZhbHVlID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICA/IG5nQ29udHJvbC52aWV3TW9kZWxcbiAgICAgICAgICAgICAgICA6IG5nQ29udHJvbC52YWx1ZTtcblxuICAgICAgICByZXR1cm4gdGhpcy5mcm9tQ29udHJvbFZhbHVlKGNvbnRyb2xWYWx1ZSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGlmICghdGhpcy5uZ0NvbnRyb2w/LnZhbHVlQ2hhbmdlcyB8fCAhdGhpcy5uZ0NvbnRyb2w/LnN0YXR1c0NoYW5nZXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIG1lcmdlKHRoaXMubmdDb250cm9sLnZhbHVlQ2hhbmdlcywgdGhpcy5uZ0NvbnRyb2wuc3RhdHVzQ2hhbmdlcylcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5yZWZyZXNoTG9jYWxWYWx1ZSh0aGlzLnNhZmVDdXJyZW50VmFsdWUpKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBjaGVja0NvbnRyb2xVcGRhdGUoKSB7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShvbkNoYW5nZTogKHZhbHVlOiBUIHwgdW5rbm93bikgPT4gdm9pZCkge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gKGNvbXBvbmVudFZhbHVlOiBUKSA9PiB7XG4gICAgICAgICAgICBvbkNoYW5nZSh0aGlzLnRvQ29udHJvbFZhbHVlKGNvbXBvbmVudFZhbHVlKSk7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQob25Ub3VjaGVkOiAoKSA9PiB2b2lkKSB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gb25Ub3VjaGVkO1xuICAgIH1cblxuICAgIHNldERpc2FibGVkU3RhdGUoKSB7XG4gICAgICAgIHRoaXMuY2hlY2tDb250cm9sVXBkYXRlKCk7XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogVCB8IG51bGwpIHtcbiAgICAgICAgY29uc3QgY29udHJvbFZhbHVlID1cbiAgICAgICAgICAgIHRoaXMubmdDb250cm9sIGluc3RhbmNlb2YgTmdNb2RlbCAmJiB0aGlzLnByZXZpb3VzSW50ZXJuYWxWYWx1ZSA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgPyB0aGlzLm5nQ29udHJvbC5tb2RlbFxuICAgICAgICAgICAgICAgIDogdmFsdWU7XG5cbiAgICAgICAgdGhpcy5yZWZyZXNoTG9jYWxWYWx1ZSh0aGlzLmZyb21Db250cm9sVmFsdWUoY29udHJvbFZhbHVlKSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHVwZGF0ZUZvY3VzZWQoZm9jdXNlZDogYm9vbGVhbikge1xuICAgICAgICBpZiAoIWZvY3VzZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbE1hcmtBc1RvdWNoZWQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN1cGVyLnVwZGF0ZUZvY3VzZWQoZm9jdXNlZCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHVwZGF0ZVZhbHVlKHZhbHVlOiBUKSB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMudmFsdWVJZGVudGljYWxDb21wYXJhdG9yKHRoaXMudmFsdWUsIHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wcmV2aW91c0ludGVybmFsVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5jb250cm9sU2V0VmFsdWUodmFsdWUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCB2YWx1ZUlkZW50aWNhbENvbXBhcmF0b3Iob2xkVmFsdWU6IFQsIG5ld1ZhbHVlOiBUKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBvbGRWYWx1ZSA9PT0gbmV3VmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzYWZlTmdDb250cm9sRGF0YTxUPihcbiAgICAgICAgZXh0cmFjdG9yOiAobmdDb250cm9sOiBOZ0NvbnRyb2wpID0+IFQgfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgICAgICBkZWZhdWx0RmllbGRWYWx1ZTogVCxcbiAgICApOiBUIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLm5nQ29udHJvbCAmJiBleHRyYWN0b3IodGhpcy5uZ0NvbnRyb2wpKSA/PyBkZWZhdWx0RmllbGRWYWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbnRyb2xNYXJrQXNUb3VjaGVkKCkge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgICB0aGlzLmNoZWNrQ29udHJvbFVwZGF0ZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY29udHJvbFNldFZhbHVlKHZhbHVlOiBUKSB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgICAgICB0aGlzLmNoZWNrQ29udHJvbFVwZGF0ZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVmcmVzaExvY2FsVmFsdWUodmFsdWU6IFQgfCBudWxsKSB7XG4gICAgICAgIHRoaXMucHJldmlvdXNJbnRlcm5hbFZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuY2hlY2tDb250cm9sVXBkYXRlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmcm9tQ29udHJvbFZhbHVlKGNvbnRyb2xWYWx1ZTogdW5rbm93bik6IFQge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZVRyYW5zZm9ybWVyXG4gICAgICAgICAgICA/IHRoaXMudmFsdWVUcmFuc2Zvcm1lci5mcm9tQ29udHJvbFZhbHVlKGNvbnRyb2xWYWx1ZSlcbiAgICAgICAgICAgIDogKGNvbnRyb2xWYWx1ZSBhcyBUKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHRvQ29udHJvbFZhbHVlKGNvbXBvbmVudFZhbHVlOiBUKTogdW5rbm93biB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlVHJhbnNmb3JtZXJcbiAgICAgICAgICAgID8gdGhpcy52YWx1ZVRyYW5zZm9ybWVyLnRvQ29udHJvbFZhbHVlKGNvbXBvbmVudFZhbHVlKVxuICAgICAgICAgICAgOiBjb21wb25lbnRWYWx1ZTtcbiAgICB9XG59XG4iXX0=
@@ -5,5 +5,7 @@ export * from './dialog.service';
5
5
  export * from './interactive';
6
6
  export * from './multiple-control';
7
7
  export * from './nullable-control';
8
+ export * from './portal-host';
9
+ export * from './portal-service';
8
10
  export * from './theme-switcher';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2Fic3RyYWN0LyIsInNvdXJjZXMiOlsiaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb250cm9sJztcbmV4cG9ydCAqIGZyb20gJy4vY29udHJvbGxlcic7XG5leHBvcnQgKiBmcm9tICcuL2RpYWxvZy5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9kaWFsb2cuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyYWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbXVsdGlwbGUtY29udHJvbCc7XG5leHBvcnQgKiBmcm9tICcuL251bGxhYmxlLWNvbnRyb2wnO1xuZXhwb3J0ICogZnJvbSAnLi90aGVtZS1zd2l0Y2hlcic7XG4iXX0=
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2Fic3RyYWN0LyIsInNvdXJjZXMiOlsiaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbnRyb2wnO1xuZXhwb3J0ICogZnJvbSAnLi9jb250cm9sbGVyJztcbmV4cG9ydCAqIGZyb20gJy4vZGlhbG9nLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2RpYWxvZy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJhY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9tdWx0aXBsZS1jb250cm9sJztcbmV4cG9ydCAqIGZyb20gJy4vbnVsbGFibGUtY29udHJvbCc7XG5leHBvcnQgKiBmcm9tICcuL3BvcnRhbC1ob3N0JztcbmV4cG9ydCAqIGZyb20gJy4vcG9ydGFsLXNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi90aGVtZS1zd2l0Y2hlcic7XG4iXX0=
@@ -0,0 +1,50 @@
1
+ import { __decorate, __param } from "tslib";
2
+ import { ComponentFactory, ComponentRef, Directive, ElementRef, EmbeddedViewRef, Inject, Injector, TemplateRef, ViewChild, ViewContainerRef, } from '@angular/core';
3
+ import { AbstractTuiPortalService } from './portal-service';
4
+ /**
5
+ * Abstract class for host element for dynamically created portals.
6
+ */
7
+ var AbstractTuiPortalHostComponent = /** @class */ (function () {
8
+ function AbstractTuiPortalHostComponent(elementRef, portalService) {
9
+ this.elementRef = elementRef;
10
+ portalService.attach(this);
11
+ }
12
+ AbstractTuiPortalHostComponent_1 = AbstractTuiPortalHostComponent;
13
+ Object.defineProperty(AbstractTuiPortalHostComponent.prototype, "clientRect", {
14
+ get: function () {
15
+ return this.elementRef.nativeElement.getBoundingClientRect();
16
+ },
17
+ enumerable: true,
18
+ configurable: true
19
+ });
20
+ AbstractTuiPortalHostComponent.prototype.addComponentChild = function (componentFactory, injector) {
21
+ return this.viewContainerRef.createComponent(componentFactory, undefined, Injector.create({
22
+ parent: injector,
23
+ providers: [
24
+ {
25
+ provide: AbstractTuiPortalHostComponent_1,
26
+ useValue: this,
27
+ },
28
+ ],
29
+ }));
30
+ };
31
+ AbstractTuiPortalHostComponent.prototype.addTemplateChild = function (templateRef, context) {
32
+ return this.viewContainerRef.createEmbeddedView(templateRef, context);
33
+ };
34
+ var AbstractTuiPortalHostComponent_1;
35
+ AbstractTuiPortalHostComponent.ctorParameters = function () { return [
36
+ { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
37
+ { type: AbstractTuiPortalService, decorators: [{ type: Inject, args: [AbstractTuiPortalService,] }] }
38
+ ]; };
39
+ __decorate([
40
+ ViewChild('viewContainer', { read: ViewContainerRef })
41
+ ], AbstractTuiPortalHostComponent.prototype, "viewContainerRef", void 0);
42
+ AbstractTuiPortalHostComponent = AbstractTuiPortalHostComponent_1 = __decorate([
43
+ Directive(),
44
+ __param(0, Inject(ElementRef)),
45
+ __param(1, Inject(AbstractTuiPortalService))
46
+ ], AbstractTuiPortalHostComponent);
47
+ return AbstractTuiPortalHostComponent;
48
+ }());
49
+ export { AbstractTuiPortalHostComponent };
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLWhvc3QuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2Fic3RyYWN0LyIsInNvdXJjZXMiOlsicG9ydGFsLWhvc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDSCxnQkFBZ0IsRUFDaEIsWUFBWSxFQUNaLFNBQVMsRUFDVCxVQUFVLEVBQ1YsZUFBZSxFQUNmLE1BQU0sRUFDTixRQUFRLEVBQ1IsV0FBVyxFQUNYLFNBQVMsRUFDVCxnQkFBZ0IsR0FDbkIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFFMUQ7O0dBRUc7QUFFSDtJQUlJLHdDQUVhLFVBQW1DLEVBQ1YsYUFBdUM7UUFEaEUsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFHNUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDO3VDQVZpQiw4QkFBOEI7SUFZaEQsc0JBQUksc0RBQVU7YUFBZDtZQUNJLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUNqRSxDQUFDOzs7T0FBQTtJQUVELDBEQUFpQixHQUFqQixVQUNJLGdCQUFxQyxFQUNyQyxRQUFrQjtRQUVsQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQ3hDLGdCQUFnQixFQUNoQixTQUFTLEVBQ1QsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUNaLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLFNBQVMsRUFBRTtnQkFDUDtvQkFDSSxPQUFPLEVBQUUsZ0NBQThCO29CQUN2QyxRQUFRLEVBQUUsSUFBSTtpQkFDakI7YUFDSjtTQUNKLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQztJQUVELHlEQUFnQixHQUFoQixVQUFvQixXQUEyQixFQUFFLE9BQVc7UUFDeEQsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzFFLENBQUM7OztnQkEvQndCLFVBQVUsdUJBRDlCLE1BQU0sU0FBQyxVQUFVO2dCQUUrQix3QkFBd0IsdUJBQXhFLE1BQU0sU0FBQyx3QkFBd0I7O0lBTHBDO1FBREMsU0FBUyxDQUFDLGVBQWUsRUFBRSxFQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBQyxDQUFDOzRFQUNqQjtJQUZsQiw4QkFBOEI7UUFEbkQsU0FBUyxFQUFFO1FBTUgsV0FBQSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUE7UUFFbEIsV0FBQSxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQTtPQVBuQiw4QkFBOEIsQ0FzQ25EO0lBQUQscUNBQUM7Q0FBQSxBQXRDRCxJQXNDQztTQXRDcUIsOEJBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnRGYWN0b3J5LFxuICAgIENvbXBvbmVudFJlZixcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBFbWJlZGRlZFZpZXdSZWYsXG4gICAgSW5qZWN0LFxuICAgIEluamVjdG9yLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtBYnN0cmFjdFR1aVBvcnRhbFNlcnZpY2V9IGZyb20gJy4vcG9ydGFsLXNlcnZpY2UnO1xuXG4vKipcbiAqIEFic3RyYWN0IGNsYXNzIGZvciBob3N0IGVsZW1lbnQgZm9yIGR5bmFtaWNhbGx5IGNyZWF0ZWQgcG9ydGFscy5cbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RUdWlQb3J0YWxIb3N0Q29tcG9uZW50IHtcbiAgICBAVmlld0NoaWxkKCd2aWV3Q29udGFpbmVyJywge3JlYWQ6IFZpZXdDb250YWluZXJSZWZ9KVxuICAgIHZpZXdDb250YWluZXJSZWYhOiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoRWxlbWVudFJlZilcbiAgICAgICAgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIEBJbmplY3QoQWJzdHJhY3RUdWlQb3J0YWxTZXJ2aWNlKSBwb3J0YWxTZXJ2aWNlOiBBYnN0cmFjdFR1aVBvcnRhbFNlcnZpY2UsXG4gICAgKSB7XG4gICAgICAgIHBvcnRhbFNlcnZpY2UuYXR0YWNoKHRoaXMpO1xuICAgIH1cblxuICAgIGdldCBjbGllbnRSZWN0KCk6IENsaWVudFJlY3Qge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgfVxuXG4gICAgYWRkQ29tcG9uZW50Q2hpbGQ8Qz4oXG4gICAgICAgIGNvbXBvbmVudEZhY3Rvcnk6IENvbXBvbmVudEZhY3Rvcnk8Qz4sXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICApOiBDb21wb25lbnRSZWY8Qz4ge1xuICAgICAgICByZXR1cm4gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudDxDPihcbiAgICAgICAgICAgIGNvbXBvbmVudEZhY3RvcnksXG4gICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgICAgICAgICAgIHBhcmVudDogaW5qZWN0b3IsXG4gICAgICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IEFic3RyYWN0VHVpUG9ydGFsSG9zdENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZVZhbHVlOiB0aGlzLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBhZGRUZW1wbGF0ZUNoaWxkPEM+KHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxDPiwgY29udGV4dD86IEMpOiBFbWJlZGRlZFZpZXdSZWY8Qz4ge1xuICAgICAgICByZXR1cm4gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyh0ZW1wbGF0ZVJlZiwgY29udGV4dCk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,42 @@
1
+ import { __decorate } from "tslib";
2
+ import { Injectable, } from '@angular/core';
3
+ import { TuiNoHostException } from '@taiga-ui/cdk/exceptions';
4
+ /**
5
+ * Abstract service for displaying portals
6
+ */
7
+ var AbstractTuiPortalService = /** @class */ (function () {
8
+ function AbstractTuiPortalService() {
9
+ }
10
+ Object.defineProperty(AbstractTuiPortalService.prototype, "safeHost", {
11
+ get: function () {
12
+ if (!this.host) {
13
+ throw new TuiNoHostException();
14
+ }
15
+ return this.host;
16
+ },
17
+ enumerable: true,
18
+ configurable: true
19
+ });
20
+ AbstractTuiPortalService.prototype.attach = function (host) {
21
+ this.host = host;
22
+ };
23
+ AbstractTuiPortalService.prototype.add = function (componentFactory, injector) {
24
+ return this.safeHost.addComponentChild(componentFactory, injector);
25
+ };
26
+ AbstractTuiPortalService.prototype.remove = function (_a) {
27
+ var hostView = _a.hostView;
28
+ hostView.destroy();
29
+ };
30
+ AbstractTuiPortalService.prototype.addTemplate = function (templateRef, context) {
31
+ return this.safeHost.addTemplateChild(templateRef, context);
32
+ };
33
+ AbstractTuiPortalService.prototype.removeTemplate = function (viewRef) {
34
+ viewRef.destroy();
35
+ };
36
+ AbstractTuiPortalService = __decorate([
37
+ Injectable()
38
+ ], AbstractTuiPortalService);
39
+ return AbstractTuiPortalService;
40
+ }());
41
+ export { AbstractTuiPortalService };
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLXNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2Fic3RyYWN0LyIsInNvdXJjZXMiOlsicG9ydGFsLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFJSCxVQUFVLEdBR2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFJNUQ7O0dBRUc7QUFFSDtJQUFBO0lBOEJBLENBQUM7SUEzQkcsc0JBQWMsOENBQVE7YUFBdEI7WUFDSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDWixNQUFNLElBQUksa0JBQWtCLEVBQUUsQ0FBQzthQUNsQztZQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztRQUNyQixDQUFDOzs7T0FBQTtJQUVELHlDQUFNLEdBQU4sVUFBTyxJQUFvQztRQUN2QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNyQixDQUFDO0lBRUQsc0NBQUcsR0FBSCxVQUFPLGdCQUFxQyxFQUFFLFFBQWtCO1FBQzVELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQseUNBQU0sR0FBTixVQUFVLEVBQTJCO1lBQTFCLHNCQUFRO1FBQ2YsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCw4Q0FBVyxHQUFYLFVBQWUsV0FBMkIsRUFBRSxPQUFXO1FBQ25ELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELGlEQUFjLEdBQWQsVUFBa0IsT0FBMkI7UUFDekMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUE3QmlCLHdCQUF3QjtRQUQ3QyxVQUFVLEVBQUU7T0FDUyx3QkFBd0IsQ0E4QjdDO0lBQUQsK0JBQUM7Q0FBQSxBQTlCRCxJQThCQztTQTlCcUIsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnRGYWN0b3J5LFxuICAgIENvbXBvbmVudFJlZixcbiAgICBFbWJlZGRlZFZpZXdSZWYsXG4gICAgSW5qZWN0YWJsZSxcbiAgICBJbmplY3RvcixcbiAgICBUZW1wbGF0ZVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1R1aU5vSG9zdEV4Y2VwdGlvbn0gZnJvbSAnQHRhaWdhLXVpL2Nkay9leGNlcHRpb25zJztcblxuaW1wb3J0IHtBYnN0cmFjdFR1aVBvcnRhbEhvc3RDb21wb25lbnR9IGZyb20gJy4vcG9ydGFsLWhvc3QnO1xuXG4vKipcbiAqIEFic3RyYWN0IHNlcnZpY2UgZm9yIGRpc3BsYXlpbmcgcG9ydGFsc1xuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RUdWlQb3J0YWxTZXJ2aWNlIHtcbiAgICBwcm90ZWN0ZWQgaG9zdD86IEFic3RyYWN0VHVpUG9ydGFsSG9zdENvbXBvbmVudDtcblxuICAgIHByb3RlY3RlZCBnZXQgc2FmZUhvc3QoKTogQWJzdHJhY3RUdWlQb3J0YWxIb3N0Q29tcG9uZW50IHtcbiAgICAgICAgaWYgKCF0aGlzLmhvc3QpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUdWlOb0hvc3RFeGNlcHRpb24oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmhvc3Q7XG4gICAgfVxuXG4gICAgYXR0YWNoKGhvc3Q6IEFic3RyYWN0VHVpUG9ydGFsSG9zdENvbXBvbmVudCkge1xuICAgICAgICB0aGlzLmhvc3QgPSBob3N0O1xuICAgIH1cblxuICAgIGFkZDxDPihjb21wb25lbnRGYWN0b3J5OiBDb21wb25lbnRGYWN0b3J5PEM+LCBpbmplY3RvcjogSW5qZWN0b3IpOiBDb21wb25lbnRSZWY8Qz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zYWZlSG9zdC5hZGRDb21wb25lbnRDaGlsZChjb21wb25lbnRGYWN0b3J5LCBpbmplY3Rvcik7XG4gICAgfVxuXG4gICAgcmVtb3ZlPEM+KHtob3N0Vmlld306IENvbXBvbmVudFJlZjxDPikge1xuICAgICAgICBob3N0Vmlldy5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgYWRkVGVtcGxhdGU8Qz4odGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPEM+LCBjb250ZXh0PzogQyk6IEVtYmVkZGVkVmlld1JlZjxDPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNhZmVIb3N0LmFkZFRlbXBsYXRlQ2hpbGQodGVtcGxhdGVSZWYsIGNvbnRleHQpO1xuICAgIH1cblxuICAgIHJlbW92ZVRlbXBsYXRlPEM+KHZpZXdSZWY6IEVtYmVkZGVkVmlld1JlZjxDPikge1xuICAgICAgICB2aWV3UmVmLmRlc3Ryb3koKTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,41 @@
1
+ import { __decorate, __extends } from "tslib";
2
+ import { ChangeDetectionStrategy, Component, ViewChild } from '@angular/core';
3
+ import { AbstractTuiPortalHostComponent, AbstractTuiPortalService, } from '@taiga-ui/cdk/abstract';
4
+ import { TuiPortalService } from '@taiga-ui/cdk/components/portal-host';
5
+ var BLANK_CLIENT_RECT = {
6
+ bottom: 0,
7
+ height: 0,
8
+ left: 0,
9
+ right: 0,
10
+ top: 0,
11
+ width: 0,
12
+ };
13
+ /**
14
+ * Host element for dynamically created portals, for example using {@link TuiDropdownDirective}.
15
+ */
16
+ var TuiDropdownHostComponent = /** @class */ (function (_super) {
17
+ __extends(TuiDropdownHostComponent, _super);
18
+ function TuiDropdownHostComponent() {
19
+ return _super !== null && _super.apply(this, arguments) || this;
20
+ }
21
+ TuiDropdownHostComponent.prototype.fixedPositionOffset = function () {
22
+ var _a;
23
+ return (((_a = this.positionFixedOffsetRef) === null || _a === void 0 ? void 0 : _a.nativeElement.getBoundingClientRect()) ||
24
+ BLANK_CLIENT_RECT);
25
+ };
26
+ __decorate([
27
+ ViewChild('positionFixedOffset')
28
+ ], TuiDropdownHostComponent.prototype, "positionFixedOffsetRef", void 0);
29
+ TuiDropdownHostComponent = __decorate([
30
+ Component({
31
+ selector: 'tui-dropdown-host',
32
+ template: "<div #positionFixedOffset class=\"position-fixed-offset\"></div>\n<ng-content></ng-content>\n<ng-container #viewContainer></ng-container>\n",
33
+ changeDetection: ChangeDetectionStrategy.OnPush,
34
+ providers: [{ provide: AbstractTuiPortalService, useExisting: TuiPortalService }],
35
+ styles: [":host{position:relative;z-index:0;display:block;height:100%}:host:before{content:'';display:block;overflow:hidden}.position-fixed-offset{position:fixed;left:0;top:0;pointer-events:none;visibility:hidden;width:100%;height:100%}"]
36
+ })
37
+ ], TuiDropdownHostComponent);
38
+ return TuiDropdownHostComponent;
39
+ }(AbstractTuiPortalHostComponent));
40
+ export { TuiDropdownHostComponent };
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24taG9zdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2NvbXBvbmVudHMvZHJvcGRvd24taG9zdC8iLCJzb3VyY2VzIjpbImRyb3Bkb3duLWhvc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFjLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN4RixPQUFPLEVBQ0gsOEJBQThCLEVBQzlCLHdCQUF3QixHQUMzQixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBRXRFLElBQU0saUJBQWlCLEdBQWU7SUFDbEMsTUFBTSxFQUFFLENBQUM7SUFDVCxNQUFNLEVBQUUsQ0FBQztJQUNULElBQUksRUFBRSxDQUFDO0lBQ1AsS0FBSyxFQUFFLENBQUM7SUFDUixHQUFHLEVBQUUsQ0FBQztJQUNOLEtBQUssRUFBRSxDQUFDO0NBQ1gsQ0FBQztBQUVGOztHQUVHO0FBUUg7SUFBOEMsNENBQThCO0lBQTVFOztJQVVBLENBQUM7SUFORyxzREFBbUIsR0FBbkI7O1FBQ0ksT0FBTyxDQUNILE9BQUEsSUFBSSxDQUFDLHNCQUFzQiwwQ0FBRSxhQUFhLENBQUMscUJBQXFCO1lBQ2hFLGlCQUFpQixDQUNwQixDQUFDO0lBQ04sQ0FBQztJQVBEO1FBREMsU0FBUyxDQUFDLHFCQUFxQixDQUFDOzRFQUNvQztJQUY1RCx3QkFBd0I7UUFQcEMsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLG1CQUFtQjtZQUM3Qix1SkFBNEM7WUFFNUMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07WUFDL0MsU0FBUyxFQUFFLENBQUMsRUFBQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFDLENBQUM7O1NBQ2xGLENBQUM7T0FDVyx3QkFBd0IsQ0FVcEM7SUFBRCwrQkFBQztDQUFBLEFBVkQsQ0FBOEMsOEJBQThCLEdBVTNFO1NBVlksd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdFR1aVBvcnRhbEhvc3RDb21wb25lbnQsXG4gICAgQWJzdHJhY3RUdWlQb3J0YWxTZXJ2aWNlLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrL2Fic3RyYWN0JztcbmltcG9ydCB7VHVpUG9ydGFsU2VydmljZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jb21wb25lbnRzL3BvcnRhbC1ob3N0JztcblxuY29uc3QgQkxBTktfQ0xJRU5UX1JFQ1Q6IENsaWVudFJlY3QgPSB7XG4gICAgYm90dG9tOiAwLFxuICAgIGhlaWdodDogMCxcbiAgICBsZWZ0OiAwLFxuICAgIHJpZ2h0OiAwLFxuICAgIHRvcDogMCxcbiAgICB3aWR0aDogMCxcbn07XG5cbi8qKlxuICogSG9zdCBlbGVtZW50IGZvciBkeW5hbWljYWxseSBjcmVhdGVkIHBvcnRhbHMsIGZvciBleGFtcGxlIHVzaW5nIHtAbGluayBUdWlEcm9wZG93bkRpcmVjdGl2ZX0uXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLWRyb3Bkb3duLWhvc3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kcm9wZG93bi1ob3N0LnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2Ryb3Bkb3duLWhvc3Quc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW3twcm92aWRlOiBBYnN0cmFjdFR1aVBvcnRhbFNlcnZpY2UsIHVzZUV4aXN0aW5nOiBUdWlQb3J0YWxTZXJ2aWNlfV0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aURyb3Bkb3duSG9zdENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0VHVpUG9ydGFsSG9zdENvbXBvbmVudCB7XG4gICAgQFZpZXdDaGlsZCgncG9zaXRpb25GaXhlZE9mZnNldCcpXG4gICAgcHJpdmF0ZSByZWFkb25seSBwb3NpdGlvbkZpeGVkT2Zmc2V0UmVmPzogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgICBmaXhlZFBvc2l0aW9uT2Zmc2V0KCk6IENsaWVudFJlY3Qge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbkZpeGVkT2Zmc2V0UmVmPy5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIHx8XG4gICAgICAgICAgICBCTEFOS19DTElFTlRfUkVDVFxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,16 @@
1
+ import { __decorate } from "tslib";
2
+ import { NgModule } from '@angular/core';
3
+ import { TuiDropdownHostComponent } from './dropdown-host.component';
4
+ var TuiDropdownHostModule = /** @class */ (function () {
5
+ function TuiDropdownHostModule() {
6
+ }
7
+ TuiDropdownHostModule = __decorate([
8
+ NgModule({
9
+ declarations: [TuiDropdownHostComponent],
10
+ exports: [TuiDropdownHostComponent],
11
+ })
12
+ ], TuiDropdownHostModule);
13
+ return TuiDropdownHostModule;
14
+ }());
15
+ export { TuiDropdownHostModule };
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24taG9zdC5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2NvbXBvbmVudHMvZHJvcGRvd24taG9zdC8iLCJzb3VyY2VzIjpbImRyb3Bkb3duLWhvc3QubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXZDLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBTW5FO0lBQUE7SUFBb0MsQ0FBQztJQUF4QixxQkFBcUI7UUFKakMsUUFBUSxDQUFDO1lBQ04sWUFBWSxFQUFFLENBQUMsd0JBQXdCLENBQUM7WUFDeEMsT0FBTyxFQUFFLENBQUMsd0JBQXdCLENBQUM7U0FDdEMsQ0FBQztPQUNXLHFCQUFxQixDQUFHO0lBQUQsNEJBQUM7Q0FBQSxBQUFyQyxJQUFxQztTQUF4QixxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtUdWlEcm9wZG93bkhvc3RDb21wb25lbnR9IGZyb20gJy4vZHJvcGRvd24taG9zdC5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW1R1aURyb3Bkb3duSG9zdENvbXBvbmVudF0sXG4gICAgZXhwb3J0czogW1R1aURyb3Bkb3duSG9zdENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aURyb3Bkb3duSG9zdE1vZHVsZSB7fVxuIl19
@@ -0,0 +1,3 @@
1
+ export * from './dropdown-host.component';
2
+ export * from './dropdown-host.module';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2NvbXBvbmVudHMvZHJvcGRvd24taG9zdC8iLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZHJvcGRvd24taG9zdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9kcm9wZG93bi1ob3N0Lm1vZHVsZSc7XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFpZ2EtdWktY2RrLWNvbXBvbmVudHMtZHJvcGRvd24taG9zdC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvY29tcG9uZW50cy9kcm9wZG93bi1ob3N0LyIsInNvdXJjZXMiOlsidGFpZ2EtdWktY2RrLWNvbXBvbmVudHMtZHJvcGRvd24taG9zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -1,3 +1,4 @@
1
1
  export * from '@taiga-ui/cdk/components/dialog-host';
2
+ export * from '@taiga-ui/cdk/components/dropdown-host';
2
3
  export * from '@taiga-ui/cdk/components/portal-host';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2NvbXBvbmVudHMvIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsc0NBQXNDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkvY2RrL2NvbXBvbmVudHMvZGlhbG9nLWhvc3QnO1xuZXhwb3J0ICogZnJvbSAnQHRhaWdhLXVpL2Nkay9jb21wb25lbnRzL3BvcnRhbC1ob3N0JztcbiJdfQ==
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2NvbXBvbmVudHMvIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxzQ0FBc0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJ0B0YWlnYS11aS9jZGsvY29tcG9uZW50cy9kaWFsb2ctaG9zdCc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkvY2RrL2NvbXBvbmVudHMvZHJvcGRvd24taG9zdCc7XG5leHBvcnQgKiBmcm9tICdAdGFpZ2EtdWkvY2RrL2NvbXBvbmVudHMvcG9ydGFsLWhvc3QnO1xuIl19
@@ -1,4 +1,2 @@
1
1
  export * from './portal.service';
2
- export * from './portal-host.component';
3
- export * from './portal-host.module';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2NvbXBvbmVudHMvcG9ydGFsLWhvc3QvIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcG9ydGFsLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9wb3J0YWwtaG9zdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9wb3J0YWwtaG9zdC5tb2R1bGUnO1xuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2NvbXBvbmVudHMvcG9ydGFsLWhvc3QvIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wb3J0YWwuc2VydmljZSc7XG4iXX0=
@@ -1,39 +1,16 @@
1
- import { __decorate } from "tslib";
2
- import { Injectable, } from '@angular/core';
3
- import { TuiNoHostException } from '@taiga-ui/cdk/exceptions';
1
+ import { __decorate, __extends } from "tslib";
2
+ import { Injectable } from '@angular/core';
3
+ import { AbstractTuiPortalService } from '@taiga-ui/cdk/abstract';
4
4
  import * as i0 from "@angular/core";
5
5
  /**
6
- * Service for displaying portals
6
+ * @deprecated create your own portal (see {@link https://taiga-ui.dev/portals Portals})
7
+ * TODO: replace with {@link TuiDropdownPortalService} in 3.0
7
8
  */
8
- var TuiPortalService = /** @class */ (function () {
9
+ var TuiPortalService = /** @class */ (function (_super) {
10
+ __extends(TuiPortalService, _super);
9
11
  function TuiPortalService() {
12
+ return _super !== null && _super.apply(this, arguments) || this;
10
13
  }
11
- Object.defineProperty(TuiPortalService.prototype, "safeHost", {
12
- get: function () {
13
- if (!this.host) {
14
- throw new TuiNoHostException();
15
- }
16
- return this.host;
17
- },
18
- enumerable: true,
19
- configurable: true
20
- });
21
- TuiPortalService.prototype.attach = function (host) {
22
- this.host = host;
23
- };
24
- TuiPortalService.prototype.add = function (componentFactory, injector) {
25
- return this.safeHost.addComponentChild(componentFactory, injector);
26
- };
27
- TuiPortalService.prototype.remove = function (_a) {
28
- var hostView = _a.hostView;
29
- hostView.destroy();
30
- };
31
- TuiPortalService.prototype.addTemplate = function (templateRef, context) {
32
- return this.safeHost.addTemplateChild(templateRef, context);
33
- };
34
- TuiPortalService.prototype.removeTemplate = function (viewRef) {
35
- viewRef.destroy();
36
- };
37
14
  TuiPortalService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TuiPortalService_Factory() { return new TuiPortalService(); }, token: TuiPortalService, providedIn: "root" });
38
15
  TuiPortalService = __decorate([
39
16
  Injectable({
@@ -41,6 +18,6 @@ var TuiPortalService = /** @class */ (function () {
41
18
  })
42
19
  ], TuiPortalService);
43
20
  return TuiPortalService;
44
- }());
21
+ }(AbstractTuiPortalService));
45
22
  export { TuiPortalService };
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2NvbXBvbmVudHMvcG9ydGFsLWhvc3QvIiwic291cmNlcyI6WyJwb3J0YWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUlILFVBQVUsR0FHYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQzs7QUFJNUQ7O0dBRUc7QUFJSDtJQUFBO0tBOEJDO0lBM0JHLHNCQUFZLHNDQUFRO2FBQXBCO1lBQ0ksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQ1osTUFBTSxJQUFJLGtCQUFrQixFQUFFLENBQUM7YUFDbEM7WUFFRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDckIsQ0FBQzs7O09BQUE7SUFFRCxpQ0FBTSxHQUFOLFVBQU8sSUFBNEI7UUFDL0IsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQUVELDhCQUFHLEdBQUgsVUFBTyxnQkFBcUMsRUFBRSxRQUFrQjtRQUM1RCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELGlDQUFNLEdBQU4sVUFBVSxFQUEyQjtZQUExQixzQkFBUTtRQUNmLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsc0NBQVcsR0FBWCxVQUFlLFdBQTJCLEVBQUUsT0FBVztRQUNuRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCx5Q0FBYyxHQUFkLFVBQWtCLE9BQTJCO1FBQ3pDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN0QixDQUFDOztJQTdCUSxnQkFBZ0I7UUFINUIsVUFBVSxDQUFDO1lBQ1IsVUFBVSxFQUFFLE1BQU07U0FDckIsQ0FBQztPQUNXLGdCQUFnQixDQThCNUI7MkJBaEREO0NBZ0RDLEFBOUJELElBOEJDO1NBOUJZLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50RmFjdG9yeSxcbiAgICBDb21wb25lbnRSZWYsXG4gICAgRW1iZWRkZWRWaWV3UmVmLFxuICAgIEluamVjdGFibGUsXG4gICAgSW5qZWN0b3IsXG4gICAgVGVtcGxhdGVSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUdWlOb0hvc3RFeGNlcHRpb259IGZyb20gJ0B0YWlnYS11aS9jZGsvZXhjZXB0aW9ucyc7XG5cbmltcG9ydCB7VHVpUG9ydGFsSG9zdENvbXBvbmVudH0gZnJvbSAnLi9wb3J0YWwtaG9zdC5jb21wb25lbnQnO1xuXG4vKipcbiAqIFNlcnZpY2UgZm9yIGRpc3BsYXlpbmcgcG9ydGFsc1xuICovXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlQb3J0YWxTZXJ2aWNlIHtcbiAgICBwcml2YXRlIGhvc3Q/OiBUdWlQb3J0YWxIb3N0Q29tcG9uZW50O1xuXG4gICAgcHJpdmF0ZSBnZXQgc2FmZUhvc3QoKTogVHVpUG9ydGFsSG9zdENvbXBvbmVudCB7XG4gICAgICAgIGlmICghdGhpcy5ob3N0KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHVpTm9Ib3N0RXhjZXB0aW9uKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5ob3N0O1xuICAgIH1cblxuICAgIGF0dGFjaChob3N0OiBUdWlQb3J0YWxIb3N0Q29tcG9uZW50KSB7XG4gICAgICAgIHRoaXMuaG9zdCA9IGhvc3Q7XG4gICAgfVxuXG4gICAgYWRkPEM+KGNvbXBvbmVudEZhY3Rvcnk6IENvbXBvbmVudEZhY3Rvcnk8Qz4sIGluamVjdG9yOiBJbmplY3Rvcik6IENvbXBvbmVudFJlZjxDPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNhZmVIb3N0LmFkZENvbXBvbmVudENoaWxkKGNvbXBvbmVudEZhY3RvcnksIGluamVjdG9yKTtcbiAgICB9XG5cbiAgICByZW1vdmU8Qz4oe2hvc3RWaWV3fTogQ29tcG9uZW50UmVmPEM+KSB7XG4gICAgICAgIGhvc3RWaWV3LmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICBhZGRUZW1wbGF0ZTxDPih0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8Qz4sIGNvbnRleHQ/OiBDKTogRW1iZWRkZWRWaWV3UmVmPEM+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2FmZUhvc3QuYWRkVGVtcGxhdGVDaGlsZCh0ZW1wbGF0ZVJlZiwgY29udGV4dCk7XG4gICAgfVxuXG4gICAgcmVtb3ZlVGVtcGxhdGU8Qz4odmlld1JlZjogRW1iZWRkZWRWaWV3UmVmPEM+KSB7XG4gICAgICAgIHZpZXdSZWYuZGVzdHJveSgpO1xuICAgIH1cbn1cbiJdfQ==
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2NvbXBvbmVudHMvcG9ydGFsLWhvc3QvIiwic291cmNlcyI6WyJwb3J0YWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQzs7QUFFaEU7OztHQUdHO0FBSUg7SUFBc0Msb0NBQXdCO0lBQTlEOztLQUFpRTs7SUFBcEQsZ0JBQWdCO1FBSDVCLFVBQVUsQ0FBQztZQUNSLFVBQVUsRUFBRSxNQUFNO1NBQ3JCLENBQUM7T0FDVyxnQkFBZ0IsQ0FBb0M7MkJBVmpFO0NBVWlFLEFBQWpFLENBQXNDLHdCQUF3QixHQUFHO1NBQXBELGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Fic3RyYWN0VHVpUG9ydGFsU2VydmljZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay9hYnN0cmFjdCc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgY3JlYXRlIHlvdXIgb3duIHBvcnRhbCAoc2VlIHtAbGluayBodHRwczovL3RhaWdhLXVpLmRldi9wb3J0YWxzIFBvcnRhbHN9KVxuICogVE9ETzogcmVwbGFjZSB3aXRoIHtAbGluayBUdWlEcm9wZG93blBvcnRhbFNlcnZpY2V9IGluIDMuMFxuICovXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlQb3J0YWxTZXJ2aWNlIGV4dGVuZHMgQWJzdHJhY3RUdWlQb3J0YWxTZXJ2aWNlIHt9XG4iXX0=
@@ -101,8 +101,8 @@ var TuiTime = /** @class */ (function () {
101
101
  var needAddMs = mode === 'HH:MM:SS.MSS' || (!mode && this.ms > 0);
102
102
  var needAddSeconds = needAddMs || mode === 'HH:MM:SS' || (!mode && this.seconds > 0);
103
103
  return (this.formatTime(this.hours) + ":" + this.formatTime(this.minutes) +
104
- ("" + (needAddSeconds ? ':' + this.formatTime(this.seconds) : '')) +
105
- ("" + (needAddMs ? '.' + this.formatTime(this.ms, 3) : '')));
104
+ ("" + (needAddSeconds ? ":" + this.formatTime(this.seconds) : '')) +
105
+ ("" + (needAddMs ? "." + this.formatTime(this.ms, 3) : '')));
106
106
  };
107
107
  /**
108
108
  * Converts TuiTime to milliseconds
@@ -120,4 +120,4 @@ var TuiTime = /** @class */ (function () {
120
120
  return TuiTime;
121
121
  }());
122
122
  export { TuiTime };
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvZGF0ZS10aW1lLyIsInNvdXJjZXMiOlsidGltZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFHaEQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUVqRCxPQUFPLEVBQ0gsWUFBWSxFQUNaLG1CQUFtQixFQUNuQixvQkFBb0IsRUFDcEIsc0JBQXNCLEVBQ3RCLGVBQWUsRUFDZixpQkFBaUIsR0FDcEIsTUFBTSxhQUFhLENBQUM7QUFFckI7O0dBRUc7QUFDSDtJQUNJLGlCQUNhLEtBQWEsRUFDYixPQUFlLEVBQ2YsT0FBbUIsRUFDbkIsRUFBYztRQURkLHdCQUFBLEVBQUEsV0FBbUI7UUFDbkIsbUJBQUEsRUFBQSxNQUFjO1FBSGQsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQ25CLE9BQUUsR0FBRixFQUFFLENBQVk7UUFFdkIsU0FBUyxDQUFDLE1BQU0sQ0FDWixPQUFPLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxFQUNoRCw2QkFBNkIsRUFDN0IsS0FBSyxFQUNMLE9BQU8sRUFDUCxPQUFPLEVBQ1AsRUFBRSxDQUNMLENBQUM7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSSxtQkFBVyxHQUFsQixVQUNJLEtBQWEsRUFDYixPQUFlLEVBQ2YsT0FBbUIsRUFDbkIsRUFBYztRQURkLHdCQUFBLEVBQUEsV0FBbUI7UUFDbkIsbUJBQUEsRUFBQSxNQUFjO1FBRWQsT0FBTyxDQUNILE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO1lBQ3ZCLE9BQU8sQ0FBQyxLQUFL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YUFDOUQsTUFBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBRSxDQUFBLENBQzFELENBQUM7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSCx3Q0FBc0IsR0FBdEI7UUFDSSxPQUFPLENBQ0gsSUFBSSxDQUFDLEtBQUssR0FBRyxvQkFBb0I7WUFDakMsSUFBSSxDQUFDLE9BQU8sR0FBRyxzQkFBc0I7WUFDckMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJO1lBQ25CLElBQUksQ0FBQyxFQUFFLENBQ1YsQ0FBQztJQUNOLENBQUM7SUFFTyw0QkFBVSxHQUFsQixVQUFtQixJQUFZLEVBQUUsTUFBa0I7UUFBbEIsdUJBQUEsRUFBQSxVQUFrQjtRQUMvQyxPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFDTCxjQUFDO0FBQUQsQ0FBQyxBQXJLRCxJQXFLQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7dHVpQXNzZXJ0fSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NsYXNzZXMnO1xuaW1wb3J0IHtUdWlUaW1lTGlrZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay9pbnRlcmZhY2VzJztcbmltcG9ydCB7VHVpVGltZU1vZGV9IGZyb20gJ0B0YWlnYS11aS9jZGsvdHlwZXMnO1xuaW1wb3J0IHtwYWRTdGFydH0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9mb3JtYXQnO1xuaW1wb3J0IHtpblJhbmdlfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL21hdGgnO1xuXG5pbXBvcnQge1xuICAgIEhPVVJTX0lOX0RBWSxcbiAgICBNSUxMSVNFQ09ORFNfSU5fREFZLFxuICAgIE1JTExJU0VDT05EU19JTl9IT1VSLFxuICAgIE1JTExJU0VDT05EU19JTl9NSU5VVEUsXG4gICAgTUlOVVRFU19JTl9IT1VSLFxuICAgIFNFQ09ORFNfSU5fTUlOVVRFLFxufSBmcm9tICcuL2RhdGUtdGltZSc7XG5cbi8qKlxuICogSW1tdXRhYmxlIHRpbWUgb2JqZWN0IHdpdGggaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMgYW5kIG1zXG4gKi9cbmV4cG9ydCBjbGFzcyBUdWlUaW1lIGltcGxlbWVudHMgVHVpVGltZUxpa2Uge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICByZWFkb25seSBob3VyczogbnVtYmVyLFxuICAgICAgICByZWFkb25seSBtaW51dGVzOiBudW1iZXIsXG4gICAgICAgIHJlYWRvbmx5IHNlY29uZHM6IG51bWJlciA9IDAsXG4gICAgICAgIHJlYWRvbmx5IG1zOiBudW1iZXIgPSAwLFxuICAgICkge1xuICAgICAgICB0dWlBc3NlcnQuYXNzZXJ0KFxuICAgICAgICAgICAgVHVpVGltZS5pc1ZhbGlkVGltZShob3VycywgbWludXRlcywgc2Vjb25kcywgbXMpLFxuICAgICAgICAgICAgJ1RpbWUgbXVzdCBiZSByZWFsLCBidXQgZ290OicsXG4gICAgICAgICAgICBob3VycyxcbiAgICAgICAgICAgIG1pbnV0ZXMsXG4gICAgICAgICAgICBzZWNvbmRzLFxuICAgICAgICAgICAgbXMsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIHRpbWUgaXMgdmFsaWRcbiAgICAgKi9cbiAgICBzdGF0aWMgaXNWYWxpZFRpbWUoXG4gICAgICAgIGhvdXJzOiBudW1iZXIsXG4gICAgICAgIG1pbnV0ZXM6IG51bWJlcixcbiAgICAgICAgc2Vjb25kczogbnVtYmVyID0gMCxcbiAgICAgICAgbXM6IG51bWJlciA9IDAsXG4gICAgKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBOdW1iZXIuaXNJbnRlZ2VyKGhvdXJzKSAmJlxuICAgICAgICAgICAgaW5SYW5nZShob3VycywgMCwgSE9VUlNfSU5fREFZKSAmJlxuICAgICAgICAgICAgTnVtYmVyLmlzSW50ZWdlcihtaW51dGVzKSAmJlxuICAgICAgICAgICAgaW5SYW5nZShtaW51dGVzLCAwLCBNSU5VVEVTX0lOX0hPVVIpICYmXG4gICAgICAgICAgICBOdW1iZXIuaXNJbnRlZ2VyKHNlY29uZHMpICYmXG4gICAgICAgICAgICBpblJhbmdlKHNlY29uZHMsIDAsIFNFQ09ORFNfSU5fTUlOVVRFKSAmJlxuICAgICAgICAgICAgTnVtYmVyLmlzSW50ZWdlcihtcykgJiZcbiAgICAgICAgICAgIGluUmFuZ2UobXMsIDAsIDEwMDApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3VycmVudCBVVEMgdGltZS5cbiAgICAgKi9cbiAgICBzdGF0aWMgY3VycmVudCgpOiBUdWlUaW1lIHtcbiAgICAgICAgcmV0dXJuIFR1aVRpbWUuZnJvbUFic29sdXRlTWlsbGlzZWNvbmRzKERhdGUubm93KCkgJSBNSUxMSVNFQ09ORFNfSU5fREFZKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDdXJyZW50IHRpbWUgaW4gbG9jYWwgdGltZXpvbmVcbiAgICAgKi9cbiAgICBzdGF0aWMgY3VycmVudExvY2FsKCk6IFR1aVRpbWUge1xuICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoKTtcblxuICAgICAgICByZXR1cm4gVHVpVGltZS5mcm9tQWJzb2x1dGVNaWxsaXNlY29uZHMoXG4gICAgICAgICAgICAoRGF0ZS5ub3coKSAtIGRhdGUuZ2V0VGltZXpvbmVPZmZzZXQoKSAqIE1JTExJU0VDT05EU19JTl9NSU5VVEUpICVcbiAgICAgICAgICAgICAgICBNSUxMSVNFQ09ORFNfSU5fREFZLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZXMgVHVpVGltZSBmcm9tIG1pbGxpc2Vjb25kc1xuICAgICAqL1xuICAgIHN0YXRpYyBmcm9tQWJzb2x1dGVNaWxsaXNlY29uZHMobWlsbGlzZWNvbmRzOiBudW1iZXIpOiBUdWlUaW1lIHtcbiAgICAgICAgdHVpQXNzZXJ0LmFzc2VydChOdW1iZXIuaXNJbnRlZ2VyKG1pbGxpc2Vjb25kcykpO1xuICAgICAgICB0dWlBc3NlcnQuYXNzZXJ0KFxuICAgICAgICAgICAgaW5SYW5nZShtaWxsaXNlY29uZHMsIDAsIE1JTExJU0VDT05EU19JTl9EQVkpLFxuICAgICAgICAgICAgYE1pbGxpc2Vjb25kcyBtdXN0IGJlIGJlbG93ICR7TUlMTElTRUNPTkRTX0lOX0RBWX0gKG1pbGxpc2Vjb25kcyBpbiBhIGRheSkuYCxcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBob3VycyA9IE1hdGguZmxvb3IobWlsbGlzZWNvbmRzIC8gTUlMTElTRUNPTkRTX0lOX0hPVVIpO1xuICAgICAgICBjb25zdCBtaW51dGVzID0gTWF0aC5mbG9vcihcbiAgICAgICAgICAgIChtaWxsaXNlY29uZHMgJSBNSUxMSVNFQ09ORFNfSU5fSE9VUikgLyBNSUxMSVNFQ09ORFNfSU5fTUlOVVRFLFxuICAgICAgICApO1xuICAgICAgICBjb25zdCBzZWNvbmRzID1cbiAgICAgICAgICAgIE1hdGguZmxvb3IoXG4gICAgICAgICAgICAgICAgKChtaWxsaXNlY29uZHMgJSBNSUxMSVNFQ09ORFNfSU5fSE9VUikgJSBNSUxMSVNFQ09ORFNfSU5fTUlOVVRFKSAvIDEwMDAsXG4gICAgICAgICAgICApIHx8IDA7XG4gICAgICAgIGNvbnN0IG1zID1cbiAgICAgICAgICAgIE1hdGguZmxvb3IoXG4gICAgICAgICAgICAgICAgKChtaWxsaXNlY29uZHMgJSBNSUxMSVNFQ09ORFNfSU5fSE9VUikgJSBNSUxMSVNFQ09ORFNfSU5fTUlOVVRFKSAlIDEwMDAsXG4gICAgICAgICAgICApIHx8IDA7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBUdWlUaW1lKGhvdXJzLCBtaW51dGVzLCBzZWNvbmRzLCBtcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGFyc2VzIHN0cmluZyBpbnRvIFR1aVRpbWUgb2JqZWN0XG4gICAgICovXG4gICAgc3RhdGljIGZyb21TdHJpbmcodGltZTogc3RyaW5nKTogVHVpVGltZSB7XG4gICAgICAgIGNvbnN0IGhvdXJzID0gTnVtYmVyKHRpbWUuc2xpY2UoMCwgMikpO1xuICAgICAgICBjb25zdCBtaW51dGVzID0gTnVtYmVyKHRpbWUuc2xpY2UoMywgNSkpO1xuICAgICAgICBjb25zdCBzZWNvbmRzID0gTnVtYmVyKHRpbWUuc2xpY2UoNiwgOCkpIHx8IDA7XG4gICAgICAgIGNvbnN0IG1zID0gTnVtYmVyKHRpbWUuc2xpY2UoOSwgMTIpKSB8fCAwO1xuXG4gICAgICAgIHJldHVybiBuZXcgVHVpVGltZShob3VycywgbWludXRlcywgc2Vjb25kcywgbXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIERhdGUgb2JqZWN0IGludG8gVHVpVGltZVxuICAgICAqIEBwYXJhbSBkYXRlXG4gICAgICovXG4gICAgc3RhdGljIGZyb21Mb2NhbE5hdGl2ZURhdGUoZGF0ZTogRGF0ZSk6IFR1aVRpbWUge1xuICAgICAgICByZXR1cm4gbmV3IFR1aVRpbWUoXG4gICAgICAgICAgICBkYXRlLmdldEhvdXJzKCksXG4gICAgICAgICAgICBkYXRlLmdldE1pbnV0ZXMoKSxcbiAgICAgICAgICAgIGRhdGUuZ2V0U2Vjb25kcygpLFxuICAgICAgICAgICAgZGF0ZS5nZXRNaWxsaXNlY29uZHMoKSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTaGlmdHMgdGltZSBieSBob3VycyBhbmQgbWludXRlc1xuICAgICAqL1xuICAgIHNoaWZ0KHtob3VycyA9IDAsIG1pbnV0ZXMgPSAwLCBzZWNvbmRzID0gMCwgbXMgPSAwfTogVHVpVGltZUxpa2UpOiBUdWlUaW1lIHtcbiAgICAgICAgY29uc3QgbmV3TXMgPSAoMTAwMCArIHRoaXMubXMgKyAobXMgJSAxMDAwKSkgJSAxMDAwO1xuXG4gICAgICAgIGNvbnN0IHNlY29uZHNJbk1zID0gbXMgPCAwID8gTWF0aC5jZWlsKG1zIC8gMTAwMCkgOiBNYXRoLmZsb29yKG1zIC8gMTAwMCk7XG4gICAgICAgIGNvbnN0IHNlY29uZHNUb0FkZCA9IHNlY29uZHNJbk1zICsgc2Vjb25kcztcbiAgICAgICAgY29uc3QgbmV3U2Vjb25kcyA9ICg2MCArIHRoaXMuc2Vjb25kcyArIChzZWNvbmRzVG9BZGQgJSA2MCkpICUgNjA7XG5cbiAgICAgICAgY29uc3QgbWludXRlc0luU2Vjb25kcyA9XG4gICAgICAgICAgICBzZWNvbmRzVG9BZGQgPCAwXG4gICAgICAgICAgICAgICAgPyBNYXRoLmNlaWwoc2Vjb25kc1RvQWRkIC8gNjApXG4gICAgICAgICAgICAgICAgOiBNYXRoLmZsb29yKHNlY29uZHNUb0FkZCAvIDYwKTtcbiAgICAgICAgY29uc3QgbWludXRlc1RvQWRkID0gbWludXRlc0luU2Vjb25kcyArIG1pbnV0ZXM7XG4gICAgICAgIGNvbnN0IG5ld01pbnV0ZXMgPSAoNjAgKyB0aGlzLm1pbnV0ZXMgKyAobWludXRlc1RvQWRkICUgNjApKSAlIDYwO1xuXG4gICAgICAgIGNvbnN0IGhvdXJzSW5NaW51dGVzID1cbiAgICAgICAgICAgIG1pbnV0ZXNUb0FkZCA8IDBcbiAgICAgICAgICAgICAgICA/IE1hdGguY2VpbChtaW51dGVzVG9BZGQgLyA2MClcbiAgICAgICAgICAgICAgICA6IE1hdGguZmxvb3IobWludXRlc1RvQWRkIC8gNjApO1xuICAgICAgICBjb25zdCBob3Vyc1RvQWRkID0gaG91cnNJbk1pbnV0ZXMgKyBob3VycztcbiAgICAgICAgY29uc3QgbmV3SG91cnMgPSAoMjQgKyB0aGlzLmhvdXJzICsgKGhvdXJzVG9BZGQgJSAyNCkpICUgMjQ7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBUdWlUaW1lKG5ld0hvdXJzLCBuZXdNaW51dGVzLCBuZXdTZWNvbmRzLCBuZXdNcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgVHVpVGltZSB0byBzdHJpbmdcbiAgICAgKi9cbiAgICB0b1N0cmluZyhtb2RlPzogVHVpVGltZU1vZGUpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBuZWVkQWRkTXMgPSBtb2RlID09PSAnSEg6TU06U1MuTVNTJyB8fCAoIW1vZGUgJiYgdGhpcy5tcyA+IDApO1xuICAgICAgICBjb25zdCBuZWVkQWRkU2Vjb25kcyA9XG4gICAgICAgICAgICBuZWVkQWRkTXMgfHwgbW9kZSA9PT0gJ0hIOk1NOlNTJyB8fCAoIW1vZGUgJiYgdGhpcy5zZWNvbmRzID4gMCk7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIGAke3RoaXMuZm9ybWF0VGltZSh0aGlzLmhvdXJzKX06JHt0aGlzLmZvcm1hdFRpbWUodGhpcy5taW51dGVzKX1gICtcbiAgICAgICAgICAgIGAke25lZWRBZGRTZWNvbmRzID8gJzonICsgdGhpcy5mb3JtYXRUaW1lKHRoaXMuc2Vjb25kcykgOiAnJ31gICtcbiAgICAgICAgICAgIGAke25lZWRBZGRNcyA/ICcuJyArIHRoaXMuZm9ybWF0VGltZSh0aGlzLm1zLCAzKSA6ICcnfWBcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBUdWlUaW1lIHRvIG1pbGxpc2Vjb25kc1xuICAgICAqL1xuICAgIHRvQWJzb2x1dGVNaWxsaXNlY29uZHMoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuaG91cnMgKiBNSUxMSVNFQ09ORFNfSU5fSE9VUiArXG4gICAgICAgICAgICB0aGlzLm1pbnV0ZXMgKiBNSUxMSVNFQ09ORFNfSU5fTUlOVVRFICtcbiAgICAgICAgICAgIHRoaXMuc2Vjb25kcyAqIDEwMDAgK1xuICAgICAgICAgICAgdGhpcy5tc1xuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZm9ybWF0VGltZSh0aW1lOiBudW1iZXIsIGRpZ2l0czogbnVtYmVyID0gMik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBwYWRTdGFydChTdHJpbmcodGltZSksIGRpZ2l0cywgJzAnKTtcbiAgICB9XG59XG4iXX0=
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvZGF0ZS10aW1lLyIsInNvdXJjZXMiOlsidGltZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFHaEQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUVqRCxPQUFPLEVBQ0gsWUFBWSxFQUNaLG1CQUFtQixFQUNuQixvQkFBb0IsRUFDcEIsc0JBQXNCLEVBQ3RCLGVBQWUsRUFDZixpQkFBaUIsR0FDcEIsTUFBTSxhQUFhLENBQUM7QUFFckI7O0dBRUc7QUFDSDtJQUNJLGlCQUNhLEtBQWEsRUFDYixPQUFlLEVBQ2YsT0FBbUIsRUFDbkIsRUFBYztRQURkLHdCQUFBLEVBQUEsV0FBbUI7UUFDbkIsbUJBQUEsRUFBQSxNQUFjO1FBSGQsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQ25CLE9BQUUsR0FBRixFQUFFLENBQVk7UUFFdkIsU0FBUyxDQUFDLE1BQU0sQ0FDWixPQUFPLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxFQUNoRCw2QkFBNkIsRUFDN0IsS0FBSyxFQUNMLE9BQU8sRUFDUCxPQUFPLEVBQ1AsRUFBRSxDQUNMLENBQUM7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSSxtQkFBVyxHQUFsQixVQUNJLEtBQWEsRUFDYixPQUFlLEVBQ2YsT0FBbUIsRUFDbkIsRUFBYztRQURkLHdCQUFBLEVBQUEsV0FBbUI7UUFDbkIsbUJBQUEsRUFBQSxNQUFjO1FBRWQsT0FBTyxDQUNILE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO1lBQ3ZCLE9BQU8sQ0FBQyxLQUFL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LE1BQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFFLENBQUEsQ0FDMUQsQ0FBQztJQUNOLENBQUM7SUFFRDs7T0FFRztJQUNILHdDQUFzQixHQUF0QjtRQUNJLE9BQU8sQ0FDSCxJQUFJLENBQUMsS0FBSyxHQUFHLG9CQUFvQjtZQUNqQyxJQUFJLENBQUMsT0FBTyxHQUFHLHNCQUFzQjtZQUNyQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUk7WUFDbkIsSUFBSSxDQUFDLEVBQUUsQ0FDVixDQUFDO0lBQ04sQ0FBQztJQUVPLDRCQUFVLEdBQWxCLFVBQW1CLElBQVksRUFBRSxNQUFrQjtRQUFsQix1QkFBQSxFQUFBLFVBQWtCO1FBQy9DLE9BQU8sUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUNMLGNBQUM7QUFBRCxDQUFDLEFBcktELElBcUtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHt0dWlBc3NlcnR9IGZyb20gJ0B0YWlnYS11aS9jZGsvY2xhc3Nlcyc7XG5pbXBvcnQge1R1aVRpbWVMaWtlfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtUdWlUaW1lTW9kZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay90eXBlcyc7XG5pbXBvcnQge3BhZFN0YXJ0fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL2Zvcm1hdCc7XG5pbXBvcnQge2luUmFuZ2V9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWF0aCc7XG5cbmltcG9ydCB7XG4gICAgSE9VUlNfSU5fREFZLFxuICAgIE1JTExJU0VDT05EU19JTl9EQVksXG4gICAgTUlMTElTRUNPTkRTX0lOX0hPVVIsXG4gICAgTUlMTElTRUNPTkRTX0lOX01JTlVURSxcbiAgICBNSU5VVEVTX0lOX0hPVVIsXG4gICAgU0VDT05EU19JTl9NSU5VVEUsXG59IGZyb20gJy4vZGF0ZS10aW1lJztcblxuLyoqXG4gKiBJbW11dGFibGUgdGltZSBvYmplY3Qgd2l0aCBob3VycywgbWludXRlcywgc2Vjb25kcyBhbmQgbXNcbiAqL1xuZXhwb3J0IGNsYXNzIFR1aVRpbWUgaW1wbGVtZW50cyBUdWlUaW1lTGlrZSB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHJlYWRvbmx5IGhvdXJzOiBudW1iZXIsXG4gICAgICAgIHJlYWRvbmx5IG1pbnV0ZXM6IG51bWJlcixcbiAgICAgICAgcmVhZG9ubHkgc2Vjb25kczogbnVtYmVyID0gMCxcbiAgICAgICAgcmVhZG9ubHkgbXM6IG51bWJlciA9IDAsXG4gICAgKSB7XG4gICAgICAgIHR1aUFzc2VydC5hc3NlcnQoXG4gICAgICAgICAgICBUdWlUaW1lLmlzVmFsaWRUaW1lKGhvdXJzLCBtaW51dGVzLCBzZWNvbmRzLCBtcyksXG4gICAgICAgICAgICAnVGltZSBtdXN0IGJlIHJlYWwsIGJ1dCBnb3Q6JyxcbiAgICAgICAgICAgIGhvdXJzLFxuICAgICAgICAgICAgbWludXRlcyxcbiAgICAgICAgICAgIHNlY29uZHMsXG4gICAgICAgICAgICBtcyxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgdGltZSBpcyB2YWxpZFxuICAgICAqL1xuICAgIHN0YXRpYyBpc1ZhbGlkVGltZShcbiAgICAgICAgaG91cnM6IG51bWJlcixcbiAgICAgICAgbWludXRlczogbnVtYmVyLFxuICAgICAgICBzZWNvbmRzOiBudW1iZXIgPSAwLFxuICAgICAgICBtczogbnVtYmVyID0gMCxcbiAgICApOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIE51bWJlci5pc0ludGVnZXIoaG91cnMpICYmXG4gICAgICAgICAgICBpblJhbmdlKGhvdXJzLCAwLCBIT1VSU19JTl9EQVkpICYmXG4gICAgICAgICAgICBOdW1iZXIuaXNJbnRlZ2VyKG1pbnV0ZXMpICYmXG4gICAgICAgICAgICBpblJhbmdlKG1pbnV0ZXMsIDAsIE1JTlVURVNfSU5fSE9VUikgJiZcbiAgICAgICAgICAgIE51bWJlci5pc0ludGVnZXIoc2Vjb25kcykgJiZcbiAgICAgICAgICAgIGluUmFuZ2Uoc2Vjb25kcywgMCwgU0VDT05EU19JTl9NSU5VVEUpICYmXG4gICAgICAgICAgICBOdW1iZXIuaXNJbnRlZ2VyKG1zKSAmJlxuICAgICAgICAgICAgaW5SYW5nZShtcywgMCwgMTAwMClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDdXJyZW50IFVUQyB0aW1lLlxuICAgICAqL1xuICAgIHN0YXRpYyBjdXJyZW50KCk6IFR1aVRpbWUge1xuICAgICAgICByZXR1cm4gVHVpVGltZS5mcm9tQWJzb2x1dGVNaWxsaXNlY29uZHMoRGF0ZS5ub3coKSAlIE1JTExJU0VDT05EU19JTl9EQVkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEN1cnJlbnQgdGltZSBpbiBsb2NhbCB0aW1lem9uZVxuICAgICAqL1xuICAgIHN0YXRpYyBjdXJyZW50TG9jYWwoKTogVHVpVGltZSB7XG4gICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgpO1xuXG4gICAgICAgIHJldHVybiBUdWlUaW1lLmZyb21BYnNvbHV0ZU1pbGxpc2Vjb25kcyhcbiAgICAgICAgICAgIChEYXRlLm5vdygpIC0gZGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpICogTUlMTElTRUNPTkRTX0lOX01JTlVURSkgJVxuICAgICAgICAgICAgICAgIE1JTExJU0VDT05EU19JTl9EQVksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlcyBUdWlUaW1lIGZyb20gbWlsbGlzZWNvbmRzXG4gICAgICovXG4gICAgc3RhdGljIGZyb21BYnNvbHV0ZU1pbGxpc2Vjb25kcyhtaWxsaXNlY29uZHM6IG51bWJlcik6IFR1aVRpbWUge1xuICAgICAgICB0dWlBc3NlcnQuYXNzZXJ0KE51bWJlci5pc0ludGVnZXIobWlsbGlzZWNvbmRzKSk7XG4gICAgICAgIHR1aUFzc2VydC5hc3NlcnQoXG4gICAgICAgICAgICBpblJhbmdlKG1pbGxpc2Vjb25kcywgMCwgTUlMTElTRUNPTkRTX0lOX0RBWSksXG4gICAgICAgICAgICBgTWlsbGlzZWNvbmRzIG11c3QgYmUgYmVsb3cgJHtNSUxMSVNFQ09ORFNfSU5fREFZfSAobWlsbGlzZWNvbmRzIGluIGEgZGF5KS5gLFxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IGhvdXJzID0gTWF0aC5mbG9vcihtaWxsaXNlY29uZHMgLyBNSUxMSVNFQ09ORFNfSU5fSE9VUik7XG4gICAgICAgIGNvbnN0IG1pbnV0ZXMgPSBNYXRoLmZsb29yKFxuICAgICAgICAgICAgKG1pbGxpc2Vjb25kcyAlIE1JTExJU0VDT05EU19JTl9IT1VSKSAvIE1JTExJU0VDT05EU19JTl9NSU5VVEUsXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHNlY29uZHMgPVxuICAgICAgICAgICAgTWF0aC5mbG9vcihcbiAgICAgICAgICAgICAgICAoKG1pbGxpc2Vjb25kcyAlIE1JTExJU0VDT05EU19JTl9IT1VSKSAlIE1JTExJU0VDT05EU19JTl9NSU5VVEUpIC8gMTAwMCxcbiAgICAgICAgICAgICkgfHwgMDtcbiAgICAgICAgY29uc3QgbXMgPVxuICAgICAgICAgICAgTWF0aC5mbG9vcihcbiAgICAgICAgICAgICAgICAoKG1pbGxpc2Vjb25kcyAlIE1JTExJU0VDT05EU19JTl9IT1VSKSAlIE1JTExJU0VDT05EU19JTl9NSU5VVEUpICUgMTAwMCxcbiAgICAgICAgICAgICkgfHwgMDtcblxuICAgICAgICByZXR1cm4gbmV3IFR1aVRpbWUoaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMsIG1zKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQYXJzZXMgc3RyaW5nIGludG8gVHVpVGltZSBvYmplY3RcbiAgICAgKi9cbiAgICBzdGF0aWMgZnJvbVN0cmluZyh0aW1lOiBzdHJpbmcpOiBUdWlUaW1lIHtcbiAgICAgICAgY29uc3QgaG91cnMgPSBOdW1iZXIodGltZS5zbGljZSgwLCAyKSk7XG4gICAgICAgIGNvbnN0IG1pbnV0ZXMgPSBOdW1iZXIodGltZS5zbGljZSgzLCA1KSk7XG4gICAgICAgIGNvbnN0IHNlY29uZHMgPSBOdW1iZXIodGltZS5zbGljZSg2LCA4KSkgfHwgMDtcbiAgICAgICAgY29uc3QgbXMgPSBOdW1iZXIodGltZS5zbGljZSg5LCAxMikpIHx8IDA7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBUdWlUaW1lKGhvdXJzLCBtaW51dGVzLCBzZWNvbmRzLCBtcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgRGF0ZSBvYmplY3QgaW50byBUdWlUaW1lXG4gICAgICogQHBhcmFtIGRhdGVcbiAgICAgKi9cbiAgICBzdGF0aWMgZnJvbUxvY2FsTmF0aXZlRGF0ZShkYXRlOiBEYXRlKTogVHVpVGltZSB7XG4gICAgICAgIHJldHVybiBuZXcgVHVpVGltZShcbiAgICAgICAgICAgIGRhdGUuZ2V0SG91cnMoKSxcbiAgICAgICAgICAgIGRhdGUuZ2V0TWludXRlcygpLFxuICAgICAgICAgICAgZGF0ZS5nZXRTZWNvbmRzKCksXG4gICAgICAgICAgICBkYXRlLmdldE1pbGxpc2Vjb25kcygpLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNoaWZ0cyB0aW1lIGJ5IGhvdXJzIGFuZCBtaW51dGVzXG4gICAgICovXG4gICAgc2hpZnQoe2hvdXJzID0gMCwgbWludXRlcyA9IDAsIHNlY29uZHMgPSAwLCBtcyA9IDB9OiBUdWlUaW1lTGlrZSk6IFR1aVRpbWUge1xuICAgICAgICBjb25zdCBuZXdNcyA9ICgxMDAwICsgdGhpcy5tcyArIChtcyAlIDEwMDApKSAlIDEwMDA7XG5cbiAgICAgICAgY29uc3Qgc2Vjb25kc0luTXMgPSBtcyA8IDAgPyBNYXRoLmNlaWwobXMgLyAxMDAwKSA6IE1hdGguZmxvb3IobXMgLyAxMDAwKTtcbiAgICAgICAgY29uc3Qgc2Vjb25kc1RvQWRkID0gc2Vjb25kc0luTXMgKyBzZWNvbmRzO1xuICAgICAgICBjb25zdCBuZXdTZWNvbmRzID0gKDYwICsgdGhpcy5zZWNvbmRzICsgKHNlY29uZHNUb0FkZCAlIDYwKSkgJSA2MDtcblxuICAgICAgICBjb25zdCBtaW51dGVzSW5TZWNvbmRzID1cbiAgICAgICAgICAgIHNlY29uZHNUb0FkZCA8IDBcbiAgICAgICAgICAgICAgICA/IE1hdGguY2VpbChzZWNvbmRzVG9BZGQgLyA2MClcbiAgICAgICAgICAgICAgICA6IE1hdGguZmxvb3Ioc2Vjb25kc1RvQWRkIC8gNjApO1xuICAgICAgICBjb25zdCBtaW51dGVzVG9BZGQgPSBtaW51dGVzSW5TZWNvbmRzICsgbWludXRlcztcbiAgICAgICAgY29uc3QgbmV3TWludXRlcyA9ICg2MCArIHRoaXMubWludXRlcyArIChtaW51dGVzVG9BZGQgJSA2MCkpICUgNjA7XG5cbiAgICAgICAgY29uc3QgaG91cnNJbk1pbnV0ZXMgPVxuICAgICAgICAgICAgbWludXRlc1RvQWRkIDwgMFxuICAgICAgICAgICAgICAgID8gTWF0aC5jZWlsKG1pbnV0ZXNUb0FkZCAvIDYwKVxuICAgICAgICAgICAgICAgIDogTWF0aC5mbG9vcihtaW51dGVzVG9BZGQgLyA2MCk7XG4gICAgICAgIGNvbnN0IGhvdXJzVG9BZGQgPSBob3Vyc0luTWludXRlcyArIGhvdXJzO1xuICAgICAgICBjb25zdCBuZXdIb3VycyA9ICgyNCArIHRoaXMuaG91cnMgKyAoaG91cnNUb0FkZCAlIDI0KSkgJSAyNDtcblxuICAgICAgICByZXR1cm4gbmV3IFR1aVRpbWUobmV3SG91cnMsIG5ld01pbnV0ZXMsIG5ld1NlY29uZHMsIG5ld01zKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBUdWlUaW1lIHRvIHN0cmluZ1xuICAgICAqL1xuICAgIHRvU3RyaW5nKG1vZGU/OiBUdWlUaW1lTW9kZSk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IG5lZWRBZGRNcyA9IG1vZGUgPT09ICdISDpNTTpTUy5NU1MnIHx8ICghbW9kZSAmJiB0aGlzLm1zID4gMCk7XG4gICAgICAgIGNvbnN0IG5lZWRBZGRTZWNvbmRzID1cbiAgICAgICAgICAgIG5lZWRBZGRNcyB8fCBtb2RlID09PSAnSEg6TU06U1MnIHx8ICghbW9kZSAmJiB0aGlzLnNlY29uZHMgPiAwKTtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgYCR7dGhpcy5mb3JtYXRUaW1lKHRoaXMuaG91cnMpfToke3RoaXMuZm9ybWF0VGltZSh0aGlzLm1pbnV0ZXMpfWAgK1xuICAgICAgICAgICAgYCR7bmVlZEFkZFNlY29uZHMgPyBgOiR7dGhpcy5mb3JtYXRUaW1lKHRoaXMuc2Vjb25kcyl9YCA6ICcnfWAgK1xuICAgICAgICAgICAgYCR7bmVlZEFkZE1zID8gYC4ke3RoaXMuZm9ybWF0VGltZSh0aGlzLm1zLCAzKX1gIDogJyd9YFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIFR1aVRpbWUgdG8gbWlsbGlzZWNvbmRzXG4gICAgICovXG4gICAgdG9BYnNvbHV0ZU1pbGxpc2Vjb25kcygpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5ob3VycyAqIE1JTExJU0VDT05EU19JTl9IT1VSICtcbiAgICAgICAgICAgIHRoaXMubWludXRlcyAqIE1JTExJU0VDT05EU19JTl9NSU5VVEUgK1xuICAgICAgICAgICAgdGhpcy5zZWNvbmRzICogMTAwMCArXG4gICAgICAgICAgICB0aGlzLm1zXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb3JtYXRUaW1lKHRpbWU6IG51bWJlciwgZGlnaXRzOiBudW1iZXIgPSAyKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHBhZFN0YXJ0KFN0cmluZyh0aW1lKSwgZGlnaXRzLCAnMCcpO1xuICAgIH1cbn1cbiJdfQ==