@ng-doc/app 17.6.16 → 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 (289) hide show
  1. package/classes/root-page/root-page.d.ts +4 -7
  2. package/components/api-list/api-list.component.d.ts +13 -11
  3. package/components/breadcrumb/breadcrumb.component.d.ts +0 -1
  4. package/components/code/code.component.d.ts +2 -7
  5. package/components/copy-button/copy-button.component.d.ts +12 -0
  6. package/components/copy-button/index.d.ts +1 -0
  7. package/components/demo-displayer/demo-displayer.component.d.ts +0 -5
  8. package/components/heading-anchor/heading-anchor.component.d.ts +9 -0
  9. package/components/heading-anchor/index.d.ts +1 -0
  10. package/components/image-viewer/image-viewer.component.d.ts +16 -0
  11. package/components/image-viewer/index.d.ts +1 -0
  12. package/components/index.d.ts +7 -0
  13. package/components/kind-icon/kind-icon.component.d.ts +2 -1
  14. package/components/mermaid-viewer/index.d.ts +1 -0
  15. package/components/mermaid-viewer/mermaid-viewer.component.d.ts +17 -0
  16. package/components/navbar/navbar.component.d.ts +3 -16
  17. package/components/page/page.component.d.ts +6 -14
  18. package/components/page-header/index.d.ts +1 -0
  19. package/components/page-header/page-header.component.d.ts +6 -0
  20. package/components/page-wrapper/index.d.ts +1 -0
  21. package/components/page-wrapper/page-wrapper.component.d.ts +22 -0
  22. package/components/playground/base-playground.d.ts +1 -1
  23. package/components/playground/playground-demo/playground-demo.component.d.ts +5 -6
  24. package/components/root/root.component.d.ts +4 -13
  25. package/components/search/search.component.d.ts +11 -17
  26. package/components/search-dialog/index.d.ts +1 -0
  27. package/components/search-dialog/search-dialog.component.d.ts +24 -0
  28. package/components/sidebar/sidebar-category/sidebar-category.component.d.ts +9 -10
  29. package/components/sidebar/sidebar-item/sidebar-item.component.d.ts +7 -2
  30. package/components/sidebar/sidebar.component.d.ts +5 -3
  31. package/components/theme-toggle/theme-toggle.component.d.ts +4 -5
  32. package/constants/index.d.ts +0 -1
  33. package/directives/code-highlighter/code-highlighter.directive.d.ts +11 -10
  34. package/esm2022/classes/default-search-engine/default-search-engine.mjs +10 -4
  35. package/esm2022/classes/root-page/root-page.mjs +1 -1
  36. package/esm2022/components/api-list/api-list.component.mjs +46 -64
  37. package/esm2022/components/breadcrumb/breadcrumb.component.mjs +7 -9
  38. package/esm2022/components/code/code.component.mjs +16 -19
  39. package/esm2022/components/copy-button/copy-button.component.mjs +61 -0
  40. package/esm2022/components/copy-button/index.mjs +2 -0
  41. package/esm2022/components/copy-button/ng-doc-app-components-copy-button.mjs +5 -0
  42. package/esm2022/components/demo/demo.component.mjs +5 -5
  43. package/esm2022/components/demo-displayer/demo-displayer.component.mjs +9 -14
  44. package/esm2022/components/demo-pane/demo-pane.component.mjs +5 -5
  45. package/esm2022/components/fullscreen-button/fullscreen-button.component.mjs +3 -3
  46. package/esm2022/components/heading-anchor/heading-anchor.component.mjs +38 -0
  47. package/esm2022/components/heading-anchor/index.mjs +2 -0
  48. package/esm2022/components/heading-anchor/ng-doc-app-components-heading-anchor.mjs +5 -0
  49. package/esm2022/components/image-viewer/image-viewer.component.mjs +80 -0
  50. package/esm2022/components/image-viewer/index.mjs +2 -0
  51. package/esm2022/components/image-viewer/ng-doc-app-components-image-viewer.mjs +5 -0
  52. package/esm2022/components/index.mjs +8 -1
  53. package/esm2022/components/kind-icon/kind-icon.component.mjs +11 -5
  54. package/esm2022/components/link/link.component.mjs +3 -3
  55. package/esm2022/components/mermaid-viewer/index.mjs +2 -0
  56. package/esm2022/components/mermaid-viewer/mermaid-viewer.component.mjs +55 -0
  57. package/esm2022/components/mermaid-viewer/ng-doc-app-components-mermaid-viewer.mjs +5 -0
  58. package/esm2022/components/navbar/navbar.component.mjs +12 -32
  59. package/esm2022/components/page/page.component.mjs +20 -72
  60. package/esm2022/components/page-header/index.mjs +2 -0
  61. package/esm2022/components/page-header/ng-doc-app-components-page-header.mjs +5 -0
  62. package/esm2022/components/page-header/page-header.component.mjs +19 -0
  63. package/esm2022/components/page-link/page-link.component.mjs +5 -5
  64. package/esm2022/components/page-navigation/page-navigation.component.mjs +5 -5
  65. package/esm2022/components/page-wrapper/index.mjs +2 -0
  66. package/esm2022/components/page-wrapper/ng-doc-app-components-page-wrapper.mjs +5 -0
  67. package/esm2022/components/page-wrapper/page-wrapper.component.mjs +87 -0
  68. package/esm2022/components/playground/base-playground.mjs +8 -8
  69. package/esm2022/components/playground/playground-demo/playground-demo.component.mjs +22 -21
  70. package/esm2022/components/playground/playground-properties/playground-properties.component.mjs +8 -6
  71. package/esm2022/components/playground/playground-property/playground-property.component.mjs +4 -4
  72. package/esm2022/components/playground/playground.component.mjs +6 -6
  73. package/esm2022/components/root/root.component.mjs +20 -37
  74. package/esm2022/components/search/search.component.mjs +31 -49
  75. package/esm2022/components/search-dialog/index.mjs +2 -0
  76. package/esm2022/components/search-dialog/ng-doc-app-components-search-dialog.mjs +5 -0
  77. package/esm2022/components/search-dialog/search-dialog.component.mjs +74 -0
  78. package/esm2022/components/search-result/search-result.component.mjs +4 -4
  79. package/esm2022/components/sidebar/sidebar-category/sidebar-category.component.mjs +22 -27
  80. package/esm2022/components/sidebar/sidebar-item/sidebar-item.component.mjs +18 -10
  81. package/esm2022/components/sidebar/sidebar.component.mjs +14 -13
  82. package/esm2022/components/tabs/tabs.component.mjs +4 -4
  83. package/esm2022/components/theme-toggle/theme-toggle.component.mjs +18 -53
  84. package/esm2022/components/toc/toc-element/toc-element.component.mjs +5 -5
  85. package/esm2022/components/toc/toc.component.mjs +37 -35
  86. package/esm2022/constants/index.mjs +1 -2
  87. package/esm2022/defaults/default-processors/default-processors.mjs +7 -4
  88. package/esm2022/directives/code-highlighter/code-highlighter.directive.mjs +18 -36
  89. package/esm2022/directives/route-active/route-active.directive.mjs +3 -3
  90. package/esm2022/helpers/as-boolean.mjs +1 -1
  91. package/esm2022/helpers/create-component.mjs +1 -1
  92. package/esm2022/helpers/generate-toc.mjs +5 -5
  93. package/esm2022/interfaces/navigation.mjs +1 -1
  94. package/esm2022/interfaces/processor-options.mjs +1 -1
  95. package/esm2022/interfaces/toc-item.mjs +1 -1
  96. package/esm2022/interfaces/type-control.mjs +1 -1
  97. package/esm2022/pipes/decode-uri-component/decode-uri-component.pipe.mjs +4 -4
  98. package/esm2022/pipes/extract-value/extract-value.pipe.mjs +3 -3
  99. package/esm2022/pipes/filter-by-text/filter-by-text.pipe.mjs +3 -3
  100. package/esm2022/pipes/sanitize-html/sanitize-html.pipe.mjs +3 -3
  101. package/esm2022/processors/page-processor/index.mjs +2 -2
  102. package/esm2022/processors/page-processor/page-processor.component.mjs +74 -0
  103. package/esm2022/processors/processors/blockquote.processor.mjs +2 -1
  104. package/esm2022/processors/processors/code.processor.mjs +3 -5
  105. package/esm2022/processors/processors/demo.processor.mjs +2 -2
  106. package/esm2022/processors/processors/heading-anchor.processor.mjs +12 -0
  107. package/esm2022/processors/processors/image.processor.mjs +19 -0
  108. package/esm2022/processors/processors/index.mjs +6 -3
  109. package/esm2022/processors/processors/link/index.mjs +2 -0
  110. package/esm2022/processors/processors/link/link.processor.mjs +13 -0
  111. package/esm2022/processors/processors/link/ng-doc-app-processors-processors-link.mjs +5 -0
  112. package/esm2022/processors/processors/mermaid.processor.mjs +11 -0
  113. package/esm2022/processors/processors/playground.processor.mjs +2 -2
  114. package/esm2022/processors/processors/tooltip/index.mjs +2 -0
  115. package/esm2022/processors/processors/tooltip/ng-doc-app-processors-processors-tooltip.mjs +5 -0
  116. package/esm2022/processors/processors/tooltip/tooltip.processor.mjs +56 -0
  117. package/esm2022/providers/index.mjs +2 -1
  118. package/esm2022/providers/mermaid/index.mjs +2 -0
  119. package/esm2022/providers/mermaid/ng-doc-app-providers-mermaid.mjs +5 -0
  120. package/esm2022/providers/mermaid/provide-mermaid.mjs +16 -0
  121. package/esm2022/providers/ng-doc-app/provide-ng-doc-app.mjs +12 -35
  122. package/esm2022/providers/playground-demo/provide-playground-demo.mjs +1 -1
  123. package/esm2022/providers/search-engine/provide-search-engine.mjs +2 -2
  124. package/esm2022/providers/type-control/provide-type-control.mjs +1 -1
  125. package/esm2022/services/highlighter/highlighter.service.mjs +39 -0
  126. package/esm2022/services/highlighter/index.mjs +2 -0
  127. package/esm2022/services/highlighter/ng-doc-app-services-highlighter.mjs +5 -0
  128. package/esm2022/services/index.mjs +2 -2
  129. package/esm2022/services/sidebar/sidebar.service.mjs +35 -50
  130. package/esm2022/services/store/store.service.mjs +3 -3
  131. package/esm2022/services/theme/theme.service.mjs +28 -127
  132. package/esm2022/tokens/index.mjs +4 -2
  133. package/esm2022/tokens/mermaid.mjs +3 -0
  134. package/esm2022/tokens/page-processor.mjs +2 -2
  135. package/esm2022/tokens/route-prefix.mjs +3 -0
  136. package/esm2022/tokens/shiki-theme.mjs +3 -0
  137. package/esm2022/type-controls/boolean-control/boolean-control.component.mjs +3 -3
  138. package/esm2022/type-controls/number-control/number-control.component.mjs +5 -5
  139. package/esm2022/type-controls/string-control/string-control.component.mjs +5 -5
  140. package/esm2022/type-controls/type-alias-control/type-alias-control.component.mjs +5 -5
  141. package/fesm2022/ng-doc-app-classes-default-search-engine.mjs +10 -4
  142. package/fesm2022/ng-doc-app-classes-default-search-engine.mjs.map +1 -1
  143. package/fesm2022/ng-doc-app-classes-root-page.mjs.map +1 -1
  144. package/fesm2022/ng-doc-app-components-api-list.mjs +47 -64
  145. package/fesm2022/ng-doc-app-components-api-list.mjs.map +1 -1
  146. package/fesm2022/ng-doc-app-components-breadcrumb.mjs +6 -8
  147. package/fesm2022/ng-doc-app-components-breadcrumb.mjs.map +1 -1
  148. package/fesm2022/ng-doc-app-components-code.mjs +16 -18
  149. package/fesm2022/ng-doc-app-components-code.mjs.map +1 -1
  150. package/fesm2022/ng-doc-app-components-copy-button.mjs +68 -0
  151. package/fesm2022/ng-doc-app-components-copy-button.mjs.map +1 -0
  152. package/fesm2022/ng-doc-app-components-demo-displayer.mjs +8 -12
  153. package/fesm2022/ng-doc-app-components-demo-displayer.mjs.map +1 -1
  154. package/fesm2022/ng-doc-app-components-demo-pane.mjs +4 -4
  155. package/fesm2022/ng-doc-app-components-demo-pane.mjs.map +1 -1
  156. package/fesm2022/ng-doc-app-components-demo.mjs +4 -4
  157. package/fesm2022/ng-doc-app-components-demo.mjs.map +1 -1
  158. package/fesm2022/ng-doc-app-components-fullscreen-button.mjs +3 -3
  159. package/fesm2022/ng-doc-app-components-heading-anchor.mjs +45 -0
  160. package/fesm2022/ng-doc-app-components-heading-anchor.mjs.map +1 -0
  161. package/fesm2022/ng-doc-app-components-image-viewer.mjs +87 -0
  162. package/fesm2022/ng-doc-app-components-image-viewer.mjs.map +1 -0
  163. package/fesm2022/ng-doc-app-components-kind-icon.mjs +10 -4
  164. package/fesm2022/ng-doc-app-components-kind-icon.mjs.map +1 -1
  165. package/fesm2022/ng-doc-app-components-link.mjs +3 -3
  166. package/fesm2022/ng-doc-app-components-mermaid-viewer.mjs +62 -0
  167. package/fesm2022/ng-doc-app-components-mermaid-viewer.mjs.map +1 -0
  168. package/fesm2022/ng-doc-app-components-navbar.mjs +12 -32
  169. package/fesm2022/ng-doc-app-components-navbar.mjs.map +1 -1
  170. package/fesm2022/ng-doc-app-components-page-header.mjs +26 -0
  171. package/fesm2022/ng-doc-app-components-page-header.mjs.map +1 -0
  172. package/fesm2022/ng-doc-app-components-page-link.mjs +4 -4
  173. package/fesm2022/ng-doc-app-components-page-link.mjs.map +1 -1
  174. package/fesm2022/ng-doc-app-components-page-navigation.mjs +4 -4
  175. package/fesm2022/ng-doc-app-components-page-navigation.mjs.map +1 -1
  176. package/fesm2022/ng-doc-app-components-page-wrapper.mjs +94 -0
  177. package/fesm2022/ng-doc-app-components-page-wrapper.mjs.map +1 -0
  178. package/fesm2022/ng-doc-app-components-page.mjs +19 -71
  179. package/fesm2022/ng-doc-app-components-page.mjs.map +1 -1
  180. package/fesm2022/ng-doc-app-components-playground.mjs +43 -38
  181. package/fesm2022/ng-doc-app-components-playground.mjs.map +1 -1
  182. package/fesm2022/ng-doc-app-components-root.mjs +18 -35
  183. package/fesm2022/ng-doc-app-components-root.mjs.map +1 -1
  184. package/fesm2022/ng-doc-app-components-search-dialog.mjs +81 -0
  185. package/fesm2022/ng-doc-app-components-search-dialog.mjs.map +1 -0
  186. package/fesm2022/ng-doc-app-components-search-result.mjs +3 -3
  187. package/fesm2022/ng-doc-app-components-search-result.mjs.map +1 -1
  188. package/fesm2022/ng-doc-app-components-search.mjs +30 -48
  189. package/fesm2022/ng-doc-app-components-search.mjs.map +1 -1
  190. package/fesm2022/ng-doc-app-components-sidebar.mjs +49 -44
  191. package/fesm2022/ng-doc-app-components-sidebar.mjs.map +1 -1
  192. package/fesm2022/ng-doc-app-components-tabs.mjs +3 -3
  193. package/fesm2022/ng-doc-app-components-tabs.mjs.map +1 -1
  194. package/fesm2022/ng-doc-app-components-theme-toggle.mjs +17 -51
  195. package/fesm2022/ng-doc-app-components-theme-toggle.mjs.map +1 -1
  196. package/fesm2022/ng-doc-app-components-toc.mjs +40 -38
  197. package/fesm2022/ng-doc-app-components-toc.mjs.map +1 -1
  198. package/fesm2022/ng-doc-app-components.mjs +7 -0
  199. package/fesm2022/ng-doc-app-components.mjs.map +1 -1
  200. package/fesm2022/ng-doc-app-constants.mjs +1 -37
  201. package/fesm2022/ng-doc-app-constants.mjs.map +1 -1
  202. package/fesm2022/ng-doc-app-defaults-default-processors.mjs +6 -3
  203. package/fesm2022/ng-doc-app-defaults-default-processors.mjs.map +1 -1
  204. package/fesm2022/ng-doc-app-directives-code-highlighter.mjs +17 -35
  205. package/fesm2022/ng-doc-app-directives-code-highlighter.mjs.map +1 -1
  206. package/fesm2022/ng-doc-app-directives-route-active.mjs +3 -3
  207. package/fesm2022/ng-doc-app-helpers.mjs +4 -4
  208. package/fesm2022/ng-doc-app-helpers.mjs.map +1 -1
  209. package/fesm2022/ng-doc-app-pipes-decode-uri-component.mjs +3 -3
  210. package/fesm2022/ng-doc-app-pipes-decode-uri-component.mjs.map +1 -1
  211. package/fesm2022/ng-doc-app-pipes-extract-value.mjs +3 -3
  212. package/fesm2022/ng-doc-app-pipes-filter-by-text.mjs +3 -3
  213. package/fesm2022/ng-doc-app-pipes-sanitize-html.mjs +3 -3
  214. package/fesm2022/ng-doc-app-processors-page-processor.mjs +20 -14
  215. package/fesm2022/ng-doc-app-processors-page-processor.mjs.map +1 -1
  216. package/fesm2022/ng-doc-app-processors-processors-link.mjs +20 -0
  217. package/fesm2022/ng-doc-app-processors-processors-link.mjs.map +1 -0
  218. package/fesm2022/ng-doc-app-processors-processors-tooltip.mjs +63 -0
  219. package/fesm2022/ng-doc-app-processors-processors-tooltip.mjs.map +1 -0
  220. package/fesm2022/ng-doc-app-processors-processors.mjs +45 -70
  221. package/fesm2022/ng-doc-app-processors-processors.mjs.map +1 -1
  222. package/fesm2022/ng-doc-app-providers-mermaid.mjs +23 -0
  223. package/fesm2022/ng-doc-app-providers-mermaid.mjs.map +1 -0
  224. package/fesm2022/ng-doc-app-providers-ng-doc-app.mjs +11 -34
  225. package/fesm2022/ng-doc-app-providers-ng-doc-app.mjs.map +1 -1
  226. package/fesm2022/ng-doc-app-providers-playground-demo.mjs.map +1 -1
  227. package/fesm2022/ng-doc-app-providers-search-engine.mjs +1 -1
  228. package/fesm2022/ng-doc-app-providers-search-engine.mjs.map +1 -1
  229. package/fesm2022/ng-doc-app-providers-type-control.mjs.map +1 -1
  230. package/fesm2022/ng-doc-app-providers.mjs +1 -0
  231. package/fesm2022/ng-doc-app-providers.mjs.map +1 -1
  232. package/fesm2022/ng-doc-app-services-highlighter.mjs +46 -0
  233. package/fesm2022/ng-doc-app-services-highlighter.mjs.map +1 -0
  234. package/fesm2022/ng-doc-app-services-sidebar.mjs +35 -50
  235. package/fesm2022/ng-doc-app-services-sidebar.mjs.map +1 -1
  236. package/fesm2022/ng-doc-app-services-store.mjs +3 -3
  237. package/fesm2022/ng-doc-app-services-theme.mjs +27 -126
  238. package/fesm2022/ng-doc-app-services-theme.mjs.map +1 -1
  239. package/fesm2022/ng-doc-app-services.mjs +1 -1
  240. package/fesm2022/ng-doc-app-tokens.mjs +8 -4
  241. package/fesm2022/ng-doc-app-tokens.mjs.map +1 -1
  242. package/fesm2022/ng-doc-app-type-controls-boolean-control.mjs +3 -3
  243. package/fesm2022/ng-doc-app-type-controls-number-control.mjs +4 -4
  244. package/fesm2022/ng-doc-app-type-controls-number-control.mjs.map +1 -1
  245. package/fesm2022/ng-doc-app-type-controls-string-control.mjs +4 -4
  246. package/fesm2022/ng-doc-app-type-controls-string-control.mjs.map +1 -1
  247. package/fesm2022/ng-doc-app-type-controls-type-alias-control.mjs +4 -4
  248. package/fesm2022/ng-doc-app-type-controls-type-alias-control.mjs.map +1 -1
  249. package/interfaces/navigation.d.ts +7 -1
  250. package/interfaces/processor-options.d.ts +4 -1
  251. package/package.json +93 -27
  252. package/processors/page-processor/index.d.ts +1 -1
  253. package/processors/page-processor/{page-processor.directive.d.ts → page-processor.component.d.ts} +7 -6
  254. package/processors/processors/heading-anchor.processor.d.ts +3 -0
  255. package/processors/processors/image.processor.d.ts +3 -0
  256. package/processors/processors/index.d.ts +5 -2
  257. package/processors/processors/link/index.d.ts +1 -0
  258. package/processors/processors/mermaid.processor.d.ts +3 -0
  259. package/processors/processors/tooltip/index.d.ts +1 -0
  260. package/providers/index.d.ts +1 -0
  261. package/providers/mermaid/index.d.ts +1 -0
  262. package/providers/mermaid/provide-mermaid.d.ts +7 -0
  263. package/providers/ng-doc-app/provide-ng-doc-app.d.ts +5 -10
  264. package/providers/playground-demo/provide-playground-demo.d.ts +1 -1
  265. package/providers/search-engine/provide-search-engine.d.ts +1 -1
  266. package/providers/type-control/provide-type-control.d.ts +1 -1
  267. package/services/highlighter/highlighter.service.d.ts +24 -0
  268. package/services/highlighter/index.d.ts +1 -0
  269. package/services/index.d.ts +1 -1
  270. package/services/sidebar/sidebar.service.d.ts +4 -10
  271. package/services/theme/theme.service.d.ts +9 -37
  272. package/styles/global.css +161 -132
  273. package/styles/main.css +150 -106
  274. package/styles/themes/dark.css +71 -0
  275. package/tokens/index.d.ts +3 -1
  276. package/tokens/mermaid.d.ts +3 -0
  277. package/tokens/page-processor.d.ts +1 -1
  278. package/tokens/route-prefix.d.ts +2 -0
  279. package/tokens/shiki-theme.d.ts +6 -0
  280. package/assets/themes/ng-doc-night.css +0 -111
  281. package/constants/themes.d.ts +0 -33
  282. package/esm2022/constants/themes.mjs +0 -36
  283. package/esm2022/processors/page-processor/page-processor.directive.mjs +0 -68
  284. package/esm2022/processors/processors/link.processor.mjs +0 -13
  285. package/esm2022/processors/processors/tooltip.processor.mjs +0 -56
  286. package/esm2022/tokens/api-list.mjs +0 -3
  287. package/tokens/api-list.d.ts +0 -3
  288. /package/processors/processors/{link.processor.d.ts → link/link.processor.d.ts} +0 -0
  289. /package/processors/processors/{tooltip.processor.d.ts → tooltip/tooltip.processor.d.ts} +0 -0
