@ng-doc/ui-kit 17.6.16 → 18.0.0-beta.2

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 (237) hide show
  1. package/animations/index.d.ts +1 -0
  2. package/animations/popup.d.ts +2 -0
  3. package/assets/icons/16/maximize.svg +1 -0
  4. package/assets/icons/16/zoom-in.svg +1 -0
  5. package/assets/icons/16/zoom-out.svg +1 -0
  6. package/assets/icons/24/activity.svg +1 -0
  7. package/assets/icons/24/check.svg +1 -0
  8. package/classes/base-input/base-input.d.ts +1 -0
  9. package/components/blockquote/blockquote.component.d.ts +2 -1
  10. package/components/button/button.component.d.ts +20 -0
  11. package/components/button-icon/button-icon.component.d.ts +1 -1
  12. package/components/button-toggle/button-toggle.component.d.ts +8 -0
  13. package/components/button-toggle/index.d.ts +1 -0
  14. package/components/expander/expander.component.d.ts +5 -3
  15. package/components/floated-content/floated-content.component.d.ts +2 -8
  16. package/components/icon/icon.component.d.ts +1 -0
  17. package/components/index.d.ts +4 -0
  18. package/components/input-wrapper/input-wrapper.component.d.ts +1 -3
  19. package/components/magnifier/index.d.ts +1 -0
  20. package/components/magnifier/magnifier.component.d.ts +21 -0
  21. package/components/magnifier-controller/index.d.ts +1 -0
  22. package/components/magnifier-controller/magnifier-controller.component.d.ts +7 -0
  23. package/components/overlay-container/overlay-container.component.d.ts +6 -5
  24. package/components/sidenav/sidenav.component.d.ts +2 -20
  25. package/components/tab-group/tab/tab.component.d.ts +1 -1
  26. package/components/tab-routes-group/index.d.ts +2 -0
  27. package/components/tab-routes-group/tab-route/tab-route.component.d.ts +7 -0
  28. package/components/tab-routes-group/tab-routes-group.component.d.ts +6 -0
  29. package/directives/index.d.ts +1 -1
  30. package/directives/radio-group/index.d.ts +1 -0
  31. package/directives/radio-group/radio-group.directive.d.ts +7 -0
  32. package/directives/rotator/rotator.directive.d.ts +5 -9
  33. package/esm2022/animations/index.mjs +2 -1
  34. package/esm2022/animations/popup.mjs +8 -0
  35. package/esm2022/cdk/combobox-host/combobox-host.component.mjs +3 -3
  36. package/esm2022/classes/base-input/base-input.mjs +7 -6
  37. package/esm2022/classes/overlay-ref/overlay-ref.mjs +2 -2
  38. package/esm2022/components/blockquote/blockquote.component.mjs +7 -5
  39. package/esm2022/components/button/button.component.mjs +25 -5
  40. package/esm2022/components/button-icon/button-icon.component.mjs +5 -5
  41. package/esm2022/components/button-toggle/button-toggle.component.mjs +23 -0
  42. package/esm2022/components/button-toggle/index.mjs +2 -0
  43. package/esm2022/components/button-toggle/ng-doc-ui-kit-components-button-toggle.mjs +5 -0
  44. package/esm2022/components/checkbox/checkbox.component.mjs +5 -5
  45. package/esm2022/components/clear-control/clear-control.component.mjs +5 -5
  46. package/esm2022/components/combobox/combobox.component.mjs +6 -6
  47. package/esm2022/components/data-list/data-list.component.mjs +4 -4
  48. package/esm2022/components/data-list-group/data-list-group.component.mjs +3 -3
  49. package/esm2022/components/dialog-outlet/dialog-outlet.component.mjs +3 -3
  50. package/esm2022/components/dot/dot.component.mjs +3 -3
  51. package/esm2022/components/dropdown/dropdown.component.mjs +3 -3
  52. package/esm2022/components/expander/expander.component.mjs +13 -13
  53. package/esm2022/components/floated-border/floated-border.component.mjs +3 -3
  54. package/esm2022/components/floated-content/floated-content.component.mjs +9 -30
  55. package/esm2022/components/focus-control/focus-control.component.mjs +3 -3
  56. package/esm2022/components/icon/icon.component.mjs +7 -6
  57. package/esm2022/components/index.mjs +5 -1
  58. package/esm2022/components/input-wrapper/input-wrapper.component.mjs +6 -12
  59. package/esm2022/components/label/label.component.mjs +3 -3
  60. package/esm2022/components/line/line.component.mjs +3 -3
  61. package/esm2022/components/list/list.component.mjs +3 -3
  62. package/esm2022/components/magnifier/index.mjs +2 -0
  63. package/esm2022/components/magnifier/magnifier.component.mjs +79 -0
  64. package/esm2022/components/magnifier/ng-doc-ui-kit-components-magnifier.mjs +5 -0
  65. package/esm2022/components/magnifier-controller/index.mjs +2 -0
  66. package/esm2022/components/magnifier-controller/magnifier-controller.component.mjs +16 -0
  67. package/esm2022/components/magnifier-controller/ng-doc-ui-kit-components-magnifier-controller.mjs +5 -0
  68. package/esm2022/components/option/option.component.mjs +3 -3
  69. package/esm2022/components/option-group/option-group.component.mjs +6 -6
  70. package/esm2022/components/overlay-container/overlay-container.component.mjs +14 -8
  71. package/esm2022/components/overlay-pointer/overlay-pointer.component.mjs +3 -3
  72. package/esm2022/components/pane/pane.component.mjs +9 -9
  73. package/esm2022/components/selection/selection-host.directive.mjs +3 -3
  74. package/esm2022/components/selection/selection-origin.directive.mjs +3 -3
  75. package/esm2022/components/selection/selection.component.mjs +6 -5
  76. package/esm2022/components/sidenav/sidenav.component.mjs +10 -130
  77. package/esm2022/components/smooth-resize/smooth-resize.component.mjs +3 -3
  78. package/esm2022/components/spinner/spinner.component.mjs +3 -3
  79. package/esm2022/components/tab-group/tab/tab.component.mjs +5 -5
  80. package/esm2022/components/tab-group/tab-group.component.mjs +4 -4
  81. package/esm2022/components/tab-routes-group/index.mjs +3 -0
  82. package/esm2022/components/tab-routes-group/ng-doc-ui-kit-components-tab-routes-group.mjs +5 -0
  83. package/esm2022/components/tab-routes-group/tab-route/tab-route.component.mjs +21 -0
  84. package/esm2022/components/tab-routes-group/tab-routes-group.component.mjs +14 -0
  85. package/esm2022/components/tag/tag.component.mjs +4 -4
  86. package/esm2022/components/text/text-left.directive.mjs +3 -3
  87. package/esm2022/components/text/text-right.directive.mjs +3 -3
  88. package/esm2022/components/text/text.component.mjs +5 -5
  89. package/esm2022/components/toggle/toggle.component.mjs +3 -3
  90. package/esm2022/components/wrapper/wrapper.component.mjs +3 -3
  91. package/esm2022/directives/autofocus/autofocus.directive.mjs +3 -3
  92. package/esm2022/directives/checked-change/checked-change.directive.mjs +3 -3
  93. package/esm2022/directives/data/data.directive.mjs +3 -3
  94. package/esm2022/directives/dropdown-handler/dropdown-handler.directive.mjs +3 -3
  95. package/esm2022/directives/dropdown-origin/dropdown-origin.directive.mjs +3 -3
  96. package/esm2022/directives/event-switcher/event-switcher.directive.mjs +3 -3
  97. package/esm2022/directives/focus-catcher/focus-catcher.directive.mjs +3 -3
  98. package/esm2022/directives/focusable/focusable.directive.mjs +3 -3
  99. package/esm2022/directives/hotkey/hotkey.directive.mjs +3 -3
  100. package/esm2022/directives/index.mjs +2 -2
  101. package/esm2022/directives/input-number/input-number.directive.mjs +3 -3
  102. package/esm2022/directives/input-string/input-string.directive.mjs +3 -3
  103. package/esm2022/directives/let/let.directive.mjs +3 -3
  104. package/esm2022/directives/radio-group/index.mjs +2 -0
  105. package/esm2022/directives/{media-query/ng-doc-ui-kit-directives-media-query.mjs → radio-group/ng-doc-ui-kit-directives-radio-group.mjs} +1 -1
  106. package/esm2022/directives/radio-group/radio-group.directive.mjs +19 -0
  107. package/esm2022/directives/rotator/rotator.directive.mjs +15 -23
  108. package/esm2022/directives/tooltip/tooltip.directive.mjs +3 -3
  109. package/esm2022/interceptors/cache.interceptor.mjs +3 -3
  110. package/esm2022/observables/zone.mjs +5 -1
  111. package/esm2022/pipes/as-array/as-array.pipe.mjs +3 -3
  112. package/esm2022/pipes/bind/bind.pipe.mjs +4 -4
  113. package/esm2022/pipes/execute/execute.pipe.mjs +3 -3
  114. package/esm2022/pipes/highlighter/highlighter.pipe.mjs +3 -3
  115. package/esm2022/services/dialog/dialog.config.mjs +1 -1
  116. package/esm2022/services/dialog/dialog.service.mjs +14 -12
  117. package/esm2022/services/notify/notify.service.mjs +3 -3
  118. package/esm2022/services/overlay/overlay.service.mjs +6 -6
  119. package/esm2022/services/overlay-strategy/overlay-strategy.mjs +3 -3
  120. package/esm2022/services/scroll/scroll.service.mjs +3 -3
  121. package/esm2022/types/blockquote-type.mjs +1 -1
  122. package/esm2022/types/color.mjs +1 -1
  123. package/esm2022/types/content.mjs +1 -1
  124. package/fesm2022/ng-doc-ui-kit-animations.mjs +8 -1
  125. package/fesm2022/ng-doc-ui-kit-animations.mjs.map +1 -1
  126. package/fesm2022/ng-doc-ui-kit-cdk-combobox-host.mjs +3 -3
  127. package/fesm2022/ng-doc-ui-kit-classes-base-input.mjs +6 -5
  128. package/fesm2022/ng-doc-ui-kit-classes-base-input.mjs.map +1 -1
  129. package/fesm2022/ng-doc-ui-kit-classes-overlay-ref.mjs +1 -1
  130. package/fesm2022/ng-doc-ui-kit-classes-overlay-ref.mjs.map +1 -1
  131. package/fesm2022/ng-doc-ui-kit-components-blockquote.mjs +6 -4
  132. package/fesm2022/ng-doc-ui-kit-components-blockquote.mjs.map +1 -1
  133. package/fesm2022/ng-doc-ui-kit-components-button-icon.mjs +4 -4
  134. package/fesm2022/ng-doc-ui-kit-components-button-icon.mjs.map +1 -1
  135. package/fesm2022/ng-doc-ui-kit-components-button-toggle.mjs +30 -0
  136. package/fesm2022/ng-doc-ui-kit-components-button-toggle.mjs.map +1 -0
  137. package/fesm2022/ng-doc-ui-kit-components-button.mjs +24 -4
  138. package/fesm2022/ng-doc-ui-kit-components-button.mjs.map +1 -1
  139. package/fesm2022/ng-doc-ui-kit-components-checkbox.mjs +4 -4
  140. package/fesm2022/ng-doc-ui-kit-components-checkbox.mjs.map +1 -1
  141. package/fesm2022/ng-doc-ui-kit-components-clear-control.mjs +4 -4
  142. package/fesm2022/ng-doc-ui-kit-components-clear-control.mjs.map +1 -1
  143. package/fesm2022/ng-doc-ui-kit-components-combobox.mjs +5 -5
  144. package/fesm2022/ng-doc-ui-kit-components-combobox.mjs.map +1 -1
  145. package/fesm2022/ng-doc-ui-kit-components-data-list-group.mjs +3 -3
  146. package/fesm2022/ng-doc-ui-kit-components-data-list.mjs +4 -4
  147. package/fesm2022/ng-doc-ui-kit-components-dialog-outlet.mjs +3 -3
  148. package/fesm2022/ng-doc-ui-kit-components-dot.mjs +3 -3
  149. package/fesm2022/ng-doc-ui-kit-components-dropdown.mjs +3 -3
  150. package/fesm2022/ng-doc-ui-kit-components-expander.mjs +12 -12
  151. package/fesm2022/ng-doc-ui-kit-components-expander.mjs.map +1 -1
  152. package/fesm2022/ng-doc-ui-kit-components-floated-border.mjs +3 -3
  153. package/fesm2022/ng-doc-ui-kit-components-floated-content.mjs +8 -29
  154. package/fesm2022/ng-doc-ui-kit-components-floated-content.mjs.map +1 -1
  155. package/fesm2022/ng-doc-ui-kit-components-focus-control.mjs +3 -3
  156. package/fesm2022/ng-doc-ui-kit-components-icon.mjs +6 -5
  157. package/fesm2022/ng-doc-ui-kit-components-icon.mjs.map +1 -1
  158. package/fesm2022/ng-doc-ui-kit-components-input-wrapper.mjs +5 -11
  159. package/fesm2022/ng-doc-ui-kit-components-input-wrapper.mjs.map +1 -1
  160. package/fesm2022/ng-doc-ui-kit-components-label.mjs +3 -3
  161. package/fesm2022/ng-doc-ui-kit-components-line.mjs +3 -3
  162. package/fesm2022/ng-doc-ui-kit-components-list.mjs +3 -3
  163. package/fesm2022/ng-doc-ui-kit-components-magnifier-controller.mjs +23 -0
  164. package/fesm2022/ng-doc-ui-kit-components-magnifier-controller.mjs.map +1 -0
  165. package/fesm2022/ng-doc-ui-kit-components-magnifier.mjs +86 -0
  166. package/fesm2022/ng-doc-ui-kit-components-magnifier.mjs.map +1 -0
  167. package/fesm2022/ng-doc-ui-kit-components-option-group.mjs +6 -6
  168. package/fesm2022/ng-doc-ui-kit-components-option.mjs +3 -3
  169. package/fesm2022/ng-doc-ui-kit-components-overlay-container.mjs +13 -7
  170. package/fesm2022/ng-doc-ui-kit-components-overlay-container.mjs.map +1 -1
  171. package/fesm2022/ng-doc-ui-kit-components-overlay-pointer.mjs +3 -3
  172. package/fesm2022/ng-doc-ui-kit-components-pane.mjs +9 -9
  173. package/fesm2022/ng-doc-ui-kit-components-selection.mjs +11 -11
  174. package/fesm2022/ng-doc-ui-kit-components-selection.mjs.map +1 -1
  175. package/fesm2022/ng-doc-ui-kit-components-sidenav.mjs +9 -129
  176. package/fesm2022/ng-doc-ui-kit-components-sidenav.mjs.map +1 -1
  177. package/fesm2022/ng-doc-ui-kit-components-smooth-resize.mjs +3 -3
  178. package/fesm2022/ng-doc-ui-kit-components-spinner.mjs +3 -3
  179. package/fesm2022/ng-doc-ui-kit-components-tab-group.mjs +8 -8
  180. package/fesm2022/ng-doc-ui-kit-components-tab-group.mjs.map +1 -1
  181. package/fesm2022/ng-doc-ui-kit-components-tab-routes-group.mjs +37 -0
  182. package/fesm2022/ng-doc-ui-kit-components-tab-routes-group.mjs.map +1 -0
  183. package/fesm2022/ng-doc-ui-kit-components-tag.mjs +4 -4
  184. package/fesm2022/ng-doc-ui-kit-components-tag.mjs.map +1 -1
  185. package/fesm2022/ng-doc-ui-kit-components-text.mjs +10 -10
  186. package/fesm2022/ng-doc-ui-kit-components-text.mjs.map +1 -1
  187. package/fesm2022/ng-doc-ui-kit-components-toggle.mjs +3 -3
  188. package/fesm2022/ng-doc-ui-kit-components-wrapper.mjs +3 -3
  189. package/fesm2022/ng-doc-ui-kit-components.mjs +4 -0
  190. package/fesm2022/ng-doc-ui-kit-components.mjs.map +1 -1
  191. package/fesm2022/ng-doc-ui-kit-directives-autofocus.mjs +3 -3
  192. package/fesm2022/ng-doc-ui-kit-directives-checked-change.mjs +3 -3
  193. package/fesm2022/ng-doc-ui-kit-directives-data.mjs +3 -3
  194. package/fesm2022/ng-doc-ui-kit-directives-dropdown-handler.mjs +3 -3
  195. package/fesm2022/ng-doc-ui-kit-directives-dropdown-origin.mjs +3 -3
  196. package/fesm2022/ng-doc-ui-kit-directives-event-switcher.mjs +3 -3
  197. package/fesm2022/ng-doc-ui-kit-directives-focus-catcher.mjs +3 -3
  198. package/fesm2022/ng-doc-ui-kit-directives-focusable.mjs +3 -3
  199. package/fesm2022/ng-doc-ui-kit-directives-hotkey.mjs +3 -3
  200. package/fesm2022/ng-doc-ui-kit-directives-input-number.mjs +3 -3
  201. package/fesm2022/ng-doc-ui-kit-directives-input-string.mjs +3 -3
  202. package/fesm2022/ng-doc-ui-kit-directives-let.mjs +3 -3
  203. package/fesm2022/ng-doc-ui-kit-directives-radio-group.mjs +26 -0
  204. package/fesm2022/ng-doc-ui-kit-directives-radio-group.mjs.map +1 -0
  205. package/fesm2022/ng-doc-ui-kit-directives-rotator.mjs +14 -22
  206. package/fesm2022/ng-doc-ui-kit-directives-rotator.mjs.map +1 -1
  207. package/fesm2022/ng-doc-ui-kit-directives-tooltip.mjs +3 -3
  208. package/fesm2022/ng-doc-ui-kit-directives.mjs +1 -1
  209. package/fesm2022/ng-doc-ui-kit-interceptors.mjs +3 -3
  210. package/fesm2022/ng-doc-ui-kit-observables.mjs +4 -0
  211. package/fesm2022/ng-doc-ui-kit-observables.mjs.map +1 -1
  212. package/fesm2022/ng-doc-ui-kit-pipes-as-array.mjs +3 -3
  213. package/fesm2022/ng-doc-ui-kit-pipes-bind.mjs +3 -3
  214. package/fesm2022/ng-doc-ui-kit-pipes-bind.mjs.map +1 -1
  215. package/fesm2022/ng-doc-ui-kit-pipes-execute.mjs +3 -3
  216. package/fesm2022/ng-doc-ui-kit-pipes-highlighter.mjs +3 -3
  217. package/fesm2022/ng-doc-ui-kit-services-dialog.mjs +14 -12
  218. package/fesm2022/ng-doc-ui-kit-services-dialog.mjs.map +1 -1
  219. package/fesm2022/ng-doc-ui-kit-services-notify.mjs +3 -3
  220. package/fesm2022/ng-doc-ui-kit-services-overlay-strategy.mjs +3 -3
  221. package/fesm2022/ng-doc-ui-kit-services-overlay.mjs +5 -5
  222. package/fesm2022/ng-doc-ui-kit-services-overlay.mjs.map +1 -1
  223. package/fesm2022/ng-doc-ui-kit-services-scroll.mjs +3 -3
  224. package/fesm2022/ng-doc-ui-kit-types.mjs.map +1 -1
  225. package/observables/zone.d.ts +3 -3
  226. package/package.json +40 -16
  227. package/services/dialog/dialog.config.d.ts +3 -1
  228. package/services/dialog/dialog.service.d.ts +4 -0
  229. package/styles/main.css +15 -9
  230. package/types/blockquote-type.d.ts +1 -1
  231. package/types/color.d.ts +1 -1
  232. package/directives/media-query/index.d.ts +0 -1
  233. package/directives/media-query/media-query.directive.d.ts +0 -15
  234. package/esm2022/directives/media-query/index.mjs +0 -2
  235. package/esm2022/directives/media-query/media-query.directive.mjs +0 -50
  236. package/fesm2022/ng-doc-ui-kit-directives-media-query.mjs +0 -56
  237. package/fesm2022/ng-doc-ui-kit-directives-media-query.mjs.map +0 -1
