@ng-doc/app 17.6.15 → 18.0.0-beta.1

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 (353) hide show
  1. package/classes/default-search-engine/default-search-engine.d.ts +0 -1
  2. package/classes/default-search-engine/index.d.ts +0 -1
  3. package/classes/index.d.ts +0 -1
  4. package/classes/root-page/index.d.ts +0 -1
  5. package/classes/root-page/root-page.d.ts +4 -8
  6. package/classes/search-engine/index.d.ts +0 -1
  7. package/classes/search-engine/search-engine.d.ts +0 -1
  8. package/components/api-list/api-list.component.d.ts +13 -11
  9. package/components/breadcrumb/breadcrumb.component.d.ts +0 -1
  10. package/components/code/code.component.d.ts +2 -7
  11. package/components/copy-button/copy-button.component.d.ts +12 -0
  12. package/components/copy-button/index.d.ts +1 -0
  13. package/components/demo-displayer/demo-displayer.component.d.ts +0 -5
  14. package/components/heading-anchor/heading-anchor.component.d.ts +9 -0
  15. package/components/heading-anchor/index.d.ts +1 -0
  16. package/components/image-viewer/image-viewer.component.d.ts +16 -0
  17. package/components/image-viewer/index.d.ts +1 -0
  18. package/components/index.d.ts +7 -1
  19. package/components/kind-icon/kind-icon.component.d.ts +2 -1
  20. package/components/mermaid-viewer/index.d.ts +1 -0
  21. package/components/mermaid-viewer/mermaid-viewer.component.d.ts +17 -0
  22. package/components/navbar/navbar.component.d.ts +3 -16
  23. package/components/page/page.component.d.ts +6 -14
  24. package/components/page-header/index.d.ts +1 -0
  25. package/components/page-header/page-header.component.d.ts +6 -0
  26. package/components/page-wrapper/index.d.ts +1 -0
  27. package/components/page-wrapper/page-wrapper.component.d.ts +22 -0
  28. package/components/playground/base-playground.d.ts +1 -1
  29. package/components/playground/playground-demo/playground-demo.component.d.ts +5 -6
  30. package/components/root/root.component.d.ts +4 -13
  31. package/components/search/search.component.d.ts +11 -17
  32. package/components/search-dialog/index.d.ts +1 -0
  33. package/components/search-dialog/search-dialog.component.d.ts +24 -0
  34. package/components/sidebar/sidebar-category/sidebar-category.component.d.ts +9 -10
  35. package/components/sidebar/sidebar-item/sidebar-item.component.d.ts +7 -2
  36. package/components/sidebar/sidebar.component.d.ts +5 -3
  37. package/components/theme-toggle/theme-toggle.component.d.ts +4 -5
  38. package/constants/index.d.ts +0 -2
  39. package/constants/store-keys.d.ts +0 -1
  40. package/defaults/default-processors/default-processors.d.ts +0 -1
  41. package/defaults/default-processors/index.d.ts +0 -1
  42. package/defaults/default-skeleton/default-skeleton.d.ts +0 -1
  43. package/defaults/default-skeleton/index.d.ts +0 -1
  44. package/defaults/index.d.ts +0 -1
  45. package/directives/code-highlighter/code-highlighter.directive.d.ts +11 -11
  46. package/directives/code-highlighter/index.d.ts +0 -1
  47. package/directives/index.d.ts +0 -1
  48. package/directives/route-active/index.d.ts +0 -1
  49. package/directives/route-active/route-active.directive.d.ts +0 -1
  50. package/esm2022/classes/default-search-engine/default-search-engine.mjs +10 -4
  51. package/esm2022/classes/root-page/root-page.mjs +1 -1
  52. package/esm2022/components/api-list/api-list.component.mjs +46 -64
  53. package/esm2022/components/breadcrumb/breadcrumb.component.mjs +7 -9
  54. package/esm2022/components/code/code.component.mjs +16 -19
  55. package/esm2022/components/copy-button/copy-button.component.mjs +61 -0
  56. package/esm2022/components/copy-button/index.mjs +2 -0
  57. package/esm2022/components/copy-button/ng-doc-app-components-copy-button.mjs +5 -0
  58. package/esm2022/components/demo/demo.component.mjs +5 -5
  59. package/esm2022/components/demo-displayer/demo-displayer.component.mjs +9 -14
  60. package/esm2022/components/demo-pane/demo-pane.component.mjs +5 -5
  61. package/esm2022/components/fullscreen-button/fullscreen-button.component.mjs +3 -3
  62. package/esm2022/components/heading-anchor/heading-anchor.component.mjs +38 -0
  63. package/esm2022/components/heading-anchor/index.mjs +2 -0
  64. package/esm2022/components/heading-anchor/ng-doc-app-components-heading-anchor.mjs +5 -0
  65. package/esm2022/components/image-viewer/image-viewer.component.mjs +80 -0
  66. package/esm2022/components/image-viewer/index.mjs +2 -0
  67. package/esm2022/components/image-viewer/ng-doc-app-components-image-viewer.mjs +5 -0
  68. package/esm2022/components/index.mjs +8 -1
  69. package/esm2022/components/kind-icon/kind-icon.component.mjs +11 -5
  70. package/esm2022/components/link/link.component.mjs +3 -3
  71. package/esm2022/components/mermaid-viewer/index.mjs +2 -0
  72. package/esm2022/components/mermaid-viewer/mermaid-viewer.component.mjs +55 -0
  73. package/esm2022/components/mermaid-viewer/ng-doc-app-components-mermaid-viewer.mjs +5 -0
  74. package/esm2022/components/navbar/navbar.component.mjs +12 -32
  75. package/esm2022/components/page/page.component.mjs +20 -72
  76. package/esm2022/components/page-header/index.mjs +2 -0
  77. package/esm2022/components/page-header/ng-doc-app-components-page-header.mjs +5 -0
  78. package/esm2022/components/page-header/page-header.component.mjs +19 -0
  79. package/esm2022/components/page-link/page-link.component.mjs +5 -5
  80. package/esm2022/components/page-navigation/page-navigation.component.mjs +5 -5
  81. package/esm2022/components/page-wrapper/index.mjs +2 -0
  82. package/esm2022/components/page-wrapper/ng-doc-app-components-page-wrapper.mjs +5 -0
  83. package/esm2022/components/page-wrapper/page-wrapper.component.mjs +87 -0
  84. package/esm2022/components/playground/base-playground.mjs +8 -8
  85. package/esm2022/components/playground/playground-demo/playground-demo.component.mjs +22 -21
  86. package/esm2022/components/playground/playground-properties/playground-properties.component.mjs +8 -6
  87. package/esm2022/components/playground/playground-property/playground-property.component.mjs +4 -4
  88. package/esm2022/components/playground/playground.component.mjs +6 -6
  89. package/esm2022/components/root/root.component.mjs +20 -37
  90. package/esm2022/components/search/search.component.mjs +31 -49
  91. package/esm2022/components/search-dialog/index.mjs +2 -0
  92. package/esm2022/components/search-dialog/ng-doc-app-components-search-dialog.mjs +5 -0
  93. package/esm2022/components/search-dialog/search-dialog.component.mjs +74 -0
  94. package/esm2022/components/search-result/search-result.component.mjs +4 -4
  95. package/esm2022/components/sidebar/sidebar-category/sidebar-category.component.mjs +22 -27
  96. package/esm2022/components/sidebar/sidebar-item/sidebar-item.component.mjs +18 -10
  97. package/esm2022/components/sidebar/sidebar.component.mjs +14 -13
  98. package/esm2022/components/tabs/tabs.component.mjs +4 -4
  99. package/esm2022/components/theme-toggle/theme-toggle.component.mjs +18 -53
  100. package/esm2022/components/toc/toc-element/toc-element.component.mjs +5 -5
  101. package/esm2022/components/toc/toc.component.mjs +37 -35
  102. package/esm2022/constants/index.mjs +1 -2
  103. package/esm2022/defaults/default-processors/default-processors.mjs +7 -4
  104. package/esm2022/directives/code-highlighter/code-highlighter.directive.mjs +18 -36
  105. package/esm2022/directives/route-active/route-active.directive.mjs +3 -3
  106. package/esm2022/helpers/as-boolean.mjs +1 -1
  107. package/esm2022/helpers/create-component.mjs +1 -1
  108. package/esm2022/helpers/generate-toc.mjs +5 -5
  109. package/esm2022/interfaces/navigation.mjs +1 -1
  110. package/esm2022/interfaces/processor-options.mjs +1 -1
  111. package/esm2022/interfaces/toc-item.mjs +1 -1
  112. package/esm2022/interfaces/type-control.mjs +1 -1
  113. package/esm2022/pipes/decode-uri-component/decode-uri-component.pipe.mjs +4 -4
  114. package/esm2022/pipes/extract-value/extract-value.pipe.mjs +3 -3
  115. package/esm2022/pipes/filter-by-text/filter-by-text.pipe.mjs +3 -3
  116. package/esm2022/pipes/sanitize-html/sanitize-html.pipe.mjs +3 -3
  117. package/esm2022/processors/page-processor/index.mjs +2 -2
  118. package/esm2022/processors/page-processor/page-processor.component.mjs +74 -0
  119. package/esm2022/processors/processors/blockquote.processor.mjs +2 -1
  120. package/esm2022/processors/processors/code.processor.mjs +3 -5
  121. package/esm2022/processors/processors/demo.processor.mjs +2 -2
  122. package/esm2022/processors/processors/heading-anchor.processor.mjs +12 -0
  123. package/esm2022/processors/processors/image.processor.mjs +19 -0
  124. package/esm2022/processors/processors/index.mjs +6 -3
  125. package/esm2022/processors/processors/link/index.mjs +2 -0
  126. package/esm2022/processors/processors/link/link.processor.mjs +13 -0
  127. package/esm2022/processors/processors/link/ng-doc-app-processors-processors-link.mjs +5 -0
  128. package/esm2022/processors/processors/mermaid.processor.mjs +11 -0
  129. package/esm2022/processors/processors/playground.processor.mjs +2 -2
  130. package/esm2022/processors/processors/tooltip/index.mjs +2 -0
  131. package/esm2022/processors/processors/tooltip/ng-doc-app-processors-processors-tooltip.mjs +5 -0
  132. package/esm2022/processors/processors/tooltip/tooltip.processor.mjs +56 -0
  133. package/esm2022/providers/index.mjs +2 -1
  134. package/esm2022/providers/mermaid/index.mjs +2 -0
  135. package/esm2022/providers/mermaid/ng-doc-app-providers-mermaid.mjs +5 -0
  136. package/esm2022/providers/mermaid/provide-mermaid.mjs +16 -0
  137. package/esm2022/providers/ng-doc-app/provide-ng-doc-app.mjs +12 -35
  138. package/esm2022/providers/playground-demo/provide-playground-demo.mjs +1 -1
  139. package/esm2022/providers/search-engine/provide-search-engine.mjs +2 -2
  140. package/esm2022/providers/type-control/provide-type-control.mjs +1 -1
  141. package/esm2022/services/highlighter/highlighter.service.mjs +39 -0
  142. package/esm2022/services/highlighter/index.mjs +2 -0
  143. package/esm2022/services/highlighter/ng-doc-app-services-highlighter.mjs +5 -0
  144. package/esm2022/services/index.mjs +2 -2
  145. package/esm2022/services/sidebar/sidebar.service.mjs +35 -50
  146. package/esm2022/services/store/store.service.mjs +3 -3
  147. package/esm2022/services/theme/theme.service.mjs +28 -127
  148. package/esm2022/tokens/index.mjs +4 -2
  149. package/esm2022/tokens/mermaid.mjs +3 -0
  150. package/esm2022/tokens/page-processor.mjs +2 -2
  151. package/esm2022/tokens/route-prefix.mjs +3 -0
  152. package/esm2022/tokens/shiki-theme.mjs +3 -0
  153. package/esm2022/type-controls/boolean-control/boolean-control.component.mjs +3 -3
  154. package/esm2022/type-controls/number-control/number-control.component.mjs +5 -5
  155. package/esm2022/type-controls/string-control/string-control.component.mjs +5 -5
  156. package/esm2022/type-controls/type-alias-control/type-alias-control.component.mjs +5 -5
  157. package/fesm2022/ng-doc-app-classes-default-search-engine.mjs +10 -4
  158. package/fesm2022/ng-doc-app-classes-default-search-engine.mjs.map +1 -1
  159. package/fesm2022/ng-doc-app-classes-root-page.mjs.map +1 -1
  160. package/fesm2022/ng-doc-app-components-api-list.mjs +47 -64
  161. package/fesm2022/ng-doc-app-components-api-list.mjs.map +1 -1
  162. package/fesm2022/ng-doc-app-components-breadcrumb.mjs +6 -8
  163. package/fesm2022/ng-doc-app-components-breadcrumb.mjs.map +1 -1
  164. package/fesm2022/ng-doc-app-components-code.mjs +16 -18
  165. package/fesm2022/ng-doc-app-components-code.mjs.map +1 -1
  166. package/fesm2022/ng-doc-app-components-copy-button.mjs +68 -0
  167. package/fesm2022/ng-doc-app-components-copy-button.mjs.map +1 -0
  168. package/fesm2022/ng-doc-app-components-demo-displayer.mjs +8 -12
  169. package/fesm2022/ng-doc-app-components-demo-displayer.mjs.map +1 -1
  170. package/fesm2022/ng-doc-app-components-demo-pane.mjs +4 -4
  171. package/fesm2022/ng-doc-app-components-demo-pane.mjs.map +1 -1
  172. package/fesm2022/ng-doc-app-components-demo.mjs +4 -4
  173. package/fesm2022/ng-doc-app-components-demo.mjs.map +1 -1
  174. package/fesm2022/ng-doc-app-components-fullscreen-button.mjs +3 -3
  175. package/fesm2022/ng-doc-app-components-heading-anchor.mjs +45 -0
  176. package/fesm2022/ng-doc-app-components-heading-anchor.mjs.map +1 -0
  177. package/fesm2022/ng-doc-app-components-image-viewer.mjs +87 -0
  178. package/fesm2022/ng-doc-app-components-image-viewer.mjs.map +1 -0
  179. package/fesm2022/ng-doc-app-components-kind-icon.mjs +10 -4
  180. package/fesm2022/ng-doc-app-components-kind-icon.mjs.map +1 -1
  181. package/fesm2022/ng-doc-app-components-link.mjs +3 -3
  182. package/fesm2022/ng-doc-app-components-mermaid-viewer.mjs +62 -0
  183. package/fesm2022/ng-doc-app-components-mermaid-viewer.mjs.map +1 -0
  184. package/fesm2022/ng-doc-app-components-navbar.mjs +12 -32
  185. package/fesm2022/ng-doc-app-components-navbar.mjs.map +1 -1
  186. package/fesm2022/ng-doc-app-components-page-header.mjs +26 -0
  187. package/fesm2022/ng-doc-app-components-page-header.mjs.map +1 -0
  188. package/fesm2022/ng-doc-app-components-page-link.mjs +4 -4
  189. package/fesm2022/ng-doc-app-components-page-link.mjs.map +1 -1
  190. package/fesm2022/ng-doc-app-components-page-navigation.mjs +4 -4
  191. package/fesm2022/ng-doc-app-components-page-navigation.mjs.map +1 -1
  192. package/fesm2022/ng-doc-app-components-page-wrapper.mjs +94 -0
  193. package/fesm2022/ng-doc-app-components-page-wrapper.mjs.map +1 -0
  194. package/fesm2022/ng-doc-app-components-page.mjs +19 -71
  195. package/fesm2022/ng-doc-app-components-page.mjs.map +1 -1
  196. package/fesm2022/ng-doc-app-components-playground.mjs +43 -38
  197. package/fesm2022/ng-doc-app-components-playground.mjs.map +1 -1
  198. package/fesm2022/ng-doc-app-components-root.mjs +18 -35
  199. package/fesm2022/ng-doc-app-components-root.mjs.map +1 -1
  200. package/fesm2022/ng-doc-app-components-search-dialog.mjs +81 -0
  201. package/fesm2022/ng-doc-app-components-search-dialog.mjs.map +1 -0
  202. package/fesm2022/ng-doc-app-components-search-result.mjs +3 -3
  203. package/fesm2022/ng-doc-app-components-search-result.mjs.map +1 -1
  204. package/fesm2022/ng-doc-app-components-search.mjs +30 -48
  205. package/fesm2022/ng-doc-app-components-search.mjs.map +1 -1
  206. package/fesm2022/ng-doc-app-components-sidebar.mjs +49 -44
  207. package/fesm2022/ng-doc-app-components-sidebar.mjs.map +1 -1
  208. package/fesm2022/ng-doc-app-components-tabs.mjs +3 -3
  209. package/fesm2022/ng-doc-app-components-tabs.mjs.map +1 -1
  210. package/fesm2022/ng-doc-app-components-theme-toggle.mjs +17 -51
  211. package/fesm2022/ng-doc-app-components-theme-toggle.mjs.map +1 -1
  212. package/fesm2022/ng-doc-app-components-toc.mjs +40 -38
  213. package/fesm2022/ng-doc-app-components-toc.mjs.map +1 -1
  214. package/fesm2022/ng-doc-app-components.mjs +7 -0
  215. package/fesm2022/ng-doc-app-components.mjs.map +1 -1
  216. package/fesm2022/ng-doc-app-constants.mjs +1 -37
  217. package/fesm2022/ng-doc-app-constants.mjs.map +1 -1
  218. package/fesm2022/ng-doc-app-defaults-default-processors.mjs +6 -3
  219. package/fesm2022/ng-doc-app-defaults-default-processors.mjs.map +1 -1
  220. package/fesm2022/ng-doc-app-directives-code-highlighter.mjs +17 -35
  221. package/fesm2022/ng-doc-app-directives-code-highlighter.mjs.map +1 -1
  222. package/fesm2022/ng-doc-app-directives-route-active.mjs +3 -3
  223. package/fesm2022/ng-doc-app-helpers.mjs +4 -4
  224. package/fesm2022/ng-doc-app-helpers.mjs.map +1 -1
  225. package/fesm2022/ng-doc-app-pipes-decode-uri-component.mjs +3 -3
  226. package/fesm2022/ng-doc-app-pipes-decode-uri-component.mjs.map +1 -1
  227. package/fesm2022/ng-doc-app-pipes-extract-value.mjs +3 -3
  228. package/fesm2022/ng-doc-app-pipes-filter-by-text.mjs +3 -3
  229. package/fesm2022/ng-doc-app-pipes-sanitize-html.mjs +3 -3
  230. package/fesm2022/ng-doc-app-processors-page-processor.mjs +20 -14
  231. package/fesm2022/ng-doc-app-processors-page-processor.mjs.map +1 -1
  232. package/fesm2022/ng-doc-app-processors-processors-link.mjs +20 -0
  233. package/fesm2022/ng-doc-app-processors-processors-link.mjs.map +1 -0
  234. package/fesm2022/ng-doc-app-processors-processors-tooltip.mjs +63 -0
  235. package/fesm2022/ng-doc-app-processors-processors-tooltip.mjs.map +1 -0
  236. package/fesm2022/ng-doc-app-processors-processors.mjs +45 -70
  237. package/fesm2022/ng-doc-app-processors-processors.mjs.map +1 -1
  238. package/fesm2022/ng-doc-app-providers-mermaid.mjs +23 -0
  239. package/fesm2022/ng-doc-app-providers-mermaid.mjs.map +1 -0
  240. package/fesm2022/ng-doc-app-providers-ng-doc-app.mjs +11 -34
  241. package/fesm2022/ng-doc-app-providers-ng-doc-app.mjs.map +1 -1
  242. package/fesm2022/ng-doc-app-providers-playground-demo.mjs.map +1 -1
  243. package/fesm2022/ng-doc-app-providers-search-engine.mjs +1 -1
  244. package/fesm2022/ng-doc-app-providers-search-engine.mjs.map +1 -1
  245. package/fesm2022/ng-doc-app-providers-type-control.mjs.map +1 -1
  246. package/fesm2022/ng-doc-app-providers.mjs +1 -0
  247. package/fesm2022/ng-doc-app-providers.mjs.map +1 -1
  248. package/fesm2022/ng-doc-app-services-highlighter.mjs +46 -0
  249. package/fesm2022/ng-doc-app-services-highlighter.mjs.map +1 -0
  250. package/fesm2022/ng-doc-app-services-sidebar.mjs +35 -50
  251. package/fesm2022/ng-doc-app-services-sidebar.mjs.map +1 -1
  252. package/fesm2022/ng-doc-app-services-store.mjs +3 -3
  253. package/fesm2022/ng-doc-app-services-theme.mjs +27 -126
  254. package/fesm2022/ng-doc-app-services-theme.mjs.map +1 -1
  255. package/fesm2022/ng-doc-app-services.mjs +1 -1
  256. package/fesm2022/ng-doc-app-tokens.mjs +8 -4
  257. package/fesm2022/ng-doc-app-tokens.mjs.map +1 -1
  258. package/fesm2022/ng-doc-app-type-controls-boolean-control.mjs +3 -3
  259. package/fesm2022/ng-doc-app-type-controls-number-control.mjs +4 -4
  260. package/fesm2022/ng-doc-app-type-controls-number-control.mjs.map +1 -1
  261. package/fesm2022/ng-doc-app-type-controls-string-control.mjs +4 -4
  262. package/fesm2022/ng-doc-app-type-controls-string-control.mjs.map +1 -1
  263. package/fesm2022/ng-doc-app-type-controls-type-alias-control.mjs +4 -4
  264. package/fesm2022/ng-doc-app-type-controls-type-alias-control.mjs.map +1 -1
  265. package/helpers/as-boolean.d.ts +0 -1
  266. package/helpers/create-component.d.ts +0 -1
  267. package/helpers/format-html.d.ts +0 -1
  268. package/helpers/generate-toc.d.ts +0 -1
  269. package/helpers/index.d.ts +0 -1
  270. package/helpers/is-dark-os-theme.d.ts +0 -1
  271. package/helpers/is-external-link.d.ts +0 -1
  272. package/helpers/is-playground-property.d.ts +0 -1
  273. package/index.d.ts +0 -1
  274. package/interfaces/context.d.ts +0 -1
  275. package/interfaces/demo-assets.d.ts +0 -1
  276. package/interfaces/index.d.ts +0 -1
  277. package/interfaces/navigation.d.ts +7 -2
  278. package/interfaces/page-processor.d.ts +0 -1
  279. package/interfaces/page-skeleton.d.ts +0 -1
  280. package/interfaces/processor-options.d.ts +4 -2
  281. package/interfaces/provided-type-control.d.ts +0 -1
  282. package/interfaces/search-result.d.ts +0 -1
  283. package/interfaces/tab.d.ts +0 -1
  284. package/interfaces/theme.d.ts +0 -1
  285. package/interfaces/toc-item.d.ts +0 -1
  286. package/interfaces/type-control-provider-options.d.ts +0 -1
  287. package/interfaces/type-control.d.ts +0 -1
  288. package/package.json +76 -10
  289. package/pipes/decode-uri-component/decode-uri-component.pipe.d.ts +0 -1
  290. package/pipes/decode-uri-component/index.d.ts +0 -1
  291. package/pipes/extract-value/extract-value.pipe.d.ts +0 -1
  292. package/pipes/extract-value/index.d.ts +0 -1
  293. package/pipes/filter-by-text/filter-by-text.pipe.d.ts +0 -1
  294. package/pipes/filter-by-text/index.d.ts +0 -1
  295. package/pipes/index.d.ts +0 -1
  296. package/pipes/sanitize-html/index.d.ts +0 -1
  297. package/pipes/sanitize-html/sanitize-html.pipe.d.ts +0 -1
  298. package/processors/index.d.ts +0 -1
  299. package/processors/page-processor/index.d.ts +1 -2
  300. package/processors/page-processor/{page-processor.directive.d.ts → page-processor.component.d.ts} +7 -7
  301. package/processors/processors/heading-anchor.processor.d.ts +3 -0
  302. package/processors/processors/image.processor.d.ts +3 -0
  303. package/processors/processors/index.d.ts +5 -2
  304. package/processors/processors/link/index.d.ts +1 -0
  305. package/processors/processors/mermaid.processor.d.ts +3 -0
  306. package/processors/processors/tooltip/index.d.ts +1 -0
  307. package/providers/index.d.ts +1 -1
  308. package/providers/mermaid/index.d.ts +1 -0
  309. package/providers/mermaid/provide-mermaid.d.ts +7 -0
  310. package/providers/ng-doc-app/index.d.ts +0 -1
  311. package/providers/ng-doc-app/provide-ng-doc-app.d.ts +5 -11
  312. package/providers/page-skeleton/index.d.ts +0 -1
  313. package/providers/page-skeleton/provide-page-skeleton.d.ts +0 -1
  314. package/providers/playground-demo/index.d.ts +0 -1
  315. package/providers/playground-demo/provide-playground-demo.d.ts +1 -2
  316. package/providers/search-engine/index.d.ts +0 -1
  317. package/providers/search-engine/provide-search-engine.d.ts +1 -2
  318. package/providers/type-control/index.d.ts +0 -1
  319. package/providers/type-control/provide-type-control.d.ts +1 -2
  320. package/services/highlighter/highlighter.service.d.ts +24 -0
  321. package/services/highlighter/index.d.ts +1 -0
  322. package/services/index.d.ts +1 -2
  323. package/services/sidebar/index.d.ts +0 -1
  324. package/services/sidebar/sidebar.service.d.ts +4 -11
  325. package/services/store/index.d.ts +0 -1
  326. package/services/store/store.service.d.ts +0 -1
  327. package/services/theme/index.d.ts +0 -1
  328. package/services/theme/theme.service.d.ts +9 -38
  329. package/styles/global.css +161 -132
  330. package/styles/main.css +150 -106
  331. package/styles/themes/dark.css +71 -0
  332. package/tokens/context.d.ts +0 -1
  333. package/tokens/index.d.ts +3 -2
  334. package/tokens/mermaid.d.ts +3 -0
  335. package/tokens/page-processor.d.ts +1 -2
  336. package/tokens/page-skeleton.d.ts +0 -1
  337. package/tokens/route-prefix.d.ts +2 -0
  338. package/tokens/shiki-theme.d.ts +6 -0
  339. package/tokens/theme.d.ts +0 -1
  340. package/tokens/type-control.d.ts +0 -1
  341. package/type-controls/index.d.ts +0 -1
  342. package/types/index.d.ts +0 -1
  343. package/types/typed-form.d.ts +0 -1
  344. package/assets/themes/ng-doc-night.css +0 -111
  345. package/constants/themes.d.ts +0 -34
  346. package/esm2022/constants/themes.mjs +0 -36
  347. package/esm2022/processors/page-processor/page-processor.directive.mjs +0 -68
  348. package/esm2022/processors/processors/link.processor.mjs +0 -13
  349. package/esm2022/processors/processors/tooltip.processor.mjs +0 -56
  350. package/esm2022/tokens/api-list.mjs +0 -3
  351. package/tokens/api-list.d.ts +0 -4
  352. /package/processors/processors/{link.processor.d.ts → link/link.processor.d.ts} +0 -0
  353. /package/processors/processors/{tooltip.processor.d.ts → tooltip/tooltip.processor.d.ts} +0 -0