@@ -1,19 +1,22 @@
1
- import { blockquoteProcessor, iconProcessor, tooltipProcessor, linkProcessor, codeProcessor, demoProcessor, demoPaneProcessor, playgroundProcessor, tabsProcessor } from '@ng-doc/app/processors/processors';
1
+ import { linkProcessor, iconProcessor, headingAnchorProcessor, blockquoteProcessor, tooltipProcessor, mermaidProcessor, codeProcessor, demoProcessor, demoPaneProcessor, playgroundProcessor, tabsProcessor, imageProcessor } from '@ng-doc/app/processors/processors';
2
2
 
3
3
  const NG_DOC_DEFAULT_PAGE_PROCESSORS = [
4
4
  /**
5
5
  * The order of the directives is important.
6
6
  * The higher the directive is in the list, the earlier it will be run.
7
7
  */
8
- blockquoteProcessor,
8
+ linkProcessor,
9
9
  iconProcessor,
10
+ headingAnchorProcessor,
11
+ blockquoteProcessor,
10
12
  tooltipProcessor,
11
- linkProcessor,
13
+ mermaidProcessor,
12
14
  codeProcessor,
13
15
  demoProcessor,
14
16
  demoPaneProcessor,
15
17
  playgroundProcessor,
16
18
  tabsProcessor,
19
+ imageProcessor,
17
20
  ];