@@ -1,5 +1,6 @@
1
1
  export * from './expand-collapse';
2
2
  export * from './fade';
3
3
  export * from './overlay';
4
+ export * from './popup';
4
5
  export * from './prevent-initial-animation';
5
6
  export * from './tab-fade';
@@ -0,0 +1,2 @@
1
+ import { AnimationTriggerMetadata } from '@angular/animations';
2
+ export declare const popupAnimation: AnimationTriggerMetadata;
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-maximize"><path d="M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3"></path></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-zoom-in"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line><line x1="11" y1="8" x2="11" y2="14"></line><line x1="8" y1="11" x2="14" y2="11"></line></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-zoom-out"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line><line x1="8" y1="11" x2="14" y2="11"></line></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-activity"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-check"><polyline points="20 6 9 17 4 12"></polyline></svg>
@@ -6,6 +6,7 @@ import * as i0 from "@angular/core";
6
6
  export declare abstract class NgDocBaseInput<T> extends DIControl<T> {
7
7
  readonly elementRef: ElementRef<HTMLInputElement>;
8
8
  readonly changes: Subject<void>;
9
+ protected readonly document: Document;
9
10
  protected constructor(config?: DIControlConfig<T, T>);
10
11
  get hostClasses(): string;
11
12
  get placeholder(): string;
@@ -2,6 +2,7 @@ import { NgDocBlockquoteType } from '@ng-doc/ui-kit/types';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class NgDocBlockquoteComponent {
4
4
  type: NgDocBlockquoteType;
5
+ icon?: string;
5
6
  static ɵfac: i0.ɵɵFactoryDeclaration<NgDocBlockquoteComponent, never>;
6
- static ɵcmp: i0.ɵɵComponentDeclaration<NgDocBlockquoteComponent, "blockquote[ng-doc-blockquote]", never, { "type": { "alias": "type"; "required": false; }; }, {}, never, ["*"], true, never>;
7
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgDocBlockquoteComponent, "blockquote[ng-doc-blockquote]", never, { "type": { "alias": "type"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; }, {}, never, ["*"], true, never>;
7
8
  }
@@ -1,8 +1,28 @@
1
1
  import { NgDocColor, NgDocSize } from '@ng-doc/ui-kit/types';
2
2
  import * as i0 from "@angular/core";
3
+ /**
4
+ * `NgDocButtonComponent` is a reusable button component with customizable properties.
5
+ * It can be used as a regular button, a flat button, or a text button.
6
+ * @example
7
+ * ```html
8
+ * <button ng-doc-button [size]="'large'" [color]="'secondary'" [rounded]="true">Click me</button>
9
+ * ```
10
+ */
3
11
  export declare class NgDocButtonComponent {
12
+ /**
13
+ * Size of the button. Can be 'small', 'medium', or 'large'.
14
+ * Default is 'small'.
15
+ */
4
16
  size: NgDocSize;
17
+ /**
18
+ * Color of the button. Can be 'primary', 'secondary', etc.
19
+ * Default is 'primary'.
20
+ */
5
21
  color: NgDocColor;
22
+ /**
23
+ * Whether the button is rounded or not.
24
+ * Default is false.
25
+ */
6
26
  rounded: boolean;
7
27
  static ɵfac: i0.ɵɵFactoryDeclaration<NgDocButtonComponent, never>;
8
28
  static ɵcmp: i0.ɵɵComponentDeclaration<NgDocButtonComponent, "button[ng-doc-button], a[ng-doc-button], button[ng-doc-button-flat], a[ng-doc-button-flat], button[ng-doc-button-text], a[ng-doc-button-text]", never, { "size": { "alias": "size"; "required": false; }; "color": { "alias": "color"; "required": false; }; "rounded": { "alias": "rounded"; "required": false; }; }, {}, never, ["*"], true, never>;
@@ -4,5 +4,5 @@ export declare class NgDocButtonIconComponent {
4
4
  size: NgDocSize;
5
5
  rounded: boolean;
6
6
  static ɵfac: i0.ɵɵFactoryDeclaration<NgDocButtonIconComponent, never>;
7
- static ɵcmp: i0.ɵɵComponentDeclaration<NgDocButtonIconComponent, "button[ng-doc-button-icon], a[ng-doc-button-icon]", never, { "size": { "alias": "size"; "required": false; }; "rounded": { "alias": "rounded"; "required": false; }; }, {}, never, ["*"], true, never>;
7
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgDocButtonIconComponent, "button[ng-doc-button-icon], a[ng-doc-button-icon], button[ng-doc-button-icon-raised], a[ng-doc-button-icon-raised], button[ng-doc-button-icon-transparent], a[ng-doc-button-icon-transparent]", never, { "size": { "alias": "size"; "required": false; }; "rounded": { "alias": "rounded"; "required": false; }; }, {}, never, ["*"], true, never>;
8
8
  }
@@ -0,0 +1,8 @@
1
+ import { DIStateControl } from 'di-controls';
2
+ import * as i0 from "@angular/core";
3
+ export declare class NgDocButtonToggleComponent<T> extends DIStateControl<T> {
4
+ constructor();
5
+ clickEvent(): void;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgDocButtonToggleComponent<any>, never>;
7
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgDocButtonToggleComponent<any>, "[ng-doc-button-toggle]", never, {}, {}, never, ["*"], true, never>;
8
+ }
@@ -0,0 +1 @@
1
+ export * from './button-toggle.component';
@@ -1,15 +1,17 @@
1
+ import { AfterViewInit } from '@angular/core';
1
2
  import { NgDocContent } from '@ng-doc/ui-kit/types';
2
3
  import * as i0 from "@angular/core";
3
4
  /** Component helps to expand or collapse content */
4
- export declare class NgDocExpanderComponent {
5
+ export declare class NgDocExpanderComponent implements AfterViewInit {
5
6
  /** Change expand state */
6
7
  expanded: boolean;
7
8
  /** Expander content */
8
9
  content: NgDocContent;
9
10
  /** Closed height could be used to show preview of the content */
10
11
  from: number;
11
- preventInitialChild?: never;
12
+ protected animationDisabled: boolean;
13
+ ngAfterViewInit(): void;
12
14
  toggle(): void;
13
15
  static ɵfac: i0.ɵɵFactoryDeclaration<NgDocExpanderComponent, never>;
14
- static ɵcmp: i0.ɵɵComponentDeclaration<NgDocExpanderComponent, "ng-doc-expander", never, { "expanded": { "alias": "expanded"; "required": false; }; "content": { "alias": "content"; "required": false; }; "from": { "alias": "from"; "required": false; }; }, {}, never, never, true, never>;
16
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgDocExpanderComponent, "ng-doc-expander", never, { "expanded": { "alias": "expanded"; "required": false; }; "content": { "alias": "content"; "required": true; }; "from": { "alias": "from"; "required": false; }; }, {}, never, never, true, never>;
15
17
  }
@@ -1,16 +1,10 @@
1
- import { AfterViewChecked, ElementRef, NgZone, Renderer2 } from '@angular/core';
2
1
  import { BaseElement, NgDocHorizontalAlign } from '@ng-doc/ui-kit/types';
3
2
  import * as i0 from "@angular/core";
4
- export declare class NgDocFloatedContentComponent implements AfterViewChecked {
5
- private elementRef;
6
- private renderer;
7
- private ngZone;
3
+ export declare class NgDocFloatedContentComponent {
8
4
  bindTo?: BaseElement<HTMLElement>;
9
5
  propertyName: string;
10
6
  alignTo: NgDocHorizontalAlign;
11
- constructor(elementRef: ElementRef<HTMLElement>, renderer: Renderer2, ngZone: NgZone);
12
- ngAfterViewChecked(): void;
13
- setPadding(padding: number): void;
7
+ readonly element: HTMLElement;
14
8
  static ɵfac: i0.ɵɵFactoryDeclaration<NgDocFloatedContentComponent, never>;
15
9
  static ɵcmp: i0.ɵɵComponentDeclaration<NgDocFloatedContentComponent, "[ng-doc-floated-content]", never, { "bindTo": { "alias": "bindTo"; "required": false; }; "propertyName": { "alias": "propertyName"; "required": false; }; "alignTo": { "alias": "alignTo"; "required": false; }; }, {}, never, ["*"], true, never>;
16
10
  }
@@ -20,4 +20,5 @@ export declare class NgDocIconComponent implements OnChanges, OnInit {
20
20
  get href(): string;
21
21
  static ɵfac: i0.ɵɵFactoryDeclaration<NgDocIconComponent, never>;
22
22
  static ɵcmp: i0.ɵɵComponentDeclaration<NgDocIconComponent, "ng-doc-icon", never, { "icon": { "alias": "icon"; "required": false; }; "customIcon": { "alias": "customIcon"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
23
+ static ngAcceptInputType_size: unknown;
23
24
  }
@@ -1,6 +1,7 @@
1
1
  export * from '@ng-doc/ui-kit/components/blockquote';
2
2
  export * from '@ng-doc/ui-kit/components/button';
3
3
  export * from '@ng-doc/ui-kit/components/button-icon';
4
+ export * from '@ng-doc/ui-kit/components/button-toggle';
4
5
  export * from '@ng-doc/ui-kit/components/checkbox';
5
6
  export * from '@ng-doc/ui-kit/components/clear-control';
6
7
  export * from '@ng-doc/ui-kit/components/combobox';
@@ -18,6 +19,8 @@ export * from '@ng-doc/ui-kit/components/input-wrapper';
18
19
  export * from '@ng-doc/ui-kit/components/label';
19
20
  export * from '@ng-doc/ui-kit/components/line';
20
21
  export * from '@ng-doc/ui-kit/components/list';
22
+ export * from '@ng-doc/ui-kit/components/magnifier';
23
+ export * from '@ng-doc/ui-kit/components/magnifier-controller';
21
24
  export * from '@ng-doc/ui-kit/components/option';
22
25
  export * from '@ng-doc/ui-kit/components/option-group';
23
26
  export * from '@ng-doc/ui-kit/components/overlay-container';
@@ -28,6 +31,7 @@ export * from '@ng-doc/ui-kit/components/sidenav';
28
31
  export * from '@ng-doc/ui-kit/components/smooth-resize';
29
32
  export * from '@ng-doc/ui-kit/components/spinner';
30
33
  export * from '@ng-doc/ui-kit/components/tab-group';
34
+ export * from '@ng-doc/ui-kit/components/tab-routes-group';
31
35
  export * from '@ng-doc/ui-kit/components/tag';
32
36
  export * from '@ng-doc/ui-kit/components/text';
33
37
  export * from '@ng-doc/ui-kit/components/toggle';
@@ -10,8 +10,6 @@ export declare class NgDocInputWrapperComponent<T, B = unknown> implements After
10
10
  protected changeDetectorRef: ChangeDetectorRef;
11
11
  blurContent: NgDocContent<NgDocContextWithImplicit<B | null>>;
12
12
  blurContext: B | null;
13
- leftContent: NgDocContent;
14
- rightContent: NgDocContent;
15
13
  align: NgDocTextAlign;
16
14
  input?: NgDocBaseInput<T>;
17
15
  inputControl?: NgDocBaseInput<T>;
@@ -24,5 +22,5 @@ export declare class NgDocInputWrapperComponent<T, B = unknown> implements After
24
22
  get blurContentIsVisible(): boolean;
25
23
  emptyEvent(): void;
26
24
  static ɵfac: i0.ɵɵFactoryDeclaration<NgDocInputWrapperComponent<any, any>, never>;
27
- static ɵcmp: i0.ɵɵComponentDeclaration<NgDocInputWrapperComponent<any, any>, "ng-doc-input-wrapper", never, { "blurContent": { "alias": "blurContent"; "required": false; }; "blurContext": { "alias": "blurContext"; "required": false; }; "leftContent": { "alias": "leftContent"; "required": false; }; "rightContent": { "alias": "rightContent"; "required": false; }; "align": { "alias": "align"; "required": false; }; }, {}, ["input", "inputControl"], ["*"], true, never>;
25
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgDocInputWrapperComponent<any, any>, "ng-doc-input-wrapper", never, { "blurContent": { "alias": "blurContent"; "required": false; }; "blurContext": { "alias": "blurContext"; "required": false; }; "align": { "alias": "align"; "required": false; }; }, {}, ["input", "inputControl"], ["[ngDocInputWrapperLeft]", "*", "[ngDocInputWrapperRight]"], true, never>;
28
26
  }
@@ -0,0 +1 @@
1
+ export * from './magnifier.component';
@@ -0,0 +1,21 @@
1
+ import { DestroyRef, NgZone, OnInit } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class NgDocMagnifierComponent implements OnInit {
4
+ protected readonly x: import("@angular/core").WritableSignal<number>;
5
+ protected readonly y: import("@angular/core").WritableSignal<number>;
6
+ protected readonly scale: import("@angular/core").WritableSignal<number>;
7
+ protected readonly transform: import("@angular/core").Signal<string>;
8
+ protected readonly drag: import("@angular/core").WritableSignal<boolean>;
9
+ protected readonly document: Document;
10
+ protected readonly element: HTMLElement;
11
+ protected readonly ngZone: NgZone;
12
+ protected readonly destroyRef: DestroyRef;
13
+ constructor();
14
+ ngOnInit(): void;
15
+ incrementX(x: number): void;
16
+ incrementY(y: number): void;
17
+ zoom(diff: number): void;
18
+ reset(): void;
19
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgDocMagnifierComponent, never>;
20
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgDocMagnifierComponent, "ng-doc-magnifier", never, {}, {}, never, ["*"], true, never>;
21
+ }
@@ -0,0 +1 @@
1
+ export * from './magnifier-controller.component';
@@ -0,0 +1,7 @@
1
+ import { NgDocMagnifierComponent } from '@ng-doc/ui-kit/components/magnifier';
2
+ import * as i0 from "@angular/core";
3
+ export declare class MagnifierControllerComponent {
4
+ magnifier: import("@angular/core").InputSignal<NgDocMagnifierComponent>;
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<MagnifierControllerComponent, never>;
6
+ static ɵcmp: i0.ɵɵComponentDeclaration<MagnifierControllerComponent, "ng-doc-magnifier-controller", never, { "magnifier": { "alias": "magnifier"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
7
+ }
@@ -1,28 +1,29 @@
1
1
  import { AnimationBuilder } from '@angular/animations';
2
- import { ChangeDetectorRef, ElementRef, NgZone, OnDestroy, OnInit } from '@angular/core';
2
+ import { AfterViewInit, ChangeDetectorRef, ElementRef, NgZone, OnDestroy, OnInit } from '@angular/core';
3
3
  import { NgDocFocusCatcherDirective } from '@ng-doc/ui-kit/directives/focus-catcher';
4
4
  import { NgDocOverlayConfig, NgDocOverlayContainer } from '@ng-doc/ui-kit/interfaces';
5
5
  import { NgDocContent, NgDocHorizontalAlign, NgDocOverlayAnimationEvent, NgDocOverlayRelativePosition, NgDocVerticalAlign } from '@ng-doc/ui-kit/types';
6
6
  import { PolymorpheusOutletDirective } from '@tinkoff/ng-polymorpheus';
7
7
  import { Observable } from 'rxjs';
8
8
  import * as i0 from "@angular/core";
9
- export declare class NgDocOverlayContainerComponent implements NgDocOverlayContainer, OnInit, OnDestroy {
9
+ export declare class NgDocOverlayContainerComponent implements NgDocOverlayContainer, OnInit, AfterViewInit, OnDestroy {
10
10
  private elementRef;
11
11
  private documentRef;
12
12
  private changeDetectorRef;
13
13
  private ngZone;
14
14
  private animationBuilder;
15
+ content: NgDocContent;
16
+ config?: NgDocOverlayConfig;
15
17
  contentContainer?: ElementRef<HTMLElement>;
16
18
  focusCatcher?: NgDocFocusCatcherDirective;
17
19
  outlet?: PolymorpheusOutletDirective<object>;
18
20
  relativePosition: NgDocOverlayRelativePosition | null;
19
- config?: NgDocOverlayConfig;
20
- content: NgDocContent;
21
21
  private currentPosition?;
22
22
  private animationEvent$;
23
23
  private isOpened;
24
24
  constructor(elementRef: ElementRef<HTMLElement>, documentRef: Document, changeDetectorRef: ChangeDetectorRef, ngZone: NgZone, animationBuilder: AnimationBuilder);
25
25
  ngOnInit(): void;
26
+ ngAfterViewInit(): void;
26
27
  get contactBorder(): boolean;
27
28
  get isFocused(): boolean;
28
29
  get animationEvent(): Observable<NgDocOverlayAnimationEvent>;
@@ -33,5 +34,5 @@ export declare class NgDocOverlayContainerComponent implements NgDocOverlayConta
33
34
  private runAnimation;
34
35
  ngOnDestroy(): void;
35
36
  static ɵfac: i0.ɵɵFactoryDeclaration<NgDocOverlayContainerComponent, never>;
36
- static ɵcmp: i0.ɵɵComponentDeclaration<NgDocOverlayContainerComponent, "ng-doc-overlay-container", never, {}, {}, never, never, true, never>;
37
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgDocOverlayContainerComponent, "ng-doc-overlay-container", never, { "content": { "alias": "content"; "required": false; }; "config": { "alias": "config"; "required": false; }; }, {}, never, never, true, never>;
37
38
  }
@@ -1,21 +1,11 @@
1
- import { AnimationEvent } from '@angular/animations';
2
1
  import { EventEmitter } from '@angular/core';
3
- import { NgDocContent, NgDocHorizontalAlign } from '@ng-doc/ui-kit/types';
2
+ import { NgDocContent } from '@ng-doc/ui-kit/types';
4
3
  import * as i0 from "@angular/core";
5
4
  export declare class NgDocSidenavComponent {
6
5
  /**
7
6
  * Content of the sidenav.
8
7
  */
9
8
  sidebar: NgDocContent;
10
- /**
11
- * Align of the sidenav.
12
- */
13
- align: NgDocHorizontalAlign;
14
- /**
15
- * Indicates whether the sidenav is over the page content or not.
16
- * Which means that the sidenav is not part of the page content.
17
- */
18
- over: boolean;
19
9
  /**
20
10
  * Indicates whether the sidenav is opened or not.
21
11
  * This is used to trigger the animation.
@@ -25,15 +15,7 @@ export declare class NgDocSidenavComponent {
25
15
  * Indicates whether the sidenav has a backdrop or not.
26
16
  */
27
17
  hasBackdrop: boolean;
28
- openedChange: EventEmitter<boolean>;
29
18
  closeEvent: EventEmitter<void>;
30
- beforeOpen: EventEmitter<void>;
31
- beforeClose: EventEmitter<void>;
32
- afterOpen: EventEmitter<void>;
33
- afterClose: EventEmitter<void>;
34
- protected get backdrop(): boolean;
35
- protected animationStart(event: AnimationEvent): void;
36
- protected animationDone(event: AnimationEvent): void;
37
19
  static ɵfac: i0.ɵɵFactoryDeclaration<NgDocSidenavComponent, never>;
38
- static ɵcmp: i0.ɵɵComponentDeclaration<NgDocSidenavComponent, "ng-doc-sidenav", never, { "sidebar": { "alias": "sidebar"; "required": false; }; "align": { "alias": "align"; "required": false; }; "over": { "alias": "over"; "required": false; }; "opened": { "alias": "opened"; "required": false; }; "hasBackdrop": { "alias": "hasBackdrop"; "required": false; }; }, { "openedChange": "openedChange"; "closeEvent": "closeEvent"; "beforeOpen": "beforeOpen"; "beforeClose": "beforeClose"; "afterOpen": "afterOpen"; "afterClose": "afterClose"; }, never, ["*"], true, never>;
20
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgDocSidenavComponent, "ng-doc-sidenav", never, { "sidebar": { "alias": "sidebar"; "required": false; }; "opened": { "alias": "opened"; "required": false; }; "hasBackdrop": { "alias": "hasBackdrop"; "required": false; }; }, { "closeEvent": "closeEvent"; }, never, ["*"], true, never>;
39
21
  }
@@ -6,5 +6,5 @@ export declare class NgDocTabComponent<T> {
6
6
  /** Expander content */
7
7
  content: NgDocContent;
8
8
  static ɵfac: i0.ɵɵFactoryDeclaration<NgDocTabComponent<any>, never>;
9
- static ɵcmp: i0.ɵɵComponentDeclaration<NgDocTabComponent<any>, "ng-doc-tab", never, { "label": { "alias": "label"; "required": false; }; "id": { "alias": "id"; "required": false; }; "content": { "alias": "content"; "required": false; }; }, {}, never, never, true, never>;
9
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgDocTabComponent<any>, "ng-doc-tab, a[ng-doc-tab]", never, { "label": { "alias": "label"; "required": false; }; "id": { "alias": "id"; "required": false; }; "content": { "alias": "content"; "required": false; }; }, {}, never, never, true, never>;
10
10
  }
@@ -0,0 +1,2 @@
1
+ export * from './tab-route/tab-route.component';
2
+ export * from './tab-routes-group.component';
@@ -0,0 +1,7 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "@ng-doc/ui-kit/components/selection";
3
+ export declare class NgDocTabRouteComponent {
4
+ isActive: boolean;
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgDocTabRouteComponent, never>;
6
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgDocTabRouteComponent, "a[ng-doc-tab-route]", never, { "isActive": { "alias": "isActive"; "required": false; }; }, {}, never, ["*"], true, [{ directive: typeof i1.NgDocSelectionOriginDirective; inputs: { "ngDocSelectionOrigin": "isActive"; }; outputs: {}; }]>;
7
+ }
@@ -0,0 +1,6 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "@ng-doc/ui-kit/components/selection";
3
+ export declare class NgDocTabRoutesGroupComponent {
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgDocTabRoutesGroupComponent, never>;
5
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgDocTabRoutesGroupComponent, "ng-doc-tab-routes-group", never, {}, {}, never, ["*"], true, [{ directive: typeof i1.NgDocSelectionHostDirective; inputs: {}; outputs: {}; }]>;
6
+ }
@@ -10,6 +10,6 @@ export * from '@ng-doc/ui-kit/directives/hotkey';
10
10
  export * from '@ng-doc/ui-kit/directives/input-number';
11
11
  export * from '@ng-doc/ui-kit/directives/input-string';
12
12
  export * from '@ng-doc/ui-kit/directives/let';
13
- export * from '@ng-doc/ui-kit/directives/media-query';
13
+ export * from '@ng-doc/ui-kit/directives/radio-group';
14
14
  export * from '@ng-doc/ui-kit/directives/rotator';
15
15
  export * from '@ng-doc/ui-kit/directives/tooltip';
@@ -0,0 +1 @@
1
+ export * from './radio-group.directive';
@@ -0,0 +1,7 @@
1
+ import { DIControl } from 'di-controls';
2
+ import * as i0 from "@angular/core";
3
+ export declare class NgDocRadioGroupDirective<T> extends DIControl<T> {
4
+ constructor();
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgDocRadioGroupDirective<any>, never>;
6
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NgDocRadioGroupDirective<any>, "[ngDocRadioGroup]", never, {}, {}, never, never, true, never>;
7
+ }
@@ -1,19 +1,15 @@
1
- import { ElementRef, OnChanges, OnInit, Renderer2, SimpleChanges } from '@angular/core';
2
1
  import * as i0 from "@angular/core";
3
- /** Directive rotates host with transition */
4
- export declare class NgDocRotatorDirective implements OnChanges, OnInit {
5
- private readonly elementRef;
6
- private readonly renderer;
2
+ /**
3
+ * Directive rotates host with transition
4
+ */
5
+ export declare class NgDocRotatorDirective {
7
6
  /** Rotator state */
8
7
  rotated: boolean;
9
8
  /** Start position angle */
10
9
  from: number;
11
10
  /** End position anle */
12
11
  to: number;
13
- constructor(elementRef: ElementRef<HTMLElement>, renderer: Renderer2);
14
- ngOnChanges({ rotated, to }: SimpleChanges): void;
15
- ngOnInit(): void;
16
- private rotate;
12
+ get transform(): string;
17
13
  static ɵfac: i0.ɵɵFactoryDeclaration<NgDocRotatorDirective, never>;
18
14
  static ɵdir: i0.ɵɵDirectiveDeclaration<NgDocRotatorDirective, "[ngDocRotator]", never, { "rotated": { "alias": "ngDocRotator"; "required": false; }; "from": { "alias": "from"; "required": false; }; "to": { "alias": "to"; "required": false; }; }, {}, never, never, true, never>;
19
15
  }
@@ -1,6 +1,7 @@
1
1
  export * from './expand-collapse';
2
2
  export * from './fade';
3
3
  export * from './overlay';
4
+ export * from './popup';
4
5
  export * from './prevent-initial-animation';
5
6
  export * from './tab-fade';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3VpLWtpdC9hbmltYXRpb25zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZXhwYW5kLWNvbGxhcHNlJztcbmV4cG9ydCAqIGZyb20gJy4vZmFkZSc7XG5leHBvcnQgKiBmcm9tICcuL292ZXJsYXknO1xuZXhwb3J0ICogZnJvbSAnLi9wcmV2ZW50LWluaXRpYWwtYW5pbWF0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vdGFiLWZhZGUnO1xuIl19
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3VpLWtpdC9hbmltYXRpb25zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZXhwYW5kLWNvbGxhcHNlJztcbmV4cG9ydCAqIGZyb20gJy4vZmFkZSc7XG5leHBvcnQgKiBmcm9tICcuL292ZXJsYXknO1xuZXhwb3J0ICogZnJvbSAnLi9wb3B1cCc7XG5leHBvcnQgKiBmcm9tICcuL3ByZXZlbnQtaW5pdGlhbC1hbmltYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi90YWItZmFkZSc7XG4iXX0=
@@ -0,0 +1,8 @@
1
+ import { animate, style, transition, trigger } from '@angular/animations';
2
+ export const popupAnimation = trigger('popupAnimation', [
3
+ transition(':enter', [
4
+ style({ transform: 'scale(0.9)' }),
5
+ animate('220ms cubic-bezier(0.25, 0.8, 0.25, 1)', style({ transform: 'scale(1)' })),
6
+ ]),
7
+ ]);
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3VpLWtpdC9hbmltYXRpb25zL3BvcHVwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQTRCLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFcEcsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUE2QixPQUFPLENBQUMsZ0JBQWdCLEVBQUU7SUFDaEYsVUFBVSxDQUFDLFFBQVEsRUFBRTtRQUNuQixLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLENBQUM7UUFDbEMsT0FBTyxDQUFDLHdDQUF3QyxFQUFFLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0tBQ3BGLENBQUM7Q0FDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBBbmltYXRpb25UcmlnZ2VyTWV0YWRhdGEsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5cbmV4cG9ydCBjb25zdCBwb3B1cEFuaW1hdGlvbjogQW5pbWF0aW9uVHJpZ2dlck1ldGFkYXRhID0gdHJpZ2dlcigncG9wdXBBbmltYXRpb24nLCBbXG4gIHRyYW5zaXRpb24oJzplbnRlcicsIFtcbiAgICBzdHlsZSh7IHRyYW5zZm9ybTogJ3NjYWxlKDAuOSknIH0pLFxuICAgIGFuaW1hdGUoJzIyMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpJywgc3R5bGUoeyB0cmFuc2Zvcm06ICdzY2FsZSgxKScgfSkpLFxuICBdKSxcbl0pO1xuIl19
@@ -46,8 +46,8 @@ let NgDocComboboxHostComponent = class NgDocComboboxHostComponent extends DICont
46
46
  this.dropdown?.open();
47
47
  }
48
48
  }
49
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NgDocComboboxHostComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
50
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: NgDocComboboxHostComponent, isStandalone: true, selector: "ng-doc-combobox-host", inputs: { compareFn: "compareFn", displayValueFn: "displayValueFn" }, providers: [
49
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgDocComboboxHostComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
50
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: NgDocComboboxHostComponent, isStandalone: true, selector: "ng-doc-combobox-host", inputs: { compareFn: "compareFn", displayValueFn: "displayValueFn" }, providers: [
51
51
  provideHostControl(forwardRef(() => NgDocComboboxHostComponent)),
52
52
  provideCompareHost(forwardRef(() => NgDocComboboxHostComponent)),
53
53
  {
@@ -73,7 +73,7 @@ NgDocComboboxHostComponent = __decorate([
73
73
  __metadata("design:paramtypes", [])
74
74
  ], NgDocComboboxHostComponent);
75
75
  export { NgDocComboboxHostComponent };
76
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NgDocComboboxHostComponent, decorators: [{
76
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgDocComboboxHostComponent, decorators: [{
77
77
  type: Component,
78
78
  args: [{ selector: 'ng-doc-combobox-host', providers: [
79
79
  provideHostControl(forwardRef(() => NgDocComboboxHostComponent)),
@@ -1,5 +1,5 @@
1
+ import { DOCUMENT } from '@angular/common';
1
2
  import { Directive, ElementRef, HostBinding, inject } from '@angular/core';
2
- import { isBrowser } from '@ng-doc/core';
3
3
  import { DIControl, injectHostControl } from 'di-controls';
4
4
  import { Subject } from 'rxjs';
5
5
  import * as i0 from "@angular/core";
@@ -11,6 +11,7 @@ export class NgDocBaseInput extends DIControl {
11
11
  });
12
12
  this.elementRef = inject(ElementRef);
13
13
  this.changes = new Subject();
14
+ this.document = inject(DOCUMENT);
14
15
  }
15
16
  get hostClasses() {
16
17
  return 'ng-doc-input';
@@ -19,7 +20,7 @@ export class NgDocBaseInput extends DIControl {
19
20
  return this.elementRef.nativeElement.placeholder || '';
20
21
  }
21
22
  get isFocused() {
22
- return isBrowser ? document.activeElement === this.elementRef.nativeElement : false;
23
+ return this.document.activeElement === this.elementRef.nativeElement;
23
24
  }
24
25
  get isReadonly() {
25
26
  return this.elementRef.nativeElement.readOnly;
@@ -40,13 +41,13 @@ export class NgDocBaseInput extends DIControl {
40
41
  super.updateModel(value);
41
42
  this.changes.next();
42
43
  }
43
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NgDocBaseInput, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
44
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.0", type: NgDocBaseInput, host: { properties: { "class": "this.hostClasses" } }, usesInheritance: true, ngImport: i0 }); }
44
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgDocBaseInput, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
45
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.1", type: NgDocBaseInput, host: { properties: { "class": "this.hostClasses" } }, usesInheritance: true, ngImport: i0 }); }
45
46
  }
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NgDocBaseInput, decorators: [{
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgDocBaseInput, decorators: [{
47
48
  type: Directive
48
49
  }], ctorParameters: () => [{ type: undefined }], propDecorators: { hostClasses: [{
49
50
  type: HostBinding,
50
51
  args: ['class']
51
52
  }] } });
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkta2l0L2NsYXNzZXMvYmFzZS1pbnB1dC9iYXNlLWlucHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTNELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBRy9CLE1BQU0sT0FBZ0IsY0FBa0IsU0FBUSxTQUFZO0lBSTNELFlBQXNCLE1BQThCO1FBQ25ELEtBQUssQ0FBQztZQUNMLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUMzQyxHQUFHLE1BQU07U0FDVCxDQUFDLENBQUM7UUFQYyxlQUFVLEdBQWlDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN2RSxZQUFPLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7SUFPaEQsQ0FBQztJQUVELElBQ0ksV0FBVztRQUNkLE9BQU8sY0FBYyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDZCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7SUFDeEQsQ0FBQztJQUVELElBQUksU0FBUztRQUNaLE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsYUFBYSxLQUFLLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDckYsQ0FBQztJQUVELElBQUksVUFBVTtRQUNiLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDO0lBQy9DLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztJQUM1QyxDQUFDO0lBRUQsS0FBSztRQUNKLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxLQUFLO1FBQ0osSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDbkUsb0VBQW9FO1FBQ3BFLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQztRQUMxQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRVEsV0FBVyxDQUFDLEtBQWU7UUFDbkMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV6QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JCLENBQUM7OEdBL0NvQixjQUFjO2tHQUFkLGNBQWM7OzJGQUFkLGNBQWM7a0JBRG5DLFNBQVM7MkVBYUwsV0FBVztzQkFEZCxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzQnJvd3NlciB9IGZyb20gJ0BuZy1kb2MvY29yZSc7XG5pbXBvcnQgeyBESUNvbnRyb2wsIGluamVjdEhvc3RDb250cm9sIH0gZnJvbSAnZGktY29udHJvbHMnO1xuaW1wb3J0IHsgRElDb250cm9sQ29uZmlnIH0gZnJvbSAnZGktY29udHJvbHMvY29udHJvbHMvY29udHJvbCc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE5nRG9jQmFzZUlucHV0PFQ+IGV4dGVuZHMgRElDb250cm9sPFQ+IHtcblx0b3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PiA9IGluamVjdChFbGVtZW50UmVmKTtcblx0cmVhZG9ubHkgY2hhbmdlczogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cblx0cHJvdGVjdGVkIGNvbnN0cnVjdG9yKGNvbmZpZz86IERJQ29udHJvbENvbmZpZzxULCBUPikge1xuXHRcdHN1cGVyKHtcblx0XHRcdGhvc3Q6IGluamVjdEhvc3RDb250cm9sKHsgb3B0aW9uYWw6IHRydWUgfSksXG5cdFx0XHQuLi5jb25maWcsXG5cdFx0fSk7XG5cdH1cblxuXHRASG9zdEJpbmRpbmcoJ2NsYXNzJylcblx0Z2V0IGhvc3RDbGFzc2VzKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuICduZy1kb2MtaW5wdXQnO1xuXHR9XG5cblx0Z2V0IHBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBsYWNlaG9sZGVyIHx8ICcnO1xuXHR9XG5cblx0Z2V0IGlzRm9jdXNlZCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gaXNCcm93c2VyID8gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgOiBmYWxzZTtcblx0fVxuXG5cdGdldCBpc1JlYWRvbmx5KCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5yZWFkT25seTtcblx0fVxuXG5cdGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZTtcblx0fVxuXG5cdGZvY3VzKCk6IHZvaWQge1xuXHRcdHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG5cdH1cblxuXHRibGluaygpOiB2b2lkIHtcblx0XHR0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnLWJsaW5rJyk7XG5cdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtZXhwcmVzc2lvbnNcblx0XHR0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcblx0XHR0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnLWJsaW5rJyk7XG5cdH1cblxuXHRvdmVycmlkZSB1cGRhdGVNb2RlbCh2YWx1ZTogVCB8IG51bGwpIHtcblx0XHRzdXBlci51cGRhdGVNb2RlbCh2YWx1ZSk7XG5cblx0XHR0aGlzLmNoYW5nZXMubmV4dCgpO1xuXHR9XG59XG4iXX0=
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkta2l0L2NsYXNzZXMvYmFzZS1pbnB1dC9iYXNlLWlucHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFM0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFHL0IsTUFBTSxPQUFnQixjQUFrQixTQUFRLFNBQVk7SUFNMUQsWUFBc0IsTUFBOEI7UUFDbEQsS0FBSyxDQUFDO1lBQ0osSUFBSSxFQUFFLGlCQUFpQixDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1lBQzNDLEdBQUcsTUFBTTtTQUNWLENBQUMsQ0FBQztRQVRhLGVBQVUsR0FBaUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZFLFlBQU8sR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUU3QixhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBTy9DLENBQUM7SUFFRCxJQUNJLFdBQVc7UUFDYixPQUFPLGNBQWMsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO0lBQ3pELENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxLQUFLLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQztJQUNoRCxDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7SUFDN0MsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ25FLG9FQUFvRTtRQUNwRSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUM7UUFDMUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVRLFdBQVcsQ0FBQyxLQUFlO1FBQ2xDLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFekIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN0QixDQUFDOzhHQWpEbUIsY0FBYztrR0FBZCxjQUFjOzsyRkFBZCxjQUFjO2tCQURuQyxTQUFTOzJFQWVKLFdBQVc7c0JBRGQsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBESUNvbnRyb2wsIGluamVjdEhvc3RDb250cm9sIH0gZnJvbSAnZGktY29udHJvbHMnO1xuaW1wb3J0IHsgRElDb250cm9sQ29uZmlnIH0gZnJvbSAnZGktY29udHJvbHMvY29udHJvbHMvY29udHJvbCc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE5nRG9jQmFzZUlucHV0PFQ+IGV4dGVuZHMgRElDb250cm9sPFQ+IHtcbiAgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PiA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgcmVhZG9ubHkgY2hhbmdlczogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoY29uZmlnPzogRElDb250cm9sQ29uZmlnPFQsIFQ+KSB7XG4gICAgc3VwZXIoe1xuICAgICAgaG9zdDogaW5qZWN0SG9zdENvbnRyb2woeyBvcHRpb25hbDogdHJ1ZSB9KSxcbiAgICAgIC4uLmNvbmZpZyxcbiAgICB9KTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgaG9zdENsYXNzZXMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ25nLWRvYy1pbnB1dCc7XG4gIH1cblxuICBnZXQgcGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGxhY2Vob2xkZXIgfHwgJyc7XG4gIH1cblxuICBnZXQgaXNGb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgZ2V0IGlzUmVhZG9ubHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnJlYWRPbmx5O1xuICB9XG5cbiAgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlO1xuICB9XG5cbiAgZm9jdXMoKTogdm9pZCB7XG4gICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIGJsaW5rKCk6IHZvaWQge1xuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICctYmxpbmsnKTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC1leHByZXNzaW9uc1xuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICctYmxpbmsnKTtcbiAgfVxuXG4gIG92ZXJyaWRlIHVwZGF0ZU1vZGVsKHZhbHVlOiBUIHwgbnVsbCkge1xuICAgIHN1cGVyLnVwZGF0ZU1vZGVsKHZhbHVlKTtcblxuICAgIHRoaXMuY2hhbmdlcy5uZXh0KCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,6 +1,6 @@
1
1
  import { FlexibleConnectedPositionStrategy, } from '@angular/cdk/overlay';
2
2
  import { NavigationEnd } from '@angular/router';
3
- import { isPresent } from '@ng-doc/core/helpers/is-present';
3
+ import { isPresent } from '@ng-doc/core';
4
4
  import { toElement } from '@ng-doc/ui-kit/helpers';
5
5
  import { fromSubscribe, ngDocZoneDetach, ngDocZoneOptimize } from '@ng-doc/ui-kit/observables';
6
6
  import { fromEvent, merge, NEVER } from 'rxjs';
@@ -104,4 +104,4 @@ export class NgDocOverlayRef {
104
104
  return true;
105
105
  }
106
106
  }
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1yZWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpLWtpdC9jbGFzc2VzL292ZXJsYXktcmVmL292ZXJsYXktcmVmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTixpQ0FBaUMsR0FFakMsTUFBTSxzQkFBc0IsQ0FBQztBQUc5QixPQUFPLEVBQVMsYUFBYSxFQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzVELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRS9GLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakcsTUFBTSxPQUFPLGVBQWU7SUFJM0IsWUFDVSxVQUFzQixFQUNkLGFBQWlDLEVBQ3pDLGdCQUF1QyxFQUMvQixNQUFjLEVBQ2QsTUFBZSxFQUNmLFFBQW1CO1FBTDNCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDZCxrQkFBYSxHQUFiLGFBQWEsQ0FBb0I7UUFDekMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUF1QjtRQUMvQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsV0FBTSxHQUFOLE1BQU0sQ0FBUztRQUNmLGFBQVEsR0FBUixRQUFRLENBQVc7UUFUN0Isa0JBQWEsR0FBYSxJQUFJLENBQUM7UUFDL0IsV0FBTSxHQUFZLElBQUksQ0FBQztRQVU5Qiw4Q0FBOEM7UUFDOUMsSUFBSSxDQUFDLFNBQVMs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IjpbImltcG9ydCB7XG5cdENvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbkNoYW5nZSxcblx0RmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5LFxuXHRPdmVybGF5UmVmLFxufSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEV2ZW50LCBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgaXNQcmVzZW50IH0gZnJvbSAnQG5nLWRvYy9jb3JlL2hlbHBlcnMvaXMtcHJlc2VudCc7XG5pbXBvcnQgeyB0b0VsZW1lbnQgfSBmcm9tICdAbmctZG9jL3VpLWtpdC9oZWxwZXJzJztcbmltcG9ydCB7IE5nRG9jT3ZlcmxheUNvbmZpZywgTmdEb2NPdmVybGF5Q29udGFpbmVyIH0gZnJvbSAnQG5nLWRvYy91aS1raXQvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBmcm9tU3Vic2NyaWJlLCBuZ0RvY1pvbmVEZXRhY2gsIG5nRG9jWm9uZU9wdGltaXplIH0gZnJvbSAnQG5nLWRvYy91aS1raXQvb2JzZXJ2YWJsZXMnO1xuaW1wb3J0IHsgTmdEb2NPdmVybGF5QW5pbWF0aW9uRXZlbnQgfSBmcm9tICdAbmctZG9jL3VpLWtpdC90eXBlcyc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIG1lcmdlLCBORVZFUiwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIG1hcCwgcGFpcndpc2UsIHN3aXRjaE1hcCwgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgY2xhc3MgTmdEb2NPdmVybGF5UmVmPFQgPSB1bmtub3duPiB7XG5cdHByaXZhdGUgb3ZlcmxheVJlc3VsdDogVCB8IG51bGwgPSBudWxsO1xuXHRwcml2YXRlIG9wZW5lZDogYm9vbGVhbiA9IHRydWU7XG5cblx0Y29uc3RydWN0b3IoXG5cdFx0cmVhZG9ubHkgb3ZlcmxheVJlZjogT3ZlcmxheVJlZixcblx0XHRwcml2YXRlIHJlYWRvbmx5IG92ZXJsYXlDb25maWc6IE5nRG9jT3ZlcmxheUNvbmZpZyxcblx0XHRyZWFkb25seSBvdmVybGF5Q29udGFpbmVyOiBOZ0RvY092ZXJsYXlDb250YWluZXIsXG5cdFx0cHJpdmF0ZSByZWFkb25seSBuZ1pvbmU6IE5nWm9uZSxcblx0XHRwcml2YXRlIHJlYWRvbmx5IHJvdXRlcj86IFJvdXRlcixcblx0XHRwcml2YXRlIHJlYWRvbmx5IGxvY2F0aW9uPzogTG9jYXRpb24sXG5cdCkge1xuXHRcdC8qIENsb3NlcyBvdmVybGF5IHdoZW4gaXQgd2FzIG91dHNpZGUgY2xpY2sgKi9cblx0XHR0aGlzLmFmdGVyT3BlbigpXG5cdFx0XHQucGlwZShcblx0XHRcdFx0c3dpdGNoTWFwKCgpID0+XG5cdFx0XHRcdFx0dGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gdGhpcy5vdmVybGF5UmVmLm91dHNpZGVQb2ludGVyRXZlbnRzKCkpLFxuXHRcdFx0XHQpLFxuXHRcdFx0XHRmaWx0ZXIoXG5cdFx0XHRcdFx0KGV2ZW50OiBNb3VzZUV2ZW50KSA9PlxuXHRcdFx0XHRcdFx0ISF0aGlzLm92ZXJsYXlDb25maWcuY2xvc2VJZk91dHNpZGVDbGljayAmJiB0aGlzLm91dHNpZGVDbGlja0NoZWNrZXIoZXZlbnQpLFxuXHRcdFx0XHQpLFxuXHRcdFx0XHRuZ0RvY1pvbmVPcHRpbWl6ZSh0aGlzLm5nWm9uZSksXG5cdFx0XHQpXG5cdFx0XHQuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2xvc2UoKSk7XG5cblx0XHQvKiBDbG9zZXMgb3ZlcmxheSB3aGVuIGl0IHdhcyBpbm5lciBjbGljayAqL1xuXHRcdGZyb21FdmVudCh0aGlzLm92ZXJsYXlSZWYub3ZlcmxheUVsZW1lbnQsICdjbGljaycpXG5cdFx0XHQucGlwZShcblx0XHRcdFx0ZmlsdGVyKCgpID0+ICEhdGhpcy5vdmVybGF5Q29uZmlnLmNsb3NlSWZJbm5lckNsaWNrKSxcblx0XHRcdFx0dGFrZVVudGlsKHRoaXMub3ZlcmxheVJlZi5kZXRhY2htZW50cygpKSxcblx0XHRcdFx0bmdEb2Nab25lT3B0aW1pemUodGhpcy5uZ1pvbmUpLFxuXHRcdFx0KVxuXHRcdFx0LnN1YnNjcmliZSgoKSA9PiB0aGlzLmNsb3NlKCkpO1xuXG5cdFx0LyogQ2xvc2VzIG92ZXJsYXkgaWYgcm91dGUgd2FzIGNoYW5nZWQgKi9cblx0XHRpZiAodGhpcy5yb3V0ZXIgJiYgdGhpcy5vdmVybGF5Q29uZmlnLmRpc3Bvc2VPblJvdXRlTmF2aWdhdGlvbikge1xuXHRcdFx0dGhpcy5yb3V0ZXIuZXZlbnRzXG5cdFx0XHRcdC5waXBlKFxuXHRcdFx0XHRcdGZpbHRlcigoZXZlbnQ6IEV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpLFxuXHRcdFx0XHRcdG5nRG9jWm9uZU9wdGltaXplKHRoaXMubmdab25lKSxcblx0XHRcdFx0XHR0YWtlVW50aWwodGhpcy5vdmVybGF5UmVmLmRldGFjaG1lbnRzKCkpLFxuXHRcdFx0XHQpXG5cdFx0XHRcdC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jbG9zZSgpKTtcblx0XHR9XG5cblx0XHRpZiAodGhpcy5sb2NhdGlvbiAmJiB0aGlzLm92ZXJsYXlDb25maWcuZGlzcG9zZU9uTmF2aWdhdGlvbikge1xuXHRcdFx0ZnJvbVN1YnNjcmliZSh0aGlzLmxvY2F0aW9uKVxuXHRcdFx0XHQucGlwZSh0YWtlVW50aWwodGhpcy5vdmVybGF5UmVmLmRldGFjaG1lbnRzKCkpKVxuXHRcdFx0XHQuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2xvc2UoKSk7XG5cdFx0fVxuXG5cdFx0aWYgKCF0aGlzLm92ZXJsYXlDb25maWcuZGlzYWJsZUNsb3NlKSB7XG5cdFx0XHRtZXJnZShcblx0XHRcdFx0dGhpcy5vdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKSxcblx0XHRcdFx0dGhpcy5vdmVybGF5UmVmLmtleWRvd25FdmVudHMoKS5waXBlKGZpbHRlcigoZTogS2V5Ym9hcmRFdmVudCkgPT4gZS5jb2RlID09PSAnRXNjYXBlJykpLFxuXHRcdFx0KVxuXHRcdFx0XHQucGlwZSh0YWtlKDEpLCB0YWtlVW50aWwodGhpcy5vdmVybGF5UmVmLmRldGFjaG1lbnRzKCkpKVxuXHRcdFx0XHQuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2xvc2UoKSk7XG5cdFx0fVxuXG5cdFx0LyogVXBkYXRlIHBvc2l0aW9uIGlmIG9yaWdpbiBjaGFuZ2VzIGl0cyBwb3NpdGlvbiAqL1xuXHRcdGNvbnN0IG9yaWdpbjogdW5rbm93biA9IHRvRWxlbWVudCh0aGlzLm92ZXJsYXlDb25maWcub3JpZ2luKTtcblxuXHRcdGlmIChvcmlnaW4gaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuXHRcdFx0dGhpcy5uZ1pvbmUub25TdGFibGVcblx0XHRcdFx0LnBpcGUoXG5cdFx0XHRcdFx0ZGVib3VuY2VUaW1lKDEwKSxcblx0XHRcdFx0XHRtYXAoKCkgPT4gb3JpZ2luLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKSxcblx0XHRcdFx0XHRwYWlyd2lzZSgpLFxuXHRcdFx0XHRcdGZpbHRlcihcblx0XHRcdFx0XHRcdChbYSwgYl06IFtET01SZWN0LCBET01SZWN0XSkgPT5cblx0XHRcdFx0XHRcdFx0aXNQcmVzZW50KGEpICYmXG5cdFx0XHRcdFx0XHRcdGlzUHJlc2VudChiKSAmJlxuXHRcdFx0XHRcdFx0XHQoYS54ICE9PSBiLnggfHwgYS55ICE9PSBiLnkgfHwgYS53aWR0aCAhPT0gYi53aWR0aCB8fCBhLmhlaWdodCAhPT0gYi5oZWlnaHQpLFxuXHRcdFx0XHRcdCksXG5cdFx0XHRcdFx0bmdEb2Nab25lRGV0YWNoKHRoaXMubmdab25lKSxcblx0XHRcdFx0XHR0YWtlVW50aWwodGhpcy5vdmVybGF5UmVmLmRldGFjaG1lbnRzKCkpLFxuXHRcdFx0XHQpXG5cdFx0XHRcdC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uKCkpO1xuXHRcdH1cblx0fVxuXG5cdC8qKiBTZXRzIGZvY3VzIHRvIG92ZXJsYXkgKi9cblx0Zm9jdXMoKTogdm9pZCB7XG5cdFx0dGhpcy5vdmVybGF5Q29udGFpbmVyLmZvY3VzKCk7XG5cdH1cblxuXHQvKiogT3ZlcmxheSBoYXMgZm9jdXMgKi9cblx0Z2V0IGlzRm9jdXNlZCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy5vdmVybGF5Q29udGFpbmVyLmlzRm9jdXNlZDtcblx0fVxuXG5cdC8qKiBPdmVybGF5IGlzIG9wZW5lZCAqL1xuXHRnZXQgaXNPcGVuZWQoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMub3BlbmVkO1xuXHR9XG5cblx0LyoqIE92ZXJsYXkgaGFzIGF0dGFjaGVkICovXG5cdGdldCBoYXNBdHRhY2hlZCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy5vdmVybGF5UmVmLmhhc0F0dGFjaGVkKCk7XG5cdH1cblxuXHQvKipcblx0ICogQ2xvc2VzIG92ZXJsYXlcblx0ICogQHBhcmFtIGNsb3NlUmVzdWx0XG5cdCAqL1xuXHRjbG9zZShjbG9zZVJlc3VsdD86IFQpOiB2b2lkIHtcblx0XHR0aGlzLm92ZXJsYXlSZXN1bHQgPSBpc1ByZXNlbnQoY2xvc2VSZXN1bHQpID8gY2xvc2VSZXN1bHQgOiBudWxsO1xuXHRcdHRoaXMuYWZ0ZXJDbG9zZSgpLnN1YnNjcmliZSgoKSA9PiB2b2lkIHRoaXMub3ZlcmxheVJlZi5kZXRhY2goKSk7XG5cdFx0dGhpcy5vdmVybGF5Q29udGFpbmVyLmNsb3NlKCk7XG5cdFx0dGhpcy5vdmVybGF5UmVmLmRldGFjaEJhY2tkcm9wKCk7XG5cdFx0dGhpcy5vcGVuZWQgPSBmYWxzZTtcblx0fVxuXG5cdGJlZm9yZU9wZW4oKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG5cdFx0cmV0dXJuIHRoaXMub3ZlcmxheUNvbnRhaW5lci5hbmltYXRpb25FdmVudC5waXBlKFxuXHRcdFx0ZmlsdGVyKChldmVudDogTmdEb2NPdmVybGF5QW5pbWF0aW9uRXZlbnQpID0+IGV2ZW50ID09PSAnYmVmb3JlT3BlbicpLFxuXHRcdFx0dGFrZSgxKSxcblx0XHRcdG1hcCgoKSA9PiB2b2lkIDApLFxuXHRcdCk7XG5cdH1cblxuXHRhZnRlck9wZW4oKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG5cdFx0cmV0dXJuIHRoaXMub3ZlcmxheUNvbnRhaW5lci5hbmltYXRpb25FdmVudC5waXBlKFxuXHRcdFx0ZmlsdGVyKChldmVudDogTmdEb2NPdmVybGF5QW5pbWF0aW9uRXZlbnQpID0+IGV2ZW50ID09PSAnYWZ0ZXJPcGVuJyksXG5cdFx0XHR0YWtlKDEpLFxuXHRcdFx0bWFwKCgpID0+IHZvaWQgMCksXG5cdFx0KTtcblx0fVxuXG5cdGJlZm9yZUNsb3NlKCk6IE9ic2VydmFibGU8VCB8IG51bGw+IHtcblx0XHRyZXR1cm4gbWVyZ2UoXG5cdFx0XHR0aGlzLm92ZXJsYXlDb250YWluZXIuYW5pbWF0aW9uRXZlbnQucGlwZShcblx0XHRcdFx0ZmlsdGVyKChldmVudDogTmdEb2NPdmVybGF5QW5pbWF0aW9uRXZlbnQpID0+IGV2ZW50ID09PSAnYmVmb3JlQ2xvc2UnKSxcblx0XHRcdCksXG5cdFx0XHR0aGlzLm92ZXJsYXlSZWYuZGV0YWNobWVudHMoKSxcblx0XHQpLnBpcGUoXG5cdFx0XHR0YWtlKDEpLFxuXHRcdFx0bWFwKCgpID0+IHRoaXMub3ZlcmxheVJlc3VsdCksXG5cdFx0KTtcblx0fVxuXG5cdGFmdGVyQ2xvc2UoKTogT2JzZXJ2YWJsZTxUIHwgbnVsbD4ge1xuXHRcdHJldHVybiBtZXJnZShcblx0XHRcdHRoaXMub3ZlcmxheUNvbnRhaW5lci5hbmltYXRpb25FdmVudC5waXBlKFxuXHRcdFx0XHRmaWx0ZXIoKGV2ZW50OiBOZ0RvY092ZXJsYXlBbmltYXRpb25FdmVudCkgPT4gZXZlbnQgPT09ICdhZnRlckNsb3NlJyksXG5cdFx0XHQpLFxuXHRcdFx0dGhpcy5vdmVybGF5UmVmLmRldGFjaG1lbnRzKCksXG5cdFx0KS5waXBlKFxuXHRcdFx0dGFrZSgxKSxcblx0XHRcdG1hcCgoKSA9PiB0aGlzLm92ZXJsYXlSZXN1bHQpLFxuXHRcdCk7XG5cdH1cblxuXHRwb3NpdGlvbkNoYW5nZXMoKTogT2JzZXJ2YWJsZTxDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2U+IHtcblx0XHRyZXR1cm4gdGhpcy5vdmVybGF5Q29uZmlnLnBvc2l0aW9uU3RyYXRlZ3kgaW5zdGFuY2VvZiBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3lcblx0XHRcdD8gdGhpcy5vdmVybGF5Q29uZmlnLnBvc2l0aW9uU3RyYXRlZ3kucG9zaXRpb25DaGFuZ2VzXG5cdFx0XHQ6IE5FVkVSO1xuXHR9XG5cblx0cHJpdmF0ZSBvdXRzaWRlQ2xpY2tDaGVja2VyKGV2ZW50OiBNb3VzZUV2ZW50KTogYm9vbGVhbiB7XG5cdFx0Y29uc3QgdGFyZ2V0OiBFdmVudFRhcmdldCB8IG51bGwgPSBldmVudC50YXJnZXQ7XG5cdFx0aWYgKHRhcmdldCBpbnN0YW5jZW9mIEVsZW1lbnQpIHtcblx0XHRcdGNvbnN0IG9yaWdpbjogdW5rbm93biA9IHRvRWxlbWVudCh0aGlzLm92ZXJsYXlDb25maWcub3JpZ2luKTtcblx0XHRcdGlmIChvcmlnaW4gaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuXHRcdFx0XHRyZXR1cm4gIW9yaWdpbi5jb250YWlucyh0YXJnZXQpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxufVxuIl19
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1yZWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpLWtpdC9jbGFzc2VzL292ZXJsYXktcmVmL292ZXJsYXktcmVmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxpQ0FBaUMsR0FFbEMsTUFBTSxzQkFBc0IsQ0FBQztBQUc5QixPQUFPLEVBQVMsYUFBYSxFQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUUvRixPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpHLE1BQU0sT0FBTyxlQUFlO0lBSTFCLFlBQ1csVUFBc0IsRUFDZCxhQUFpQyxFQUN6QyxnQkFBdUMsRUFDL0IsTUFBYyxFQUNkLE1BQWUsRUFDZixRQUFtQjtRQUwzQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ2Qsa0JBQWEsR0FBYixhQUFhLENBQW9CO1FBQ3pDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBdUI7UUFDL0IsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFdBQU0sR0FBTixNQUFNLENBQVM7UUFDZixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBVDlCLGtCQUFhLEdBQWEsSUFBSSxDQUFDO1FBQy9CLFdBQU0sR0FBWSxJQUFJLENBQUM7UUFVN0IsOENBQThDO1FBQzlDLElBQUksQ0FBQyxTQUFTLEVB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ImltcG9ydCB7XG4gIENvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbkNoYW5nZSxcbiAgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5LFxuICBPdmVybGF5UmVmLFxufSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEV2ZW50LCBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgaXNQcmVzZW50IH0gZnJvbSAnQG5nLWRvYy9jb3JlJztcbmltcG9ydCB7IHRvRWxlbWVudCB9IGZyb20gJ0BuZy1kb2MvdWkta2l0L2hlbHBlcnMnO1xuaW1wb3J0IHsgTmdEb2NPdmVybGF5Q29uZmlnLCBOZ0RvY092ZXJsYXlDb250YWluZXIgfSBmcm9tICdAbmctZG9jL3VpLWtpdC9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGZyb21TdWJzY3JpYmUsIG5nRG9jWm9uZURldGFjaCwgbmdEb2Nab25lT3B0aW1pemUgfSBmcm9tICdAbmctZG9jL3VpLWtpdC9vYnNlcnZhYmxlcyc7XG5pbXBvcnQgeyBOZ0RvY092ZXJsYXlBbmltYXRpb25FdmVudCB9IGZyb20gJ0BuZy1kb2MvdWkta2l0L3R5cGVzJztcbmltcG9ydCB7IGZyb21FdmVudCwgbWVyZ2UsIE5FVkVSLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbHRlciwgbWFwLCBwYWlyd2lzZSwgc3dpdGNoTWFwLCB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBjbGFzcyBOZ0RvY092ZXJsYXlSZWY8VCA9IHVua25vd24+IHtcbiAgcHJpdmF0ZSBvdmVybGF5UmVzdWx0OiBUIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgb3BlbmVkOiBib29sZWFuID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICByZWFkb25seSBvdmVybGF5UmVmOiBPdmVybGF5UmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgb3ZlcmxheUNvbmZpZzogTmdEb2NPdmVybGF5Q29uZmlnLFxuICAgIHJlYWRvbmx5IG92ZXJsYXlDb250YWluZXI6IE5nRG9jT3ZlcmxheUNvbnRhaW5lcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5nWm9uZTogTmdab25lLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyPzogUm91dGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9jYXRpb24/OiBMb2NhdGlvbixcbiAgKSB7XG4gICAgLyogQ2xvc2VzIG92ZXJsYXkgd2hlbiBpdCB3YXMgb3V0c2lkZSBjbGljayAqL1xuICAgIHRoaXMuYWZ0ZXJPcGVuKClcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT5cbiAgICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB0aGlzLm92ZXJsYXlSZWYub3V0c2lkZVBvaW50ZXJFdmVudHMoKSksXG4gICAgICAgICksXG4gICAgICAgIGZpbHRlcihcbiAgICAgICAgICAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+XG4gICAgICAgICAgICAhIXRoaXMub3ZlcmxheUNvbmZpZy5jbG9zZUlmT3V0c2lkZUNsaWNrICYmIHRoaXMub3V0c2lkZUNsaWNrQ2hlY2tlcihldmVudCksXG4gICAgICAgICksXG4gICAgICAgIG5nRG9jWm9uZU9wdGltaXplKHRoaXMubmdab25lKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jbG9zZSgpKTtcblxuICAgIC8qIENsb3NlcyBvdmVybGF5IHdoZW4gaXQgd2FzIGlubmVyIGNsaWNrICovXG4gICAgZnJvbUV2ZW50KHRoaXMub3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudCwgJ2NsaWNrJylcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKCkgPT4gISF0aGlzLm92ZXJsYXlDb25maWcuY2xvc2VJZklubmVyQ2xpY2spLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5vdmVybGF5UmVmLmRldGFjaG1lbnRzKCkpLFxuICAgICAgICBuZ0RvY1pvbmVPcHRpbWl6ZSh0aGlzLm5nWm9uZSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2xvc2UoKSk7XG5cbiAgICAvKiBDbG9zZXMgb3ZlcmxheSBpZiByb3V0ZSB3YXMgY2hhbmdlZCAqL1xuICAgIGlmICh0aGlzLnJvdXRlciAmJiB0aGlzLm92ZXJsYXlDb25maWcuZGlzcG9zZU9uUm91dGVOYXZpZ2F0aW9uKSB7XG4gICAgICB0aGlzLnJvdXRlci5ldmVudHNcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgZmlsdGVyKChldmVudDogRXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCksXG4gICAgICAgICAgbmdEb2Nab25lT3B0aW1pemUodGhpcy5uZ1pvbmUpLFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLm92ZXJsYXlSZWYuZGV0YWNobWVudHMoKSksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNsb3NlKCkpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmxvY2F0aW9uICYmIHRoaXMub3ZlcmxheUNvbmZpZy5kaXNwb3NlT25OYXZpZ2F0aW9uKSB7XG4gICAgICBmcm9tU3Vic2NyaWJlKHRoaXMubG9jYXRpb24pXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm92ZXJsYXlSZWYuZGV0YWNobWVudHMoKSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jbG9zZSgpKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMub3ZlcmxheUNvbmZpZy5kaXNhYmxlQ2xvc2UpIHtcbiAgICAgIG1lcmdlKFxuICAgICAgICB0aGlzLm92ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpLFxuICAgICAgICB0aGlzLm92ZXJsYXlSZWYua2V5ZG93bkV2ZW50cygpLnBpcGUoZmlsdGVyKChlOiBLZXlib2FyZEV2ZW50KSA9PiBlLmNvZGUgPT09ICdFc2NhcGUnKSksXG4gICAgICApXG4gICAgICAgIC5waXBlKHRha2UoMSksIHRha2VVbnRpbCh0aGlzLm92ZXJsYXlSZWYuZGV0YWNobWVudHMoKSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jbG9zZSgpKTtcbiAgICB9XG5cbiAgICAvKiBVcGRhdGUgcG9zaXRpb24gaWYgb3JpZ2luIGNoYW5nZXMgaXRzIHBvc2l0aW9uICovXG4gICAgY29uc3Qgb3JpZ2luOiB1bmtub3duID0gdG9FbGVtZW50KHRoaXMub3ZlcmxheUNvbmZpZy5vcmlnaW4pO1xuXG4gICAgaWYgKG9yaWdpbiBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICB0aGlzLm5nWm9uZS5vblN0YWJsZVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBkZWJvdW5jZVRpbWUoMTApLFxuICAgICAgICAgIG1hcCgoKSA9PiBvcmlnaW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpLFxuICAgICAgICAgIHBhaXJ3aXNlKCksXG4gICAgICAgICAgZmlsdGVyKFxuICAgICAgICAgICAgKFthLCBiXTogW0RPTVJlY3QsIERPTVJlY3RdKSA9PlxuICAgICAgICAgICAgICBpc1ByZXNlbnQoYSkgJiZcbiAgICAgICAgICAgICAgaXNQcmVzZW50KGIpICYmXG4gICAgICAgICAgICAgIChhLnggIT09IGIueCB8fCBhLnkgIT09IGIueSB8fCBhLndpZHRoICE9PSBiLndpZHRoIHx8IGEuaGVpZ2h0ICE9PSBiLmhlaWdodCksXG4gICAgICAgICAgKSxcbiAgICAgICAgICBuZ0RvY1pvbmVEZXRhY2godGhpcy5uZ1pvbmUpLFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLm92ZXJsYXlSZWYuZGV0YWNobWVudHMoKSksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLm92ZXJsYXlSZWYudXBkYXRlUG9zaXRpb24oKSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIFNldHMgZm9jdXMgdG8gb3ZlcmxheSAqL1xuICBmb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLm92ZXJsYXlDb250YWluZXIuZm9jdXMoKTtcbiAgfVxuXG4gIC8qKiBPdmVybGF5IGhhcyBmb2N1cyAqL1xuICBnZXQgaXNGb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm92ZXJsYXlDb250YWluZXIuaXNGb2N1c2VkO1xuICB9XG5cbiAgLyoqIE92ZXJsYXkgaXMgb3BlbmVkICovXG4gIGdldCBpc09wZW5lZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5vcGVuZWQ7XG4gIH1cblxuICAvKiogT3ZlcmxheSBoYXMgYXR0YWNoZWQgKi9cbiAgZ2V0IGhhc0F0dGFjaGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm92ZXJsYXlSZWYuaGFzQXR0YWNoZWQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgb3ZlcmxheVxuICAgKiBAcGFyYW0gY2xvc2VSZXN1bHRcbiAgICovXG4gIGNsb3NlKGNsb3NlUmVzdWx0PzogVCk6IHZvaWQge1xuICAgIHRoaXMub3ZlcmxheVJlc3VsdCA9IGlzUHJlc2VudChjbG9zZVJlc3VsdCkgPyBjbG9zZVJlc3VsdCA6IG51bGw7XG4gICAgdGhpcy5hZnRlckNsb3NlKCkuc3Vic2NyaWJlKCgpID0+IHZvaWQgdGhpcy5vdmVybGF5UmVmLmRldGFjaCgpKTtcbiAgICB0aGlzLm92ZXJsYXlDb250YWluZXIuY2xvc2UoKTtcbiAgICB0aGlzLm92ZXJsYXlSZWYuZGV0YWNoQmFja2Ryb3AoKTtcbiAgICB0aGlzLm9wZW5lZCA9IGZhbHNlO1xuICB9XG5cbiAgYmVmb3JlT3BlbigpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5vdmVybGF5Q29udGFpbmVyLmFuaW1hdGlvbkV2ZW50LnBpcGUoXG4gICAgICBmaWx0ZXIoKGV2ZW50OiBOZ0RvY092ZXJsYXlBbmltYXRpb25FdmVudCkgPT4gZXZlbnQgPT09ICdiZWZvcmVPcGVuJyksXG4gICAgICB0YWtlKDEpLFxuICAgICAgbWFwKCgpID0+IHZvaWQgMCksXG4gICAgKTtcbiAgfVxuXG4gIGFmdGVyT3BlbigpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5vdmVybGF5Q29udGFpbmVyLmFuaW1hdGlvbkV2ZW50LnBpcGUoXG4gICAgICBmaWx0ZXIoKGV2ZW50OiBOZ0RvY092ZXJsYXlBbmltYXRpb25FdmVudCkgPT4gZXZlbnQgPT09ICdhZnRlck9wZW4nKSxcbiAgICAgIHRha2UoMSksXG4gICAgICBtYXAoKCkgPT4gdm9pZCAwKSxcbiAgICApO1xuICB9XG5cbiAgYmVmb3JlQ2xvc2UoKTogT2JzZXJ2YWJsZTxUIHwgbnVsbD4ge1xuICAgIHJldHVybiBtZXJnZShcbiAgICAgIHRoaXMub3ZlcmxheUNvbnRhaW5lci5hbmltYXRpb25FdmVudC5waXBlKFxuICAgICAgICBmaWx0ZXIoKGV2ZW50OiBOZ0RvY092ZXJsYXlBbmltYXRpb25FdmVudCkgPT4gZXZlbnQgPT09ICdiZWZvcmVDbG9zZScpLFxuICAgICAgKSxcbiAgICAgIHRoaXMub3ZlcmxheVJlZi5kZXRhY2htZW50cygpLFxuICAgICkucGlwZShcbiAgICAgIHRha2UoMSksXG4gICAgICBtYXAoKCkgPT4gdGhpcy5vdmVybGF5UmVzdWx0KSxcbiAgICApO1xuICB9XG5cbiAgYWZ0ZXJDbG9zZSgpOiBPYnNlcnZhYmxlPFQgfCBudWxsPiB7XG4gICAgcmV0dXJuIG1lcmdlKFxuICAgICAgdGhpcy5vdmVybGF5Q29udGFpbmVyLmFuaW1hdGlvbkV2ZW50LnBpcGUoXG4gICAgICAgIGZpbHRlcigoZXZlbnQ6IE5nRG9jT3ZlcmxheUFuaW1hdGlvbkV2ZW50KSA9PiBldmVudCA9PT0gJ2FmdGVyQ2xvc2UnKSxcbiAgICAgICksXG4gICAgICB0aGlzLm92ZXJsYXlSZWYuZGV0YWNobWVudHMoKSxcbiAgICApLnBpcGUoXG4gICAgICB0YWtlKDEpLFxuICAgICAgbWFwKCgpID0+IHRoaXMub3ZlcmxheVJlc3VsdCksXG4gICAgKTtcbiAgfVxuXG4gIHBvc2l0aW9uQ2hhbmdlcygpOiBPYnNlcnZhYmxlPENvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbkNoYW5nZT4ge1xuICAgIHJldHVybiB0aGlzLm92ZXJsYXlDb25maWcucG9zaXRpb25TdHJhdGVneSBpbnN0YW5jZW9mIEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneVxuICAgICAgPyB0aGlzLm92ZXJsYXlDb25maWcucG9zaXRpb25TdHJhdGVneS5wb3NpdGlvbkNoYW5nZXNcbiAgICAgIDogTkVWRVI7XG4gIH1cblxuICBwcml2YXRlIG91dHNpZGVDbGlja0NoZWNrZXIoZXZlbnQ6IE1vdXNlRXZlbnQpOiBib29sZWFuIHtcbiAgICBjb25zdCB0YXJnZXQ6IEV2ZW50VGFyZ2V0IHwgbnVsbCA9IGV2ZW50LnRhcmdldDtcbiAgICBpZiAodGFyZ2V0IGluc3RhbmNlb2YgRWxlbWVudCkge1xuICAgICAgY29uc3Qgb3JpZ2luOiB1bmtub3duID0gdG9FbGVtZW50KHRoaXMub3ZlcmxheUNvbmZpZy5vcmlnaW4pO1xuICAgICAgaWYgKG9yaWdpbiBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICAgIHJldHVybiAhb3JpZ2luLmNvbnRhaW5zKHRhcmdldCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG4iXX0=