@@ -1,85 +1,48 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { NgComponentOutlet, NgIf } from '@angular/common';
3
- import { ChangeDetectionStrategy, Component, ElementRef, inject, Renderer2, TemplateRef, ViewChild, ViewContainerRef, } from '@angular/core';
4
- import { ActivatedRoute, Router, RouterOutlet } from '@angular/router';
3
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, inject, TemplateRef, ViewChild, } from '@angular/core';
4
+ import { RouterOutlet } from '@angular/router';
5
5
  import { NgDocRootPage } from '@ng-doc/app/classes/root-page';
6
6
  import { NgDocBreadcrumbComponent } from '@ng-doc/app/components/breadcrumb';
7
+ import { NgDocPageWrapperComponent } from '@ng-doc/app/components/page-wrapper';
7
8
  import { NgDocTocComponent } from '@ng-doc/app/components/toc';
8
9
  import { createComponent, generateToc } from '@ng-doc/app/helpers';
9
- import { NgDocPageProcessorDirective } from '@ng-doc/app/processors';
10
+ import { NgDocSanitizeHtmlPipe } from '@ng-doc/app/pipes';
11
+ import { NgDocPageProcessorComponent } from '@ng-doc/app/processors';
10
12
  import { provideTypeControl } from '@ng-doc/app/providers/type-control';
11
- import { NG_DOC_CONTEXT, NG_DOC_PAGE_SKELETON } from '@ng-doc/app/tokens';
13
+ import { NG_DOC_PAGE_SKELETON } from '@ng-doc/app/tokens';
12
14
  import { NgDocBooleanControlComponent, NgDocNumberControlComponent, NgDocStringControlComponent, NgDocTypeAliasControlComponent, } from '@ng-doc/app/type-controls';
13
- import { isPresent } from '@ng-doc/core';
14
- import { DialogOutletComponent, NgDocButtonIconComponent, NgDocIconComponent, NgDocMediaQueryDirective, NgDocTextComponent, NgDocTextLeftDirective, NgDocTextRightDirective, NgDocTooltipDirective, } from '@ng-doc/ui-kit';
15
+ import { DialogOutletComponent, NgDocButtonIconComponent, NgDocIconComponent, NgDocTextComponent, NgDocTextLeftDirective, NgDocTextRightDirective, NgDocTooltipDirective, } from '@ng-doc/ui-kit';
15
16
  import { UntilDestroy } from '@ngneat/until-destroy';
16
17
  import * as i0 from "@angular/core";