18
21
 
19
22
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ng-doc-app-defaults-default-processors.mjs","sources":["../../../../libs/app/defaults/default-processors/default-processors.ts","../../../../libs/app/defaults/default-processors/ng-doc-app-defaults-default-processors.ts"],"sourcesContent":["import { NgDocPageProcessor } from '@ng-doc/app/interfaces';\nimport {\n\tblockquoteProcessor,\n\tcodeProcessor,\n\tdemoPaneProcessor,\n\tdemoProcessor,\n\ticonProcessor,\n\tlinkProcessor,\n\tplaygroundProcessor,\n\ttabsProcessor,\n\ttooltipProcessor,\n} from '@ng-doc/app/processors/processors';\n\nexport const NG_DOC_DEFAULT_PAGE_PROCESSORS: NgDocPageProcessor[] = [\n\t/**\n\t * The order of the directives is important.\n\t * The higher the directive is in the list, the earlier it will be run.\n\t */\n\tblockquoteProcessor,\n\ticonProcessor,\n\ttooltipProcessor,\n\tlinkProcessor,\n\tcodeProcessor,\n\tdemoProcessor,\n\tdemoPaneProcessor,\n\tplaygroundProcessor,\n\ttabsProcessor,\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAaa,MAAA,8BAA8B,GAAyB;AACnE;;;AAGG;IACH,mBAAmB;IACnB,aAAa;IACb,gBAAgB;IAChB,aAAa;IACb,aAAa;IACb,aAAa;IACb,iBAAiB;IACjB,mBAAmB;IACnB,aAAa;;;AC1Bd;;AAEG;;;;"}
1
+ {"version":3,"file":"ng-doc-app-defaults-default-processors.mjs","sources":["../../../../libs/app/defaults/default-processors/default-processors.ts","../../../../libs/app/defaults/default-processors/ng-doc-app-defaults-default-processors.ts"],"sourcesContent":["import { NgDocPageProcessor } from '@ng-doc/app/interfaces';\nimport {\n blockquoteProcessor,\n codeProcessor,\n demoPaneProcessor,\n demoProcessor,\n headingAnchorProcessor,\n iconProcessor,\n imageProcessor,\n linkProcessor,\n mermaidProcessor,\n playgroundProcessor,\n tabsProcessor,\n tooltipProcessor,\n} from '@ng-doc/app/processors/processors';\n\nexport const NG_DOC_DEFAULT_PAGE_PROCESSORS: NgDocPageProcessor[] = [\n /**\n * The order of the directives is important.\n * The higher the directive is in the list, the earlier it will be run.\n */\n linkProcessor,\n iconProcessor,\n headingAnchorProcessor,\n blockquoteProcessor,\n tooltipProcessor,\n mermaidProcessor,\n codeProcessor,\n demoProcessor,\n demoPaneProcessor,\n playgroundProcessor,\n tabsProcessor,\n imageProcessor,\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAgBa,MAAA,8BAA8B,GAAyB;AAClE;;;AAGG;IACH,aAAa;IACb,aAAa;IACb,sBAAsB;IACtB,mBAAmB;IACnB,gBAAgB;IAChB,gBAAgB;IAChB,aAAa;IACb,aAAa;IACb,iBAAiB;IACjB,mBAAmB;IACnB,aAAa;IACb,cAAc;;;AChChB;;AAEG;;;;"}
@@ -1,47 +1,29 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Directive, Input, HostBinding } from '@angular/core';
3
- import highlight from 'highlight.js/lib/core';
4
- import xml from 'highlight.js/lib/languages/xml';
2
+ import { input, inject, ElementRef, computed, Directive } from '@angular/core';
3
+ import { DomSanitizer } from '@angular/platform-browser';
4
+ import { NgDocHighlighterService } from '@ng-doc/app/services';
5
5
 
6
- highlight.registerLanguage('html', xml);
7
- highlight.registerLanguage('xml', xml);
8
6
  class NgDocCodeHighlighterDirective {
9
- constructor(elementRef) {
10
- this.elementRef = elementRef;
11
- this.code = '';
12
- this.html = '';
13
- this.language = 'typescript';
14
- this.highlightJsClass = true;
7
+ constructor() {
8
+ this.code = input.required({ alias: 'ngDocHighlighter' });
9
+ this.element = inject((ElementRef)).nativeElement;
10
+ this.highlighter = inject(NgDocHighlighterService);
11
+ this.sanitizer = inject(DomSanitizer);
12
+ this.highlightedCode = computed(() => this.sanitizer.bypassSecurityTrustHtml(this.highlighter.highlight(this.code())));
15
13
  }
16
- ngOnChanges() {
17
- if (this.code) {
18
- const result = highlight.highlight(this.code, { language: this.language });
19
- this.elementRef.nativeElement.innerHTML = result.value ?? this.html;
20
- }
21
- else {
22
- this.elementRef.nativeElement.innerHTML = this.html;
23
- }
24
- }
25
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NgDocCodeHighlighterDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
26
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.0", type: NgDocCodeHighlighterDirective, isStandalone: true, selector: "code[ngDocCodeHighlighter]", inputs: { code: ["ngDocCodeHighlighter", "code"], html: "html", language: "language" }, host: { properties: { "class.hljs": "this.highlightJsClass" } }, usesOnChanges: true, ngImport: i0 }); }
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgDocCodeHighlighterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
15
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.1.1", type: NgDocCodeHighlighterDirective, isStandalone: true, selector: "[ngDocHighlighter]", inputs: { code: { classPropertyName: "code", publicName: "ngDocHighlighter", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "innerHTML": "highlightedCode()" } }, ngImport: i0 }); }
27
16
  }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NgDocCodeHighlighterDirective, decorators: [{
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgDocCodeHighlighterDirective, decorators: [{
29
18
  type: Directive,
30
19
  args: [{
31
- selector: 'code[ngDocCodeHighlighter]',
20
+ selector: '[ngDocHighlighter]',
32
21
  standalone: true,
22
+ host: {
23
+ '[innerHTML]': 'highlightedCode()',
24
+ },
33
25
  }]
34
- }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { code: [{
35
- type: Input,
36
- args: ['ngDocCodeHighlighter']
37
- }], html: [{
38
- type: Input
39
- }], language: [{
40
- type: Input
41
- }], highlightJsClass: [{
42
- type: HostBinding,
43
- args: ['class.hljs']
44
- }] } });
26
+ }], ctorParameters: () => [] });
45
27
 
46
28
  /**
47
29
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"ng-doc-app-directives-code-highlighter.mjs","sources":["../../../../libs/app/directives/code-highlighter/code-highlighter.directive.ts","../../../../libs/app/directives/code-highlighter/ng-doc-app-directives-code-highlighter.ts"],"sourcesContent":["import { Directive, ElementRef, HostBinding, Input, OnChanges } from '@angular/core';\nimport { HighlightResult } from 'highlight.js';\nimport highlight from 'highlight.js/lib/core';\nimport xml from 'highlight.js/lib/languages/xml';\n\nhighlight.registerLanguage('html', xml);\nhighlight.registerLanguage('xml', xml);\n\n@Directive({\n\tselector: 'code[ngDocCodeHighlighter]',\n\tstandalone: true,\n})\nexport class NgDocCodeHighlighterDirective implements OnChanges {\n\t@Input('ngDocCodeHighlighter')\n\tcode: string = '';\n\n\t@Input()\n\thtml: string = '';\n\n\t@Input()\n\tlanguage: string = 'typescript';\n\n\t@HostBinding('class.hljs')\n\tprotected highlightJsClass: boolean = true;\n\n\tconstructor(private readonly elementRef: ElementRef<HTMLElement>) {}\n\n\tngOnChanges(): void {\n\t\tif (this.code) {\n\t\t\tconst result: HighlightResult = highlight.highlight(this.code, { language: this.language });\n\n\t\t\tthis.elementRef.nativeElement.innerHTML = result.value ?? this.html;\n\t\t} else {\n\t\t\tthis.elementRef.nativeElement.innerHTML = this.html;\n\t\t}\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAKA,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACxC,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;MAM1B,6BAA6B,CAAA;AAazC,IAAA,WAAA,CAA6B,UAAmC,EAAA;QAAnC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAyB;QAXhE,IAAI,CAAA,IAAA,GAAW,EAAE,CAAC;QAGlB,IAAI,CAAA,IAAA,GAAW,EAAE,CAAC;QAGlB,IAAQ,CAAA,QAAA,GAAW,YAAY,CAAC;QAGtB,IAAgB,CAAA,gBAAA,GAAY,IAAI,CAAC;KAEyB;IAEpE,WAAW,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE;AACd,YAAA,MAAM,MAAM,GAAoB,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AAE5F,YAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,GAAG,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC;SACpE;aAAM;YACN,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;SACpD;KACD;8GAvBW,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAA7B,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,CAAA,sBAAA,EAAA,MAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAJzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,4BAA4B;AACtC,oBAAA,UAAU,EAAE,IAAI;AAChB,iBAAA,CAAA;+EAGA,IAAI,EAAA,CAAA;sBADH,KAAK;uBAAC,sBAAsB,CAAA;gBAI7B,IAAI,EAAA,CAAA;sBADH,KAAK;gBAIN,QAAQ,EAAA,CAAA;sBADP,KAAK;gBAII,gBAAgB,EAAA,CAAA;sBADzB,WAAW;uBAAC,YAAY,CAAA;;;ACtB1B;;AAEG;;;;"}
1
+ {"version":3,"file":"ng-doc-app-directives-code-highlighter.mjs","sources":["../../../../libs/app/directives/code-highlighter/code-highlighter.directive.ts","../../../../libs/app/directives/code-highlighter/ng-doc-app-directives-code-highlighter.ts"],"sourcesContent":["import { computed, Directive, ElementRef, inject, input, Signal } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { NgDocHighlighterService } from '@ng-doc/app/services';\n\n@Directive({\n selector: '[ngDocHighlighter]',\n standalone: true,\n host: {\n '[innerHTML]': 'highlightedCode()',\n },\n})\nexport class NgDocCodeHighlighterDirective {\n code = input.required<string>({ alias: 'ngDocHighlighter' });\n\n protected readonly highlightedCode: Signal<SafeHtml>;\n\n protected readonly element = inject(ElementRef<HTMLElement>).nativeElement;\n protected readonly highlighter = inject(NgDocHighlighterService);\n protected readonly sanitizer = inject(DomSanitizer);\n\n constructor() {\n this.highlightedCode = computed(() =>\n this.sanitizer.bypassSecurityTrustHtml(this.highlighter.highlight(this.code())),\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAWa,6BAA6B,CAAA;AASxC,IAAA,WAAA,GAAA;QARA,IAAI,CAAA,IAAA,GAAG,KAAK,CAAC,QAAQ,CAAS,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAI1C,IAAO,CAAA,OAAA,GAAG,MAAM,EAAC,UAAuB,EAAC,CAAC,aAAa,CAAC;AACxD,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC;AAC9C,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;QAGlD,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,MAC9B,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAChF,CAAC;KACH;8GAbU,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAA7B,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAPzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACJ,wBAAA,aAAa,EAAE,mBAAmB;AACnC,qBAAA;AACF,iBAAA,CAAA;;;ACVD;;AAEG;;;;"}
@@ -28,8 +28,8 @@ let NgDocRouteActiveDirective = class NgDocRouteActiveDirective {
28
28
  : asArray(this.activeClass).forEach((cls) => this.renderer.removeClass(this.elementRef.nativeElement, cls));
29
29
  });
30
30
  }
31
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NgDocRouteActiveDirective, deps: [{ token: i0.ElementRef }, { token: i1.Router }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
32
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.0", type: NgDocRouteActiveDirective, isStandalone: true, selector: "[ngDocRouteActive]", inputs: { link: ["ngDocRouteActive", "link"], activeClass: "activeClass", matchOptions: "matchOptions" }, ngImport: i0 }); }
31
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgDocRouteActiveDirective, deps: [{ token: i0.ElementRef }, { token: i1.Router }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
32
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.1", type: NgDocRouteActiveDirective, isStandalone: true, selector: "[ngDocRouteActive]", inputs: { link: ["ngDocRouteActive", "link"], activeClass: "activeClass", matchOptions: "matchOptions" }, ngImport: i0 }); }
33
33
  };
34
34
  NgDocRouteActiveDirective = __decorate([
35
35
  UntilDestroy(),
@@ -37,7 +37,7 @@ NgDocRouteActiveDirective = __decorate([
37
37
  Router,
38
38
  Renderer2])
39
39
  ], NgDocRouteActiveDirective);
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NgDocRouteActiveDirective, decorators: [{
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgDocRouteActiveDirective, decorators: [{
41
41
  type: Directive,
42
42
  args: [{
43
43
  selector: '[ngDocRouteActive]',
@@ -59,13 +59,13 @@ function generateToc(container) {
59
59
  const levels = asArray(new Set(headingElements.map(levelFromTagName).sort()));
60
60
  return headingElements.reduce((map, heading) => {
61
61
  const headingLevel = levelFromTagName(heading);
62
- const anchor = heading.querySelector('a.ng-doc-header-link');
63
- if (anchor) {
62
+ const isHeadingLink = heading.getAttribute('headingLink') === 'true';
63
+ if (isHeadingLink) {
64
64
  map.push({
65
65
  title: heading.textContent?.trim() ?? '',
66
66
  element: heading,
67
- path: anchor.pathname,
68
- hash: anchor.hash.replace('#', ''),
67
+ path: heading.getAttribute('href') ?? '',
68
+ hash: heading.id,
69
69
  level: levels.indexOf(headingLevel) + 1,
70
70
  });
71
71
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ng-doc-app-helpers.mjs","sources":["../../../../libs/app/helpers/as-boolean.ts","../../../../libs/app/helpers/create-component.ts","../../../../libs/app/helpers/format-html.ts","../../../../libs/app/helpers/generate-toc.ts","../../../../libs/app/helpers/is-dark-os-theme.ts","../../../../libs/app/helpers/is-external-link.ts","../../../../libs/app/helpers/is-playground-property.ts","../../../../libs/app/helpers/ng-doc-app-helpers.ts"],"sourcesContent":["/**\n *\n * @param value\n */\nexport function asBoolean(value: unknown): boolean {\n\tif (typeof value === 'string') {\n\t\treturn value.toLowerCase() === 'true'\n\t\t\t? true\n\t\t\t: value.toLowerCase() === 'false'\n\t\t\t? false\n\t\t\t: !!value;\n\t}\n\treturn !!value;\n}\n","import { Type, ViewContainerRef } from '@angular/core';\n\n/**\n *\n * @param viewContainer\n * @param component\n * @param inputs\n */\nexport function createComponent<T>(\n\tviewContainer: ViewContainerRef,\n\tcomponent: Type<T>,\n\tinputs?: object,\n): void {\n\tviewContainer.clear();\n\n\tconst componentRef = viewContainer.createComponent(component);\n\n\tif (inputs) {\n\t\tObject.entries(inputs).forEach(([key, value]) => {\n\t\t\tcomponentRef.setInput(key, value);\n\t\t});\n\t}\n}\n","/**\n *\n * @param html\n */\nexport async function formatHtml(html: string): Promise<string> {\n\t// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n\t// @ts-ignore\n\tconst formatter = await import('esthetic');\n\n\treturn formatter.default.html(html.trim(), {\n\t\twrap: 50,\n\t\tmarkup: {\n\t\t\tforceIndent: true,\n\t\t},\n\t});\n}\n","import { NgDocTocItem } from '@ng-doc/app/interfaces';\nimport { asArray } from '@ng-doc/core/helpers/as-array';\nimport { NgDocHeading } from '@ng-doc/core/types';\n\n/**\n * Generate table of contents, only for headings with id\n * @param container\n * @param headings\n */\nexport function generateToc(container: HTMLElement): NgDocTocItem[] {\n\tconst headings: NgDocHeading[] = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'];\n\n\tconst headingElements: HTMLHeadingElement[] = Array.from(\n\t\tcontainer.querySelectorAll<HTMLHeadingElement>(headings.join(', ')),\n\t).filter((heading: HTMLHeadingElement) => heading.id);\n\n\tconst levels: number[] = asArray(new Set(headingElements.map(levelFromTagName).sort()));\n\n\treturn headingElements.reduce((map: NgDocTocItem[], heading: HTMLHeadingElement) => {\n\t\tconst headingLevel: number = levelFromTagName(heading);\n\t\tconst anchor: HTMLAnchorElement | null =\n\t\t\theading.querySelector<HTMLAnchorElement>('a.ng-doc-header-link');\n\n\t\tif (anchor) {\n\t\t\tmap.push({\n\t\t\t\ttitle: heading.textContent?.trim() ?? '',\n\t\t\t\telement: heading,\n\t\t\t\tpath: anchor.pathname,\n\t\t\t\thash: anchor.hash.replace('#', ''),\n\t\t\t\tlevel: levels.indexOf(headingLevel) + 1,\n\t\t\t});\n\t\t}\n\n\t\treturn map;\n\t}, []);\n}\n\n/**\n *\n * @param heading\n */\nfunction levelFromTagName(heading: HTMLHeadingElement): number {\n\treturn Number(heading.tagName.toLowerCase().replace(/[a-z]*/g, '') || 1);\n}\n","/**\n * Check if the OS theme is dark\n */\nexport function isDarkOsTheme(): boolean {\n\treturn window.matchMedia('(prefers-color-scheme: dark)').matches;\n}\n","/**\n *\n * @param url\n */\nexport function isExternalLink(url: string): boolean {\n\tconst anchorElement: HTMLAnchorElement = document.createElement('a');\n\n\tanchorElement.href = url;\n\n\treturn anchorElement.host !== window.location.host;\n}\n","import {objectKeys} from '@ng-doc/core/helpers/object-keys';\nimport {NgDocPlaygroundProperty} from '@ng-doc/core/interfaces';\n\n/**\n *\n * @param obj\n */\nexport function isPlaygroundProperty(obj: Record<string, any>): obj is NgDocPlaygroundProperty {\n\treturn objectKeys(obj).includes('type');\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-doc-app-helpers.mjs","sources":["../../../../libs/app/helpers/as-boolean.ts","../../../../libs/app/helpers/create-component.ts","../../../../libs/app/helpers/format-html.ts","../../../../libs/app/helpers/generate-toc.ts","../../../../libs/app/helpers/is-dark-os-theme.ts","../../../../libs/app/helpers/is-external-link.ts","../../../../libs/app/helpers/is-playground-property.ts","../../../../libs/app/helpers/ng-doc-app-helpers.ts"],"sourcesContent":["/**\n *\n * @param value\n */\nexport function asBoolean(value: unknown): boolean {\n if (typeof value === 'string') {\n return value.toLowerCase() === 'true'\n ? true\n : value.toLowerCase() === 'false'\n ? false\n : !!value;\n }\n return !!value;\n}\n","import { Type, ViewContainerRef } from '@angular/core';\n\n/**\n *\n * @param viewContainer\n * @param component\n * @param inputs\n */\nexport function createComponent<T>(\n viewContainer: ViewContainerRef,\n component: Type<T>,\n inputs?: object,\n): void {\n viewContainer.clear();\n\n const componentRef = viewContainer.createComponent(component);\n\n if (inputs) {\n Object.entries(inputs).forEach(([key, value]) => {\n componentRef.setInput(key, value);\n });\n }\n}\n","/**\n *\n * @param html\n */\nexport async function formatHtml(html: string): Promise<string> {\n\t// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n\t// @ts-ignore\n\tconst formatter = await import('esthetic');\n\n\treturn formatter.default.html(html.trim(), {\n\t\twrap: 50,\n\t\tmarkup: {\n\t\t\tforceIndent: true,\n\t\t},\n\t});\n}\n","import { NgDocTocItem } from '@ng-doc/app/interfaces';\nimport { asArray } from '@ng-doc/core/helpers/as-array';\nimport { NgDocHeading } from '@ng-doc/core/types';\n\n/**\n * Generate table of contents, only for headings with id\n * @param container\n * @param headings\n */\nexport function generateToc(container: HTMLElement): NgDocTocItem[] {\n const headings: NgDocHeading[] = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'];\n\n const headingElements: HTMLHeadingElement[] = Array.from(\n container.querySelectorAll<HTMLHeadingElement>(headings.join(', ')),\n ).filter((heading: HTMLHeadingElement) => heading.id);\n\n const levels: number[] = asArray(new Set(headingElements.map(levelFromTagName).sort()));\n\n return headingElements.reduce((map: NgDocTocItem[], heading: HTMLHeadingElement) => {\n const headingLevel: number = levelFromTagName(heading);\n const isHeadingLink = heading.getAttribute('headingLink') === 'true';\n\n if (isHeadingLink) {\n map.push({\n title: heading.textContent?.trim() ?? '',\n element: heading,\n path: heading.getAttribute('href') ?? '',\n hash: heading.id,\n level: levels.indexOf(headingLevel) + 1,\n });\n }\n\n return map;\n }, []);\n}\n\n/**\n *\n * @param heading\n */\nfunction levelFromTagName(heading: HTMLHeadingElement): number {\n return Number(heading.tagName.toLowerCase().replace(/[a-z]*/g, '') || 1);\n}\n","/**\n * Check if the OS theme is dark\n */\nexport function isDarkOsTheme(): boolean {\n\treturn window.matchMedia('(prefers-color-scheme: dark)').matches;\n}\n","/**\n *\n * @param url\n */\nexport function isExternalLink(url: string): boolean {\n\tconst anchorElement: HTMLAnchorElement = document.createElement('a');\n\n\tanchorElement.href = url;\n\n\treturn anchorElement.host !== window.location.host;\n}\n","import {objectKeys} from '@ng-doc/core/helpers/object-keys';\nimport {NgDocPlaygroundProperty} from '@ng-doc/core/interfaces';\n\n/**\n *\n * @param obj\n */\nexport function isPlaygroundProperty(obj: Record<string, any>): obj is NgDocPlaygroundProperty {\n\treturn objectKeys(obj).includes('type');\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -10,10 +10,10 @@ class NgDocDecodeUriComponentPipe {
10
10
  return value;
11
11
  }