17
18
  let NgDocPageComponent = class NgDocPageComponent {
18
19
  constructor() {
19
20
  this.rootPage = inject(NgDocRootPage);
20
21
  this.skeleton = inject(NG_DOC_PAGE_SKELETON);
21
- this.context = inject(NG_DOC_CONTEXT);
22
- this.renderer = inject(Renderer2);
23
- this.router = inject(Router);
24
- this.breadcrumbs = inject(ActivatedRoute)
25
- .pathFromRoot.filter((route) => !route.snapshot.url.length)
26
- .map((route) => route.snapshot.title)
27
- .filter(isPresent);
28
- }
29
- ngOnInit() {
30
- if (this.rootPage.pageType === 'guide') {
31
- if (this.skeleton.breadcrumbs) {
32
- createComponent(this.pageBreadcrumbs, this.skeleton.breadcrumbs, {
33
- breadcrumbs: this.breadcrumbs,
34
- });
35
- }
36
- if (this.skeleton.navigation) {
37
- createComponent(this.pageNavigation, this.skeleton.navigation, this.navigationInputs());
38
- }
39
- }
22
+ this.changeDetectorRef = inject(ChangeDetectorRef);
23
+ this.pageWrapper = inject(NgDocPageWrapperComponent);
40
24
  }
41
25
  createToc() {
42
- if (this.pageToc && this.skeleton.toc) {
43
- createComponent(this.pageToc, this.skeleton.toc, {
26
+ if (this.pageWrapper.pageToc && this.skeleton.toc) {
27
+ createComponent(this.pageWrapper.pageToc, this.skeleton.toc, {
44
28
  tableOfContent: generateToc(this.pageContainer.nativeElement) ?? [],
45
29
  });
30
+ this.changeDetectorRef.detectChanges();
46
31
  }
47
32
  }
48
- navigationInputs() {
49
- const flatItems = (items) => items
50
- .map((item) => [item.children?.length ? flatItems(item.children) : item])
51
- .flat(2);
52
- const flatPages = flatItems(this.context.navigation);
53
- return {
54
- prevPage: flatPages[flatPages.findIndex((item) => this.url === item.route) - 1],
55
- nextPage: flatPages[flatPages.findIndex((item) => this.url === item.route) + 1],
56
- };
57
- }
58
- get url() {
59
- const urlTree = this.router.parseUrl(this.router.url);
60
- urlTree.queryParams = {};
61
- urlTree.fragment = null;
62
- return urlTree.toString();
63
- }
64
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NgDocPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
65
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: NgDocPageComponent, isStandalone: true, selector: "ng-doc-page", host: { attributes: { "ngSkipHydration": "true" } }, providers: [
33
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgDocPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
34
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: NgDocPageComponent, isStandalone: true, selector: "ng-doc-page", host: { attributes: { "ngSkipHydration": "true" } }, providers: [
66
35
  provideTypeControl('NgDocTypeAlias', NgDocTypeAliasControlComponent, { order: 10 }),
67
36
  provideTypeControl('string', NgDocStringControlComponent, { order: 20 }),
68
- provideTypeControl('string | undefined', NgDocStringControlComponent, { order: 20 }),
69
37
  provideTypeControl('number', NgDocNumberControlComponent, { order: 30 }),
70
- provideTypeControl('number | undefined', NgDocNumberControlComponent, { order: 30 }),
71
38
  provideTypeControl('boolean', NgDocBooleanControlComponent, { hideLabel: true, order: 40 }),
72
- provideTypeControl('boolean | undefined', NgDocBooleanControlComponent, {
73
- hideLabel: true,
74
- order: 40,
75
- }),
76
- ], viewQueries: [{ propertyName: "pageContainer", first: true, predicate: ["pageContainer"], descendants: true, read: ElementRef, static: true }, { propertyName: "pageBreadcrumbs", first: true, predicate: ["pageBreadcrumbs"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "pageNavigation", first: true, predicate: ["pageNavigation"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "pageToc", first: true, predicate: ["pageToc"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "childOutlet", first: true, predicate: ["childOutlet"], descendants: true }], ngImport: i0, template: "<article>\n\t<ng-container #pageBreadcrumbs></ng-container>\n\n\t<div class=\"ng-doc-page-controls\">\n\t\t<a\n\t\t\tng-doc-button-icon\n\t\t\t*ngIf=\"rootPage.editSourceFileUrl\"\n\t\t\t[href]=\"rootPage.editSourceFileUrl\"\n\t\t\ttarget=\"_blank\"\n\t\t\tngDocTooltip=\"Suggest Edits\">\n\t\t\t<ng-doc-icon icon=\"edit-2\"></ng-doc-icon>\n\t\t</a>\n\t\t<a\n\t\t\tng-doc-button-icon\n\t\t\t*ngIf=\"rootPage.viewSourceFileUrl\"\n\t\t\t[href]=\"rootPage.viewSourceFileUrl\"\n\t\t\ttarget=\"_blank\"\n\t\t\tngDocTooltip=\"View Source\">\n\t\t\t<ng-doc-icon icon=\"code\"></ng-doc-icon>\n\t\t</a>\n\t</div>\n\n\t<div\n\t\tclass=\"ng-doc-page-wrapper\"\n\t\t[ngDocPageProcessor]=\"rootPage.pageContent\"\n\t\t(afterRender)=\"createToc()\"\n\t\t#pageContainer></div>\n\n\t<ng-container #pageNavigation></ng-container>\n</article>\n\n<ng-doc-dialog-outlet\n\t*ngIf=\"!rootPage.page?.disableFullscreenRoutes\"\n\t[config]=\"{ width: '100vw', height: '100vh' }\">\n\t<div class=\"ng-doc-fullscreen-wrapper\">\n\t\t<router-outlet></router-outlet>\n\t</div>\n</ng-doc-dialog-outlet>\n\n<ng-container #pageToc></ng-container>\n", styles: [":host{display:flex;--ng-doc-toc-margin: calc(var(--ng-doc-base-gutter) * 5)}:host article{position:relative;width:var(--ng-doc-article-width, 100%);margin-left:auto;margin-right:auto;overflow:hidden}:host article .ng-doc-page-controls{position:absolute;display:flex;grid-gap:var(--ng-doc-base-gutter);top:0;right:0}.ng-doc-fullscreen-wrapper{display:flex;align-items:center;justify-content:center;width:100%;height:100%}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgDocButtonIconComponent, selector: "button[ng-doc-button-icon], a[ng-doc-button-icon]", inputs: ["size", "rounded"] }, { kind: "directive", type: NgDocTooltipDirective, selector: "[ngDocTooltip]", inputs: ["ngDocTooltip", "delay", "displayOrigin", "pointerOrigin", "positions", "canOpen", "panelClass", "minHeight", "maxHeight", "height", "minWidth", "maxWidth", "width"], outputs: ["beforeOpen", "afterOpen", "beforeClose", "afterClose"], exportAs: ["ngDocTooltip"] }, { kind: "component", type: NgDocIconComponent, selector: "ng-doc-icon", inputs: ["icon", "customIcon", "size"] }, { kind: "directive", type: NgDocPageProcessorDirective, selector: "[ngDocPageProcessor]", inputs: ["ngDocPageProcessor"], outputs: ["afterRender"] }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: DialogOutletComponent, selector: "ng-doc-dialog-outlet", inputs: ["config"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
39
+ ], viewQueries: [{ propertyName: "pageContainer", first: true, predicate: ["pageContainer"], descendants: true, read: ElementRef, static: true }, { propertyName: "childOutlet", first: true, predicate: ["childOutlet"], descendants: true }], ngImport: i0, template: "<div class=\"ng-doc-page-controls\">\n <a\n ng-doc-button-icon\n *ngIf=\"rootPage.editSourceFileUrl\"\n [href]=\"rootPage.editSourceFileUrl\"\n target=\"_blank\"\n ngDocTooltip=\"Suggest Edits\">\n <ng-doc-icon icon=\"edit-2\"></ng-doc-icon>\n </a>\n <a\n ng-doc-button-icon\n *ngIf=\"rootPage.viewSourceFileUrl\"\n [href]=\"rootPage.viewSourceFileUrl\"\n target=\"_blank\"\n ngDocTooltip=\"View Source\">\n <ng-doc-icon icon=\"code\"></ng-doc-icon>\n </a>\n</div>\n\n<div\n class=\"ng-doc-page-wrapper\"\n [ngDocPageProcessor]=\"rootPage.pageContent | ngDocSanitizeHtml\"\n (afterRender)=\"createToc()\"\n #pageContainer></div>\n\n<ng-doc-dialog-outlet\n *ngIf=\"!rootPage.page?.disableFullscreenRoutes\"\n [config]=\"{ width: '100vw', height: '100vh' }\">\n <div class=\"ng-doc-fullscreen-wrapper\">\n <router-outlet></router-outlet>\n </div>\n</ng-doc-dialog-outlet>\n", styles: [":host{display:flex;flex-direction:column}:host .ng-doc-page-controls{position:absolute;display:flex;grid-gap:var(--ng-doc-base-gutter);top:0;right:0}.ng-doc-fullscreen-wrapper{display:flex;align-items:center;justify-content:center;width:100%;height:100%}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgDocButtonIconComponent, selector: "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]", inputs: ["size", "rounded"] }, { kind: "directive", type: NgDocTooltipDirective, selector: "[ngDocTooltip]", inputs: ["ngDocTooltip", "delay", "displayOrigin", "pointerOrigin", "positions", "canOpen", "panelClass", "minHeight", "maxHeight", "height", "minWidth", "maxWidth", "width"], outputs: ["beforeOpen", "afterOpen", "beforeClose", "afterClose"], exportAs: ["ngDocTooltip"] }, { kind: "component", type: NgDocIconComponent, selector: "ng-doc-icon", inputs: ["icon", "customIcon", "size"] }, { kind: "component", type: NgDocPageProcessorComponent, selector: "[ngDocPageProcessor]", inputs: ["ngDocPageProcessor"], outputs: ["afterRender"] }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: DialogOutletComponent, selector: "ng-doc-dialog-outlet", inputs: ["config"] }, { kind: "pipe", type: NgDocSanitizeHtmlPipe, name: "ngDocSanitizeHtml" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
77
40
  };
78
41
  NgDocPageComponent = __decorate([
79
42
  UntilDestroy()
80
43
  ], NgDocPageComponent);
81
44
  export { NgDocPageComponent };
82
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NgDocPageComponent, decorators: [{
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgDocPageComponent, decorators: [{
83
46
  type: Component,
84
47
  args: [{ selector: 'ng-doc-page', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
85
48
  NgIf,
@@ -90,38 +53,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
90
53
  NgDocTextComponent,
91
54
  NgDocTextLeftDirective,
92
55
  NgDocTextRightDirective,
93
- NgDocMediaQueryDirective,
94
56
  NgDocTocComponent,
95
- NgDocPageProcessorDirective,
57
+ NgDocPageProcessorComponent,
96
58
  NgComponentOutlet,
97
59
  RouterOutlet,
98
60
  DialogOutletComponent,
61
+ NgDocSanitizeHtmlPipe,
99
62
  ], providers: [
100
63
  provideTypeControl('NgDocTypeAlias', NgDocTypeAliasControlComponent, { order: 10 }),
101
64
  provideTypeControl('string', NgDocStringControlComponent, { order: 20 }),
102
- provideTypeControl('string | undefined', NgDocStringControlComponent, { order: 20 }),
103
65
  provideTypeControl('number', NgDocNumberControlComponent, { order: 30 }),
104
- provideTypeControl('number | undefined', NgDocNumberControlComponent, { order: 30 }),
105
66
  provideTypeControl('boolean', NgDocBooleanControlComponent, { hideLabel: true, order: 40 }),
106
- provideTypeControl('boolean | undefined', NgDocBooleanControlComponent, {
107
- hideLabel: true,
108
- order: 40,
109
- }),
110
- ], host: { ngSkipHydration: 'true' }, template: "<article>\n\t<ng-container #pageBreadcrumbs></ng-container>\n\n\t<div class=\"ng-doc-page-controls\">\n\t\t<a\n\t\t\tng-doc-button-icon\n\t\t\t*ngIf=\"rootPage.editSourceFileUrl\"\n\t\t\t[href]=\"rootPage.editSourceFileUrl\"\n\t\t\ttarget=\"_blank\"\n\t\t\tngDocTooltip=\"Suggest Edits\">\n\t\t\t<ng-doc-icon icon=\"edit-2\"></ng-doc-icon>\n\t\t</a>\n\t\t<a\n\t\t\tng-doc-button-icon\n\t\t\t*ngIf=\"rootPage.viewSourceFileUrl\"\n\t\t\t[href]=\"rootPage.viewSourceFileUrl\"\n\t\t\ttarget=\"_blank\"\n\t\t\tngDocTooltip=\"View Source\">\n\t\t\t<ng-doc-icon icon=\"code\"></ng-doc-icon>\n\t\t</a>\n\t</div>\n\n\t<div\n\t\tclass=\"ng-doc-page-wrapper\"\n\t\t[ngDocPageProcessor]=\"rootPage.pageContent\"\n\t\t(afterRender)=\"createToc()\"\n\t\t#pageContainer></div>\n\n\t<ng-container #pageNavigation></ng-container>\n</article>\n\n<ng-doc-dialog-outlet\n\t*ngIf=\"!rootPage.page?.disableFullscreenRoutes\"\n\t[config]=\"{ width: '100vw', height: '100vh' }\">\n\t<div class=\"ng-doc-fullscreen-wrapper\">\n\t\t<router-outlet></router-outlet>\n\t</div>\n</ng-doc-dialog-outlet>\n\n<ng-container #pageToc></ng-container>\n", styles: [":host{display:flex;--ng-doc-toc-margin: calc(var(--ng-doc-base-gutter) * 5)}:host article{position:relative;width:var(--ng-doc-article-width, 100%);margin-left:auto;margin-right:auto;overflow:hidden}:host article .ng-doc-page-controls{position:absolute;display:flex;grid-gap:var(--ng-doc-base-gutter);top:0;right:0}.ng-doc-fullscreen-wrapper{display:flex;align-items:center;justify-content:center;width:100%;height:100%}\n"] }]
67
+ ], host: { ngSkipHydration: 'true' }, template: "<div class=\"ng-doc-page-controls\">\n <a\n ng-doc-button-icon\n *ngIf=\"rootPage.editSourceFileUrl\"\n [href]=\"rootPage.editSourceFileUrl\"\n target=\"_blank\"\n ngDocTooltip=\"Suggest Edits\">\n <ng-doc-icon icon=\"edit-2\"></ng-doc-icon>\n </a>\n <a\n ng-doc-button-icon\n *ngIf=\"rootPage.viewSourceFileUrl\"\n [href]=\"rootPage.viewSourceFileUrl\"\n target=\"_blank\"\n ngDocTooltip=\"View Source\">\n <ng-doc-icon icon=\"code\"></ng-doc-icon>\n </a>\n</div>\n\n<div\n class=\"ng-doc-page-wrapper\"\n [ngDocPageProcessor]=\"rootPage.pageContent | ngDocSanitizeHtml\"\n (afterRender)=\"createToc()\"\n #pageContainer></div>\n\n<ng-doc-dialog-outlet\n *ngIf=\"!rootPage.page?.disableFullscreenRoutes\"\n [config]=\"{ width: '100vw', height: '100vh' }\">\n <div class=\"ng-doc-fullscreen-wrapper\">\n <router-outlet></router-outlet>\n </div>\n</ng-doc-dialog-outlet>\n", styles: [":host{display:flex;flex-direction:column}:host .ng-doc-page-controls{position:absolute;display:flex;grid-gap:var(--ng-doc-base-gutter);top:0;right:0}.ng-doc-fullscreen-wrapper{display:flex;align-items:center;justify-content:center;width:100%;height:100%}\n"] }]
111
68
  }], propDecorators: { pageContainer: [{
112
69
  type: ViewChild,
113
70
  args: ['pageContainer', { read: ElementRef, static: true }]
114
- }], pageBreadcrumbs: [{
115
- type: ViewChild,
116
- args: ['pageBreadcrumbs', { read: ViewContainerRef, static: true }]
117
- }], pageNavigation: [{
118
- type: ViewChild,
119
- args: ['pageNavigation', { read: ViewContainerRef, static: true }]
120
- }], pageToc: [{
121
- type: ViewChild,
122
- args: ['pageToc', { read: ViewContainerRef, static: true }]
123
71
  }], childOutlet: [{
124
72
  type: ViewChild,
125
73
  args: ['childOutlet']
126
74
  }] } });
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcC9jb21wb25lbnRzL3BhZ2UvcGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcC9jb21wb25lbnRzL3BhZ2UvcGFnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFELE9BQU8sRUFDTix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBRU4sU0FBUyxFQUNULFdBQVcsRUFDWCxTQUFTLEVBQ1QsZ0JBQWdCLEdBQ2hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBVyxNQUFNLGlCQUFpQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBT25FLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMxRSxPQUFPLEVBQ04sNEJBQTRCLEVBQzVCLDJCQUEyQixFQUMzQiwyQkFBMkIsRUFDM0IsOEJBQThCLEdBQzlCLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6QyxPQUFPLEVBQ04scUJBQXFCLEVBQ3JCLHdCQUF3QixFQUN4QixrQkFBa0IsRUFDbEIsd0JBQXdCLEVBQ3hCLGtCQUFrQixFQUNsQixzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLHFCQUFxQixHQUNyQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUF1QzlDLElBQU0sa0JBQWtCLEdBQXhCLE1BQU0sa0JBQWtCO0lBQXhCO1FBZ0JJLGFBQVEsR0FBa0IsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2hELGFBQVEsR0FBc0IsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDM0QsWUFBTyxHQUFpQixNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDL0MsYUFBUSxHQUFjLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN4QyxXQUFNLEdBQVcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRWxDLGdCQUFXLEdBQWEsTUFBTSxDQUFDLGNBQWMsQ0FBQzthQUNwRCxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBcUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUM7YUFDMUUsR0FBRyxDQUFDLENBQUMsS0FBcUIsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7YUFDcEQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0tBK0NwQjtJQTdDQSxRQUFRO1FBQ1AsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUN4QyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQy9CLGVBQWUsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFO29CQUNoRSxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7aUJBQzdCLENBQUMsQ0FBQztZQUNKLENBQUM7WUFFRCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQzlCLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7WUFDekYsQ0FBQztRQUNGLENBQUM7SUFDRixDQUFDO0lBRUQsU0FBUztRQUNSLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3ZDLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFO2dCQUNoRCxjQUFjLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRTthQUNuRSxDQUFDLENBQUM7UUFDSixDQUFDO0lBQ0YsQ0FBQztJQUVPLGdCQUFnQjtRQUN2QixNQUFNLFNBQVMsR0FBRyxDQUFDLEtBQXdCLEVBQXFCLEVBQUUsQ0FDakUsS0FBSzthQUNILEdBQUcsQ0FBQyxDQUFDLElBQXFCLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3pGLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNYLE1BQU0sU0FBUyxHQUFzQixTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV4RSxPQUFPO1lBQ04sUUFBUSxFQUNQLFNBQVMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBcUIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZGLFFBQVEsRUFDUCxTQUFTLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQXFCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN2RixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQVksR0FBRztRQUNkLE1BQU0sT0FBTyxHQUFZLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFL0QsT0FBTyxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDekIsT0FBTyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFFeEIsT0FBTyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs4R0F2RVcsa0JBQWtCO2tHQUFsQixrQkFBa0IsK0dBZm5CO1lBQ1Ysa0JBQWtCLENBQUMsZ0JBQWdCLEVBQUUsOEJBQThCLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDbkYsa0JBQWtCLENBQUMsUUFBUSxFQUFFLDJCQUEyQixFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ3hFLGtCQUFrQixDQUFDLG9CQUFvQixFQUFFLDJCQUEyQixFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ3BGLGtCQUFrQixDQUFDLFFBQVEsRUFBRSwyQkFBMkIsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUN4RSxrQkFBa0IsQ0FBQyxvQkFBb0IsRUFBRSwyQkFBMkIsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNwRixrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsNEJBQTRCLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUMzRixrQkFBa0IsQ0FBQyxxQkFBcUIsRUFBRSw0QkFBNEIsRUFBRTtnQkFDdkUsU0FBUyxFQUFFLElBQUk7Z0JBQ2YsS0FBSyxFQUFFLEVBQUU7YUFDVCxDQUFDO1NBQ0YscUhBS21DLFVBQVUsMkhBR1IsZ0JBQWdCLHlIQUdqQixnQkFBZ0IsMkdBR3ZCLGdCQUFnQix3SUM1Ri9DLDhsQ0F3Q0EsZ2VEWUUsSUFBSSw2RkFFSix3QkFBd0IsMkhBQ3hCLHFCQUFxQiwwVUFDckIsa0JBQWtCLGdHQU1sQiwyQkFBMkIsMkhBRTNCLFlBQVksMkpBQ1oscUJBQXFCOztBQWlCVixrQkFBa0I7SUFEOUIsWUFBWSxFQUFFO0dBQ0Ysa0JBQWtCLENBd0U5Qjs7MkZBeEVZLGtCQUFrQjtrQkFyQzlCLFNBQVM7K0JBQ0MsYUFBYSxtQkFHTix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUixJQUFJO3dCQUNKLHdCQUF3Qjt3QkFDeEIsd0JBQXdCO3dCQUN4QixxQkFBcUI7d0JBQ3JCLGtCQUFrQjt3QkFDbEIsa0JBQWtCO3dCQUNsQixzQkFBc0I7d0JBQ3RCLHVCQUF1Qjt3QkFDdkIsd0JBQXdCO3dCQUN4QixpQkFBaUI7d0JBQ2pCLDJCQUEyQjt3QkFDM0IsaUJBQWlCO3dCQUNqQixZQUFZO3dCQUNaLHFCQUFxQjtxQkFDckIsYUFDVTt3QkFDVixrQkFBa0IsQ0FBQyxnQkFBZ0IsRUFBRSw4QkFBOEIsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQzt3QkFDbkYsa0JBQWtCLENBQUMsUUFBUSxFQUFFLDJCQUEyQixFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDO3dCQUN4RSxrQkFBa0IsQ0FBQyxvQkFBb0IsRUFBRSwyQkFBMkIsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQzt3QkFDcEYsa0JBQWtCLENBQUMsUUFBUSxFQUFFLDJCQUEyQixFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDO3dCQUN4RSxrQkFBa0IsQ0FBQyxvQkFBb0IsRUFBRSwyQkFBMkIsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQzt3QkFDcEYsa0JBQWtCLENBQUMsU0FBUyxFQUFFLDRCQUE0QixFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUM7d0JBQzNGLGtCQUFrQixDQUFDLHFCQUFxQixFQUFFLDRCQUE0QixFQUFFOzRCQUN2RSxTQUFTLEVBQUUsSUFBSTs0QkFDZixLQUFLLEVBQUUsRUFBRTt5QkFDVCxDQUFDO3FCQUNGLFFBQ0ssRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFOzhCQUtqQyxhQUFhO3NCQURaLFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUk5RCxlQUFlO3NCQURkLFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJdEUsY0FBYztzQkFEYixTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSXJFLE9BQU87c0JBRE4sU0FBUzt1QkFBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJOUQsV0FBVztzQkFEVixTQUFTO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NvbXBvbmVudE91dGxldCwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRFbGVtZW50UmVmLFxuXHRpbmplY3QsXG5cdE9uSW5pdCxcblx0UmVuZGVyZXIyLFxuXHRUZW1wbGF0ZVJlZixcblx0Vmlld0NoaWxkLFxuXHRWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIsIFJvdXRlck91dGxldCwgVXJsVHJlZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBOZ0RvY1Jvb3RQYWdlIH0gZnJvbSAnQG5nLWRvYy9hcHAvY2xhc3Nlcy9yb290LXBhZ2UnO1xuaW1wb3J0IHsgTmdEb2NCcmVhZGNydW1iQ29tcG9uZW50IH0gZnJvbSAnQG5nLWRvYy9hcHAvY29tcG9uZW50cy9icmVhZGNydW1iJztcbmltcG9ydCB7IE5nRG9jVG9jQ29tcG9uZW50IH0gZnJvbSAnQG5nLWRvYy9hcHAvY29tcG9uZW50cy90b2MnO1xuaW1wb3J0IHsgY3JlYXRlQ29tcG9uZW50LCBnZW5lcmF0ZVRvYyB9IGZyb20gJ0BuZy1kb2MvYXBwL2hlbHBlcnMnO1xuaW1wb3J0IHtcblx0TmdEb2NDb250ZXh0LFxuXHROZ0RvY05hdmlnYXRpb24sXG5cdE5nRG9jUGFnZU5hdmlnYXRpb24sXG5cdE5nRG9jUGFnZVNrZWxldG9uLFxufSBmcm9tICdAbmctZG9jL2FwcC9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE5nRG9jUGFnZVByb2Nlc3NvckRpcmVjdGl2ZSB9IGZyb20gJ0BuZy1kb2MvYXBwL3Byb2Nlc3NvcnMnO1xuaW1wb3J0IHsgcHJvdmlkZVR5cGVDb250cm9sIH0gZnJvbSAnQG5nLWRvYy9hcHAvcHJvdmlkZXJzL3R5cGUtY29udHJvbCc7XG5pbXBvcnQgeyBOR19ET0NfQ09OVEVYVCwgTkdfRE9DX1BBR0VfU0tFTEVUT04gfSBmcm9tICdAbmctZG9jL2FwcC90b2tlbnMnO1xuaW1wb3J0IHtcblx0TmdEb2NCb29sZWFuQ29udHJvbENvbXBvbmVudCxcblx0TmdEb2NOdW1iZXJDb250cm9sQ29tcG9uZW50LFxuXHROZ0RvY1N0cmluZ0NvbnRyb2xDb21wb25lbnQsXG5cdE5nRG9jVHlwZUFsaWFzQ29udHJvbENvbXBvbmVudCxcbn0gZnJvbSAnQG5nLWRvYy9hcHAvdHlwZS1jb250cm9scyc7XG5pbXBvcnQgeyBpc1ByZXNlbnQgfSBmcm9tICdAbmctZG9jL2NvcmUnO1xuaW1wb3J0IHtcblx0RGlhbG9nT3V0bGV0Q29tcG9uZW50LFxuXHROZ0RvY0J1dHRvbkljb25Db21wb25lbnQsXG5cdE5nRG9jSWNvbkNvbXBvbmVudCxcblx0TmdEb2NNZWRpYVF1ZXJ5RGlyZWN0aXZlLFxuXHROZ0RvY1RleHRDb21wb25lbnQsXG5cdE5nRG9jVGV4dExlZnREaXJlY3RpdmUsXG5cdE5nRG9jVGV4dFJpZ2h0RGlyZWN0aXZlLFxuXHROZ0RvY1Rvb2x0aXBEaXJlY3RpdmUsXG59IGZyb20gJ0BuZy1kb2MvdWkta2l0JztcbmltcG9ydCB7IFVudGlsRGVzdHJveSB9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25nLWRvYy1wYWdlJyxcblx0dGVtcGxhdGVVcmw6ICcuL3BhZ2UuY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybHM6IFsnLi9wYWdlLmNvbXBvbmVudC5zY3NzJ10sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRpbXBvcnRzOiBbXG5cdFx0TmdJZixcblx0XHROZ0RvY0JyZWFkY3J1bWJDb21wb25lbnQsXG5cdFx0TmdEb2NCdXR0b25JY29uQ29tcG9uZW50LFxuXHRcdE5nRG9jVG9vbHRpcERpcmVjdGl2ZSxcblx0XHROZ0RvY0ljb25Db21wb25lbnQsXG5cdFx0TmdEb2NUZXh0Q29tcG9uZW50LFxuXHRcdE5nRG9jVGV4dExlZnREaXJlY3RpdmUsXG5cdFx0TmdEb2NUZXh0UmlnaHREaXJlY3RpdmUsXG5cdFx0TmdEb2NNZWRpYVF1ZXJ5RGlyZWN0aXZlLFxuXHRcdE5nRG9jVG9jQ29tcG9uZW50LFxuXHRcdE5nRG9jUGFnZVByb2Nlc3NvckRpcmVjdGl2ZSxcblx0XHROZ0NvbXBvbmVudE91dGxldCxcblx0XHRSb3V0ZXJPdXRsZXQsXG5cdFx0RGlhbG9nT3V0bGV0Q29tcG9uZW50LFxuXHRdLFxuXHRwcm92aWRlcnM6IFtcblx0XHRwcm92aWRlVHlwZUNvbnRyb2woJ05nRG9jVHlwZUFsaWFzJywgTmdEb2NUeXBlQWxpYXNDb250cm9sQ29tcG9uZW50LCB7IG9yZGVyOiAxMCB9KSxcblx0XHRwcm92aWRlVHlwZUNvbnRyb2woJ3N0cmluZycsIE5nRG9jU3RyaW5nQ29udHJvbENvbXBvbmVudCwgeyBvcmRlcjogMjAgfSksXG5cdFx0cHJvdmlkZVR5cGVDb250cm9sKCdzdHJpbmcgfCB1bmRlZmluZWQnLCBOZ0RvY1N0cmluZ0NvbnRyb2xDb21wb25lbnQsIHsgb3JkZXI6IDIwIH0pLFxuXHRcdHByb3ZpZGVUeXBlQ29udHJvbCgnbnVtYmVyJywgTmdEb2NOdW1iZXJDb250cm9sQ29tcG9uZW50LCB7IG9yZGVyOiAzMCB9KSxcblx0XHRwcm92aWRlVHlwZUNvbnRyb2woJ251bWJlciB8IHVuZGVmaW5lZCcsIE5nRG9jTnVtYmVyQ29udHJvbENvbXBvbmVudCwgeyBvcmRlcjogMzAgfSksXG5cdFx0cHJvdmlkZVR5cGVDb250cm9sKCdib29sZWFuJywgTmdEb2NCb29sZWFuQ29udHJvbENvbXBvbmVudCwgeyBoaWRlTGFiZWw6IHRydWUsIG9yZGVyOiA0MCB9KSxcblx0XHRwcm92aWRlVHlwZUNvbnRyb2woJ2Jvb2xlYW4gfCB1bmRlZmluZWQnLCBOZ0RvY0Jvb2xlYW5Db250cm9sQ29tcG9uZW50LCB7XG5cdFx0XHRoaWRlTGFiZWw6IHRydWUsXG5cdFx0XHRvcmRlcjogNDAsXG5cdFx0fSksXG5cdF0sXG5cdGhvc3Q6IHsgbmdTa2lwSHlkcmF0aW9uOiAndHJ1ZScgfSxcbn0pXG5AVW50aWxEZXN0cm95KClcbmV4cG9ydCBjbGFzcyBOZ0RvY1BhZ2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXHRAVmlld0NoaWxkKCdwYWdlQ29udGFpbmVyJywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IHRydWUgfSlcblx0cGFnZUNvbnRhaW5lciE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG5cdEBWaWV3Q2hpbGQoJ3BhZ2VCcmVhZGNydW1icycsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pXG5cdHBhZ2VCcmVhZGNydW1icyE6IFZpZXdDb250YWluZXJSZWY7XG5cblx0QFZpZXdDaGlsZCgncGFnZU5hdmlnYXRpb24nLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuXHRwYWdlTmF2aWdhdGlvbiE6IFZpZXdDb250YWluZXJSZWY7XG5cblx0QFZpZXdDaGlsZCgncGFnZVRvYycsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pXG5cdHBhZ2VUb2M/OiBWaWV3Q29udGFpbmVyUmVmO1xuXG5cdEBWaWV3Q2hpbGQoJ2NoaWxkT3V0bGV0Jylcblx0Y2hpbGRPdXRsZXQ/OiBUZW1wbGF0ZVJlZjxuZXZlcj47XG5cblx0cHJvdGVjdGVkIHJvb3RQYWdlOiBOZ0RvY1Jvb3RQYWdlID0gaW5qZWN0KE5nRG9jUm9vdFBhZ2UpO1xuXHRwcm90ZWN0ZWQgc2tlbGV0b246IE5nRG9jUGFnZVNrZWxldG9uID0gaW5qZWN0KE5HX0RPQ19QQUdFX1NLRUxFVE9OKTtcblx0cHJvdGVjdGVkIGNvbnRleHQ6IE5nRG9jQ29udGV4dCA9IGluamVjdChOR19ET0NfQ09OVEVYVCk7XG5cdHByb3RlY3RlZCByZW5kZXJlcjogUmVuZGVyZXIyID0gaW5qZWN0KFJlbmRlcmVyMik7XG5cdHByb3RlY3RlZCByb3V0ZXI6IFJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuXG5cdHByaXZhdGUgYnJlYWRjcnVtYnM6IHN0cmluZ1tdID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKVxuXHRcdC5wYXRoRnJvbVJvb3QuZmlsdGVyKChyb3V0ZTogQWN0aXZhdGVkUm91dGUpID0+ICFyb3V0ZS5zbmFwc2hvdC51cmwubGVuZ3RoKVxuXHRcdC5tYXAoKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSkgPT4gcm91dGUuc25hcHNob3QudGl0bGUpXG5cdFx0LmZpbHRlcihpc1ByZXNlbnQpO1xuXG5cdG5nT25Jbml0KCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLnJvb3RQYWdlLnBhZ2VUeXBlID09PSAnZ3VpZGUnKSB7XG5cdFx0XHRpZiAodGhpcy5za2VsZXRvbi5icmVhZGNydW1icykge1xuXHRcdFx0XHRjcmVhdGVDb21wb25lbnQodGhpcy5wYWdlQnJlYWRjcnVtYnMsIHRoaXMuc2tlbGV0b24uYnJlYWRjcnVtYnMsIHtcblx0XHRcdFx0XHRicmVhZGNydW1iczogdGhpcy5icmVhZGNydW1icyxcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cblx0XHRcdGlmICh0aGlzLnNrZWxldG9uLm5hdmlnYXRpb24pIHtcblx0XHRcdFx0Y3JlYXRlQ29tcG9uZW50KHRoaXMucGFnZU5hdmlnYXRpb24sIHRoaXMuc2tlbGV0b24ubmF2aWdhdGlvbiwgdGhpcy5uYXZpZ2F0aW9uSW5wdXRzKCkpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdGNyZWF0ZVRvYygpOiB2b2lkIHtcblx0XHRpZiAodGhpcy5wYWdlVG9jICYmIHRoaXMuc2tlbGV0b24udG9jKSB7XG5cdFx0XHRjcmVhdGVDb21wb25lbnQodGhpcy5wYWdlVG9jLCB0aGlzLnNrZWxldG9uLnRvYywge1xuXHRcdFx0XHR0YWJsZU9mQ29udGVudDogZ2VuZXJhdGVUb2ModGhpcy5wYWdlQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQpID8/IFtdLFxuXHRcdFx0fSk7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBuYXZpZ2F0aW9uSW5wdXRzKCk6IE5nRG9jUGFnZU5hdmlnYXRpb24ge1xuXHRcdGNvbnN0IGZsYXRJdGVtcyA9IChpdGVtczogTmdEb2NOYXZpZ2F0aW9uW10pOiBOZ0RvY05hdmlnYXRpb25bXSA9PlxuXHRcdFx0aXRlbXNcblx0XHRcdFx0Lm1hcCgoaXRlbTogTmdEb2NOYXZpZ2F0aW9uKSA9PiBbaXRlbS5jaGlsZHJlbj8ubGVuZ3RoID8gZmxhdEl0ZW1zKGl0ZW0uY2hpbGRyZW4pIDogaXRlbV0pXG5cdFx0XHRcdC5mbGF0KDIpO1xuXHRcdGNvbnN0IGZsYXRQYWdlczogTmdEb2NOYXZpZ2F0aW9uW10gPSBmbGF0SXRlbXModGhpcy5jb250ZXh0Lm5hdmlnYXRpb24pO1xuXG5cdFx0cmV0dXJuIHtcblx0XHRcdHByZXZQYWdlOlxuXHRcdFx0XHRmbGF0UGFnZXNbZmxhdFBhZ2VzLmZpbmRJbmRleCgoaXRlbTogTmdEb2NOYXZpZ2F0aW9uKSA9PiB0aGlzLnVybCA9PT0gaXRlbS5yb3V0ZSkgLSAxXSxcblx0XHRcdG5leHRQYWdlOlxuXHRcdFx0XHRmbGF0UGFnZXNbZmxhdFBhZ2VzLmZpbmRJbmRleCgoaXRlbTogTmdEb2NOYXZpZ2F0aW9uKSA9PiB0aGlzLnVybCA9PT0gaXRlbS5yb3V0ZSkgKyAxXSxcblx0XHR9O1xuXHR9XG5cblx0cHJpdmF0ZSBnZXQgdXJsKCk6IHN0cmluZyB7XG5cdFx0Y29uc3QgdXJsVHJlZTogVXJsVHJlZSA9IHRoaXMucm91dGVyLnBhcnNlVXJsKHRoaXMucm91dGVyLnVybCk7XG5cblx0XHR1cmxUcmVlLnF1ZXJ5UGFyYW1zID0ge307XG5cdFx0dXJsVHJlZS5mcmFnbWVudCA9IG51bGw7XG5cblx0XHRyZXR1cm4gdXJsVHJlZS50b1N0cmluZygpO1xuXHR9XG59XG4iLCI8YXJ0aWNsZT5cblx0PG5nLWNvbnRhaW5lciAjcGFnZUJyZWFkY3J1bWJzPjwvbmctY29udGFpbmVyPlxuXG5cdDxkaXYgY2xhc3M9XCJuZy1kb2MtcGFnZS1jb250cm9sc1wiPlxuXHRcdDxhXG5cdFx0XHRuZy1kb2MtYnV0dG9uLWljb25cblx0XHRcdCpuZ0lmPVwicm9vdFBhZ2UuZWRpdFNvdXJjZUZpbGVVcmxcIlxuXHRcdFx0W2hyZWZdPVwicm9vdFBhZ2UuZWRpdFNvdXJjZUZpbGVVcmxcIlxuXHRcdFx0dGFyZ2V0PVwiX2JsYW5rXCJcblx0XHRcdG5nRG9jVG9vbHRpcD1cIlN1Z2dlc3QgRWRpdHNcIj5cblx0XHRcdDxuZy1kb2MtaWNvbiBpY29uPVwiZWRpdC0yXCI+PC9uZy1kb2MtaWNvbj5cblx0XHQ8L2E+XG5cdFx0PGFcblx0XHRcdG5nLWRvYy1idXR0b24taWNvblxuXHRcdFx0Km5nSWY9XCJyb290UGFnZS52aWV3U291cmNlRmlsZVVybFwiXG5cdFx0XHRbaHJlZl09XCJyb290UGFnZS52aWV3U291cmNlRmlsZVVybFwiXG5cdFx0XHR0YXJnZXQ9XCJfYmxhbmtcIlxuXHRcdFx0bmdEb2NUb29sdGlwPVwiVmlldyBTb3VyY2VcIj5cblx0XHRcdDxuZy1kb2MtaWNvbiBpY29uPVwiY29kZVwiPjwvbmctZG9jLWljb24+XG5cdFx0PC9hPlxuXHQ8L2Rpdj5cblxuXHQ8ZGl2XG5cdFx0Y2xhc3M9XCJuZy1kb2MtcGFnZS13cmFwcGVyXCJcblx0XHRbbmdEb2NQYWdlUHJvY2Vzc29yXT1cInJvb3RQYWdlLnBhZ2VDb250ZW50XCJcblx0XHQoYWZ0ZXJSZW5kZXIpPVwiY3JlYXRlVG9jKClcIlxuXHRcdCNwYWdlQ29udGFpbmVyPjwvZGl2PlxuXG5cdDxuZy1jb250YWluZXIgI3BhZ2VOYXZpZ2F0aW9uPjwvbmctY29udGFpbmVyPlxuPC9hcnRpY2xlPlxuXG48bmctZG9jLWRpYWxvZy1vdXRsZXRcblx0Km5nSWY9XCIhcm9vdFBhZ2UucGFnZT8uZGlzYWJsZUZ1bGxzY3JlZW5Sb3V0ZXNcIlxuXHRbY29uZmlnXT1cInsgd2lkdGg6ICcxMDB2dycsIGhlaWdodDogJzEwMHZoJyB9XCI+XG5cdDxkaXYgY2xhc3M9XCJuZy1kb2MtZnVsbHNjcmVlbi13cmFwcGVyXCI+XG5cdFx0PHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxuXHQ8L2Rpdj5cbjwvbmctZG9jLWRpYWxvZy1vdXRsZXQ+XG5cbjxuZy1jb250YWluZXIgI3BhZ2VUb2M+PC9uZy1jb250YWluZXI+XG4iXX0=
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcC9jb21wb25lbnRzL3BhZ2UvcGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcC9jb21wb25lbnRzL3BhZ2UvcGFnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRW5FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzFELE9BQU8sRUFDTCw0QkFBNEIsRUFDNUIsMkJBQTJCLEVBQzNCLDJCQUEyQixFQUMzQiw4QkFBOEIsR0FD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LEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQztxQkFDNUYsUUFDSyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUU7OEJBS2pDLGFBQWE7c0JBRFosU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSTlELFdBQVc7c0JBRFYsU0FBUzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDb21wb25lbnRPdXRsZXQsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIGluamVjdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXJPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTmdEb2NSb290UGFnZSB9IGZyb20gJ0BuZy1kb2MvYXBwL2NsYXNzZXMvcm9vdC1wYWdlJztcbmltcG9ydCB7IE5nRG9jQnJlYWRjcnVtYkNvbXBvbmVudCB9IGZyb20gJ0BuZy1kb2MvYXBwL2NvbXBvbmVudHMvYnJlYWRjcnVtYic7XG5pbXBvcnQgeyBOZ0RvY1BhZ2VXcmFwcGVyQ29tcG9uZW50IH0gZnJvbSAnQG5nLWRvYy9hcHAvY29tcG9uZW50cy9wYWdlLXdyYXBwZXInO1xuaW1wb3J0IHsgTmdEb2NUb2NDb21wb25lbnQgfSBmcm9tICdAbmctZG9jL2FwcC9jb21wb25lbnRzL3RvYyc7XG5pbXBvcnQgeyBjcmVhdGVDb21wb25lbnQsIGdlbmVyYXRlVG9jIH0gZnJvbSAnQG5nLWRvYy9hcHAvaGVscGVycyc7XG5pbXBvcnQgeyBOZ0RvY1BhZ2VTa2VsZXRvbiB9IGZyb20gJ0BuZy1kb2MvYXBwL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTmdEb2NTYW5pdGl6ZUh0bWxQaXBlIH0gZnJvbSAnQG5nLWRvYy9hcHAvcGlwZXMnO1xuaW1wb3J0IHsgTmdEb2NQYWdlUHJvY2Vzc29yQ29tcG9uZW50IH0gZnJvbSAnQG5nLWRvYy9hcHAvcHJvY2Vzc29ycyc7XG5pbXBvcnQgeyBwcm92aWRlVHlwZUNvbnRyb2wgfSBmcm9tICdAbmctZG9jL2FwcC9wcm92aWRlcnMvdHlwZS1jb250cm9sJztcbmltcG9ydCB7IE5HX0RPQ19QQUdFX1NLRUxFVE9OIH0gZnJvbSAnQG5nLWRvYy9hcHAvdG9rZW5zJztcbmltcG9ydCB7XG4gIE5nRG9jQm9vbGVhbkNvbnRyb2xDb21wb25lbnQsXG4gIE5nRG9jTnVtYmVyQ29udHJvbENvbXBvbmVudCxcbiAgTmdEb2NTdHJpbmdDb250cm9sQ29tcG9uZW50LFxuICBOZ0RvY1R5cGVBbGlhc0NvbnRyb2xDb21wb25lbnQsXG59IGZyb20gJ0BuZy1kb2MvYXBwL3R5cGUtY29udHJvbHMnO1xuaW1wb3J0IHtcbiAgRGlhbG9nT3V0bGV0Q29tcG9uZW50LFxuICBOZ0RvY0J1dHRvbkljb25Db21wb25lbnQsXG4gIE5nRG9jSWNvbkNvbXBvbmVudCxcbiAgTmdEb2NUZXh0Q29tcG9uZW50LFxuICBOZ0RvY1RleHRMZWZ0RGlyZWN0aXZlLFxuICBOZ0RvY1RleHRSaWdodERpcmVjdGl2ZSxcbiAgTmdEb2NUb29sdGlwRGlyZWN0aXZlLFxufSBmcm9tICdAbmctZG9jL3VpLWtpdCc7XG5pbXBvcnQgeyBVbnRpbERlc3Ryb3kgfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZy1kb2MtcGFnZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWdlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGFnZS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE5nSWYsXG4gICAgTmdEb2NCcmVhZGNydW1iQ29tcG9uZW50LFxuICAgIE5nRG9jQnV0dG9uSWNvbkNvbXBvbmVudCxcbiAgICBOZ0RvY1Rvb2x0aXBEaXJlY3RpdmUsXG4gICAgTmdEb2NJY29uQ29tcG9uZW50LFxuICAgIE5nRG9jVGV4dENvbXBvbmVudCxcbiAgICBOZ0RvY1RleHRMZWZ0RGlyZWN0aXZlLFxuICAgIE5nRG9jVGV4dFJpZ2h0RGlyZWN0aXZlLFxuICAgIE5nRG9jVG9jQ29tcG9uZW50LFxuICAgIE5nRG9jUGFnZVByb2Nlc3NvckNvbXBvbmVudCxcbiAgICBOZ0NvbXBvbmVudE91dGxldCxcbiAgICBSb3V0ZXJPdXRsZXQsXG4gICAgRGlhbG9nT3V0bGV0Q29tcG9uZW50LFxuICAgIE5nRG9jU2FuaXRpemVIdG1sUGlwZSxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgcHJvdmlkZVR5cGVDb250cm9sKCdOZ0RvY1R5cGVBbGlhcycsIE5nRG9jVHlwZUFsaWFzQ29udHJvbENvbXBvbmVudCwgeyBvcmRlcjogMTAgfSksXG4gICAgcHJvdmlkZVR5cGVDb250cm9sKCdzdHJpbmcnLCBOZ0RvY1N0cmluZ0NvbnRyb2xDb21wb25lbnQsIHsgb3JkZXI6IDIwIH0pLFxuICAgIHByb3ZpZGVUeXBlQ29udHJvbCgnbnVtYmVyJywgTmdEb2NOdW1iZXJDb250cm9sQ29tcG9uZW50LCB7IG9yZGVyOiAzMCB9KSxcbiAgICBwcm92aWRlVHlwZUNvbnRyb2woJ2Jvb2xlYW4nLCBOZ0RvY0Jvb2xlYW5Db250cm9sQ29tcG9uZW50LCB7IGhpZGVMYWJlbDogdHJ1ZSwgb3JkZXI6IDQwIH0pLFxuICBdLFxuICBob3N0OiB7IG5nU2tpcEh5ZHJhdGlvbjogJ3RydWUnIH0sXG59KVxuQFVudGlsRGVzdHJveSgpXG5leHBvcnQgY2xhc3MgTmdEb2NQYWdlQ29tcG9uZW50IHtcbiAgQFZpZXdDaGlsZCgncGFnZUNvbnRhaW5lcicsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiB0cnVlIH0pXG4gIHBhZ2VDb250YWluZXIhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBAVmlld0NoaWxkKCdjaGlsZE91dGxldCcpXG4gIGNoaWxkT3V0bGV0PzogVGVtcGxhdGVSZWY8bmV2ZXI+O1xuXG4gIHByb3RlY3RlZCByb290UGFnZTogTmdEb2NSb290UGFnZSA9IGluamVjdChOZ0RvY1Jvb3RQYWdlKTtcbiAgcHJvdGVjdGVkIHNrZWxldG9uOiBOZ0RvY1BhZ2VTa2VsZXRvbiA9IGluamVjdChOR19ET0NfUEFHRV9TS0VMRVRPTik7XG4gIHByb3RlY3RlZCBjaGFuZ2VEZXRlY3RvclJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgcHJvdGVjdGVkIHBhZ2VXcmFwcGVyOiBOZ0RvY1BhZ2VXcmFwcGVyQ29tcG9uZW50ID0gaW5qZWN0KE5nRG9jUGFnZVdyYXBwZXJDb21wb25lbnQpO1xuXG4gIGNyZWF0ZVRvYygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wYWdlV3JhcHBlci5wYWdlVG9jICYmIHRoaXMuc2tlbGV0b24udG9jKSB7XG4gICAgICBjcmVhdGVDb21wb25lbnQodGhpcy5wYWdlV3JhcHBlci5wYWdlVG9jLCB0aGlzLnNrZWxldG9uLnRvYywge1xuICAgICAgICB0YWJsZU9mQ29udGVudDogZ2VuZXJhdGVUb2ModGhpcy5wYWdlQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQpID8/IFtdLFxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm5nLWRvYy1wYWdlLWNvbnRyb2xzXCI+XG4gIDxhXG4gICAgbmctZG9jLWJ1dHRvbi1pY29uXG4gICAgKm5nSWY9XCJyb290UGFnZS5lZGl0U291cmNlRmlsZVVybFwiXG4gICAgW2hyZWZdPVwicm9vdFBhZ2UuZWRpdFNvdXJjZUZpbGVVcmxcIlxuICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgbmdEb2NUb29sdGlwPVwiU3VnZ2VzdCBFZGl0c1wiPlxuICAgIDxuZy1kb2MtaWNvbiBpY29uPVwiZWRpdC0yXCI+PC9uZy1kb2MtaWNvbj5cbiAgPC9hPlxuICA8YVxuICAgIG5nLWRvYy1idXR0b24taWNvblxuICAgICpuZ0lmPVwicm9vdFBhZ2Uudmlld1NvdXJjZUZpbGVVcmxcIlxuICAgIFtocmVmXT1cInJvb3RQYWdlLnZpZXdTb3VyY2VGaWxlVXJsXCJcbiAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgIG5nRG9jVG9vbHRpcD1cIlZpZXcgU291cmNlXCI+XG4gICAgPG5nLWRvYy1pY29uIGljb249XCJjb2RlXCI+PC9uZy1kb2MtaWNvbj5cbiAgPC9hPlxuPC9kaXY+XG5cbjxkaXZcbiAgY2xhc3M9XCJuZy1kb2MtcGFnZS13cmFwcGVyXCJcbiAgW25nRG9jUGFnZVByb2Nlc3Nvcl09XCJyb290UGFnZS5wYWdlQ29udGVudCB8IG5nRG9jU2FuaXRpemVIdG1sXCJcbiAgKGFmdGVyUmVuZGVyKT1cImNyZWF0ZVRvYygpXCJcbiAgI3BhZ2VDb250YWluZXI+PC9kaXY+XG5cbjxuZy1kb2MtZGlhbG9nLW91dGxldFxuICAqbmdJZj1cIiFyb290UGFnZS5wYWdlPy5kaXNhYmxlRnVsbHNjcmVlblJvdXRlc1wiXG4gIFtjb25maWddPVwieyB3aWR0aDogJzEwMHZ3JywgaGVpZ2h0OiAnMTAwdmgnIH1cIj5cbiAgPGRpdiBjbGFzcz1cIm5nLWRvYy1mdWxsc2NyZWVuLXdyYXBwZXJcIj5cbiAgICA8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XG4gIDwvZGl2PlxuPC9uZy1kb2MtZGlhbG9nLW91dGxldD5cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './page-header.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcC9jb21wb25lbnRzL3BhZ2UtaGVhZGVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3BhZ2UtaGVhZGVyLmNvbXBvbmVudCc7XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctZG9jLWFwcC1jb21wb25lbnRzLXBhZ2UtaGVhZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcHAvY29tcG9uZW50cy9wYWdlLWhlYWRlci9uZy1kb2MtYXBwLWNvbXBvbmVudHMtcGFnZS1oZWFkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
@@ -0,0 +1,19 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
3
+ import { NgDocSanitizeHtmlPipe } from '@ng-doc/app/pipes';
4
+ import { NgDocPageProcessorComponent } from '@ng-doc/app/processors';
5
+ import * as i0 from "@angular/core";
6
+ export class NgDocPageHeaderComponent {
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgDocPageHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: NgDocPageHeaderComponent, isStandalone: true, selector: "ng-doc-page-header", inputs: { headerContent: "headerContent" }, host: { attributes: { "ngSkipHydration": "true" } }, ngImport: i0, template: "<header\n class=\"ng-doc-page-header ngde\"\n [ngDocPageProcessor]=\"headerContent | ngDocSanitizeHtml\"></header>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: NgDocPageProcessorComponent, selector: "[ngDocPageProcessor]", inputs: ["ngDocPageProcessor"], outputs: ["afterRender"] }, { kind: "pipe", type: NgDocSanitizeHtmlPipe, name: "ngDocSanitizeHtml" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgDocPageHeaderComponent, decorators: [{
11
+ type: Component,
12
+ args: [{ selector: 'ng-doc-page-header', standalone: true, imports: [CommonModule, NgDocPageProcessorComponent, NgDocSanitizeHtmlPipe], changeDetection: ChangeDetectionStrategy.OnPush, host: {
13
+ ngSkipHydration: 'true',
14
+ }, template: "<header\n class=\"ng-doc-page-header ngde\"\n [ngDocPageProcessor]=\"headerContent | ngDocSanitizeHtml\"></header>\n" }]
15
+ }], propDecorators: { headerContent: [{
16
+ type: Input,
17
+ args: [{ required: true }]
18
+ }] } });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcHAvY29tcG9uZW50cy9wYWdlLWhlYWRlci9wYWdlLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcC9jb21wb25lbnRzL3BhZ2UtaGVhZGVyL3BhZ2UtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFhckUsTUFBTSxPQUFPLHdCQUF3Qjs4R0FBeEIsd0JBQXdCO2tHQUF4Qix3QkFBd0IsK0tDaEJyQyx3SEFHQSx5RERLWSxZQUFZLCtCQUFFLDJCQUEyQixzSEFBRSxxQkFBcUI7OzJGQVEvRCx3QkFBd0I7a0JBWHBDLFNBQVM7K0JBQ0Usb0JBQW9CLGNBQ2xCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSwyQkFBMkIsRUFBRSxxQkFBcUIsQ0FBQyxtQkFHMUQsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDSixlQUFlLEVBQUUsTUFBTTtxQkFDeEI7OEJBSUQsYUFBYTtzQkFEWixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdEb2NTYW5pdGl6ZUh0bWxQaXBlIH0gZnJvbSAnQG5nLWRvYy9hcHAvcGlwZXMnO1xuaW1wb3J0IHsgTmdEb2NQYWdlUHJvY2Vzc29yQ29tcG9uZW50IH0gZnJvbSAnQG5nLWRvYy9hcHAvcHJvY2Vzc29ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nLWRvYy1wYWdlLWhlYWRlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE5nRG9jUGFnZVByb2Nlc3NvckNvbXBvbmVudCwgTmdEb2NTYW5pdGl6ZUh0bWxQaXBlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2UtaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3BhZ2UtaGVhZGVyLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHtcbiAgICBuZ1NraXBIeWRyYXRpb246ICd0cnVlJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgTmdEb2NQYWdlSGVhZGVyQ29tcG9uZW50IHtcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgaGVhZGVyQ29udGVudCE6IHN0cmluZztcbn1cbiIsIjxoZWFkZXJcbiAgY2xhc3M9XCJuZy1kb2MtcGFnZS1oZWFkZXIgbmdkZVwiXG4gIFtuZ0RvY1BhZ2VQcm9jZXNzb3JdPVwiaGVhZGVyQ29udGVudCB8IG5nRG9jU2FuaXRpemVIdG1sXCI+PC9oZWFkZXI+XG4iXX0=
@@ -31,16 +31,16 @@ export class NgDocPageLinkComponent {
31
31
  get queryParams() {
32
32
  return Object.fromEntries(new URLSearchParams(this.link?.search.replace(/^\?/, '') ?? '').entries());
33
33
  }
34
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NgDocPageLinkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
35
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: NgDocPageLinkComponent, isStandalone: true, selector: "ng-doc-page-link", inputs: { href: "href", classes: "classes" }, usesOnChanges: true, ngImport: i0, template: "<a\n\t[class]=\"classes\"\n\t[routerLink]=\"path\"\n\t[fragment]=\"fragment ?? '' | decodeUriComponent\"\n\t[queryParams]=\"queryParams\"\n\t*ngIf=\"!isExternalLink\">\n\t<ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n\n<a [class]=\"classes\" [href]=\"path\" *ngIf=\"isExternalLink\" target=\"_blank\">\n\t<ng-container *ngTemplateOutlet=\"content\"></ng-container>\n\t<ng-doc-icon icon=\"external-link\" *ngIf=\"!isInCode\"></ng-doc-icon>\n</a>\n\n<ng-template #content>\n\t<ng-content></ng-content>\n</ng-template>\n", styles: [":host{white-space:nowrap}:host ng-doc-icon{margin-left:calc(var(--ng-doc-base-gutter) / 2);--ng-doc-icon-color: currentColor}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: NgDocIconComponent, selector: "ng-doc-icon", inputs: ["icon", "customIcon", "size"] }, { kind: "pipe", type: NgDocDecodeUriComponentPipe, name: "decodeUriComponent" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
34
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgDocPageLinkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
35
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: NgDocPageLinkComponent, isStandalone: true, selector: "ng-doc-page-link", inputs: { href: "href", classes: "classes" }, usesOnChanges: true, ngImport: i0, template: "<a\n [class]=\"classes\"\n [routerLink]=\"path\"\n [fragment]=\"fragment ? (fragment | decodeUriComponent) : undefined\"\n [queryParams]=\"queryParams\"\n *ngIf=\"!isExternalLink\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n\n<a [class]=\"classes\" [href]=\"path\" *ngIf=\"isExternalLink\" target=\"_blank\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n <ng-doc-icon icon=\"external-link\" *ngIf=\"!isInCode\"></ng-doc-icon>\n</a>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n", styles: [":host{white-space:nowrap}:host ng-doc-icon{margin-left:calc(var(--ng-doc-base-gutter) / 2);--ng-doc-icon-color: currentColor}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: NgDocIconComponent, selector: "ng-doc-icon", inputs: ["icon", "customIcon", "size"] }, { kind: "pipe", type: NgDocDecodeUriComponentPipe, name: "decodeUriComponent" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
36
36
  }
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NgDocPageLinkComponent, decorators: [{
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgDocPageLinkComponent, decorators: [{
38
38
  type: Component,
39
- args: [{ selector: 'ng-doc-page-link', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf, RouterLink, NgTemplateOutlet, NgDocIconComponent, NgDocDecodeUriComponentPipe], template: "<a\n\t[class]=\"classes\"\n\t[routerLink]=\"path\"\n\t[fragment]=\"fragment ?? '' | decodeUriComponent\"\n\t[queryParams]=\"queryParams\"\n\t*ngIf=\"!isExternalLink\">\n\t<ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n\n<a [class]=\"classes\" [href]=\"path\" *ngIf=\"isExternalLink\" target=\"_blank\">\n\t<ng-container *ngTemplateOutlet=\"content\"></ng-container>\n\t<ng-doc-icon icon=\"external-link\" *ngIf=\"!isInCode\"></ng-doc-icon>\n</a>\n\n<ng-template #content>\n\t<ng-content></ng-content>\n</ng-template>\n", styles: [":host{white-space:nowrap}:host ng-doc-icon{margin-left:calc(var(--ng-doc-base-gutter) / 2);--ng-doc-icon-color: currentColor}\n"] }]
39
+ args: [{ selector: 'ng-doc-page-link', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf, RouterLink, NgTemplateOutlet, NgDocIconComponent, NgDocDecodeUriComponentPipe], template: "<a\n [class]=\"classes\"\n [routerLink]=\"path\"\n [fragment]=\"fragment ? (fragment | decodeUriComponent) : undefined\"\n [queryParams]=\"queryParams\"\n *ngIf=\"!isExternalLink\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n\n<a [class]=\"classes\" [href]=\"path\" *ngIf=\"isExternalLink\" target=\"_blank\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n <ng-doc-icon icon=\"external-link\" *ngIf=\"!isInCode\"></ng-doc-icon>\n</a>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n", styles: [":host{white-space:nowrap}:host ng-doc-icon{margin-left:calc(var(--ng-doc-base-gutter) / 2);--ng-doc-icon-color: currentColor}\n"] }]
40
40
  }], propDecorators: { href: [{
41
41
  type: Input,
42
42
  args: [{ required: true }]
43
43
  }], classes: [{
44
44
  type: Input
45
45
  }] } });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1saW5rLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBwL2NvbXBvbmVudHMvcGFnZS1saW5rL3BhZ2UtbGluay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcC9jb21wb25lbnRzL3BhZ2UtbGluay9wYWdlLWxpbmsuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFDTix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUdMLFNBQVMsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQVUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBVXBELE1BQU0sT0FBTyxzQkFBc0I7SUFSbkM7UUFVQyxTQUFJLEdBQVcsRUFBRSxDQUFDO1FBR2xCLFlBQU8sR0FBVyxFQUFFLENBQUM7UUFFWCxhQUFRLEdBQVksS0FBSyxDQUFDO1FBSW5CLGVBQVUsR0FBNEIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pELGFBQVEsR0FBYyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7S0E0QnpEO0lBMUJBLFFBQVE7UUFDUCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLENBQUM7SUFDeEUsQ0FBQztJQUVELFdBQVc7UUFDVixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBc0IsQ0FBQztRQUNsRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDakIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ1AsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkUsQ0FBQztJQUVELElBQUksUUFBUTtRQUNYLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxTQUFTLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQUksV0FBVztRQUNkLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FDeEIsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FDekUsQ0FBQztJQUNILENBQUM7OEdBdkNXLHNCQUFzQjtrR0FBdEIsc0JBQXNCLCtJQ3ZCbkMsNGhCQWlCQSx5TERJVyxJQUFJLDZGQUFFLFVBQVUsb09BQUUsZ0JBQWdCLG9KQUFFLGtCQUFrQiwyRkFBRSwyQkFBMkI7OzJGQUVqRixzQkFBc0I7a0JBUmxDLFNBQVM7K0JBQ0Msa0JBQWtCLG1CQUdYLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSwyQkFBMkIsQ0FBQzs4QkFJOUYsSUFBSTtzQkFESCxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFJekIsT0FBTztzQkFETixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRFbGVtZW50UmVmLFxuXHRpbmplY3QsXG5cdElucHV0LFxuXHRPbkNoYW5nZXMsXG5cdE9uSW5pdCxcblx0UmVuZGVyZXIyLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBhcmFtcywgUm91dGVyTGluayB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBOZ0RvY0RlY29kZVVyaUNvbXBvbmVudFBpcGUgfSBmcm9tICdAbmctZG9jL2FwcC9waXBlcyc7XG5pbXBvcnQgeyBOZ0RvY0ljb25Db21wb25lbnQgfSBmcm9tICdAbmctZG9jL3VpLWtpdCc7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25nLWRvYy1wYWdlLWxpbmsnLFxuXHR0ZW1wbGF0ZVVybDogJy4vcGFnZS1saW5rLmNvbXBvbmVudC5odG1sJyxcblx0c3R5bGVVcmxzOiBbJy4vcGFnZS1saW5rLmNvbXBvbmVudC5zY3NzJ10sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRpbXBvcnRzOiBbTmdJZiwgUm91dGVyTGluaywgTmdUZW1wbGF0ZU91dGxldCwgTmdEb2NJY29uQ29tcG9uZW50LCBOZ0RvY0RlY29kZVVyaUNvbXBvbmVudFBpcGVdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ0RvY1BhZ2VMaW5rQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuXHRASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuXHRocmVmOiBzdHJpbmcgPSAnJztcblxuXHRASW5wdXQoKVxuXHRjbGFzc2VzOiBzdHJpbmcgPSAnJztcblxuXHRwcm90ZWN0ZWQgaXNJbkNvZGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuXHRwcml2YXRlIGxpbms6IEhUTUxBbmNob3JFbGVtZW50IHwgdW5kZWZpbmVkO1xuXG5cdHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gPSBpbmplY3QoRWxlbWVudFJlZik7XG5cdHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXI6IFJlbmRlcmVyMiA9IGluamVjdChSZW5kZXJlcjIpO1xuXG5cdG5nT25Jbml0KCk6IHZvaWQge1xuXHRcdHRoaXMuaXNJbkNvZGUgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbG9zZXN0KCdjb2RlJykgIT09IG51bGw7XG5cdH1cblxuXHRuZ09uQ2hhbmdlcygpOiB2b2lkIHtcblx0XHR0aGlzLmxpbmsgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2EnKSBhcyBIVE1MQW5jaG9yRWxlbWVudDtcblx0XHR0aGlzLmxpbmsuaHJlZiA9IHRoaXMuaHJlZjtcblx0fVxuXG5cdGdldCBpc0V4dGVybmFsTGluaygpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy5ocmVmLnN0YXJ0c1dpdGgoJ2h0dHAnKTtcblx0fVxuXG5cdGdldCBwYXRoKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuICghdGhpcy5pc0V4dGVybmFsTGluayA/IHRoaXMubGluaz8ucGF0aG5hbWUgOiB0aGlzLmhyZWYpID8/ICcnO1xuXHR9XG5cblx0Z2V0IGZyYWdtZW50KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIHRoaXMubGluaz8uaGFzaC5yZXBsYWNlKC9eIy8sICcnKSB8fCB1bmRlZmluZWQ7XG5cdH1cblxuXHRnZXQgcXVlcnlQYXJhbXMoKTogUGFyYW1zIHtcblx0XHRyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKFxuXHRcdFx0bmV3IFVSTFNlYXJjaFBhcmFtcyh0aGlzLmxpbms/LnNlYXJjaC5yZXBsYWNlKC9eXFw/LywgJycpID8/ICcnKS5lbnRyaWVzKCksXG5cdFx0KTtcblx0fVxufVxuIiwiPGFcblx0W2NsYXNzXT1cImNsYXNzZXNcIlxuXHRbcm91dGVyTGlua109XCJwYXRoXCJcblx0W2ZyYWdtZW50XT1cImZyYWdtZW50ID8/ICcnIHwgZGVjb2RlVXJpQ29tcG9uZW50XCJcblx0W3F1ZXJ5UGFyYW1zXT1cInF1ZXJ5UGFyYW1zXCJcblx0Km5nSWY9XCIhaXNFeHRlcm5hbExpbmtcIj5cblx0PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbjwvYT5cblxuPGEgW2NsYXNzXT1cImNsYXNzZXNcIiBbaHJlZl09XCJwYXRoXCIgKm5nSWY9XCJpc0V4dGVybmFsTGlua1wiIHRhcmdldD1cIl9ibGFua1wiPlxuXHQ8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuXHQ8bmctZG9jLWljb24gaWNvbj1cImV4dGVybmFsLWxpbmtcIiAqbmdJZj1cIiFpc0luQ29kZVwiPjwvbmctZG9jLWljb24+XG48L2E+XG5cbjxuZy10ZW1wbGF0ZSAjY29udGVudD5cblx0PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1saW5rLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBwL2NvbXBvbmVudHMvcGFnZS1saW5rL3BhZ2UtbGluay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcC9jb21wb25lbnRzL3BhZ2UtbGluay9wYWdlLWxpbmsuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUdMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQVUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBVXBELE1BQU0sT0FBTyxzQkFBc0I7SUFSbkM7UUFVRSxTQUFJLEdBQVcsRUFBRSxDQUFDO1FBR2xCLFlBQU8sR0FBVyxFQUFFLENBQUM7UUFFWCxhQUFRLEdBQVksS0FBSyxDQUFDO1FBSW5CLGVBQVUsR0FBNEIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pELGFBQVEsR0FBYyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7S0E0QjFEO0lBMUJDLFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLENBQUM7SUFDekUsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBc0IsQ0FBQztRQUNsRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEUsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxTQUFTLENBQUM7SUFDeEQsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FDdkIsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FDMUUsQ0FBQztJQUNKLENBQUM7OEdBdkNVLHNCQUFzQjtrR0FBdEIsc0JBQXNCLCtJQ3ZCbkMsK2lCQWlCQSx5TERJWSxJQUFJLDZGQUFFLFVBQVUsb09BQUUsZ0JBQWdCLG9KQUFFLGtCQUFrQiwyRkFBRSwyQkFBMkI7OzJGQUVsRixzQkFBc0I7a0JBUmxDLFNBQVM7K0JBQ0Usa0JBQWtCLG1CQUdYLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSwyQkFBMkIsQ0FBQzs4QkFJOUYsSUFBSTtzQkFESCxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFJekIsT0FBTztzQkFETixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgUmVuZGVyZXIyLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBhcmFtcywgUm91dGVyTGluayB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBOZ0RvY0RlY29kZVVyaUNvbXBvbmVudFBpcGUgfSBmcm9tICdAbmctZG9jL2FwcC9waXBlcyc7XG5pbXBvcnQgeyBOZ0RvY0ljb25Db21wb25lbnQgfSBmcm9tICdAbmctZG9jL3VpLWtpdCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nLWRvYy1wYWdlLWxpbmsnLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFnZS1saW5rLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGFnZS1saW5rLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTmdJZiwgUm91dGVyTGluaywgTmdUZW1wbGF0ZU91dGxldCwgTmdEb2NJY29uQ29tcG9uZW50LCBOZ0RvY0RlY29kZVVyaUNvbXBvbmVudFBpcGVdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ0RvY1BhZ2VMaW5rQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICBocmVmOiBzdHJpbmcgPSAnJztcblxuICBASW5wdXQoKVxuICBjbGFzc2VzOiBzdHJpbmcgPSAnJztcblxuICBwcm90ZWN0ZWQgaXNJbkNvZGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwcml2YXRlIGxpbms6IEhUTUxBbmNob3JFbGVtZW50IHwgdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gPSBpbmplY3QoRWxlbWVudFJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXI6IFJlbmRlcmVyMiA9IGluamVjdChSZW5kZXJlcjIpO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaXNJbkNvZGUgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbG9zZXN0KCdjb2RlJykgIT09IG51bGw7XG4gIH1cblxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmxpbmsgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2EnKSBhcyBIVE1MQW5jaG9yRWxlbWVudDtcbiAgICB0aGlzLmxpbmsuaHJlZiA9IHRoaXMuaHJlZjtcbiAgfVxuXG4gIGdldCBpc0V4dGVybmFsTGluaygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5ocmVmLnN0YXJ0c1dpdGgoJ2h0dHAnKTtcbiAgfVxuXG4gIGdldCBwYXRoKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICghdGhpcy5pc0V4dGVybmFsTGluayA/IHRoaXMubGluaz8ucGF0aG5hbWUgOiB0aGlzLmhyZWYpID8/ICcnO1xuICB9XG5cbiAgZ2V0IGZyYWdtZW50KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMubGluaz8uaGFzaC5yZXBsYWNlKC9eIy8sICcnKSB8fCB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXQgcXVlcnlQYXJhbXMoKTogUGFyYW1zIHtcbiAgICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgbmV3IFVSTFNlYXJjaFBhcmFtcyh0aGlzLmxpbms/LnNlYXJjaC5yZXBsYWNlKC9eXFw/LywgJycpID8/ICcnKS5lbnRyaWVzKCksXG4gICAgKTtcbiAgfVxufVxuIiwiPGFcbiAgW2NsYXNzXT1cImNsYXNzZXNcIlxuICBbcm91dGVyTGlua109XCJwYXRoXCJcbiAgW2ZyYWdtZW50XT1cImZyYWdtZW50ID8gKGZyYWdtZW50IHwgZGVjb2RlVXJpQ29tcG9uZW50KSA6IHVuZGVmaW5lZFwiXG4gIFtxdWVyeVBhcmFtc109XCJxdWVyeVBhcmFtc1wiXG4gICpuZ0lmPVwiIWlzRXh0ZXJuYWxMaW5rXCI+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50XCI+PC9uZy1jb250YWluZXI+XG48L2E+XG5cbjxhIFtjbGFzc109XCJjbGFzc2VzXCIgW2hyZWZdPVwicGF0aFwiICpuZ0lmPVwiaXNFeHRlcm5hbExpbmtcIiB0YXJnZXQ9XCJfYmxhbmtcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgPG5nLWRvYy1pY29uIGljb249XCJleHRlcm5hbC1saW5rXCIgKm5nSWY9XCIhaXNJbkNvZGVcIj48L25nLWRvYy1pY29uPlxuPC9hPlxuXG48bmctdGVtcGxhdGUgI2NvbnRlbnQ+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -5,10 +5,10 @@ import { NgDocIconComponent, NgDocTextComponent, NgDocTextLeftDirective, NgDocTe
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@angular/common";
7
7
  export class NgDocPageNavigationComponent {
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NgDocPageNavigationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: NgDocPageNavigationComponent, isStandalone: true, selector: "ng-doc-page-navigation", inputs: { prevPage: "prevPage", nextPage: "nextPage" }, ngImport: i0, template: "<div class=\"ng-doc-navigation-controls\">\n\t<a class=\"ng-doc-prev-page\" *ngIf=\"prevPage\" [routerLink]=\"prevPage.route\">\n\t\t<div class=\"ng-doc-navigation-page-label\" ng-doc-text size=\"small\">\n\t\t\t<ng-doc-icon icon=\"arrow-left\" ngDocTextLeft></ng-doc-icon>\n\t\t\tPrevious\n\t\t</div>\n\t\t<div class=\"ng-doc-navigation-page-title\" ng-doc-text>{{ prevPage.title }}</div>\n\t</a>\n\t<a class=\"ng-doc-next-page\" *ngIf=\"nextPage\" [routerLink]=\"nextPage.route\">\n\t\t<div class=\"ng-doc-navigation-page-label\" ng-doc-text size=\"small\">\n\t\t\tNext\n\t\t\t<ng-doc-icon icon=\"arrow-right\" ngDocTextRight></ng-doc-icon>\n\t\t</div>\n\t\t<div class=\"ng-doc-navigation-page-title\" ng-doc-text>{{ nextPage.title }}</div>\n\t</a>\n</div>\n", styles: [":host .ng-doc-navigation-controls{display:flex;margin-top:calc(var(--ng-doc-base-gutter) * 12);border-top:1px solid var(--ng-doc-base-2);padding-top:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-navigation-controls a{display:flex;flex-direction:column;text-decoration:unset;transition:var(--ng-doc-transition);--ng-doc-button-hover-background: var(--ng-doc-base-1);--ng-doc-button-active-background: var(--ng-doc-base-2);--ng-doc-text: var(--ng-doc-base-9);--ng-doc-icon-color: var(--ng-doc-text)}:host .ng-doc-navigation-controls a:hover{opacity:.6}:host .ng-doc-navigation-controls a.ng-doc-next-page{margin-left:auto}:host .ng-doc-navigation-controls a.ng-doc-prev-page{align-items:flex-start}:host .ng-doc-navigation-controls a.ng-doc-next-page{align-items:flex-end}:host .ng-doc-navigation-controls a .ng-doc-navigation-page-title{--ng-doc-font-weight: 600;--ng-doc-text: var(--ng-doc-link-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgDocIconComponent, selector: "ng-doc-icon", inputs: ["icon", "customIcon", "size"] }, { kind: "component", type: NgDocTextComponent, selector: "[ng-doc-text]", inputs: ["size", "color", "align", "absoluteContent"] }, { kind: "directive", type: NgDocTextLeftDirective, selector: "[ngDocTextLeft]" }, { kind: "directive", type: NgDocTextRightDirective, selector: "[ngDocTextRight]" }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgDocPageNavigationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: NgDocPageNavigationComponent, isStandalone: true, selector: "ng-doc-page-navigation", inputs: { prevPage: "prevPage", nextPage: "nextPage" }, ngImport: i0, template: "<div class=\"ng-doc-navigation-controls\">\n\t<a class=\"ng-doc-prev-page\" *ngIf=\"prevPage\" [routerLink]=\"prevPage.route\">\n\t\t<div class=\"ng-doc-navigation-page-label\" ng-doc-text size=\"small\">\n\t\t\t<ng-doc-icon icon=\"arrow-left\" ngDocTextLeft></ng-doc-icon>\n\t\t\tPrevious\n\t\t</div>\n\t\t<div class=\"ng-doc-navigation-page-title\" ng-doc-text>{{ prevPage.title }}</div>\n\t</a>\n\t<a class=\"ng-doc-next-page\" *ngIf=\"nextPage\" [routerLink]=\"nextPage.route\">\n\t\t<div class=\"ng-doc-navigation-page-label\" ng-doc-text size=\"small\">\n\t\t\tNext\n\t\t\t<ng-doc-icon icon=\"arrow-right\" ngDocTextRight></ng-doc-icon>\n\t\t</div>\n\t\t<div class=\"ng-doc-navigation-page-title\" ng-doc-text>{{ nextPage.title }}</div>\n\t</a>\n</div>\n", styles: [":host .ng-doc-navigation-controls{display:flex;margin-top:calc(var(--ng-doc-base-gutter) * 12);border-top:1px solid var(--ng-doc-base-2);padding-top:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-navigation-controls a{display:flex;flex-direction:column;text-decoration:unset;transition:var(--ng-doc-transition);--ng-doc-button-hover-background: var(--ng-doc-base-1);--ng-doc-button-active-background: var(--ng-doc-base-2);--ng-doc-text: var(--ng-doc-base-9);--ng-doc-icon-color: var(--ng-doc-text)}:host .ng-doc-navigation-controls a:hover{opacity:.6}:host .ng-doc-navigation-controls a.ng-doc-next-page{margin-left:auto}:host .ng-doc-navigation-controls a.ng-doc-prev-page{align-items:flex-start}:host .ng-doc-navigation-controls a.ng-doc-next-page{align-items:flex-end}:host .ng-doc-navigation-controls a .ng-doc-navigation-page-title{--ng-doc-text: var(--ng-doc-link-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgDocIconComponent, selector: "ng-doc-icon", inputs: ["icon", "customIcon", "size"] }, { kind: "component", type: NgDocTextComponent, selector: "[ng-doc-text]", inputs: ["size", "color", "align", "absoluteContent"] }, { kind: "directive", type: NgDocTextLeftDirective, selector: "[ngDocTextLeft]" }, { kind: "directive", type: NgDocTextRightDirective, selector: "[ngDocTextRight]" }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10
10
  }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NgDocPageNavigationComponent, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgDocPageNavigationComponent, decorators: [{
12
12
  type: Component,
13
13
  args: [{ selector: 'ng-doc-page-navigation', standalone: true, imports: [
14
14
  CommonModule,
@@ -17,7 +17,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
17
17
  NgDocTextLeftDirective,
18
18
  NgDocTextRightDirective,
19
19
  RouterLink,
20
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ng-doc-navigation-controls\">\n\t<a class=\"ng-doc-prev-page\" *ngIf=\"prevPage\" [routerLink]=\"prevPage.route\">\n\t\t<div class=\"ng-doc-navigation-page-label\" ng-doc-text size=\"small\">\n\t\t\t<ng-doc-icon icon=\"arrow-left\" ngDocTextLeft></ng-doc-icon>\n\t\t\tPrevious\n\t\t</div>\n\t\t<div class=\"ng-doc-navigation-page-title\" ng-doc-text>{{ prevPage.title }}</div>\n\t</a>\n\t<a class=\"ng-doc-next-page\" *ngIf=\"nextPage\" [routerLink]=\"nextPage.route\">\n\t\t<div class=\"ng-doc-navigation-page-label\" ng-doc-text size=\"small\">\n\t\t\tNext\n\t\t\t<ng-doc-icon icon=\"arrow-right\" ngDocTextRight></ng-doc-icon>\n\t\t</div>\n\t\t<div class=\"ng-doc-navigation-page-title\" ng-doc-text>{{ nextPage.title }}</div>\n\t</a>\n</div>\n", styles: [":host .ng-doc-navigation-controls{display:flex;margin-top:calc(var(--ng-doc-base-gutter) * 12);border-top:1px solid var(--ng-doc-base-2);padding-top:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-navigation-controls a{display:flex;flex-direction:column;text-decoration:unset;transition:var(--ng-doc-transition);--ng-doc-button-hover-background: var(--ng-doc-base-1);--ng-doc-button-active-background: var(--ng-doc-base-2);--ng-doc-text: var(--ng-doc-base-9);--ng-doc-icon-color: var(--ng-doc-text)}:host .ng-doc-navigation-controls a:hover{opacity:.6}:host .ng-doc-navigation-controls a.ng-doc-next-page{margin-left:auto}:host .ng-doc-navigation-controls a.ng-doc-prev-page{align-items:flex-start}:host .ng-doc-navigation-controls a.ng-doc-next-page{align-items:flex-end}:host .ng-doc-navigation-controls a .ng-doc-navigation-page-title{--ng-doc-font-weight: 600;--ng-doc-text: var(--ng-doc-link-color)}\n"] }]
20
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ng-doc-navigation-controls\">\n\t<a class=\"ng-doc-prev-page\" *ngIf=\"prevPage\" [routerLink]=\"prevPage.route\">\n\t\t<div class=\"ng-doc-navigation-page-label\" ng-doc-text size=\"small\">\n\t\t\t<ng-doc-icon icon=\"arrow-left\" ngDocTextLeft></ng-doc-icon>\n\t\t\tPrevious\n\t\t</div>\n\t\t<div class=\"ng-doc-navigation-page-title\" ng-doc-text>{{ prevPage.title }}</div>\n\t</a>\n\t<a class=\"ng-doc-next-page\" *ngIf=\"nextPage\" [routerLink]=\"nextPage.route\">\n\t\t<div class=\"ng-doc-navigation-page-label\" ng-doc-text size=\"small\">\n\t\t\tNext\n\t\t\t<ng-doc-icon icon=\"arrow-right\" ngDocTextRight></ng-doc-icon>\n\t\t</div>\n\t\t<div class=\"ng-doc-navigation-page-title\" ng-doc-text>{{ nextPage.title }}</div>\n\t</a>\n</div>\n", styles: [":host .ng-doc-navigation-controls{display:flex;margin-top:calc(var(--ng-doc-base-gutter) * 12);border-top:1px solid var(--ng-doc-base-2);padding-top:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-navigation-controls a{display:flex;flex-direction:column;text-decoration:unset;transition:var(--ng-doc-transition);--ng-doc-button-hover-background: var(--ng-doc-base-1);--ng-doc-button-active-background: var(--ng-doc-base-2);--ng-doc-text: var(--ng-doc-base-9);--ng-doc-icon-color: var(--ng-doc-text)}:host .ng-doc-navigation-controls a:hover{opacity:.6}:host .ng-doc-navigation-controls a.ng-doc-next-page{margin-left:auto}:host .ng-doc-navigation-controls a.ng-doc-prev-page{align-items:flex-start}:host .ng-doc-navigation-controls a.ng-doc-next-page{align-items:flex-end}:host .ng-doc-navigation-controls a .ng-doc-navigation-page-title{--ng-doc-text: var(--ng-doc-link-color)}\n"] }]
21
21
  }], propDecorators: { prevPage: [{
22
22
  type: Input,
23
23
  args: [{ required: true }]
@@ -25,4 +25,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
25
25
  type: Input,
26
26
  args: [{ required: true }]
27
27
  }] } });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1uYXZpZ2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBwL2NvbXBvbmVudHMvcGFnZS1uYXZpZ2F0aW9uL3BhZ2UtbmF2aWdhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcC9jb21wb25lbnRzL3BhZ2UtbmF2aWdhdGlvbi9wYWdlLW5hdmlnYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU3QyxPQUFPLEVBQ04sa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUNsQixzQkFBc0IsRUFDdEIsdUJBQXVCLEdBQ3ZCLE1BQU0sZ0JBQWdCLENBQUM7OztBQWlCeEIsTUFBTSxPQUFPLDRCQUE0Qjs4R0FBNUIsNEJBQTRCO2tHQUE1Qiw0QkFBNEIsMElDMUJ6QywwdkJBZ0JBLHE4QkRERSxZQUFZLG1JQUNaLGtCQUFrQixnR0FDbEIsa0JBQWtCLGlIQUNsQixzQkFBc0IsNERBQ3RCLHVCQUF1Qiw2REFDdkIsVUFBVTs7MkZBTUMsNEJBQTRCO2tCQWZ4QyxTQUFTOytCQUNDLHdCQUF3QixjQUN0QixJQUFJLFdBQ1A7d0JBQ1IsWUFBWTt3QkFDWixrQkFBa0I7d0JBQ2xCLGtCQUFrQjt3QkFDbEIsc0JBQXNCO3dCQUN0Qix1QkFBdUI7d0JBQ3ZCLFVBQVU7cUJBQ1YsbUJBR2dCLHVCQUF1QixDQUFDLE1BQU07OEJBSS9DLFFBQVE7c0JBRFAsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBSXpCLFFBQVE7c0JBRFAsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTmdEb2NOYXZpZ2F0aW9uLCBOZ0RvY1BhZ2VOYXZpZ2F0aW9uIH0gZnJvbSAnQG5nLWRvYy9hcHAvaW50ZXJmYWNlcyc7XG5pbXBvcnQge1xuXHROZ0RvY0ljb25Db21wb25lbnQsXG5cdE5nRG9jVGV4dENvbXBvbmVudCxcblx0TmdEb2NUZXh0TGVmdERpcmVjdGl2ZSxcblx0TmdEb2NUZXh0UmlnaHREaXJlY3RpdmUsXG59IGZyb20gJ0BuZy1kb2MvdWkta2l0JztcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmctZG9jLXBhZ2UtbmF2aWdhdGlvbicsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGltcG9ydHM6IFtcblx0XHRDb21tb25Nb2R1bGUsXG5cdFx0TmdEb2NJY29uQ29tcG9uZW50LFxuXHRcdE5nRG9jVGV4dENvbXBvbmVudCxcblx0XHROZ0RvY1RleHRMZWZ0RGlyZWN0aXZlLFxuXHRcdE5nRG9jVGV4dFJpZ2h0RGlyZWN0aXZlLFxuXHRcdFJvdXRlckxpbmssXG5cdF0sXG5cdHRlbXBsYXRlVXJsOiAnLi9wYWdlLW5hdmlnYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybHM6IFsnLi9wYWdlLW5hdmlnYXRpb24uY29tcG9uZW50LnNjc3MnXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5nRG9jUGFnZU5hdmlnYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBOZ0RvY1BhZ2VOYXZpZ2F0aW9uIHtcblx0QElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcblx0cHJldlBhZ2U/OiBOZ0RvY05hdmlnYXRpb247XG5cblx0QElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcblx0bmV4dFBhZ2U/OiBOZ0RvY05hdmlnYXRpb247XG59XG4iLCI8ZGl2IGNsYXNzPVwibmctZG9jLW5hdmlnYXRpb24tY29udHJvbHNcIj5cblx0PGEgY2xhc3M9XCJuZy1kb2MtcHJldi1wYWdlXCIgKm5nSWY9XCJwcmV2UGFnZVwiIFtyb3V0ZXJMaW5rXT1cInByZXZQYWdlLnJvdXRlXCI+XG5cdFx0PGRpdiBjbGFzcz1cIm5nLWRvYy1uYXZpZ2F0aW9uLXBhZ2UtbGFiZWxcIiBuZy1kb2MtdGV4dCBzaXplPVwic21hbGxcIj5cblx0XHRcdDxuZy1kb2MtaWNvbiBpY29uPVwiYXJyb3ctbGVmdFwiIG5nRG9jVGV4dExlZnQ+PC9uZy1kb2MtaWNvbj5cblx0XHRcdFByZXZpb3VzXG5cdFx0PC9kaXY+XG5cdFx0PGRpdiBjbGFzcz1cIm5nLWRvYy1uYXZpZ2F0aW9uLXBhZ2UtdGl0bGVcIiBuZy1kb2MtdGV4dD57eyBwcmV2UGFnZS50aXRsZSB9fTwvZGl2PlxuXHQ8L2E+XG5cdDxhIGNsYXNzPVwibmctZG9jLW5leHQtcGFnZVwiICpuZ0lmPVwibmV4dFBhZ2VcIiBbcm91dGVyTGlua109XCJuZXh0UGFnZS5yb3V0ZVwiPlxuXHRcdDxkaXYgY2xhc3M9XCJuZy1kb2MtbmF2aWdhdGlvbi1wYWdlLWxhYmVsXCIgbmctZG9jLXRleHQgc2l6ZT1cInNtYWxsXCI+XG5cdFx0XHROZXh0XG5cdFx0XHQ8bmctZG9jLWljb24gaWNvbj1cImFycm93LXJpZ2h0XCIgbmdEb2NUZXh0UmlnaHQ+PC9uZy1kb2MtaWNvbj5cblx0XHQ8L2Rpdj5cblx0XHQ8ZGl2IGNsYXNzPVwibmctZG9jLW5hdmlnYXRpb24tcGFnZS10aXRsZVwiIG5nLWRvYy10ZXh0Pnt7IG5leHRQYWdlLnRpdGxlIH19PC9kaXY+XG5cdDwvYT5cbjwvZGl2PlxuIl19
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1uYXZpZ2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBwL2NvbXBvbmVudHMvcGFnZS1uYXZpZ2F0aW9uL3BhZ2UtbmF2aWdhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcC9jb21wb25lbnRzL3BhZ2UtbmF2aWdhdGlvbi9wYWdlLW5hdmlnYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU3QyxPQUFPLEVBQ04sa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUNsQixzQkFBc0IsRUFDdEIsdUJBQXVCLEdBQ3ZCLE1BQU0sZ0JBQWdCLENBQUM7OztBQWlCeEIsTUFBTSxPQUFPLDRCQUE0Qjs4R0FBNUIsNEJBQTRCO2tHQUE1Qiw0QkFBNEIsMElDMUJ6QywwdkJBZ0JBLDI2QkRERSxZQUFZLG1JQUNaLGtCQUFrQixnR0FDbEIsa0JBQWtCLGlIQUNsQixzQkFBc0IsNERBQ3RCLHVCQUF1Qiw2REFDdkIsVUFBVTs7MkZBTUMsNEJBQTRCO2tCQWZ4QyxTQUFTOytCQUNDLHdCQUF3QixjQUN0QixJQUFJLFdBQ1A7d0JBQ1IsWUFBWTt3QkFDWixrQkFBa0I7d0JBQ2xCLGtCQUFrQjt3QkFDbEIsc0JBQXNCO3dCQUN0Qix1QkFBdUI7d0JBQ3ZCLFVBQVU7cUJBQ1YsbUJBR2dCLHVCQUF1QixDQUFDLE1BQU07OEJBSS9DLFFBQVE7c0JBRFAsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBSXpCLFFBQVE7c0JBRFAsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTmdEb2NOYXZpZ2F0aW9uLCBOZ0RvY1BhZ2VOYXZpZ2F0aW9uIH0gZnJvbSAnQG5nLWRvYy9hcHAvaW50ZXJmYWNlcyc7XG5pbXBvcnQge1xuXHROZ0RvY0ljb25Db21wb25lbnQsXG5cdE5nRG9jVGV4dENvbXBvbmVudCxcblx0TmdEb2NUZXh0TGVmdERpcmVjdGl2ZSxcblx0TmdEb2NUZXh0UmlnaHREaXJlY3RpdmUsXG59IGZyb20gJ0BuZy1kb2MvdWkta2l0JztcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmctZG9jLXBhZ2UtbmF2aWdhdGlvbicsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGltcG9ydHM6IFtcblx0XHRDb21tb25Nb2R1bGUsXG5cdFx0TmdEb2NJY29uQ29tcG9uZW50LFxuXHRcdE5nRG9jVGV4dENvbXBvbmVudCxcblx0XHROZ0RvY1RleHRMZWZ0RGlyZWN0aXZlLFxuXHRcdE5nRG9jVGV4dFJpZ2h0RGlyZWN0aXZlLFxuXHRcdFJvdXRlckxpbmssXG5cdF0sXG5cdHRlbXBsYXRlVXJsOiAnLi9wYWdlLW5hdmlnYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybHM6IFsnLi9wYWdlLW5hdmlnYXRpb24uY29tcG9uZW50LnNjc3MnXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5nRG9jUGFnZU5hdmlnYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBOZ0RvY1BhZ2VOYXZpZ2F0aW9uIHtcblx0QElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcblx0cHJldlBhZ2U/OiBOZ0RvY05hdmlnYXRpb247XG5cblx0QElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcblx0bmV4dFBhZ2U/OiBOZ0RvY05hdmlnYXRpb247XG59XG4iLCI8ZGl2IGNsYXNzPVwibmctZG9jLW5hdmlnYXRpb24tY29udHJvbHNcIj5cblx0PGEgY2xhc3M9XCJuZy1kb2MtcHJldi1wYWdlXCIgKm5nSWY9XCJwcmV2UGFnZVwiIFtyb3V0ZXJMaW5rXT1cInByZXZQYWdlLnJvdXRlXCI+XG5cdFx0PGRpdiBjbGFzcz1cIm5nLWRvYy1uYXZpZ2F0aW9uLXBhZ2UtbGFiZWxcIiBuZy1kb2MtdGV4dCBzaXplPVwic21hbGxcIj5cblx0XHRcdDxuZy1kb2MtaWNvbiBpY29uPVwiYXJyb3ctbGVmdFwiIG5nRG9jVGV4dExlZnQ+PC9uZy1kb2MtaWNvbj5cblx0XHRcdFByZXZpb3VzXG5cdFx0PC9kaXY+XG5cdFx0PGRpdiBjbGFzcz1cIm5nLWRvYy1uYXZpZ2F0aW9uLXBhZ2UtdGl0bGVcIiBuZy1kb2MtdGV4dD57eyBwcmV2UGFnZS50aXRsZSB9fTwvZGl2PlxuXHQ8L2E+XG5cdDxhIGNsYXNzPVwibmctZG9jLW5leHQtcGFnZVwiICpuZ0lmPVwibmV4dFBhZ2VcIiBbcm91dGVyTGlua109XCJuZXh0UGFnZS5yb3V0ZVwiPlxuXHRcdDxkaXYgY2xhc3M9XCJuZy1kb2MtbmF2aWdhdGlvbi1wYWdlLWxhYmVsXCIgbmctZG9jLXRleHQgc2l6ZT1cInNtYWxsXCI+XG5cdFx0XHROZXh0XG5cdFx0XHQ8bmctZG9jLWljb24gaWNvbj1cImFycm93LXJpZ2h0XCIgbmdEb2NUZXh0UmlnaHQ+PC9uZy1kb2MtaWNvbj5cblx0XHQ8L2Rpdj5cblx0XHQ8ZGl2IGNsYXNzPVwibmctZG9jLW5hdmlnYXRpb24tcGFnZS10aXRsZVwiIG5nLWRvYy10ZXh0Pnt7IG5leHRQYWdlLnRpdGxlIH19PC9kaXY+XG5cdDwvYT5cbjwvZGl2PlxuIl19
@@ -0,0 +1,2 @@
1
+ export * from './page-wrapper.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcC9jb21wb25lbnRzL3BhZ2Utd3JhcHBlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDBCQUEwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wYWdlLXdyYXBwZXIuY29tcG9uZW50JztcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctZG9jLWFwcC1jb21wb25lbnRzLXBhZ2Utd3JhcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBwL2NvbXBvbmVudHMvcGFnZS13cmFwcGVyL25nLWRvYy1hcHAtY29tcG9uZW50cy1wYWdlLXdyYXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
@@ -0,0 +1,87 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, inject, Input, ViewChild, ViewContainerRef, } from '@angular/core';
3
+ import { ActivatedRoute, Router, RouterLink, RouterLinkActive, RouterOutlet, } from '@angular/router';
4
+ import { NgDocPageHeaderComponent } from '@ng-doc/app/components/page-header';
5
+ import { createComponent } from '@ng-doc/app/helpers';
6
+ import { NG_DOC_CONTEXT, NG_DOC_PAGE_SKELETON } from '@ng-doc/app/tokens';
7
+ import { isPresent } from '@ng-doc/core/helpers/is-present';
8
+ import { NgDocIconComponent, NgDocTabRouteComponent, NgDocTabRoutesGroupComponent, } from '@ng-doc/ui-kit';
9
+ import * as i0 from "@angular/core";
10
+ export class NgDocPageWrapperComponent {
11
+ constructor() {
12
+ this.hasBreadcrumb = true;
13
+ this.pageType = 'guide';
14
+ this.skeleton = inject(NG_DOC_PAGE_SKELETON);
15
+ this.router = inject(Router);
16
+ this.route = inject(ActivatedRoute);
17
+ this.context = inject(NG_DOC_CONTEXT);
18
+ this.breadcrumbs = inject(ActivatedRoute)
19
+ .pathFromRoot.filter((route) => !!route.snapshot.url.length)
20
+ .map((route) => route.snapshot.title)
21
+ .filter(isPresent);
22
+ }
23
+ ngOnInit() {
24
+ if (this.skeleton.breadcrumbs && this.hasBreadcrumb) {
25
+ createComponent(this.pageBreadcrumbs, this.skeleton.breadcrumbs, {
26
+ breadcrumbs: this.breadcrumbs,
27
+ });
28
+ }
29
+ if (this.pageType === 'guide') {
30
+ if (this.skeleton.navigation) {
31
+ createComponent(this.pageNavigation, this.skeleton.navigation, this.navigationInputs());
32
+ }
33
+ }
34
+ }
35
+ navigationInputs() {
36
+ const url = '/' +
37
+ this.route.pathFromRoot
38
+ .map((route) => route.snapshot.url)
39
+ .flat()
40
+ .join('/');
41
+ const flatItems = (items) => items
42
+ .map((item) => [item.children?.length ? flatItems(item.children) : item])
43
+ .flat(2);
44
+ const flatPages = flatItems(this.context.navigation);
45
+ return {
46
+ prevPage: flatPages[flatPages.findIndex((item) => url === item.route) - 1],
47
+ nextPage: flatPages[flatPages.findIndex((item) => url === item.route) + 1],
48
+ };
49
+ }
50
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgDocPageWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
51
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.1", type: NgDocPageWrapperComponent, isStandalone: true, selector: "ng-doc-page-wrapper", inputs: { routes: "routes", headerContent: "headerContent", hasBreadcrumb: "hasBreadcrumb", pageType: "pageType" }, host: { properties: { "attr.data-ng-doc-page-tabs": "routes.length > 1" } }, viewQueries: [{ propertyName: "pageBreadcrumbs", first: true, predicate: ["pageBreadcrumbs"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "pageToc", first: true, predicate: ["pageToc"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "pageNavigation", first: true, predicate: ["pageNavigation"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<article class=\"ngde\">\n <ng-container #pageBreadcrumbs></ng-container>\n\n <ng-doc-page-header [headerContent]=\"headerContent\" />\n\n @if (routes.length > 1) {\n <ng-doc-tab-routes-group>\n @for (route of routes; track route) {\n <a\n ng-doc-tab-route\n [routerLink]=\"['./' + route.path]\"\n routerLinkActive\n [routerLinkActiveOptions]=\"{ exact: true }\"\n #rla=\"routerLinkActive\"\n [isActive]=\"rla.isActive\">\n @if (route.data?.['icon']; as icon) {\n <ng-doc-icon [customIcon]=\"icon\" />\n }\n {{ route.title }}\n </a>\n }\n </ng-doc-tab-routes-group>\n }\n\n <router-outlet></router-outlet>\n\n <ng-container #pageNavigation></ng-container>\n</article>\n\n<ng-container #pageToc></ng-container>\n", styles: [":host{display:flex;justify-content:space-between;--ng-doc-page-sticky-offset: var(--ng-doc-navbar-height);--ng-doc-toc-margin: calc(var(--ng-doc-base-gutter) * 5)}:host[data-ng-doc-page-tabs=true]{--ng-doc-page-sticky-offset: calc( var(--ng-doc-navbar-height) + var(--ng-doc-page-wrapper-tabs-height) )}:host article{position:relative;width:var(--ng-doc-article-width, 100%);margin-left:auto;margin-right:auto;min-width:0}:host header ::ng-deep h1{margin-top:0}:host ng-doc-tab-routes-group{position:sticky!important;top:var(--ng-doc-navbar-height);margin:calc(var(--ng-doc-base-gutter) * 2) 0;background:var(--ng-doc-navbar-background);z-index:10;height:var(--ng-doc-page-wrapper-tabs-height)}:host .ng-doc-page-header{margin-bottom:calc(var(--ng-doc-base-gutter) * 3)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: NgDocTabRouteComponent, selector: "a[ng-doc-tab-route]", inputs: ["isActive"] }, { kind: "component", type: NgDocTabRoutesGroupComponent, selector: "ng-doc-tab-routes-group" }, { kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "component", type: NgDocIconComponent, selector: "ng-doc-icon", inputs: ["icon", "customIcon", "size"] }, { kind: "component", type: NgDocPageHeaderComponent, selector: "ng-doc-page-header", inputs: ["headerContent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
52
+ }
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgDocPageWrapperComponent, decorators: [{
54
+ type: Component,
55
+ args: [{ selector: 'ng-doc-page-wrapper', standalone: true, imports: [
56
+ CommonModule,
57
+ RouterOutlet,
58
+ RouterLink,
59
+ NgDocTabRouteComponent,
60
+ NgDocTabRoutesGroupComponent,
61
+ RouterLinkActive,
62
+ NgDocIconComponent,
63
+ NgDocPageHeaderComponent,
64
+ ], changeDetection: ChangeDetectionStrategy.OnPush, host: {
65
+ '[attr.data-ng-doc-page-tabs]': 'routes.length > 1',
66
+ }, template: "<article class=\"ngde\">\n <ng-container #pageBreadcrumbs></ng-container>\n\n <ng-doc-page-header [headerContent]=\"headerContent\" />\n\n @if (routes.length > 1) {\n <ng-doc-tab-routes-group>\n @for (route of routes; track route) {\n <a\n ng-doc-tab-route\n [routerLink]=\"['./' + route.path]\"\n routerLinkActive\n [routerLinkActiveOptions]=\"{ exact: true }\"\n #rla=\"routerLinkActive\"\n [isActive]=\"rla.isActive\">\n @if (route.data?.['icon']; as icon) {\n <ng-doc-icon [customIcon]=\"icon\" />\n }\n {{ route.title }}\n </a>\n }\n </ng-doc-tab-routes-group>\n }\n\n <router-outlet></router-outlet>\n\n <ng-container #pageNavigation></ng-container>\n</article>\n\n<ng-container #pageToc></ng-container>\n", styles: [":host{display:flex;justify-content:space-between;--ng-doc-page-sticky-offset: var(--ng-doc-navbar-height);--ng-doc-toc-margin: calc(var(--ng-doc-base-gutter) * 5)}:host[data-ng-doc-page-tabs=true]{--ng-doc-page-sticky-offset: calc( var(--ng-doc-navbar-height) + var(--ng-doc-page-wrapper-tabs-height) )}:host article{position:relative;width:var(--ng-doc-article-width, 100%);margin-left:auto;margin-right:auto;min-width:0}:host header ::ng-deep h1{margin-top:0}:host ng-doc-tab-routes-group{position:sticky!important;top:var(--ng-doc-navbar-height);margin:calc(var(--ng-doc-base-gutter) * 2) 0;background:var(--ng-doc-navbar-background);z-index:10;height:var(--ng-doc-page-wrapper-tabs-height)}:host .ng-doc-page-header{margin-bottom:calc(var(--ng-doc-base-gutter) * 3)}\n"] }]
67
+ }], propDecorators: { routes: [{
68
+ type: Input,
69
+ args: [{ required: true }]
70
+ }], headerContent: [{
71
+ type: Input,
72
+ args: [{ required: true }]
73
+ }], hasBreadcrumb: [{
74
+ type: Input
75
+ }], pageType: [{
76
+ type: Input
77
+ }], pageBreadcrumbs: [{
78
+ type: ViewChild,
79
+ args: ['pageBreadcrumbs', { read: ViewContainerRef, static: true }]
80
+ }], pageToc: [{
81
+ type: ViewChild,
82
+ args: ['pageToc', { read: ViewContainerRef, static: true }]
83
+ }], pageNavigation: [{
84
+ type: ViewChild,
85
+ args: ['pageNavigation', { read: ViewContainerRef, static: true }]
86
+ }] } });
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBwL2NvbXBvbmVudHMvcGFnZS13cmFwcGVyL3BhZ2Utd3JhcHBlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcC9jb21wb25lbnRzL3BhZ2Utd3JhcHBlci9wYWdlLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBRUwsU0FBUyxFQUNULGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsY0FBYyxFQUNkLE1BQU0sRUFDTixVQUFVLEVBQ1YsZ0JBQWdCLEVBQ2hCLFlBQVksR0FFYixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDMUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTVELE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsc0JBQXNCLEVBQ3RCLDRCQUE0QixHQUM3QixNQUFNLGdCQUFnQixDQUFDOztBQXNCeEIsTUFBTSxPQUFPLHlCQUF5QjtJQXBCdEM7UUE0QkUsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFHckIsYUFBUSxHQUFrQixPQUFPLENBQUM7UUFXeEIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3hDLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFB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c0I7d0JBQ3RCLDRCQUE0Qjt3QkFDNUIsZ0JBQWdCO3dCQUNoQixrQkFBa0I7d0JBQ2xCLHdCQUF3QjtxQkFDekIsbUJBR2dCLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0osOEJBQThCLEVBQUUsbUJBQW1CO3FCQUNwRDs4QkFJRCxNQUFNO3NCQURMLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUl6QixhQUFhO3NCQURaLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUl6QixhQUFhO3NCQURaLEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxLQUFLO2dCQUlOLGVBQWU7c0JBRGQsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUl0RSxPQUFPO3NCQUROLFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSTlELGNBQWM7c0JBRGIsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFjdGl2YXRlZFJvdXRlLFxuICBSb3V0ZXIsXG4gIFJvdXRlckxpbmssXG4gIFJvdXRlckxpbmtBY3RpdmUsXG4gIFJvdXRlck91dGxldCxcbiAgUm91dGVzLFxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTmdEb2NQYWdlSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnQG5nLWRvYy9hcHAvY29tcG9uZW50cy9wYWdlLWhlYWRlcic7XG5pbXBvcnQgeyBjcmVhdGVDb21wb25lbnQgfSBmcm9tICdAbmctZG9jL2FwcC9oZWxwZXJzJztcbmltcG9ydCB7IE5nRG9jTmF2aWdhdGlvbiwgTmdEb2NQYWdlTmF2aWdhdGlvbiB9IGZyb20gJ0BuZy1kb2MvYXBwL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTkdfRE9DX0NPTlRFWFQsIE5HX0RPQ19QQUdFX1NLRUxFVE9OIH0gZnJvbSAnQG5nLWRvYy9hcHAvdG9rZW5zJztcbmltcG9ydCB7IGlzUHJlc2VudCB9IGZyb20gJ0BuZy1kb2MvY29yZS9oZWxwZXJzL2lzLXByZXNlbnQnO1xuaW1wb3J0IHsgTmdEb2NQYWdlVHlwZSB9IGZyb20gJ0BuZy1kb2MvY29yZS90eXBlcyc7XG5pbXBvcnQge1xuICBOZ0RvY0ljb25Db21wb25lbnQsXG4gIE5nRG9jVGFiUm91dGVDb21wb25lbnQsXG4gIE5nRG9jVGFiUm91dGVzR3JvdXBDb21wb25lbnQsXG59IGZyb20gJ0BuZy1kb2MvdWkta2l0JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmctZG9jLXBhZ2Utd3JhcHBlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUm91dGVyT3V0bGV0LFxuICAgIFJvdXRlckxpbmssXG4gICAgTmdEb2NUYWJSb3V0ZUNvbXBvbmVudCxcbiAgICBOZ0RvY1RhYlJvdXRlc0dyb3VwQ29tcG9uZW50LFxuICAgIFJvdXRlckxpbmtBY3RpdmUsXG4gICAgTmdEb2NJY29uQ29tcG9uZW50LFxuICAgIE5nRG9jUGFnZUhlYWRlckNvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2Utd3JhcHBlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wYWdlLXdyYXBwZXIuY29tcG9uZW50LnNjc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDoge1xuICAgICdbYXR0ci5kYXRhLW5nLWRvYy1wYWdlLXRhYnNdJzogJ3JvdXRlcy5sZW5ndGggPiAxJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgTmdEb2NQYWdlV3JhcHBlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gIHJvdXRlcyE6IFJvdXRlcztcblxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICBoZWFkZXJDb250ZW50ITogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIGhhc0JyZWFkY3J1bWIgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHBhZ2VUeXBlOiBOZ0RvY1BhZ2VUeXBlID0gJ2d1aWRlJztcblxuICBAVmlld0NoaWxkKCdwYWdlQnJlYWRjcnVtYnMnLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICBwYWdlQnJlYWRjcnVtYnMhOiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gIEBWaWV3Q2hpbGQoJ3BhZ2VUb2MnLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICBwYWdlVG9jPzogVmlld0NvbnRhaW5lclJlZjtcblxuICBAVmlld0NoaWxkKCdwYWdlTmF2aWdhdGlvbicsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pXG4gIHBhZ2VOYXZpZ2F0aW9uITogVmlld0NvbnRhaW5lclJlZjtcblxuICBwcm90ZWN0ZWQgc2tlbGV0b24gPSBpbmplY3QoTkdfRE9DX1BBR0VfU0tFTEVUT04pO1xuICBwcm90ZWN0ZWQgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIHByb3RlY3RlZCByb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XG4gIHByb3RlY3RlZCBjb250ZXh0ID0gaW5qZWN0KE5HX0RPQ19DT05URVhUKTtcblxuICBwcml2YXRlIGJyZWFkY3J1bWJzOiBzdHJpbmdbXSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSlcbiAgICAucGF0aEZyb21Sb290LmZpbHRlcigocm91dGU6IEFjdGl2YXRlZFJvdXRlKSA9PiAhIXJvdXRlLnNuYXBzaG90LnVybC5sZW5ndGgpXG4gICAgLm1hcCgocm91dGU6IEFjdGl2YXRlZFJvdXRlKSA9PiByb3V0ZS5zbmFwc2hvdC50aXRsZSlcbiAgICAuZmlsdGVyKGlzUHJlc2VudCk7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2tlbGV0b24uYnJlYWRjcnVtYnMgJiYgdGhpcy5oYXNCcmVhZGNydW1iKSB7XG4gICAgICBjcmVhdGVDb21wb25lbnQodGhpcy5wYWdlQnJlYWRjcnVtYnMsIHRoaXMuc2tlbGV0b24uYnJlYWRjcnVtYnMsIHtcbiAgICAgICAgYnJlYWRjcnVtYnM6IHRoaXMuYnJlYWRjcnVtYnMsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wYWdlVHlwZSA9PT0gJ2d1aWRlJykge1xuICAgICAgaWYgKHRoaXMuc2tlbGV0b24ubmF2aWdhdGlvbikge1xuICAgICAgICBjcmVhdGVDb21wb25lbnQodGhpcy5wYWdlTmF2aWdhdGlvbiwgdGhpcy5za2VsZXRvbi5uYXZpZ2F0aW9uLCB0aGlzLm5hdmlnYXRpb25JbnB1dHMoKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBuYXZpZ2F0aW9uSW5wdXRzKCk6IE5nRG9jUGFnZU5hdmlnYXRpb24ge1xuICAgIGNvbnN0IHVybCA9XG4gICAgICAnLycgK1xuICAgICAgdGhpcy5yb3V0ZS5wYXRoRnJvbVJvb3RcbiAgICAgICAgLm1hcCgocm91dGU6IEFjdGl2YXRlZFJvdXRlKSA9PiByb3V0ZS5zbmFwc2hvdC51cmwpXG4gICAgICAgIC5mbGF0KClcbiAgICAgICAgLmpvaW4oJy8nKTtcbiAgICBjb25zdCBmbGF0SXRlbXMgPSAoaXRlbXM6IE5nRG9jTmF2aWdhdGlvbltdKTogTmdEb2NOYXZpZ2F0aW9uW10gPT5cbiAgICAgIGl0ZW1zXG4gICAgICAgIC5tYXAoKGl0ZW06IE5nRG9jTmF2aWdhdGlvbikgPT4gW2l0ZW0uY2hpbGRyZW4/Lmxlbmd0aCA/IGZsYXRJdGVtcyhpdGVtLmNoaWxkcmVuKSA6IGl0ZW1dKVxuICAgICAgICAuZmxhdCgyKTtcbiAgICBjb25zdCBmbGF0UGFnZXM6IE5nRG9jTmF2aWdhdGlvbltdID0gZmxhdEl0ZW1zKHRoaXMuY29udGV4dC5uYXZpZ2F0aW9uKTtcblxuICAgIHJldHVybiB7XG4gICAgICBwcmV2UGFnZTogZmxhdFBhZ2VzW2ZsYXRQYWdlcy5maW5kSW5kZXgoKGl0ZW06IE5nRG9jTmF2aWdhdGlvbikgPT4gdXJsID09PSBpdGVtLnJvdXRlKSAtIDFdLFxuICAgICAgbmV4dFBhZ2U6IGZsYXRQYWdlc1tmbGF0UGFnZXMuZmluZEluZGV4KChpdGVtOiBOZ0RvY05hdmlnYXRpb24pID0+IHVybCA9PT0gaXRlbS5yb3V0ZSkgKyAxXSxcbiAgICB9O1xuICB9XG59XG4iLCI8YXJ0aWNsZSBjbGFzcz1cIm5nZGVcIj5cbiAgPG5nLWNvbnRhaW5lciAjcGFnZUJyZWFkY3J1bWJzPjwvbmctY29udGFpbmVyPlxuXG4gIDxuZy1kb2MtcGFnZS1oZWFkZXIgW2hlYWRlckNvbnRlbnRdPVwiaGVhZGVyQ29udGVudFwiIC8+XG5cbiAgQGlmIChyb3V0ZXMubGVuZ3RoID4gMSkge1xuICAgIDxuZy1kb2MtdGFiLXJvdXRlcy1ncm91cD5cbiAgICAgIEBmb3IgKHJvdXRlIG9mIHJvdXRlczsgdHJhY2sgcm91dGUpIHtcbiAgICAgICAgPGFcbiAgICAgICAgICBuZy1kb2MtdGFiLXJvdXRlXG4gICAgICAgICAgW3JvdXRlckxpbmtdPVwiWycuLycgKyByb3V0ZS5wYXRoXVwiXG4gICAgICAgICAgcm91dGVyTGlua0FjdGl2ZVxuICAgICAgICAgIFtyb3V0ZXJMaW5rQWN0aXZlT3B0aW9uc109XCJ7IGV4YWN0OiB0cnVlIH1cIlxuICAgICAgICAgICNybGE9XCJyb3V0ZXJMaW5rQWN0aXZlXCJcbiAgICAgICAgICBbaXNBY3RpdmVdPVwicmxhLmlzQWN0aXZlXCI+XG4gICAgICAgICAgQGlmIChyb3V0ZS5kYXRhPy5bJ2ljb24nXTsgYXMgaWNvbikge1xuICAgICAgICAgICAgPG5nLWRvYy1pY29uIFtjdXN0b21JY29uXT1cImljb25cIiAvPlxuICAgICAgICAgIH1cbiAgICAgICAgICB7eyByb3V0ZS50aXRsZSB9fVxuICAgICAgICA8L2E+XG4gICAgICB9XG4gICAgPC9uZy1kb2MtdGFiLXJvdXRlcy1ncm91cD5cbiAgfVxuXG4gIDxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD5cblxuICA8bmctY29udGFpbmVyICNwYWdlTmF2aWdhdGlvbj48L25nLWNvbnRhaW5lcj5cbjwvYXJ0aWNsZT5cblxuPG5nLWNvbnRhaW5lciAjcGFnZVRvYz48L25nLWNvbnRhaW5lcj5cbiJdfQ==