12
12
  }
13
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NgDocDecodeUriComponentPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
14
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: NgDocDecodeUriComponentPipe, isStandalone: true, name: "decodeUriComponent" }); }
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgDocDecodeUriComponentPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
14
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.1.1", ngImport: i0, type: NgDocDecodeUriComponentPipe, isStandalone: true, name: "decodeUriComponent" }); }
15
15
  }
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NgDocDecodeUriComponentPipe, decorators: [{
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgDocDecodeUriComponentPipe, decorators: [{
17
17
  type: Pipe,
18
18
  args: [{
19
19
  name: 'decodeUriComponent',
@@ -1 +1 @@
1
- {"version":3,"file":"ng-doc-app-pipes-decode-uri-component.mjs","sources":["../../../../libs/app/pipes/decode-uri-component/decode-uri-component.pipe.ts","../../../../libs/app/pipes/decode-uri-component/ng-doc-app-pipes-decode-uri-component.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n\tname: 'decodeUriComponent',\n\tstandalone: true,\n})\nexport class NgDocDecodeUriComponentPipe implements PipeTransform {\n\ttransform(value: string): string {\n\t\ttry {\n\t\t\treturn decodeURIComponent(value);\n\t\t} catch {\n\t\t\treturn value;\n\t\t}\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAMa,2BAA2B,CAAA;AACvC,IAAA,SAAS,CAAC,KAAa,EAAA;AACtB,QAAA,IAAI;AACH,YAAA,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;SACjC;AAAC,QAAA,MAAM;AACP,YAAA,OAAO,KAAK,CAAC;SACb;KACD;8GAPW,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;4GAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,oBAAA,EAAA,CAAA,CAAA,EAAA;;2FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAJvC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACL,oBAAA,IAAI,EAAE,oBAAoB;AAC1B,oBAAA,UAAU,EAAE,IAAI;AAChB,iBAAA,CAAA;;;ACLD;;AAEG;;;;"}
1
+ {"version":3,"file":"ng-doc-app-pipes-decode-uri-component.mjs","sources":["../../../../libs/app/pipes/decode-uri-component/decode-uri-component.pipe.ts","../../../../libs/app/pipes/decode-uri-component/ng-doc-app-pipes-decode-uri-component.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'decodeUriComponent',\n standalone: true,\n})\nexport class NgDocDecodeUriComponentPipe implements PipeTransform {\n transform(value: string): string {\n try {\n return decodeURIComponent(value);\n } catch {\n return value;\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAMa,2BAA2B,CAAA;AACtC,IAAA,SAAS,CAAC,KAAa,EAAA;AACrB,QAAA,IAAI;AACF,YAAA,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;SAClC;AAAC,QAAA,MAAM;AACN,YAAA,OAAO,KAAK,CAAC;SACd;KACF;8GAPU,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;4GAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,oBAAA,EAAA,CAAA,CAAA,EAAA;;2FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAJvC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,oBAAoB;AAC1B,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;;ACLD;;AAEG;;;;"}
@@ -6,10 +6,10 @@ class NgDocExtractValuePipe {
6
6
  transform(value) {
7
7
  return extractValue(value);
8
8
  }
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NgDocExtractValuePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
10
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: NgDocExtractValuePipe, isStandalone: true, name: "ngDocExtractValue" }); }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgDocExtractValuePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
10
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.1.1", ngImport: i0, type: NgDocExtractValuePipe, isStandalone: true, name: "ngDocExtractValue" }); }
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NgDocExtractValuePipe, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgDocExtractValuePipe, decorators: [{
13
13
  type: Pipe,
14
14
  args: [{
15
15
  name: 'ngDocExtractValue',
@@ -5,10 +5,10 @@ class NgDocFilterByTextPipe {
5
5
  transform(items, searchTerm, matcher = (item, s) => String(item) === s) {
6
6
  return items?.filter((item) => matcher(item, searchTerm)) ?? [];
7
7
  }
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NgDocFilterByTextPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
9
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: NgDocFilterByTextPipe, isStandalone: true, name: "ngDocFilterByText" }); }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgDocFilterByTextPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
9
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.1.1", ngImport: i0, type: NgDocFilterByTextPipe, isStandalone: true, name: "ngDocFilterByText" }); }
10
10
  }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NgDocFilterByTextPipe, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgDocFilterByTextPipe, decorators: [{
12
12
  type: Pipe,
13
13
  args: [{
14
14
  name: 'ngDocFilterByText',
@@ -9,10 +9,10 @@ class NgDocSanitizeHtmlPipe {
9
9
  transform(value) {
10
10
  return this.sanitizer.bypassSecurityTrustHtml(value);
11
11
  }
12
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NgDocSanitizeHtmlPipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe }); }
13
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: NgDocSanitizeHtmlPipe, isStandalone: true, name: "ngDocSanitizeHtml" }); }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgDocSanitizeHtmlPipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe }); }
13
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.1.1", ngImport: i0, type: NgDocSanitizeHtmlPipe, isStandalone: true, name: "ngDocSanitizeHtml" }); }
14
14
  }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NgDocSanitizeHtmlPipe, decorators: [{
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgDocSanitizeHtmlPipe, decorators: [{
16
16
  type: Pipe,
17
17
  args: [{
18
18
  name: 'ngDocSanitizeHtml',
@@ -1,13 +1,14 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, inject, ElementRef, ViewContainerRef, Injector, Renderer2, Directive, Input, Output } from '@angular/core';
2
+ import { EventEmitter, inject, ElementRef, ViewContainerRef, ApplicationRef, Injector, Renderer2, Component, ChangeDetectionStrategy, Input, HostBinding, Output } from '@angular/core';
3
3
  import { NG_DOC_PAGE_PROCESSOR, NG_DOC_PAGE_CUSTOM_PROCESSOR } from '@ng-doc/app/tokens';
4
- import { asArray, objectKeys } from '@ng-doc/core';
4
+ import { asArray } from '@ng-doc/core/helpers/as-array';
5
+ import { objectKeys } from '@ng-doc/core/helpers/object-keys';
5
6
 
6
7
  /**
7
8
  * Base processor class to create a processor directive that will be used to replace
8
9
  * html nodes with an Angular component.
9
10
  */
10
- class NgDocPageProcessorDirective {
11
+ class NgDocPageProcessorComponent {
11
12
  constructor() {
12
13
  this.html = '';
13
14
  this.afterRender = new EventEmitter();
@@ -16,18 +17,19 @@ class NgDocPageProcessorDirective {
16
17
  [];
17
18
  this.elementRef = inject(ElementRef);
18
19
  this.viewContainerRef = inject(ViewContainerRef);
20
+ this.applicationRef = inject(ApplicationRef);
19
21
  this.injector = inject(Injector);
20
22
  this.renderer = inject(Renderer2);
21
23
  }
22
24
  ngOnChanges({ html }) {
23
25
  if (html) {
24
- this.renderer.setProperty(this.elementRef.nativeElement, 'innerHTML', this.html);
25
- this.afterRender.emit();
26
+ Promise.resolve().then(() => {
27
+ asArray(this.processors, this.customProcessors).forEach(this.process.bind(this));
28
+ this.applicationRef.tick();
29
+ this.afterRender.emit();
30
+ });
26
31
  }
27
32
  }
28
- ngOnInit() {
29
- asArray(this.processors, this.customProcessors).forEach(this.process.bind(this));
30
- }
31
33
  process(processor) {
32
34
  Array.from(this.elementRef.nativeElement.querySelectorAll(processor.selector)).forEach((elementNode) => {
33
35
  // check if element node has a parent node because it can be removed by another processor
@@ -50,19 +52,23 @@ class NgDocPageProcessorDirective {
50
52
  }
51
53
  });
52
54
  }
53
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NgDocPageProcessorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
54
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.0", type: NgDocPageProcessorDirective, isStandalone: true, selector: "[ngDocPageProcessor]", inputs: { html: ["ngDocPageProcessor", "html"] }, outputs: { afterRender: "afterRender" }, host: { attributes: { "ngSkipHydration": "true" } }, usesOnChanges: true, ngImport: i0 }); }
55
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgDocPageProcessorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
56
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: NgDocPageProcessorComponent, isStandalone: true, selector: "[ngDocPageProcessor]", inputs: { html: ["ngDocPageProcessor", "html"] }, outputs: { afterRender: "afterRender" }, host: { properties: { "innerHTML": "this.html" } }, usesOnChanges: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
55
57
  }
56
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NgDocPageProcessorDirective, decorators: [{
57
- type: Directive,
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgDocPageProcessorComponent, decorators: [{
59
+ type: Component,
58
60
  args: [{
59
61
  selector: '[ngDocPageProcessor]',
60
62
  standalone: true,
61
- host: { ngSkipHydration: 'true' },
63
+ template: '<ng-content></ng-content>',
64
+ changeDetection: ChangeDetectionStrategy.OnPush,
62
65
  }]
63
66
  }], propDecorators: { html: [{
64
67
  type: Input,
65
68
  args: [{ required: true, alias: 'ngDocPageProcessor' }]
69
+ }, {
70
+ type: HostBinding,
71
+ args: ['innerHTML']
66
72
  }], afterRender: [{
67
73
  type: Output
68
74
  }] } });
@@ -71,5 +77,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
71
77
  * Generated bundle index. Do not edit.
72
78
  */
73
79
 
74
- export { NgDocPageProcessorDirective };
80
+ export { NgDocPageProcessorComponent };
75
81
  //# sourceMappingURL=ng-doc-app-processors-page-processor.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ng-doc-app-processors-page-processor.mjs","sources":["../../../../libs/app/processors/page-processor/page-processor.directive.ts","../../../../libs/app/processors/page-processor/ng-doc-app-processors-page-processor.ts"],"sourcesContent":["import {\n\tComponentRef,\n\tDirective,\n\tElementRef,\n\tEventEmitter,\n\tinject,\n\tInjector,\n\tInput,\n\tOnChanges,\n\tOnInit,\n\tOutput,\n\tRenderer2,\n\tSimpleChanges,\n\tViewContainerRef,\n} from '@angular/core';\nimport { NgDocPageProcessor, NgDocProcessorOptions } from '@ng-doc/app/interfaces';\nimport { NG_DOC_PAGE_CUSTOM_PROCESSOR, NG_DOC_PAGE_PROCESSOR } from '@ng-doc/app/tokens';\nimport { asArray, objectKeys } from '@ng-doc/core';\n\n/**\n * Base processor class to create a processor directive that will be used to replace\n * html nodes with an Angular component.\n */\n@Directive({\n\tselector: '[ngDocPageProcessor]',\n\tstandalone: true,\n\thost: { ngSkipHydration: 'true' },\n})\nexport class NgDocPageProcessorDirective implements OnChanges, OnInit {\n\t@Input({ required: true, alias: 'ngDocPageProcessor' })\n\thtml: string = '';\n\n\t@Output()\n\tafterRender: EventEmitter<void> = new EventEmitter<void>();\n\n\tprocessors: Array<NgDocPageProcessor<unknown>> =\n\t\tinject<Array<NgDocPageProcessor<unknown>>>(NG_DOC_PAGE_PROCESSOR, { optional: true }) ?? [];\n\tcustomProcessors: Array<NgDocPageProcessor<unknown>> =\n\t\tinject<Array<NgDocPageProcessor<unknown>>>(NG_DOC_PAGE_CUSTOM_PROCESSOR, { optional: true }) ??\n\t\t[];\n\n\tprotected readonly elementRef: ElementRef<HTMLElement> = inject(ElementRef);\n\tprotected readonly viewContainerRef: ViewContainerRef = inject(ViewContainerRef);\n\tprotected readonly injector: Injector = inject(Injector);\n\tprotected readonly renderer: Renderer2 = inject(Renderer2);\n\n\tngOnChanges({ html }: SimpleChanges) {\n\t\tif (html) {\n\t\t\tthis.renderer.setProperty(this.elementRef.nativeElement, 'innerHTML', this.html);\n\t\t\tthis.afterRender.emit();\n\t\t}\n\t}\n\n\tngOnInit(): void {\n\t\tasArray(this.processors, this.customProcessors).forEach(this.process.bind(this));\n\t}\n\n\tprivate process<T>(processor: NgDocPageProcessor<T>): void {\n\t\tArray.from(this.elementRef.nativeElement.querySelectorAll(processor.selector)).forEach(\n\t\t\t(elementNode: Element) => {\n\t\t\t\t// check if element node has a parent node because it can be removed by another processor\n\t\t\t\tif (elementNode.parentNode) {\n\t\t\t\t\tconst replaceElement: Element =\n\t\t\t\t\t\t(processor.nodeToReplace && processor.nodeToReplace(elementNode, this.injector)) ??\n\t\t\t\t\t\telementNode;\n\t\t\t\t\tconst options: NgDocProcessorOptions<T> = processor.extractOptions(\n\t\t\t\t\t\telementNode,\n\t\t\t\t\t\tthis.elementRef.nativeElement,\n\t\t\t\t\t);\n\n\t\t\t\t\t// create component\n\t\t\t\t\tconst componentRef: ComponentRef<T> = this.viewContainerRef.createComponent(\n\t\t\t\t\t\tprocessor.component,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tprojectableNodes: options.content,\n\t\t\t\t\t\t\tinjector: this.injector,\n\t\t\t\t\t\t},\n\t\t\t\t\t);\n\n\t\t\t\t\t// set component options\n\t\t\t\t\tif (options.inputs) {\n\t\t\t\t\t\tobjectKeys(options.inputs).forEach(\n\t\t\t\t\t\t\t(key: keyof T) =>\n\t\t\t\t\t\t\t\toptions.inputs && componentRef.setInput(key as string, options.inputs[key]),\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\t// replace element node with component node\n\t\t\t\t\treplaceElement.parentNode?.replaceChild(\n\t\t\t\t\t\tcomponentRef.location.nativeElement,\n\t\t\t\t\t\treplaceElement,\n\t\t\t\t\t);\n\n\t\t\t\t\tcomponentRef.changeDetectorRef.markForCheck();\n\t\t\t\t}\n\t\t\t},\n\t\t);\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-doc-app-processors-page-processor.mjs","sources":["../../../../libs/app/processors/page-processor/page-processor.component.ts","../../../../libs/app/processors/page-processor/ng-doc-app-processors-page-processor.ts"],"sourcesContent":["import {\n ApplicationRef,\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n ElementRef,\n EventEmitter,\n HostBinding,\n inject,\n Injector,\n Input,\n OnChanges,\n Output,\n Renderer2,\n SimpleChanges,\n ViewContainerRef,\n} from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { NgDocPageProcessor, NgDocProcessorOptions } from '@ng-doc/app/interfaces';\nimport { NG_DOC_PAGE_CUSTOM_PROCESSOR, NG_DOC_PAGE_PROCESSOR } from '@ng-doc/app/tokens';\nimport { asArray } from '@ng-doc/core/helpers/as-array';\nimport { objectKeys } from '@ng-doc/core/helpers/object-keys';\n\n/**\n * Base processor class to create a processor directive that will be used to replace\n * html nodes with an Angular component.\n */\n@Component({\n selector: '[ngDocPageProcessor]',\n standalone: true,\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgDocPageProcessorComponent implements OnChanges {\n @Input({ required: true, alias: 'ngDocPageProcessor' })\n @HostBinding('innerHTML')\n html: SafeHtml = '';\n\n @Output()\n afterRender: EventEmitter<void> = new EventEmitter<void>();\n\n processors: Array<NgDocPageProcessor<unknown>> =\n inject<Array<NgDocPageProcessor<unknown>>>(NG_DOC_PAGE_PROCESSOR, { optional: true }) ?? [];\n customProcessors: Array<NgDocPageProcessor<unknown>> =\n inject<Array<NgDocPageProcessor<unknown>>>(NG_DOC_PAGE_CUSTOM_PROCESSOR, { optional: true }) ??\n [];\n\n protected readonly elementRef: ElementRef<HTMLElement> = inject(ElementRef);\n protected readonly viewContainerRef: ViewContainerRef = inject(ViewContainerRef);\n protected readonly applicationRef = inject(ApplicationRef);\n protected readonly injector: Injector = inject(Injector);\n protected readonly renderer: Renderer2 = inject(Renderer2);\n\n ngOnChanges({ html }: SimpleChanges): void {\n if (html) {\n Promise.resolve().then(() => {\n asArray(this.processors, this.customProcessors).forEach(this.process.bind(this));\n this.applicationRef.tick();\n this.afterRender.emit();\n });\n }\n }\n\n private process<T>(processor: NgDocPageProcessor<T>): void {\n Array.from(this.elementRef.nativeElement.querySelectorAll(processor.selector)).forEach(\n (elementNode: Element) => {\n // check if element node has a parent node because it can be removed by another processor\n if (elementNode.parentNode) {\n const replaceElement: Element =\n (processor.nodeToReplace && processor.nodeToReplace(elementNode, this.injector)) ??\n elementNode;\n const options: NgDocProcessorOptions<T> = processor.extractOptions(\n elementNode,\n this.elementRef.nativeElement,\n );\n\n // create component\n const componentRef: ComponentRef<T> = this.viewContainerRef.createComponent(\n processor.component,\n {\n projectableNodes: options.content,\n injector: this.injector,\n },\n );\n\n // set component options\n if (options.inputs) {\n objectKeys(options.inputs).forEach(\n (key: keyof T) =>\n options.inputs && componentRef.setInput(key as string, options.inputs[key]),\n );\n }\n\n // replace element node with component node\n replaceElement.parentNode?.replaceChild(\n componentRef.location.nativeElement,\n replaceElement,\n );\n\n componentRef.changeDetectorRef.markForCheck();\n }\n },\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { NgDocPageLinkComponent } from '@ng-doc/app/components/page-link';
2
+
3
+ const linkProcessor = {
4
+ component: NgDocPageLinkComponent,
5
+ selector: 'a',
6
+ extractOptions: (element) => ({
7
+ inputs: {
8
+ href: element.getAttribute('href') ?? '',
9
+ classes: element.getAttribute('class') ?? '',
10
+ },
11
+ content: [Array.from(element.childNodes)],
12
+ }),
13
+ };
14
+
15
+ /**
16
+ * Generated bundle index. Do not edit.
17
+ */
18
+
19
+ export { linkProcessor };
20
+ //# sourceMappingURL=ng-doc-app-processors-processors-link.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ng-doc-app-processors-processors-link.mjs","sources":["../../../../libs/app/processors/processors/link/link.processor.ts","../../../../libs/app/processors/processors/link/ng-doc-app-processors-processors-link.ts"],"sourcesContent":["import { NgDocPageLinkComponent } from '@ng-doc/app/components/page-link';\nimport { NgDocPageProcessor } from '@ng-doc/app/interfaces';\n\nexport const linkProcessor: NgDocPageProcessor<NgDocPageLinkComponent> = {\n component: NgDocPageLinkComponent,\n selector: 'a',\n extractOptions: (element: Element) => ({\n inputs: {\n href: element.getAttribute('href') ?? '',\n classes: element.getAttribute('class') ?? '',\n },\n content: [Array.from(element.childNodes)],\n }),\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAGa,MAAA,aAAa,GAA+C;AACvE,IAAA,SAAS,EAAE,sBAAsB;AACjC,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,cAAc,EAAE,CAAC,OAAgB,MAAM;AACrC,QAAA,MAAM,EAAE;YACN,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE;YACxC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE;AAC7C,SAAA;QACD,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;KAC1C,CAAC;;;ACZJ;;AAEG;;;;"}
@@ -0,0 +1,63 @@
1
+ import * as i0 from '@angular/core';
2
+ import { ElementRef, Component, ChangeDetectionStrategy, Input, ViewChild } from '@angular/core';
3
+ import { NgDocTooltipDirective } from '@ng-doc/ui-kit';
4
+
5
+ class NgDocTooltipWrapperComponent {
6
+ constructor(changeDetectorRef) {
7
+ this.changeDetectorRef = changeDetectorRef;
8
+ this.tooltipElement = null;
9
+ }
10
+ ngAfterViewInit() {
11
+ if (this.contentProjection) {
12
+ const element = this.contentProjection.nativeElement.querySelector('[ngDocTooltip]');
13
+ this.tooltipElement = element instanceof HTMLElement ? element : null;
14
+ this.changeDetectorRef.detectChanges();
15
+ }
16
+ }
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgDocTooltipWrapperComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
18
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: NgDocTooltipWrapperComponent, isStandalone: true, selector: "ng-doc-tooltip-wrapper", inputs: { content: "content" }, viewQueries: [{ propertyName: "contentProjection", first: true, predicate: ["contentProjection"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: `
19
+ <div
20
+ class="content-projection"
21
+ [ngDocTooltip]="content ?? ''"
22
+ [displayOrigin]="tooltipElement ?? contentProjection"
23
+ [pointerOrigin]="tooltipElement ?? contentProjection"
24
+ #contentProjection>
25
+ <ng-content></ng-content>
26
+ </div>
27
+ `, isInline: true, styles: [".content-projection{display:unset}\n"], dependencies: [{ 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
28
+ }
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgDocTooltipWrapperComponent, decorators: [{
30
+ type: Component,
31
+ args: [{ selector: 'ng-doc-tooltip-wrapper', template: `
32
+ <div
33
+ class="content-projection"
34
+ [ngDocTooltip]="content ?? ''"
35
+ [displayOrigin]="tooltipElement ?? contentProjection"
36
+ [pointerOrigin]="tooltipElement ?? contentProjection"
37
+ #contentProjection>
38
+ <ng-content></ng-content>
39
+ </div>
40
+ `, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgDocTooltipDirective], styles: [".content-projection{display:unset}\n"] }]
41
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { content: [{
42
+ type: Input
43
+ }], contentProjection: [{
44
+ type: ViewChild,
45
+ args: ['contentProjection', { read: ElementRef, static: true }]
46
+ }] } });
47
+ const tooltipProcessor = {
48
+ component: NgDocTooltipWrapperComponent,
49
+ selector: '[ngDocTooltip]',
50
+ extractOptions: (element) => ({
51
+ inputs: {
52
+ content: element.getAttribute('ngDocTooltip') ?? '',
53
+ },
54
+ content: [[element.cloneNode(true)]],
55
+ }),
56
+ };
57
+
58
+ /**
59
+ * Generated bundle index. Do not edit.
60
+ */
61
+
62
+ export { tooltipProcessor };
63
+ //# sourceMappingURL=ng-doc-app-processors-processors-tooltip.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ng-doc-app-processors-processors-tooltip.mjs","sources":["../../../../libs/app/processors/processors/tooltip/tooltip.processor.ts","../../../../libs/app/processors/processors/tooltip/ng-doc-app-processors-processors-tooltip.ts"],"sourcesContent":["import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n ViewChild,\n} from '@angular/core';\nimport { NgDocPageProcessor } from '@ng-doc/app/interfaces';\nimport { NgDocTooltipDirective } from '@ng-doc/ui-kit';\n\n@Component({\n selector: 'ng-doc-tooltip-wrapper',\n template: `\n <div\n class=\"content-projection\"\n [ngDocTooltip]=\"content ?? ''\"\n [displayOrigin]=\"tooltipElement ?? contentProjection\"\n [pointerOrigin]=\"tooltipElement ?? contentProjection\"\n #contentProjection>\n <ng-content></ng-content>\n </div>\n `,\n styles: [\n `\n .content-projection {\n display: unset;\n }\n `,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [NgDocTooltipDirective],\n})\nclass NgDocTooltipWrapperComponent implements AfterViewInit {\n @Input()\n content?: string;\n\n protected tooltipElement: HTMLElement | null = null;\n\n @ViewChild('contentProjection', { read: ElementRef, static: true })\n private contentProjection?: ElementRef<HTMLElement>;\n\n constructor(private readonly changeDetectorRef: ChangeDetectorRef) {}\n\n ngAfterViewInit(): void {\n if (this.contentProjection) {\n const element: Element | null =\n this.contentProjection.nativeElement.querySelector('[ngDocTooltip]');\n\n this.tooltipElement = element instanceof HTMLElement ? element : null;\n\n this.changeDetectorRef.detectChanges();\n }\n }\n}\n\nexport const tooltipProcessor: NgDocPageProcessor<NgDocTooltipWrapperComponent> = {\n component: NgDocTooltipWrapperComponent,\n selector: '[ngDocTooltip]',\n extractOptions: (element: Element) => ({\n inputs: {\n content: element.getAttribute('ngDocTooltip') ?? '',\n },\n content: [[element.cloneNode(true)]],\n }),\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}