@foblex/m-render 2.5.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 (299) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +33 -0
  3. package/assets/fonts/inter-italic-latin-ext.woff2 +0 -0
  4. package/assets/fonts/inter-italic-latin.woff2 +0 -0
  5. package/assets/fonts/inter-roman-latin-ext.woff2 +0 -0
  6. package/assets/fonts/inter-roman-latin.woff2 +0 -0
  7. package/assets/styles/_alert.scss +50 -0
  8. package/assets/styles/_badge.scss +63 -0
  9. package/assets/styles/_button.scss +42 -0
  10. package/assets/styles/_code-group.scss +45 -0
  11. package/assets/styles/_code-highlight.scss +96 -0
  12. package/assets/styles/_code-view.scss +91 -0
  13. package/assets/styles/_doc-text.scss +124 -0
  14. package/assets/styles/_fonts.scss +41 -0
  15. package/assets/styles/_icons.scss +158 -0
  16. package/assets/styles/_preview-group.scss +11 -0
  17. package/assets/styles/_variables.scss +287 -0
  18. package/assets/styles/styles.scss +75 -0
  19. package/esm2022/foblex-m-render.mjs +5 -0
  20. package/esm2022/lib/common-services/analytics/f-accept-cookies-key.mjs +2 -0
  21. package/esm2022/lib/common-services/analytics/f-analytics.service.mjs +52 -0
  22. package/esm2022/lib/common-services/analytics/i-window-with-analytics.mjs +2 -0
  23. package/esm2022/lib/common-services/analytics/index.mjs +5 -0
  24. package/esm2022/lib/common-services/analytics/set-cookie-consent.mjs +32 -0
  25. package/esm2022/lib/common-services/f-head-tag.service.mjs +52 -0
  26. package/esm2022/lib/common-services/index.mjs +4 -0
  27. package/esm2022/lib/common-services/json-ld/f-json-ld.service.mjs +51 -0
  28. package/esm2022/lib/common-services/json-ld/i-json-ld-creator.mjs +2 -0
  29. package/esm2022/lib/common-services/json-ld/i-json-ld-entity-of-page.mjs +2 -0
  30. package/esm2022/lib/common-services/json-ld/i-json-ld.mjs +2 -0
  31. package/esm2022/lib/common-services/json-ld/index.mjs +5 -0
  32. package/esm2022/lib/domain/f-environment.service.mjs +66 -0
  33. package/esm2022/lib/domain/f-meta.service.mjs +77 -0
  34. package/esm2022/lib/domain/f-popover.service.mjs +25 -0
  35. package/esm2022/lib/domain/f-state.service.mjs +27 -0
  36. package/esm2022/lib/domain/features/get-version-handler/get-version.handler.mjs +27 -0
  37. package/esm2022/lib/domain/features/get-version-handler/get-version.request.mjs +6 -0
  38. package/esm2022/lib/domain/features/get-version-handler/index.mjs +3 -0
  39. package/esm2022/lib/domain/features/handle-navigation-links/handle-navigation-links.handler.mjs +51 -0
  40. package/esm2022/lib/domain/features/handle-navigation-links/handle-navigation-links.request.mjs +6 -0
  41. package/esm2022/lib/domain/features/handle-navigation-links/index.mjs +3 -0
  42. package/esm2022/lib/domain/features/index.mjs +3 -0
  43. package/esm2022/lib/domain/i-docs-component.mjs +2 -0
  44. package/esm2022/lib/domain/i-docs-environment.mjs +2 -0
  45. package/esm2022/lib/domain/i-docs-footer-navigation.mjs +2 -0
  46. package/esm2022/lib/domain/i-docs-header-navigation-item.mjs +2 -0
  47. package/esm2022/lib/domain/i-docs-social-link.mjs +2 -0
  48. package/esm2022/lib/domain/i-docs-table-of-content.mjs +2 -0
  49. package/esm2022/lib/domain/i-docs-version.mjs +2 -0
  50. package/esm2022/lib/domain/i-meta-data.mjs +2 -0
  51. package/esm2022/lib/domain/index.mjs +15 -0
  52. package/esm2022/lib/domain/providers.mjs +3 -0
  53. package/esm2022/lib/domain/router.mjs +13 -0
  54. package/esm2022/lib/f-documentation/f-badge/f-badge.component.mjs +22 -0
  55. package/esm2022/lib/f-documentation/f-badge/index.mjs +2 -0
  56. package/esm2022/lib/f-documentation/f-checkbox/f-checkbox.component.mjs +70 -0
  57. package/esm2022/lib/f-documentation/f-cookie-popup/f-cookie-popup.component.mjs +33 -0
  58. package/esm2022/lib/f-documentation/f-documentation.component.mjs +56 -0
  59. package/esm2022/lib/f-documentation/f-hamburger-button/f-hamburger-button.component.mjs +24 -0
  60. package/esm2022/lib/f-documentation/f-header/f-header.component.mjs +30 -0
  61. package/esm2022/lib/f-documentation/f-header-menu/f-header-menu.component.mjs +29 -0
  62. package/esm2022/lib/f-documentation/f-preview/f-preview.component.mjs +58 -0
  63. package/esm2022/lib/f-documentation/f-social-links/f-social-links.component.mjs +18 -0
  64. package/esm2022/lib/f-documentation/f-theme-button/f-theme-button.component.mjs +41 -0
  65. package/esm2022/lib/f-documentation/f-version/f-version.component.mjs +19 -0
  66. package/esm2022/lib/f-documentation/i-documentation-component.mjs +3 -0
  67. package/esm2022/lib/f-documentation/index.mjs +13 -0
  68. package/esm2022/lib/f-navigation-panel/domain/i-navigation-group.mjs +2 -0
  69. package/esm2022/lib/f-navigation-panel/domain/i-navigation-item-badge.mjs +2 -0
  70. package/esm2022/lib/f-navigation-panel/domain/i-navigation-item.mjs +2 -0
  71. package/esm2022/lib/f-navigation-panel/domain/index.mjs +4 -0
  72. package/esm2022/lib/f-navigation-panel/f-navigation-group/f-navigation-group.component.mjs +22 -0
  73. package/esm2022/lib/f-navigation-panel/f-navigation-header/f-navigation-header.component.mjs +24 -0
  74. package/esm2022/lib/f-navigation-panel/f-navigation-item/f-navigation-item.component.mjs +11 -0
  75. package/esm2022/lib/f-navigation-panel/f-navigation-panel.component.mjs +94 -0
  76. package/esm2022/lib/f-navigation-panel/index.mjs +6 -0
  77. package/esm2022/lib/f-page/f-markdown/domain/handle-dynamic-components/handle-dynamic-components.handler.mjs +102 -0
  78. package/esm2022/lib/f-page/f-markdown/domain/handle-dynamic-components/handle-dynamic-components.request.mjs +6 -0
  79. package/esm2022/lib/f-page/f-markdown/domain/handle-dynamic-components/index.mjs +3 -0
  80. package/esm2022/lib/f-page/f-markdown/domain/handle-parsed-containers/handle-parsed-containers.handler.mjs +34 -0
  81. package/esm2022/lib/f-page/f-markdown/domain/handle-parsed-containers/handle-parsed-containers.request.mjs +6 -0
  82. package/esm2022/lib/f-page/f-markdown/domain/handle-parsed-containers/i-parsed-container.mjs +2 -0
  83. package/esm2022/lib/f-page/f-markdown/domain/handle-parsed-containers/index.mjs +5 -0
  84. package/esm2022/lib/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/clipboard/copy-to-clipboard.mjs +15 -0
  85. package/esm2022/lib/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/clipboard/index.mjs +2 -0
  86. package/esm2022/lib/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-async-code-view-handler.mjs +46 -0
  87. package/esm2022/lib/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-code-group/f-code-group.handler.mjs +51 -0
  88. package/esm2022/lib/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-code-group/i-code-group-view.mjs +2 -0
  89. package/esm2022/lib/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-code-group/index.mjs +3 -0
  90. package/esm2022/lib/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-code-group-body.handler.mjs +45 -0
  91. package/esm2022/lib/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-code-view-handler.mjs +60 -0
  92. package/esm2022/lib/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-example-view-handler.mjs +9 -0
  93. package/esm2022/lib/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/index.mjs +7 -0
  94. package/esm2022/lib/f-page/f-markdown/domain/highlight/change-code-focused-syntax.pre-processor.mjs +23 -0
  95. package/esm2022/lib/f-page/f-markdown/domain/highlight/highlight.service.mjs +54 -0
  96. package/esm2022/lib/f-page/f-markdown/domain/highlight/index.mjs +6 -0
  97. package/esm2022/lib/f-page/f-markdown/domain/highlight/mark-code-focused-blocks.post-processor.mjs +52 -0
  98. package/esm2022/lib/f-page/f-markdown/domain/highlight/modify-punctuation-highlight.post-processor.mjs +22 -0
  99. package/esm2022/lib/f-page/f-markdown/domain/highlight/separate-code-by-lines.post-processor.mjs +28 -0
  100. package/esm2022/lib/f-page/f-markdown/domain/index.mjs +5 -0
  101. package/esm2022/lib/f-page/f-markdown/domain/markdown/index.mjs +4 -0
  102. package/esm2022/lib/f-page/f-markdown/domain/markdown/markdown.service.mjs +65 -0
  103. package/esm2022/lib/f-page/f-markdown/domain/markdown/parse-markdown/e-markdown-container-type.mjs +13 -0
  104. package/esm2022/lib/f-page/f-markdown/domain/markdown/parse-markdown/i-markdown-it-token.mjs +2 -0
  105. package/esm2022/lib/f-page/f-markdown/domain/markdown/parse-markdown/index.mjs +8 -0
  106. package/esm2022/lib/f-page/f-markdown/domain/markdown/parse-markdown/parse-alerts.mjs +19 -0
  107. package/esm2022/lib/f-page/f-markdown/domain/markdown/parse-markdown/parse-code-group.mjs +54 -0
  108. package/esm2022/lib/f-page/f-markdown/domain/markdown/parse-markdown/parse-code-view.mjs +15 -0
  109. package/esm2022/lib/f-page/f-markdown/domain/markdown/parse-markdown/parse-example-group.mjs +92 -0
  110. package/esm2022/lib/f-page/f-markdown/domain/markdown/parse-markdown/parse-preview-group.mjs +49 -0
  111. package/esm2022/lib/f-page/f-markdown/domain/markdown/utils/get-content.mjs +17 -0
  112. package/esm2022/lib/f-page/f-markdown/domain/markdown/utils/index.mjs +2 -0
  113. package/esm2022/lib/f-page/f-markdown/f-markdown-renderer.component.mjs +80 -0
  114. package/esm2022/lib/f-page/f-markdown/index.mjs +3 -0
  115. package/esm2022/lib/f-page/f-markdown-footer/domain/features/get-previous-next-page-navigation/get-previous-next-page-navigation.handler.mjs +36 -0
  116. package/esm2022/lib/f-page/f-markdown-footer/domain/features/get-previous-next-page-navigation/get-previous-next-page-navigation.request.mjs +6 -0
  117. package/esm2022/lib/f-page/f-markdown-footer/domain/features/get-previous-next-page-navigation/get-previous-next-page-navigation.response.mjs +7 -0
  118. package/esm2022/lib/f-page/f-markdown-footer/domain/features/get-previous-next-page-navigation/index.mjs +4 -0
  119. package/esm2022/lib/f-page/f-markdown-footer/domain/features/index.mjs +2 -0
  120. package/esm2022/lib/f-page/f-markdown-footer/domain/i-page-link.mjs +2 -0
  121. package/esm2022/lib/f-page/f-markdown-footer/domain/index.mjs +3 -0
  122. package/esm2022/lib/f-page/f-markdown-footer/f-footer-edit-information/f-footer-edit-information.component.mjs +11 -0
  123. package/esm2022/lib/f-page/f-markdown-footer/f-footer-edit-information/f-footer-edit-link/f-footer-edit-link.component.mjs +11 -0
  124. package/esm2022/lib/f-page/f-markdown-footer/f-footer-edit-information/f-footer-edit-link/index.mjs +2 -0
  125. package/esm2022/lib/f-page/f-markdown-footer/f-footer-edit-information/f-footer-last-updated/f-footer-last-updated.component.mjs +11 -0
  126. package/esm2022/lib/f-page/f-markdown-footer/f-footer-edit-information/f-footer-last-updated/index.mjs +2 -0
  127. package/esm2022/lib/f-page/f-markdown-footer/f-footer-edit-information/index.mjs +2 -0
  128. package/esm2022/lib/f-page/f-markdown-footer/f-footer-navigation/f-footer-navigation-button/f-footer-navigation-button.component.mjs +17 -0
  129. package/esm2022/lib/f-page/f-markdown-footer/f-footer-navigation/f-footer-navigation-button/index.mjs +2 -0
  130. package/esm2022/lib/f-page/f-markdown-footer/f-footer-navigation/f-footer-navigation.component.mjs +11 -0
  131. package/esm2022/lib/f-page/f-markdown-footer/f-footer-navigation/index.mjs +3 -0
  132. package/esm2022/lib/f-page/f-markdown-footer/f-markdown-footer.component.mjs +82 -0
  133. package/esm2022/lib/f-page/f-markdown-footer/index.mjs +5 -0
  134. package/esm2022/lib/f-page/f-page.component.mjs +18 -0
  135. package/esm2022/lib/f-page/f-table-of-content/f-table-of-content-items/f-table-of-content-items.component.mjs +16 -0
  136. package/esm2022/lib/f-page/f-table-of-content/f-table-of-content-items/index.mjs +2 -0
  137. package/esm2022/lib/f-page/f-table-of-content/f-table-of-content.component.mjs +63 -0
  138. package/esm2022/lib/f-page/f-table-of-content/index.mjs +3 -0
  139. package/esm2022/lib/f-page/index.mjs +5 -0
  140. package/esm2022/lib/f-scrollable-container/domain/calculate-hash-from-scroll-position/calculate-hash-from-scroll-position.handler.mjs +51 -0
  141. package/esm2022/lib/f-scrollable-container/domain/calculate-hash-from-scroll-position/calculate-hash-from-scroll-position.request.mjs +6 -0
  142. package/esm2022/lib/f-scrollable-container/domain/calculate-hash-from-scroll-position/index.mjs +3 -0
  143. package/esm2022/lib/f-scrollable-container/domain/get-absolute-top-to-container/get-absolute-top-to-container.handler.mjs +14 -0
  144. package/esm2022/lib/f-scrollable-container/domain/get-absolute-top-to-container/get-absolute-top-to-container.request.mjs +7 -0
  145. package/esm2022/lib/f-scrollable-container/domain/get-absolute-top-to-container/index.mjs +3 -0
  146. package/esm2022/lib/f-scrollable-container/domain/get-table-of-content-data/get-table-of-content-data.handler.mjs +52 -0
  147. package/esm2022/lib/f-scrollable-container/domain/get-table-of-content-data/get-table-of-content-data.request.mjs +7 -0
  148. package/esm2022/lib/f-scrollable-container/domain/get-table-of-content-data/index.mjs +3 -0
  149. package/esm2022/lib/f-scrollable-container/domain/i-table-of-content-item.mjs +2 -0
  150. package/esm2022/lib/f-scrollable-container/domain/index.mjs +7 -0
  151. package/esm2022/lib/f-scrollable-container/domain/scroll-to-element-in-container.mjs +34 -0
  152. package/esm2022/lib/f-scrollable-container/domain/table-of-content-data.mjs +7 -0
  153. package/esm2022/lib/f-scrollable-container/f-scrollable-container.component.mjs +30 -0
  154. package/esm2022/lib/f-scrollable-container/f-scrollable.service.mjs +57 -0
  155. package/esm2022/lib/f-scrollable-container/index.mjs +3 -0
  156. package/esm2022/lib/index.mjs +7 -0
  157. package/esm2022/public-api.mjs +2 -0
  158. package/fesm2022/foblex-m-render.mjs +2405 -0
  159. package/fesm2022/foblex-m-render.mjs.map +1 -0
  160. package/index.d.ts +5 -0
  161. package/lib/common-services/analytics/f-accept-cookies-key.d.ts +1 -0
  162. package/lib/common-services/analytics/f-analytics.service.d.ts +10 -0
  163. package/lib/common-services/analytics/i-window-with-analytics.d.ts +5 -0
  164. package/lib/common-services/analytics/index.d.ts +4 -0
  165. package/lib/common-services/analytics/set-cookie-consent.d.ts +6 -0
  166. package/lib/common-services/f-head-tag.service.d.ts +20 -0
  167. package/lib/common-services/index.d.ts +3 -0
  168. package/lib/common-services/json-ld/f-json-ld.service.d.ts +12 -0
  169. package/lib/common-services/json-ld/i-json-ld-creator.d.ts +7 -0
  170. package/lib/common-services/json-ld/i-json-ld-entity-of-page.d.ts +3 -0
  171. package/lib/common-services/json-ld/i-json-ld.d.ts +9 -0
  172. package/lib/common-services/json-ld/index.d.ts +4 -0
  173. package/lib/domain/f-environment.service.d.ts +23 -0
  174. package/lib/domain/f-meta.service.d.ts +20 -0
  175. package/lib/domain/f-popover.service.d.ts +10 -0
  176. package/lib/domain/f-state.service.d.ts +13 -0
  177. package/lib/domain/features/get-version-handler/get-version.handler.d.ts +13 -0
  178. package/lib/domain/features/get-version-handler/get-version.request.d.ts +5 -0
  179. package/lib/domain/features/get-version-handler/index.d.ts +2 -0
  180. package/lib/domain/features/handle-navigation-links/handle-navigation-links.handler.d.ts +19 -0
  181. package/lib/domain/features/handle-navigation-links/handle-navigation-links.request.d.ts +4 -0
  182. package/lib/domain/features/handle-navigation-links/index.d.ts +2 -0
  183. package/lib/domain/features/index.d.ts +2 -0
  184. package/lib/domain/i-docs-component.d.ts +5 -0
  185. package/lib/domain/i-docs-environment.d.ts +21 -0
  186. package/lib/domain/i-docs-footer-navigation.d.ts +8 -0
  187. package/lib/domain/i-docs-header-navigation-item.d.ts +5 -0
  188. package/lib/domain/i-docs-social-link.d.ts +4 -0
  189. package/lib/domain/i-docs-table-of-content.d.ts +7 -0
  190. package/lib/domain/i-docs-version.d.ts +4 -0
  191. package/lib/domain/i-meta-data.d.ts +12 -0
  192. package/lib/domain/index.d.ts +14 -0
  193. package/lib/domain/providers.d.ts +3 -0
  194. package/lib/domain/router.d.ts +2 -0
  195. package/lib/f-documentation/f-badge/f-badge.component.d.ts +7 -0
  196. package/lib/f-documentation/f-badge/index.d.ts +1 -0
  197. package/lib/f-documentation/f-checkbox/f-checkbox.component.d.ts +22 -0
  198. package/lib/f-documentation/f-cookie-popup/f-cookie-popup.component.d.ts +9 -0
  199. package/lib/f-documentation/f-documentation.component.d.ts +18 -0
  200. package/lib/f-documentation/f-hamburger-button/f-hamburger-button.component.d.ts +9 -0
  201. package/lib/f-documentation/f-header/f-header.component.d.ts +9 -0
  202. package/lib/f-documentation/f-header-menu/f-header-menu.component.d.ts +17 -0
  203. package/lib/f-documentation/f-preview/f-preview.component.d.ts +29 -0
  204. package/lib/f-documentation/f-social-links/f-social-links.component.d.ts +9 -0
  205. package/lib/f-documentation/f-theme-button/f-theme-button.component.d.ts +15 -0
  206. package/lib/f-documentation/f-version/f-version.component.d.ts +10 -0
  207. package/lib/f-documentation/i-documentation-component.d.ts +5 -0
  208. package/lib/f-documentation/index.d.ts +12 -0
  209. package/lib/f-navigation-panel/domain/i-navigation-group.d.ts +5 -0
  210. package/lib/f-navigation-panel/domain/i-navigation-item-badge.d.ts +4 -0
  211. package/lib/f-navigation-panel/domain/i-navigation-item.d.ts +13 -0
  212. package/lib/f-navigation-panel/domain/index.d.ts +3 -0
  213. package/lib/f-navigation-panel/f-navigation-group/f-navigation-group.component.d.ts +8 -0
  214. package/lib/f-navigation-panel/f-navigation-header/f-navigation-header.component.d.ts +12 -0
  215. package/lib/f-navigation-panel/f-navigation-item/f-navigation-item.component.d.ts +5 -0
  216. package/lib/f-navigation-panel/f-navigation-panel.component.d.ts +29 -0
  217. package/lib/f-navigation-panel/index.d.ts +5 -0
  218. package/lib/f-page/f-markdown/domain/handle-dynamic-components/handle-dynamic-components.handler.d.ts +26 -0
  219. package/lib/f-page/f-markdown/domain/handle-dynamic-components/handle-dynamic-components.request.d.ts +4 -0
  220. package/lib/f-page/f-markdown/domain/handle-dynamic-components/index.d.ts +2 -0
  221. package/lib/f-page/f-markdown/domain/handle-parsed-containers/handle-parsed-containers.handler.d.ts +16 -0
  222. package/lib/f-page/f-markdown/domain/handle-parsed-containers/handle-parsed-containers.request.d.ts +4 -0
  223. package/lib/f-page/f-markdown/domain/handle-parsed-containers/i-parsed-container.d.ts +3 -0
  224. package/lib/f-page/f-markdown/domain/handle-parsed-containers/index.d.ts +4 -0
  225. package/lib/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/clipboard/copy-to-clipboard.d.ts +2 -0
  226. package/lib/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/clipboard/index.d.ts +1 -0
  227. package/lib/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-async-code-view-handler.d.ts +10 -0
  228. package/lib/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-code-group/f-code-group.handler.d.ts +18 -0
  229. package/lib/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-code-group/i-code-group-view.d.ts +3 -0
  230. package/lib/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-code-group/index.d.ts +2 -0
  231. package/lib/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-code-group-body.handler.d.ts +15 -0
  232. package/lib/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-code-view-handler.d.ts +21 -0
  233. package/lib/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-example-view-handler.d.ts +6 -0
  234. package/lib/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/index.d.ts +6 -0
  235. package/lib/f-page/f-markdown/domain/highlight/change-code-focused-syntax.pre-processor.d.ts +7 -0
  236. package/lib/f-page/f-markdown/domain/highlight/highlight.service.d.ts +15 -0
  237. package/lib/f-page/f-markdown/domain/highlight/index.d.ts +5 -0
  238. package/lib/f-page/f-markdown/domain/highlight/mark-code-focused-blocks.post-processor.d.ts +14 -0
  239. package/lib/f-page/f-markdown/domain/highlight/modify-punctuation-highlight.post-processor.d.ts +6 -0
  240. package/lib/f-page/f-markdown/domain/highlight/separate-code-by-lines.post-processor.d.ts +9 -0
  241. package/lib/f-page/f-markdown/domain/index.d.ts +4 -0
  242. package/lib/f-page/f-markdown/domain/markdown/index.d.ts +3 -0
  243. package/lib/f-page/f-markdown/domain/markdown/markdown.service.d.ts +22 -0
  244. package/lib/f-page/f-markdown/domain/markdown/parse-markdown/e-markdown-container-type.d.ts +11 -0
  245. package/lib/f-page/f-markdown/domain/markdown/parse-markdown/i-markdown-it-token.d.ts +15 -0
  246. package/lib/f-page/f-markdown/domain/markdown/parse-markdown/index.d.ts +7 -0
  247. package/lib/f-page/f-markdown/domain/markdown/parse-markdown/parse-alerts.d.ts +9 -0
  248. package/lib/f-page/f-markdown/domain/markdown/parse-markdown/parse-code-group.d.ts +17 -0
  249. package/lib/f-page/f-markdown/domain/markdown/parse-markdown/parse-code-view.d.ts +5 -0
  250. package/lib/f-page/f-markdown/domain/markdown/parse-markdown/parse-example-group.d.ts +21 -0
  251. package/lib/f-page/f-markdown/domain/markdown/parse-markdown/parse-preview-group.d.ts +17 -0
  252. package/lib/f-page/f-markdown/domain/markdown/utils/get-content.d.ts +2 -0
  253. package/lib/f-page/f-markdown/domain/markdown/utils/index.d.ts +1 -0
  254. package/lib/f-page/f-markdown/f-markdown-renderer.component.d.ts +25 -0
  255. package/lib/f-page/f-markdown/index.d.ts +2 -0
  256. package/lib/f-page/f-markdown-footer/domain/features/get-previous-next-page-navigation/get-previous-next-page-navigation.handler.d.ts +9 -0
  257. package/lib/f-page/f-markdown-footer/domain/features/get-previous-next-page-navigation/get-previous-next-page-navigation.request.d.ts +4 -0
  258. package/lib/f-page/f-markdown-footer/domain/features/get-previous-next-page-navigation/get-previous-next-page-navigation.response.d.ts +6 -0
  259. package/lib/f-page/f-markdown-footer/domain/features/get-previous-next-page-navigation/index.d.ts +3 -0
  260. package/lib/f-page/f-markdown-footer/domain/features/index.d.ts +1 -0
  261. package/lib/f-page/f-markdown-footer/domain/i-page-link.d.ts +4 -0
  262. package/lib/f-page/f-markdown-footer/domain/index.d.ts +2 -0
  263. package/lib/f-page/f-markdown-footer/f-footer-edit-information/f-footer-edit-information.component.d.ts +5 -0
  264. package/lib/f-page/f-markdown-footer/f-footer-edit-information/f-footer-edit-link/f-footer-edit-link.component.d.ts +5 -0
  265. package/lib/f-page/f-markdown-footer/f-footer-edit-information/f-footer-edit-link/index.d.ts +1 -0
  266. package/lib/f-page/f-markdown-footer/f-footer-edit-information/f-footer-last-updated/f-footer-last-updated.component.d.ts +5 -0
  267. package/lib/f-page/f-markdown-footer/f-footer-edit-information/f-footer-last-updated/index.d.ts +1 -0
  268. package/lib/f-page/f-markdown-footer/f-footer-edit-information/index.d.ts +1 -0
  269. package/lib/f-page/f-markdown-footer/f-footer-navigation/f-footer-navigation-button/f-footer-navigation-button.component.d.ts +8 -0
  270. package/lib/f-page/f-markdown-footer/f-footer-navigation/f-footer-navigation-button/index.d.ts +1 -0
  271. package/lib/f-page/f-markdown-footer/f-footer-navigation/f-footer-navigation.component.d.ts +5 -0
  272. package/lib/f-page/f-markdown-footer/f-footer-navigation/index.d.ts +2 -0
  273. package/lib/f-page/f-markdown-footer/f-markdown-footer.component.d.ts +29 -0
  274. package/lib/f-page/f-markdown-footer/index.d.ts +4 -0
  275. package/lib/f-page/f-page.component.d.ts +5 -0
  276. package/lib/f-page/f-table-of-content/f-table-of-content-items/f-table-of-content-items.component.d.ts +7 -0
  277. package/lib/f-page/f-table-of-content/f-table-of-content-items/index.d.ts +1 -0
  278. package/lib/f-page/f-table-of-content/f-table-of-content.component.d.ts +28 -0
  279. package/lib/f-page/f-table-of-content/index.d.ts +2 -0
  280. package/lib/f-page/index.d.ts +4 -0
  281. package/lib/f-scrollable-container/domain/calculate-hash-from-scroll-position/calculate-hash-from-scroll-position.handler.d.ts +15 -0
  282. package/lib/f-scrollable-container/domain/calculate-hash-from-scroll-position/calculate-hash-from-scroll-position.request.d.ts +5 -0
  283. package/lib/f-scrollable-container/domain/calculate-hash-from-scroll-position/index.d.ts +2 -0
  284. package/lib/f-scrollable-container/domain/get-absolute-top-to-container/get-absolute-top-to-container.handler.d.ts +5 -0
  285. package/lib/f-scrollable-container/domain/get-absolute-top-to-container/get-absolute-top-to-container.request.d.ts +5 -0
  286. package/lib/f-scrollable-container/domain/get-absolute-top-to-container/index.d.ts +2 -0
  287. package/lib/f-scrollable-container/domain/get-table-of-content-data/get-table-of-content-data.handler.d.ts +11 -0
  288. package/lib/f-scrollable-container/domain/get-table-of-content-data/get-table-of-content-data.request.d.ts +11 -0
  289. package/lib/f-scrollable-container/domain/get-table-of-content-data/index.d.ts +2 -0
  290. package/lib/f-scrollable-container/domain/i-table-of-content-item.d.ts +7 -0
  291. package/lib/f-scrollable-container/domain/index.d.ts +6 -0
  292. package/lib/f-scrollable-container/domain/scroll-to-element-in-container.d.ts +12 -0
  293. package/lib/f-scrollable-container/domain/table-of-content-data.d.ts +6 -0
  294. package/lib/f-scrollable-container/f-scrollable-container.component.d.ts +13 -0
  295. package/lib/f-scrollable-container/f-scrollable.service.d.ts +25 -0
  296. package/lib/f-scrollable-container/index.d.ts +2 -0
  297. package/lib/index.d.ts +6 -0
  298. package/package.json +49 -0
  299. package/public-api.d.ts +1 -0
@@ -0,0 +1,45 @@
1
+ import { FCodeViewHandler } from './f-code-view-handler';
2
+ import { FExampleViewHandler } from './f-example-view-handler';
3
+ import { FAsyncCodeViewHandler } from './f-async-code-view-handler';
4
+ export class FCodeGroupBodyHandler {
5
+ constructor(element, injector) {
6
+ this.element = element;
7
+ this.injector = injector;
8
+ this.fContainerHandlers = this.getCodeViews();
9
+ this.initialize();
10
+ }
11
+ initialize() {
12
+ this.toggle(0);
13
+ }
14
+ getCodeViews() {
15
+ return this.getGroupBodyChildren().map((x) => {
16
+ if (this.isCodeView(x)) {
17
+ return new FCodeViewHandler(x, this.injector);
18
+ }
19
+ else if (this.isAsyncCodeView(x)) {
20
+ return new FAsyncCodeViewHandler(x, this.injector);
21
+ }
22
+ else {
23
+ return new FExampleViewHandler(x);
24
+ }
25
+ });
26
+ }
27
+ getGroupBodyChildren() {
28
+ return Array.from(this.element.querySelector('.f-code-group-body').children);
29
+ }
30
+ isCodeView(element) {
31
+ return element.classList.contains('f-code-view');
32
+ }
33
+ isAsyncCodeView(element) {
34
+ return element.classList.contains('f-async-code-view');
35
+ }
36
+ toggle(index) {
37
+ this.fContainerHandlers.forEach((fContainer, tabIndex) => {
38
+ fContainer.setDisplay(tabIndex === index ? 'block' : 'none');
39
+ });
40
+ }
41
+ dispose() {
42
+ this.fContainerHandlers.forEach((x) => x.dispose?.());
43
+ }
44
+ }
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb2RlLWdyb3VwLWJvZHkuaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL20tcmVuZGVyL3NyYy9saWIvZi1wYWdlL2YtbWFya2Rvd24vZG9tYWluL2hhbmRsZS1wYXJzZWQtY29udGFpbmVycy9wc2V1ZG8tY29tcG9uZW50cy9mLWNvZGUtZ3JvdXAtYm9keS5oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBSS9ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBSXBFLE1BQU0sT0FBTyxxQkFBcUI7SUFJaEMsWUFDUyxPQUFvQixFQUNuQixRQUFrQjtRQURuQixZQUFPLEdBQVAsT0FBTyxDQUFhO1FBQ25CLGFBQVEsR0FBUixRQUFRLENBQVU7UUFFMUIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM5QyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVPLFVBQVU7UUFDaEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBRU8sWUFBWTtRQUNsQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQzNDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUN2QixPQUFPLElBQUksZ0JBQWdCLENBQUMsQ0FBZ0IsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDL0QsQ0FBQztpQkFBTSxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDbkMsT0FBTyxJQUFJLHFCQUFxQixDQUFDLENBQWdCLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3BFLENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLElBQUksbUJBQW1CLENBQUMsQ0FBZ0IsQ0FBQyxDQUFDO1lBQ25ELENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxvQkFBb0I7UUFDMUIsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLG9CQUFvQixDQUFFLENBQUMsUUFBUSxDQUFrQixDQUFDO0lBQ2pHLENBQUM7SUFFTyxVQUFVLENBQUMsT0FBZ0I7UUFDakMsT0FBTyxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRU8sZUFBZSxDQUFDLE9BQWdCO1FBQ3RDLE9BQU8sT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQWE7UUFDekIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsRUFBRTtZQUN2RCxVQUFVLENBQUMsVUFBVSxDQUFDLFFBQVEsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sT0FBTztRQUNaLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDeEQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRkNvZGVWaWV3SGFuZGxlciB9IGZyb20gJy4vZi1jb2RlLXZpZXctaGFuZGxlcic7XG5pbXBvcnQgeyBGRXhhbXBsZVZpZXdIYW5kbGVyIH0gZnJvbSAnLi9mLWV4YW1wbGUtdmlldy1oYW5kbGVyJztcbmltcG9ydCB7IElQYXJzZWRDb250YWluZXIgfSBmcm9tICcuLi9pLXBhcnNlZC1jb250YWluZXInO1xuaW1wb3J0IHsgSUNvZGVHcm91cFZpZXcgfSBmcm9tICcuL2YtY29kZS1ncm91cCc7XG5pbXBvcnQgeyBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRkFzeW5jQ29kZVZpZXdIYW5kbGVyIH0gZnJvbSAnLi9mLWFzeW5jLWNvZGUtdmlldy1oYW5kbGVyJztcblxudHlwZSBEaXNwb3NhYmxlQ29udGFpbmVyID0gSVBhcnNlZENvbnRhaW5lciAmIElDb2RlR3JvdXBWaWV3O1xuXG5leHBvcnQgY2xhc3MgRkNvZGVHcm91cEJvZHlIYW5kbGVyIGltcGxlbWVudHMgSVBhcnNlZENvbnRhaW5lciB7XG5cbiAgcHJpdmF0ZSBmQ29udGFpbmVySGFuZGxlcnM6IERpc3Bvc2FibGVDb250YWluZXJbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZWxlbWVudDogSFRNTEVsZW1lbnQsXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3JcbiAgKSB7XG4gICAgdGhpcy5mQ29udGFpbmVySGFuZGxlcnMgPSB0aGlzLmdldENvZGVWaWV3cygpO1xuICAgIHRoaXMuaW5pdGlhbGl6ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgIHRoaXMudG9nZ2xlKDApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb2RlVmlld3MoKTogRGlzcG9zYWJsZUNvbnRhaW5lcltdIHtcbiAgICByZXR1cm4gdGhpcy5nZXRHcm91cEJvZHlDaGlsZHJlbigpLm1hcCgoeCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaXNDb2RlVmlldyh4KSkge1xuICAgICAgICByZXR1cm4gbmV3IEZDb2RlVmlld0hhbmRsZXIoeCBhcyBIVE1MRWxlbWVudCwgdGhpcy5pbmplY3Rvcik7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuaXNBc3luY0NvZGVWaWV3KHgpKSB7XG4gICAgICAgIHJldHVybiBuZXcgRkFzeW5jQ29kZVZpZXdIYW5kbGVyKHggYXMgSFRNTEVsZW1lbnQsIHRoaXMuaW5qZWN0b3IpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBGRXhhbXBsZVZpZXdIYW5kbGVyKHggYXMgSFRNTEVsZW1lbnQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRHcm91cEJvZHlDaGlsZHJlbigpOiBIVE1MRWxlbWVudFtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmVsZW1lbnQucXVlcnlTZWxlY3RvcignLmYtY29kZS1ncm91cC1ib2R5JykhLmNoaWxkcmVuKSBhcyBIVE1MRWxlbWVudFtdO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0NvZGVWaWV3KGVsZW1lbnQ6IEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ2YtY29kZS12aWV3Jyk7XG4gIH1cblxuICBwcml2YXRlIGlzQXN5bmNDb2RlVmlldyhlbGVtZW50OiBFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdmLWFzeW5jLWNvZGUtdmlldycpO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZShpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5mQ29udGFpbmVySGFuZGxlcnMuZm9yRWFjaCgoZkNvbnRhaW5lciwgdGFiSW5kZXgpID0+IHtcbiAgICAgIGZDb250YWluZXIuc2V0RGlzcGxheSh0YWJJbmRleCA9PT0gaW5kZXggPyAnYmxvY2snIDogJ25vbmUnKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBkaXNwb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuZkNvbnRhaW5lckhhbmRsZXJzLmZvckVhY2goKHgpID0+IHguZGlzcG9zZT8uKCkpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,60 @@
1
+ import { fromEvent, Subscription, switchMap } from 'rxjs';
2
+ import { copyToClipboard } from './clipboard';
3
+ import { HighlightService } from '../../highlight';
4
+ import { take } from 'rxjs/operators';
5
+ import { FPopoverService } from '../../../../../domain';
6
+ import { DOCUMENT } from '@angular/common';
7
+ export class FCodeViewHandler {
8
+ constructor(element, injector) {
9
+ this.element = element;
10
+ this.injector = injector;
11
+ this.subscriptions$ = new Subscription();
12
+ this.fDocument = this.injector.get(DOCUMENT);
13
+ this.initialize();
14
+ }
15
+ initialize() {
16
+ if (this.isServer())
17
+ return;
18
+ this.createCopyButton();
19
+ this.createLanguageBadge();
20
+ this.injector.get(HighlightService).highlight(this.element).pipe(take(1)).subscribe(() => {
21
+ this.subscriptions$.add(this.subscribeOnCopyButtonClick());
22
+ });
23
+ }
24
+ isServer() {
25
+ return typeof window === 'undefined';
26
+ }
27
+ createCopyButton() {
28
+ const button = this.fDocument.createElement('button');
29
+ button.classList.add('f-copy-button');
30
+ this.element.appendChild(button);
31
+ return button;
32
+ }
33
+ createLanguageBadge() {
34
+ const badge = this.fDocument.createElement('span');
35
+ badge.classList.add('f-code-language');
36
+ badge.textContent = this.getLanguage();
37
+ this.element.appendChild(badge);
38
+ }
39
+ getLanguage() {
40
+ return this.getCodeBlock().classList[0].replace('language-', '');
41
+ }
42
+ getCopyButton() {
43
+ return this.element.querySelector('.f-copy-button');
44
+ }
45
+ getCodeBlock() {
46
+ return this.element.querySelector('code');
47
+ }
48
+ setDisplay(value) {
49
+ this.element.style.display = value;
50
+ }
51
+ subscribeOnCopyButtonClick() {
52
+ return fromEvent(this.getCopyButton(), 'click').pipe(switchMap(() => copyToClipboard(this.getCodeBlock().textContent))).subscribe(() => {
53
+ this.injector.get(FPopoverService).show('Copied!');
54
+ });
55
+ }
56
+ dispose() {
57
+ this.subscriptions$.unsubscribe();
58
+ }
59
+ }
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb2RlLXZpZXctaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL20tcmVuZGVyL3NyYy9saWIvZi1wYWdlL2YtbWFya2Rvd24vZG9tYWluL2hhbmRsZS1wYXJzZWQtY29udGFpbmVycy9wc2V1ZG8tY29tcG9uZW50cy9mLWNvZGUtdmlldy1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBSTlDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTNDLE1BQU0sT0FBTyxnQkFBZ0I7SUFNM0IsWUFDUyxPQUFvQixFQUNwQixRQUFrQjtRQURsQixZQUFPLEdBQVAsT0FBTyxDQUFhO1FBQ3BCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFOakIsbUJBQWMsR0FBaUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQVExRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRVMsVUFBVTtRQUNsQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFBRSxPQUFPO1FBQzVCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUN2RixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQyxDQUFDO1FBQzdELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVTLFFBQVE7UUFDaEIsT0FBTyxPQUFPLE1BQU0sS0FBSyxXQUFXLENBQUM7SUFDdkMsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0RCxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqQyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU8sbUJBQW1CO1FBQ3pCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25ELEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDdkMsS0FBSyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVPLFdBQVc7UUFDakIsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVPLGFBQWE7UUFDbkIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBc0IsQ0FBQztJQUMzRSxDQUFDO0lBRVMsWUFBWTtRQUNwQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBZ0IsQ0FBQztJQUMzRCxDQUFDO0lBRU0sVUFBVSxDQUFDLEtBQWE7UUFDN0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUNyQyxDQUFDO0lBRU8sMEJBQTBCO1FBQ2hDLE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ2xELFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLFdBQVksQ0FBQyxDQUFDLENBQ25FLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNmLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNyRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxPQUFPO1FBQ1osSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmcm9tRXZlbnQsIFN1YnNjcmlwdGlvbiwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjb3B5VG9DbGlwYm9hcmQgfSBmcm9tICcuL2NsaXBib2FyZCc7XG5pbXBvcnQgeyBJQ29kZUdyb3VwVmlldyB9IGZyb20gJy4vZi1jb2RlLWdyb3VwJztcbmltcG9ydCB7IElQYXJzZWRDb250YWluZXIgfSBmcm9tICcuLi9pLXBhcnNlZC1jb250YWluZXInO1xuaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEhpZ2hsaWdodFNlcnZpY2UgfSBmcm9tICcuLi8uLi9oaWdobGlnaHQnO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEZQb3BvdmVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmV4cG9ydCBjbGFzcyBGQ29kZVZpZXdIYW5kbGVyIGltcGxlbWVudHMgSUNvZGVHcm91cFZpZXcsIElQYXJzZWRDb250YWluZXIge1xuXG4gIHByb3RlY3RlZCBzdWJzY3JpcHRpb25zJDogU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIHByb3RlY3RlZCBmRG9jdW1lbnQ6IERvY3VtZW50O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBlbGVtZW50OiBIVE1MRWxlbWVudCxcbiAgICBwdWJsaWMgaW5qZWN0b3I6IEluamVjdG9yXG4gICkge1xuICAgIHRoaXMuZkRvY3VtZW50ID0gdGhpcy5pbmplY3Rvci5nZXQoRE9DVU1FTlQpO1xuICAgIHRoaXMuaW5pdGlhbGl6ZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGluaXRpYWxpemUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNTZXJ2ZXIoKSkgcmV0dXJuO1xuICAgIHRoaXMuY3JlYXRlQ29weUJ1dHRvbigpO1xuICAgIHRoaXMuY3JlYXRlTGFuZ3VhZ2VCYWRnZSgpO1xuICAgIHRoaXMuaW5qZWN0b3IuZ2V0KEhpZ2hsaWdodFNlcnZpY2UpLmhpZ2hsaWdodCh0aGlzLmVsZW1lbnQpLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucyQuYWRkKHRoaXMuc3Vic2NyaWJlT25Db3B5QnV0dG9uQ2xpY2soKSk7XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNTZXJ2ZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVDb3B5QnV0dG9uKCk6IEhUTUxCdXR0b25FbGVtZW50IHtcbiAgICBjb25zdCBidXR0b24gPSB0aGlzLmZEb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKTtcbiAgICBidXR0b24uY2xhc3NMaXN0LmFkZCgnZi1jb3B5LWJ1dHRvbicpO1xuICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZChidXR0b24pO1xuICAgIHJldHVybiBidXR0b247XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUxhbmd1YWdlQmFkZ2UoKTogdm9pZCB7XG4gICAgY29uc3QgYmFkZ2UgPSB0aGlzLmZEb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgYmFkZ2UuY2xhc3NMaXN0LmFkZCgnZi1jb2RlLWxhbmd1YWdlJyk7XG4gICAgYmFkZ2UudGV4dENvbnRlbnQgPSB0aGlzLmdldExhbmd1YWdlKCk7XG4gICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKGJhZGdlKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TGFuZ3VhZ2UoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRDb2RlQmxvY2soKS5jbGFzc0xpc3RbMF0ucmVwbGFjZSgnbGFuZ3VhZ2UtJywgJycpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb3B5QnV0dG9uKCk6IEhUTUxCdXR0b25FbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5mLWNvcHktYnV0dG9uJykgYXMgSFRNTEJ1dHRvbkVsZW1lbnQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0Q29kZUJsb2NrKCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2NvZGUnKSBhcyBIVE1MRWxlbWVudDtcbiAgfVxuXG4gIHB1YmxpYyBzZXREaXNwbGF5KHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmVsZW1lbnQuc3R5bGUuZGlzcGxheSA9IHZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBzdWJzY3JpYmVPbkNvcHlCdXR0b25DbGljaygpOiBTdWJzY3JpcHRpb24ge1xuICAgIHJldHVybiBmcm9tRXZlbnQodGhpcy5nZXRDb3B5QnV0dG9uKCksICdjbGljaycpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gY29weVRvQ2xpcGJvYXJkKHRoaXMuZ2V0Q29kZUJsb2NrKCkudGV4dENvbnRlbnQhKSlcbiAgICApLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmluamVjdG9yLmdldChGUG9wb3ZlclNlcnZpY2UpLnNob3coJ0NvcGllZCEnKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBkaXNwb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucyQudW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,9 @@
1
+ export class FExampleViewHandler {
2
+ constructor(element) {
3
+ this.element = element;
4
+ }
5
+ setDisplay(value) {
6
+ this.element.style.display = value;
7
+ }
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1leGFtcGxlLXZpZXctaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL20tcmVuZGVyL3NyYy9saWIvZi1wYWdlL2YtbWFya2Rvd24vZG9tYWluL2hhbmRsZS1wYXJzZWQtY29udGFpbmVycy9wc2V1ZG8tY29tcG9uZW50cy9mLWV4YW1wbGUtdmlldy1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxtQkFBbUI7SUFFOUIsWUFDUyxPQUFvQjtRQUFwQixZQUFPLEdBQVAsT0FBTyxDQUFhO0lBRTdCLENBQUM7SUFFTSxVQUFVLENBQUMsS0FBYTtRQUM3QixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3JDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElDb2RlR3JvdXBWaWV3IH0gZnJvbSAnLi9mLWNvZGUtZ3JvdXAnO1xuXG5leHBvcnQgY2xhc3MgRkV4YW1wbGVWaWV3SGFuZGxlciBpbXBsZW1lbnRzIElDb2RlR3JvdXBWaWV3IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZWxlbWVudDogSFRNTEVsZW1lbnQsXG4gICkge1xuICB9XG5cbiAgcHVibGljIHNldERpc3BsYXkodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gdmFsdWU7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,7 @@
1
+ export * from './clipboard';
2
+ export * from './f-code-group';
3
+ export * from './f-async-code-view-handler';
4
+ export * from './f-code-group-body.handler';
5
+ export * from './f-code-view-handler';
6
+ export * from './f-example-view-handler';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tLXJlbmRlci9zcmMvbGliL2YtcGFnZS9mLW1hcmtkb3duL2RvbWFpbi9oYW5kbGUtcGFyc2VkLWNvbnRhaW5lcnMvcHNldWRvLWNvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxhQUFhLENBQUM7QUFFNUIsY0FBYyxnQkFBZ0IsQ0FBQztBQUUvQixjQUFjLDZCQUE2QixDQUFDO0FBRTVDLGNBQWMsNkJBQTZCLENBQUM7QUFFNUMsY0FBYyx1QkFBdUIsQ0FBQztBQUV0QyxjQUFjLDBCQUEwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jbGlwYm9hcmQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2YtY29kZS1ncm91cCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1hc3luYy1jb2RlLXZpZXctaGFuZGxlcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1jb2RlLWdyb3VwLWJvZHkuaGFuZGxlcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1jb2RlLXZpZXctaGFuZGxlcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1leGFtcGxlLXZpZXctaGFuZGxlcic7XG4iXX0=
@@ -0,0 +1,23 @@
1
+ import { of } from 'rxjs';
2
+ //To prevent replacing the focus syntax (Prism) in the code blocks, we need to change from the default syntax to a custom one.
3
+ export class ChangeCodeFocusedSyntaxPreProcessor {
4
+ handle(element) {
5
+ this.getCodeBlocks(element).forEach((block) => {
6
+ block.innerHTML = this.replaceFocus(block.innerHTML);
7
+ });
8
+ return of(element);
9
+ }
10
+ getCodeBlocks(element) {
11
+ return Array.from(element.querySelectorAll('pre code'));
12
+ }
13
+ replaceFocus(text) {
14
+ return text.replace(RULE.regex, RULE.replacer);
15
+ }
16
+ }
17
+ const RULE = {
18
+ regex: /\|:\|(.*?)\|:\|/g,
19
+ replacer: (match, p1) => {
20
+ return `|foc-|${p1}|-foc|`;
21
+ }
22
+ };
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlLWNvZGUtZm9jdXNlZC1zeW50YXgucHJlLXByb2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL20tcmVuZGVyL3NyYy9saWIvZi1wYWdlL2YtbWFya2Rvd24vZG9tYWluL2hpZ2hsaWdodC9jaGFuZ2UtY29kZS1mb2N1c2VkLXN5bnRheC5wcmUtcHJvY2Vzc29yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHdEMsOEhBQThIO0FBQzlILE1BQU0sT0FBTyxtQ0FBbUM7SUFFdkMsTUFBTSxDQUFDLE9BQW9CO1FBQ2hDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDNUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN2RCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFTyxhQUFhLENBQUMsT0FBb0I7UUFDeEMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFTyxZQUFZLENBQUMsSUFBWTtRQUMvQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakQsQ0FBQztDQUNGO0FBRUQsTUFBTSxJQUFJLEdBQUc7SUFDWCxLQUFLLEVBQUUsa0JBQWtCO0lBQ3pCLFFBQVEsRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFPLEVBQUUsRUFBRTtRQUNoQyxPQUFPLFNBQVUsRUFBRyxRQUFRLENBQUM7SUFDL0IsQ0FBQztDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSUhhbmRsZXIgfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcblxuLy9UbyBwcmV2ZW50IHJlcGxhY2luZyB0aGUgZm9jdXMgc3ludGF4IChQcmlzbSkgaW4gdGhlIGNvZGUgYmxvY2tzLCB3ZSBuZWVkIHRvIGNoYW5nZSBmcm9tIHRoZSBkZWZhdWx0IHN5bnRheCB0byBhIGN1c3RvbSBvbmUuXG5leHBvcnQgY2xhc3MgQ2hhbmdlQ29kZUZvY3VzZWRTeW50YXhQcmVQcm9jZXNzb3IgaW1wbGVtZW50cyBJSGFuZGxlcjxIVE1MRWxlbWVudCwgT2JzZXJ2YWJsZTxIVE1MRWxlbWVudD4+IHtcblxuICBwdWJsaWMgaGFuZGxlKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogT2JzZXJ2YWJsZTxIVE1MRWxlbWVudD4ge1xuICAgIHRoaXMuZ2V0Q29kZUJsb2NrcyhlbGVtZW50KS5mb3JFYWNoKChibG9jaykgPT4ge1xuICAgICAgYmxvY2suaW5uZXJIVE1MID0gdGhpcy5yZXBsYWNlRm9jdXMoYmxvY2suaW5uZXJIVE1MKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBvZihlbGVtZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29kZUJsb2NrcyhlbGVtZW50OiBIVE1MRWxlbWVudCk6IEhUTUxFbGVtZW50W10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKGVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgncHJlIGNvZGUnKSk7XG4gIH1cblxuICBwcml2YXRlIHJlcGxhY2VGb2N1cyh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0ZXh0LnJlcGxhY2UoUlVMRS5yZWdleCwgUlVMRS5yZXBsYWNlcik7XG4gIH1cbn1cblxuY29uc3QgUlVMRSA9IHtcbiAgcmVnZXg6IC9cXHw6XFx8KC4qPylcXHw6XFx8L2csXG4gIHJlcGxhY2VyOiAobWF0Y2g6IGFueSwgcDE6IGFueSkgPT4ge1xuICAgIHJldHVybiBgfGZvYy18JHsgcDEgfXwtZm9jfGA7XG4gIH1cbn07XG4iXX0=
@@ -0,0 +1,54 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Observable, of, switchMap } from 'rxjs';
3
+ import { ChangeCodeFocusedSyntaxPreProcessor } from './change-code-focused-syntax.pre-processor';
4
+ import { SeparateCodeByLinesPostProcessor } from './separate-code-by-lines.post-processor';
5
+ import { ModifyPunctuationHighlightPostProcessor } from './modify-punctuation-highlight.post-processor';
6
+ import { MarkCodeFocusedBlocksPostProcessor } from './mark-code-focused-blocks.post-processor';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@foblex/platform";
9
+ export class HighlightService {
10
+ constructor(fBrowser) {
11
+ this.fBrowser = fBrowser;
12
+ }
13
+ highlight(element) {
14
+ return this.fBrowser.isBrowser() ? this.markNoneLanguage(element).pipe(switchMap((x) => new ChangeCodeFocusedSyntaxPreProcessor().handle(x)), switchMap((x) => this.highlightCodeWithPrism(x)), switchMap((x) => new ModifyPunctuationHighlightPostProcessor().handle(x)), switchMap((x) => new SeparateCodeByLinesPostProcessor().handle(x)), switchMap((x) => new MarkCodeFocusedBlocksPostProcessor(this.fBrowser).handle(x))) : of(element);
15
+ }
16
+ highlightCodeWithPrism(element) {
17
+ return new Observable((observer) => {
18
+ setTimeout(() => {
19
+ this.loadPrism().then((x) => {
20
+ this.highlightAllUnder(x, observer, element);
21
+ });
22
+ });
23
+ });
24
+ }
25
+ highlightAllUnder(prism, observer, element) {
26
+ try {
27
+ prism?.highlightAllUnder(element);
28
+ }
29
+ catch (e) {
30
+ }
31
+ observer.next(element);
32
+ observer.complete();
33
+ }
34
+ async loadPrism() {
35
+ if (!this.Prism) {
36
+ this.Prism = await import('prismjs');
37
+ await Promise.all([
38
+ // @ts-ignore
39
+ import('prismjs/components/prism-bash'), import('prismjs/components/prism-css'), import('prismjs/components/prism-typescript')
40
+ ]);
41
+ }
42
+ return this.Prism;
43
+ }
44
+ markNoneLanguage(element) {
45
+ element.querySelectorAll('pre code:not([class*="language-"])').forEach((x) => x.classList.add('language-none'));
46
+ return of(element);
47
+ }
48
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HighlightService, deps: [{ token: i1.BrowserService }], target: i0.ɵɵFactoryTarget.Injectable }); }
49
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HighlightService }); }
50
+ }
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HighlightService, decorators: [{
52
+ type: Injectable
53
+ }], ctorParameters: () => [{ type: i1.BrowserService }] });
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlnaGxpZ2h0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tLXJlbmRlci9zcmMvbGliL2YtcGFnZS9mLW1hcmtkb3duL2RvbWFpbi9oaWdobGlnaHQvaGlnaGxpZ2h0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBYyxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDakcsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDM0YsT0FBTyxFQUFFLHVDQUF1QyxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDeEcsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sMkNBQTJDLENBQUM7OztBQUkvRixNQUFNLE9BQU8sZ0JBQWdCO0lBSTNCLFlBQ1UsUUFBd0I7UUFBeEIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7SUFFbEMsQ0FBQztJQUVNLFNBQVMsQ0FBQyxPQUFvQjtRQUNuQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ3BFLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxtQ0FBbUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUNyRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUNoRCxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksdUNBQXVDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDekUsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLGdDQUFnQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ2xFLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxrQ0FBa0MsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ2pGLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuQixDQUFDO0lBRU8sc0JBQXNCLENBQUMsT0FBb0I7UUFDakQsT0FBTyxJQUFJLFVBQVUsQ0FBYyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQzlDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO29CQUMxQixJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDL0MsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGlCQUFpQixDQUFDLEtBQXNCLEVBQUUsUUFBaUMsRUFBRSxPQUFvQjtRQUN2RyxJQUFJLENBQUM7WUFDSCxLQUFLLEVBQUUsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDYixDQUFDO1FBQ0QsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2QixRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVPLEtBQUssQ0FBQyxTQUFTO1FBQ3JCLElBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3JDLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQztnQkFDaEIsYUFBYTtnQkFDYixNQUFNLENBQUMsK0JBQStCLENBQUMsRUFBRSxNQUFNLENBQUMsOEJBQThCLENBQUMsRUFBRSxNQUFNLENBQUMscUNBQXFDLENBQUM7YUFDL0gsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRU8sZ0JBQWdCLENBQUMsT0FBb0I7UUFDM0MsT0FBTyxDQUFDLGdCQUFnQixDQUFDLG9DQUFvQyxDQUFDLENBQUMsT0FBTyxDQUNwRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQ3hDLENBQUM7UUFDRixPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyQixDQUFDOytHQXREVSxnQkFBZ0I7bUhBQWhCLGdCQUFnQjs7NEZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBTdWJzY3JpYmVyLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENoYW5nZUNvZGVGb2N1c2VkU3ludGF4UHJlUHJvY2Vzc29yIH0gZnJvbSAnLi9jaGFuZ2UtY29kZS1mb2N1c2VkLXN5bnRheC5wcmUtcHJvY2Vzc29yJztcbmltcG9ydCB7IFNlcGFyYXRlQ29kZUJ5TGluZXNQb3N0UHJvY2Vzc29yIH0gZnJvbSAnLi9zZXBhcmF0ZS1jb2RlLWJ5LWxpbmVzLnBvc3QtcHJvY2Vzc29yJztcbmltcG9ydCB7IE1vZGlmeVB1bmN0dWF0aW9uSGlnaGxpZ2h0UG9zdFByb2Nlc3NvciB9IGZyb20gJy4vbW9kaWZ5LXB1bmN0dWF0aW9uLWhpZ2hsaWdodC5wb3N0LXByb2Nlc3Nvcic7XG5pbXBvcnQgeyBNYXJrQ29kZUZvY3VzZWRCbG9ja3NQb3N0UHJvY2Vzc29yIH0gZnJvbSAnLi9tYXJrLWNvZGUtZm9jdXNlZC1ibG9ja3MucG9zdC1wcm9jZXNzb3InO1xuaW1wb3J0IHsgQnJvd3NlclNlcnZpY2UgfSBmcm9tICdAZm9ibGV4L3BsYXRmb3JtJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEhpZ2hsaWdodFNlcnZpY2Uge1xuXG4gIHByaXZhdGUgUHJpc206IGFueTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZCcm93c2VyOiBCcm93c2VyU2VydmljZVxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBoaWdobGlnaHQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmZCcm93c2VyLmlzQnJvd3NlcigpID8gdGhpcy5tYXJrTm9uZUxhbmd1YWdlKGVsZW1lbnQpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKHgpID0+IG5ldyBDaGFuZ2VDb2RlRm9jdXNlZFN5bnRheFByZVByb2Nlc3NvcigpLmhhbmRsZSh4KSksXG4gICAgICBzd2l0Y2hNYXAoKHgpID0+IHRoaXMuaGlnaGxpZ2h0Q29kZVdpdGhQcmlzbSh4KSksXG4gICAgICBzd2l0Y2hNYXAoKHgpID0+IG5ldyBNb2RpZnlQdW5jdHVhdGlvbkhpZ2hsaWdodFBvc3RQcm9jZXNzb3IoKS5oYW5kbGUoeCkpLFxuICAgICAgc3dpdGNoTWFwKCh4KSA9PiBuZXcgU2VwYXJhdGVDb2RlQnlMaW5lc1Bvc3RQcm9jZXNzb3IoKS5oYW5kbGUoeCkpLFxuICAgICAgc3dpdGNoTWFwKCh4KSA9PiBuZXcgTWFya0NvZGVGb2N1c2VkQmxvY2tzUG9zdFByb2Nlc3Nvcih0aGlzLmZCcm93c2VyKS5oYW5kbGUoeCkpXG4gICAgICkgOiBvZihlbGVtZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgaGlnaGxpZ2h0Q29kZVdpdGhQcmlzbShlbGVtZW50OiBIVE1MRWxlbWVudCk6IE9ic2VydmFibGU8SFRNTEVsZW1lbnQ+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8SFRNTEVsZW1lbnQ+KChvYnNlcnZlcikgPT4ge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMubG9hZFByaXNtKCkudGhlbigoeCkgPT4ge1xuICAgICAgICAgIHRoaXMuaGlnaGxpZ2h0QWxsVW5kZXIoeCwgb2JzZXJ2ZXIsIGVsZW1lbnQpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoaWdobGlnaHRBbGxVbmRlcihwcmlzbTogYW55IHwgdW5kZWZpbmVkLCBvYnNlcnZlcjogU3Vic2NyaWJlcjxIVE1MRWxlbWVudD4sIGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIHByaXNtPy5oaWdobGlnaHRBbGxVbmRlcihlbGVtZW50KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgfVxuICAgIG9ic2VydmVyLm5leHQoZWxlbWVudCk7XG4gICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZFByaXNtKCk6IFByb21pc2U8YW55PiB7XG4gICAgaWYoIXRoaXMuUHJpc20pIHtcbiAgICAgIHRoaXMuUHJpc20gPSBhd2FpdCBpbXBvcnQoJ3ByaXNtanMnKTtcbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBpbXBvcnQoJ3ByaXNtanMvY29tcG9uZW50cy9wcmlzbS1iYXNoJyksIGltcG9ydCgncHJpc21qcy9jb21wb25lbnRzL3ByaXNtLWNzcycpLCBpbXBvcnQoJ3ByaXNtanMvY29tcG9uZW50cy9wcmlzbS10eXBlc2NyaXB0JylcbiAgICAgIF0pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5QcmlzbTtcbiAgfVxuXG4gIHByaXZhdGUgbWFya05vbmVMYW5ndWFnZShlbGVtZW50OiBIVE1MRWxlbWVudCk6IE9ic2VydmFibGU8SFRNTEVsZW1lbnQ+IHtcbiAgICBlbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3ByZSBjb2RlOm5vdChbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdKScpLmZvckVhY2goXG4gICAgICAoeCkgPT4geC5jbGFzc0xpc3QuYWRkKCdsYW5ndWFnZS1ub25lJylcbiAgICApO1xuICAgIHJldHVybiBvZihlbGVtZW50KTtcbiAgfVxufVxuIl19
@@ -0,0 +1,6 @@
1
+ export * from './change-code-focused-syntax.pre-processor';
2
+ export * from './highlight.service';
3
+ export * from './mark-code-focused-blocks.post-processor';
4
+ export * from './modify-punctuation-highlight.post-processor';
5
+ export * from './separate-code-by-lines.post-processor';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tLXJlbmRlci9zcmMvbGliL2YtcGFnZS9mLW1hcmtkb3duL2RvbWFpbi9oaWdobGlnaHQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw0Q0FBNEMsQ0FBQztBQUUzRCxjQUFjLHFCQUFxQixDQUFDO0FBRXBDLGNBQWMsMkNBQTJDLENBQUM7QUFFMUQsY0FBYywrQ0FBK0MsQ0FBQztBQUU5RCxjQUFjLHlDQUF5QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jaGFuZ2UtY29kZS1mb2N1c2VkLXN5bnRheC5wcmUtcHJvY2Vzc29yJztcblxuZXhwb3J0ICogZnJvbSAnLi9oaWdobGlnaHQuc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbWFyay1jb2RlLWZvY3VzZWQtYmxvY2tzLnBvc3QtcHJvY2Vzc29yJztcblxuZXhwb3J0ICogZnJvbSAnLi9tb2RpZnktcHVuY3R1YXRpb24taGlnaGxpZ2h0LnBvc3QtcHJvY2Vzc29yJztcblxuZXhwb3J0ICogZnJvbSAnLi9zZXBhcmF0ZS1jb2RlLWJ5LWxpbmVzLnBvc3QtcHJvY2Vzc29yJztcbiJdfQ==
@@ -0,0 +1,52 @@
1
+ import { of } from 'rxjs';
2
+ export class MarkCodeFocusedBlocksPostProcessor {
3
+ constructor(fBrowser) {
4
+ this.fBrowser = fBrowser;
5
+ }
6
+ handle(element) {
7
+ this.getCodeBlocks(element).forEach((block) => {
8
+ block.innerHTML = this.replaceFocus(block.innerHTML);
9
+ if (block.querySelector('.focused')) {
10
+ this.applyOpacity(block.parentElement);
11
+ }
12
+ });
13
+ return of(element);
14
+ }
15
+ getCodeBlocks(element) {
16
+ return Array.from(element.querySelectorAll('pre code'));
17
+ }
18
+ replaceFocus(text) {
19
+ return text.replace(RULE.regex, RULE.replacer);
20
+ }
21
+ applyOpacity(element) {
22
+ if (!element.classList.contains('focused')) {
23
+ element.style.color = this.createRgbaString(this.getElementColor(element), 0.5);
24
+ element.childNodes.forEach((child) => {
25
+ if (child.nodeType === Node.ELEMENT_NODE) {
26
+ this.applyOpacity(child);
27
+ }
28
+ });
29
+ }
30
+ else {
31
+ element.style.color = this.createRgbaString(this.getElementColor(element), 1, true);
32
+ }
33
+ }
34
+ getElementColor(element) {
35
+ return this.fBrowser.window.getComputedStyle(element).color;
36
+ }
37
+ createRgbaString(color, opacity, isRgb = false) {
38
+ const [r, g, b, a] = this.getRgbValues(color);
39
+ const alpha = Number(a) || 1;
40
+ return isRgb ? `rgb(${r}, ${g}, ${b})` : `rgba(${r}, ${g}, ${b}, ${opacity * alpha})`;
41
+ }
42
+ getRgbValues(color) {
43
+ return color.match(/\d+/g);
44
+ }
45
+ }
46
+ const RULE = {
47
+ regex: /\|foc-\|(.*?)\|-foc\|/g,
48
+ replacer: (match, p1) => {
49
+ return `<focus class="focused">${p1}</focus>`;
50
+ }
51
+ };
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFyay1jb2RlLWZvY3VzZWQtYmxvY2tzLnBvc3QtcHJvY2Vzc29yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbS1yZW5kZXIvc3JjL2xpYi9mLXBhZ2UvZi1tYXJrZG93bi9kb21haW4vaGlnaGxpZ2h0L21hcmstY29kZS1mb2N1c2VkLWJsb2Nrcy5wb3N0LXByb2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSXRDLE1BQU0sT0FBTyxrQ0FBa0M7SUFFN0MsWUFDVSxRQUF3QjtRQUF4QixhQUFRLEdBQVIsUUFBUSxDQUFnQjtJQUVsQyxDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQW9CO1FBQ2hDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDNUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNyRCxJQUFJLEtBQUssQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztnQkFDcEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsYUFBNEIsQ0FBQyxDQUFDO1lBQ3hELENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFTyxhQUFhLENBQUMsT0FBb0I7UUFDeEMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFTyxZQUFZLENBQUMsSUFBWTtRQUMvQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVPLFlBQVksQ0FBQyxPQUFvQjtRQUN2QyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUMzQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNoRixPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNuQyxJQUFJLEtBQUssQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO29CQUN6QyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQW9CLENBQUMsQ0FBQztnQkFDMUMsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdEYsQ0FBQztJQUNILENBQUM7SUFFTyxlQUFlLENBQUMsT0FBb0I7UUFDMUMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDOUQsQ0FBQztJQUVPLGdCQUFnQixDQUFDLEtBQWEsRUFBRSxPQUFlLEVBQUUsUUFBaUIsS0FBSztRQUM3RSxNQUFNLENBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFRLENBQUUsS0FBTSxDQUFFLEtBQU0sQ0FBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVMsQ0FBRSxLQUFNLENBQUUsS0FBTSxDQUFFLEtBQU0sT0FBTyxHQUFHLEtBQU0sR0FBRyxDQUFDO0lBQ3RHLENBQUM7SUFFTyxZQUFZLENBQUMsS0FBYTtRQUNoQyxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFFLENBQUM7SUFDOUIsQ0FBQztDQUNGO0FBRUQsTUFBTSxJQUFJLEdBQUc7SUFDWCxLQUFLLEVBQUUsd0JBQXdCO0lBQy9CLFFBQVEsRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFPLEVBQUUsRUFBRTtRQUNoQyxPQUFPLDBCQUEyQixFQUFHLFVBQVUsQ0FBQztJQUNsRCxDQUFDO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJSGFuZGxlciB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgQnJvd3NlclNlcnZpY2UgfSBmcm9tICdAZm9ibGV4L3BsYXRmb3JtJztcblxuZXhwb3J0IGNsYXNzIE1hcmtDb2RlRm9jdXNlZEJsb2Nrc1Bvc3RQcm9jZXNzb3IgaW1wbGVtZW50cyBJSGFuZGxlcjxIVE1MRWxlbWVudCwgT2JzZXJ2YWJsZTxIVE1MRWxlbWVudD4+IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZCcm93c2VyOiBCcm93c2VyU2VydmljZVxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGUoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBPYnNlcnZhYmxlPEhUTUxFbGVtZW50PiB7XG4gICAgdGhpcy5nZXRDb2RlQmxvY2tzKGVsZW1lbnQpLmZvckVhY2goKGJsb2NrKSA9PiB7XG4gICAgICBibG9jay5pbm5lckhUTUwgPSB0aGlzLnJlcGxhY2VGb2N1cyhibG9jay5pbm5lckhUTUwpO1xuICAgICAgaWYgKGJsb2NrLnF1ZXJ5U2VsZWN0b3IoJy5mb2N1c2VkJykpIHtcbiAgICAgICAgdGhpcy5hcHBseU9wYWNpdHkoYmxvY2sucGFyZW50RWxlbWVudCBhcyBIVE1MRWxlbWVudCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIG9mKGVsZW1lbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb2RlQmxvY2tzKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogSFRNTEVsZW1lbnRbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdwcmUgY29kZScpKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVwbGFjZUZvY3VzKHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRleHQucmVwbGFjZShSVUxFLnJlZ2V4LCBSVUxFLnJlcGxhY2VyKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlPcGFjaXR5KGVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG4gICAgaWYgKCFlbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygnZm9jdXNlZCcpKSB7XG4gICAgICBlbGVtZW50LnN0eWxlLmNvbG9yID0gdGhpcy5jcmVhdGVSZ2JhU3RyaW5nKHRoaXMuZ2V0RWxlbWVudENvbG9yKGVsZW1lbnQpLCAwLjUpO1xuICAgICAgZWxlbWVudC5jaGlsZE5vZGVzLmZvckVhY2goKGNoaWxkKSA9PiB7XG4gICAgICAgIGlmIChjaGlsZC5ub2RlVHlwZSA9PT0gTm9kZS5FTEVNRU5UX05PREUpIHtcbiAgICAgICAgICB0aGlzLmFwcGx5T3BhY2l0eShjaGlsZCBhcyBIVE1MRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbGVtZW50LnN0eWxlLmNvbG9yID0gdGhpcy5jcmVhdGVSZ2JhU3RyaW5nKHRoaXMuZ2V0RWxlbWVudENvbG9yKGVsZW1lbnQpLCAxLCB0cnVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldEVsZW1lbnRDb2xvcihlbGVtZW50OiBIVE1MRWxlbWVudCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZkJyb3dzZXIud2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkuY29sb3I7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVJnYmFTdHJpbmcoY29sb3I6IHN0cmluZywgb3BhY2l0eTogbnVtYmVyLCBpc1JnYjogYm9vbGVhbiA9IGZhbHNlKTogc3RyaW5nIHtcbiAgICBjb25zdCBbIHIsIGcsIGIsIGEgXSA9IHRoaXMuZ2V0UmdiVmFsdWVzKGNvbG9yKTtcbiAgICBjb25zdCBhbHBoYSA9IE51bWJlcihhKSB8fCAxO1xuICAgIHJldHVybiBpc1JnYiA/IGByZ2IoJHsgciB9LCAkeyBnIH0sICR7IGIgfSlgIDogYHJnYmEoJHsgciB9LCAkeyBnIH0sICR7IGIgfSwgJHsgb3BhY2l0eSAqIGFscGhhIH0pYDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UmdiVmFsdWVzKGNvbG9yOiBzdHJpbmcpOiBSZWdFeHBNYXRjaEFycmF5IHtcbiAgICByZXR1cm4gY29sb3IubWF0Y2goL1xcZCsvZykhO1xuICB9XG59XG5cbmNvbnN0IFJVTEUgPSB7XG4gIHJlZ2V4OiAvXFx8Zm9jLVxcfCguKj8pXFx8LWZvY1xcfC9nLFxuICByZXBsYWNlcjogKG1hdGNoOiBhbnksIHAxOiBhbnkpID0+IHtcbiAgICByZXR1cm4gYDxmb2N1cyBjbGFzcz1cImZvY3VzZWRcIj4keyBwMSB9PC9mb2N1cz5gO1xuICB9XG59O1xuIl19
@@ -0,0 +1,22 @@
1
+ import { of } from 'rxjs';
2
+ export class ModifyPunctuationHighlightPostProcessor {
3
+ handle(element) {
4
+ element.querySelectorAll('span.token.attr-name').forEach((node) => {
5
+ const text = node.textContent;
6
+ if (text && text.startsWith('[') && text.endsWith(']')) {
7
+ node.innerHTML = this.replacePunctuation(text);
8
+ }
9
+ });
10
+ return of(element);
11
+ }
12
+ replacePunctuation(text) {
13
+ return text.replace(RULE.regex, RULE.replacer);
14
+ }
15
+ }
16
+ const RULE = {
17
+ regex: /(\[|\])/g,
18
+ replacer: (match) => {
19
+ return `<span class="token punctuation">${match}</span>`;
20
+ }
21
+ };
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kaWZ5LXB1bmN0dWF0aW9uLWhpZ2hsaWdodC5wb3N0LXByb2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL20tcmVuZGVyL3NyYy9saWIvZi1wYWdlL2YtbWFya2Rvd24vZG9tYWluL2hpZ2hsaWdodC9tb2RpZnktcHVuY3R1YXRpb24taGlnaGxpZ2h0LnBvc3QtcHJvY2Vzc29yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHdEMsTUFBTSxPQUFPLHVDQUF1QztJQUUzQyxNQUFNLENBQUMsT0FBb0I7UUFDaEMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLHNCQUFzQixDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDaEUsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUM5QixJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDdkQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakQsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVPLGtCQUFrQixDQUFDLElBQVk7UUFDckMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pELENBQUM7Q0FDRjtBQUVELE1BQU0sSUFBSSxHQUFHO0lBQ1gsS0FBSyxFQUFFLFVBQVU7SUFDakIsUUFBUSxFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUU7UUFDdkIsT0FBTyxtQ0FBb0MsS0FBTSxTQUFTLENBQUM7SUFDN0QsQ0FBQztDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSUhhbmRsZXIgfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcblxuZXhwb3J0IGNsYXNzIE1vZGlmeVB1bmN0dWF0aW9uSGlnaGxpZ2h0UG9zdFByb2Nlc3NvciBpbXBsZW1lbnRzIElIYW5kbGVyPEhUTUxFbGVtZW50LCBPYnNlcnZhYmxlPEhUTUxFbGVtZW50Pj4ge1xuXG4gIHB1YmxpYyBoYW5kbGUoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBPYnNlcnZhYmxlPEhUTUxFbGVtZW50PiB7XG4gICAgZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdzcGFuLnRva2VuLmF0dHItbmFtZScpLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgIGNvbnN0IHRleHQgPSBub2RlLnRleHRDb250ZW50O1xuICAgICAgaWYgKHRleHQgJiYgdGV4dC5zdGFydHNXaXRoKCdbJykgJiYgdGV4dC5lbmRzV2l0aCgnXScpKSB7XG4gICAgICAgIG5vZGUuaW5uZXJIVE1MID0gdGhpcy5yZXBsYWNlUHVuY3R1YXRpb24odGV4dCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIG9mKGVsZW1lbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXBsYWNlUHVuY3R1YXRpb24odGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGV4dC5yZXBsYWNlKFJVTEUucmVnZXgsIFJVTEUucmVwbGFjZXIpO1xuICB9XG59XG5cbmNvbnN0IFJVTEUgPSB7XG4gIHJlZ2V4OiAvKFxcW3xcXF0pL2csXG4gIHJlcGxhY2VyOiAobWF0Y2g6IGFueSkgPT4ge1xuICAgIHJldHVybiBgPHNwYW4gY2xhc3M9XCJ0b2tlbiBwdW5jdHVhdGlvblwiPiR7IG1hdGNoIH08L3NwYW4+YDtcbiAgfVxufTtcbiJdfQ==
@@ -0,0 +1,28 @@
1
+ import { of } from 'rxjs';
2
+ export class SeparateCodeByLinesPostProcessor {
3
+ handle(element) {
4
+ element.querySelectorAll("pre code").forEach((code) => {
5
+ code.innerHTML = this.getCodeDividedByLines(code);
6
+ });
7
+ return of(element);
8
+ }
9
+ getCodeDividedByLines(code) {
10
+ let result = '';
11
+ this.getLines(code).forEach(line => {
12
+ if (!this.isLineEmpty(line)) {
13
+ result += this.getLine(line);
14
+ }
15
+ });
16
+ return result;
17
+ }
18
+ getLines(code) {
19
+ return code.innerHTML.split('\n');
20
+ }
21
+ isLineEmpty(line) {
22
+ return line.trim() === '';
23
+ }
24
+ getLine(content) {
25
+ return `<line class="line">${content}</line>\n`;
26
+ }
27
+ }
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VwYXJhdGUtY29kZS1ieS1saW5lcy5wb3N0LXByb2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL20tcmVuZGVyL3NyYy9saWIvZi1wYWdlL2YtbWFya2Rvd24vZG9tYWluL2hpZ2hsaWdodC9zZXBhcmF0ZS1jb2RlLWJ5LWxpbmVzLnBvc3QtcHJvY2Vzc29yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHdEMsTUFBTSxPQUFPLGdDQUFnQztJQUVwQyxNQUFNLENBQUMsT0FBb0I7UUFDaEMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3BELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVPLHFCQUFxQixDQUFDLElBQWE7UUFDekMsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQzVCLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQy9CLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTyxRQUFRLENBQUMsSUFBYTtRQUM1QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTyxXQUFXLENBQUMsSUFBWTtRQUM5QixPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVPLE9BQU8sQ0FBQyxPQUFlO1FBQzdCLE9BQU8sc0JBQXVCLE9BQVEsV0FBVyxDQUFDO0lBQ3BELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJSGFuZGxlciB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuXG5leHBvcnQgY2xhc3MgU2VwYXJhdGVDb2RlQnlMaW5lc1Bvc3RQcm9jZXNzb3IgaW1wbGVtZW50cyBJSGFuZGxlcjxIVE1MRWxlbWVudCwgT2JzZXJ2YWJsZTxIVE1MRWxlbWVudD4+IHtcblxuICBwdWJsaWMgaGFuZGxlKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogT2JzZXJ2YWJsZTxIVE1MRWxlbWVudD4ge1xuICAgIGVsZW1lbnQucXVlcnlTZWxlY3RvckFsbChcInByZSBjb2RlXCIpLmZvckVhY2goKGNvZGUpID0+IHtcbiAgICAgIGNvZGUuaW5uZXJIVE1MID0gdGhpcy5nZXRDb2RlRGl2aWRlZEJ5TGluZXMoY29kZSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIG9mKGVsZW1lbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb2RlRGl2aWRlZEJ5TGluZXMoY29kZTogRWxlbWVudCk6IHN0cmluZyB7XG4gICAgbGV0IHJlc3VsdCA9ICcnO1xuICAgIHRoaXMuZ2V0TGluZXMoY29kZSkuZm9yRWFjaChsaW5lID0+IHtcbiAgICAgIGlmICghdGhpcy5pc0xpbmVFbXB0eShsaW5lKSkge1xuICAgICAgICByZXN1bHQgKz0gdGhpcy5nZXRMaW5lKGxpbmUpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIGdldExpbmVzKGNvZGU6IEVsZW1lbnQpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIGNvZGUuaW5uZXJIVE1MLnNwbGl0KCdcXG4nKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNMaW5lRW1wdHkobGluZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGxpbmUudHJpbSgpID09PSAnJztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TGluZShjb250ZW50OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgPGxpbmUgY2xhc3M9XCJsaW5lXCI+JHsgY29udGVudCB9PC9saW5lPlxcbmA7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ export * from './handle-dynamic-components';
2
+ export * from './handle-parsed-containers';
3
+ export * from './highlight';
4
+ export * from './markdown';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tLXJlbmRlci9zcmMvbGliL2YtcGFnZS9mLW1hcmtkb3duL2RvbWFpbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDZCQUE2QixDQUFDO0FBRTVDLGNBQWMsNEJBQTRCLENBQUM7QUFFM0MsY0FBYyxhQUFhLENBQUM7QUFFNUIsY0FBYyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2hhbmRsZS1keW5hbWljLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2hhbmRsZS1wYXJzZWQtY29udGFpbmVycyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vaGlnaGxpZ2h0JztcblxuZXhwb3J0ICogZnJvbSAnLi9tYXJrZG93bic7XG5cbiJdfQ==
@@ -0,0 +1,4 @@
1
+ export * from './parse-markdown';
2
+ export * from './utils';
3
+ export * from './markdown.service';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tLXJlbmRlci9zcmMvbGliL2YtcGFnZS9mLW1hcmtkb3duL2RvbWFpbi9tYXJrZG93bi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtCQUFrQixDQUFDO0FBRWpDLGNBQWMsU0FBUyxDQUFDO0FBRXhCLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3BhcnNlLW1hcmtkb3duJztcblxuZXhwb3J0ICogZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbWFya2Rvd24uc2VydmljZSc7XG4iXX0=
@@ -0,0 +1,65 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { of, switchMap } from 'rxjs';
3
+ import MarkdownIt from 'markdown-it';
4
+ import { EMarkdownContainerType, ParseAlerts, ParseCodeGroup, ParseCodeView, ParseExampleGroup, ParsePreviewGroup } from './parse-markdown';
5
+ import { catchError, take } from 'rxjs/operators';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common/http";
8
+ import * as i2 from "@angular/platform-browser";
9
+ import * as i3 from "../../../../domain";
10
+ import * as i4 from "@angular/router";
11
+ export class MarkdownService {
12
+ constructor(httpClient, domSanitizer, fEnvironment, router) {
13
+ this.httpClient = httpClient;
14
+ this.domSanitizer = domSanitizer;
15
+ this.fEnvironment = fEnvironment;
16
+ this.router = router;
17
+ this.markdown = new MarkdownIt({ html: true, linkify: true });
18
+ this.markdown
19
+ .use((x) => new ParseCodeView().render(x))
20
+ .use(...new ParseAlerts().render(EMarkdownContainerType.ALERT_TIP, this.markdown))
21
+ .use(...new ParseAlerts().render(EMarkdownContainerType.ALERT_INFO, this.markdown))
22
+ .use(...new ParseAlerts().render(EMarkdownContainerType.ALERT_WARNING, this.markdown))
23
+ .use(...new ParseAlerts().render(EMarkdownContainerType.ALERT_DANGER, this.markdown))
24
+ .use(...new ParseAlerts().render(EMarkdownContainerType.ALERT_DANGER, this.markdown))
25
+ .use(...new ParseAlerts().render(EMarkdownContainerType.ALERT_SUCCESS, this.markdown))
26
+ .use(...new ParseCodeGroup().render())
27
+ .use(...new ParsePreviewGroup(this.fEnvironment.getNavigation()).render())
28
+ .use(...new ParseExampleGroup().render());
29
+ }
30
+ parse(src) {
31
+ return this.httpClient.get(src, { responseType: 'text' }).pipe(take(1), catchError(() => of(''))).pipe(switchMap((text) => of(this.markdown.render(text))), switchMap((x) => of(this.cleanupEmptyParagraphs(x))), switchMap((x) => of(this.cleanupWasteParagraphFromExampleView(x))), switchMap((x) => of(this.cleanupWasteParagraphFromPreviewGroup(x))), switchMap((x) => of(this.normalizeLinks(x))), switchMap((x) => of(this.domSanitizer.bypassSecurityTrustHtml(x))));
32
+ }
33
+ normalizeLinks(html) {
34
+ const currentPath = this.router.url;
35
+ const prefix = currentPath.substring(0, currentPath.lastIndexOf('/'));
36
+ return html.replace(/<a\s+href="([^"]*)"/g, (match, href) => {
37
+ if (!this.isExternalLink(href)) {
38
+ let newHref = href.substring(0);
39
+ if (!href.startsWith('./')) {
40
+ newHref = href.startsWith('/') ? `${prefix}${href}` : `${prefix}/${href}`;
41
+ }
42
+ return `<a href="${newHref}"`;
43
+ }
44
+ return match;
45
+ });
46
+ }
47
+ isExternalLink(href) {
48
+ return href.startsWith('www') || href.startsWith('http');
49
+ }
50
+ cleanupEmptyParagraphs(html) {
51
+ return html.replace(/<p>\s*<\/p>/g, '');
52
+ }
53
+ cleanupWasteParagraphFromExampleView(html) {
54
+ return html.replace(/<div class="f-code-group-body">\s*<p>[^<]*<\/p>/g, '<div class="f-code-group-body">');
55
+ }
56
+ cleanupWasteParagraphFromPreviewGroup(html) {
57
+ return html.replace(/<p>(\[[^\]]+\](\s*\[[^\]]+\])*)<\/p>/g, '');
58
+ }
59
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MarkdownService, deps: [{ token: i1.HttpClient }, { token: i2.DomSanitizer }, { token: i3.FEnvironmentService }, { token: i4.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
60
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MarkdownService }); }
61
+ }
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MarkdownService, decorators: [{
63
+ type: Injectable
64
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.DomSanitizer }, { type: i3.FEnvironmentService }, { type: i4.Router }] });
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL20tcmVuZGVyL3NyYy9saWIvZi1wYWdlL2YtbWFya2Rvd24vZG9tYWluL21hcmtkb3duL21hcmtkb3duLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVqRCxPQUFPLFVBQVUsTUFBTSxhQUFhLENBQUM7QUFDckMsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixXQUFXLEVBQ1gsY0FBYyxFQUNkLGFBQWEsRUFDYixpQkFBaUIsRUFBRSxpQkFBaUIsRUFDckMsTUFBTSxrQkFBa0IsQ0FBQztBQUUxQixPQUFPLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUFLbEQsTUFBTSxPQUFPLGVBQWU7SUFJMUIsWUFDVSxVQUFzQixFQUN0QixZQUEwQixFQUMxQixZQUFpQyxFQUNqQyxNQUFjO1FBSGQsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQU5oQixhQUFRLEdBQWUsSUFBSSxVQUFVLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBUTNFLElBQUksQ0FBQyxRQUFRO2FBQ1YsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLGFBQWEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN6QyxHQUFHLENBQUMsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ2pGLEdBQUcsQ0FBQyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsTUFBTSxDQUFDLHNCQUFzQixDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDbEYsR0FBRyxDQUFDLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsc0JBQXNCLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUNyRixHQUFHLENBQUMsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ3BGLEdBQUcsQ0FBQyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsTUFBTSxDQUFDLHNCQUFzQixDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDcEYsR0FBRyxDQUFDLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsc0JBQXNCLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUNyRixHQUFHLENBQUMsR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQ3JDLEdBQUcsQ0FBQyxHQUFHLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQ3pFLEdBQUcsQ0FBQyxHQUFHLElBQUksaUJBQWlCLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFTSxLQUFLLENBQUMsR0FBVztRQUN0QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNwRyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ25ELFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ3BELFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ2xFLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ25FLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUM1QyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDbkUsQ0FBQztJQUNKLENBQUM7SUFFTyxjQUFjLENBQUMsSUFBWTtRQUNqQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztRQUNwQyxNQUFNLE1BQU0sR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxXQUFXLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFdEUsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLHNCQUFzQixFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFO1lBQzFELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQy9CLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7b0JBQzNCLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFJLE1BQU8sR0FBSSxJQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBSSxNQUFPLElBQUssSUFBSyxFQUFFLENBQUM7Z0JBQ3BGLENBQUM7Z0JBQ0QsT0FBTyxZQUFhLE9BQVEsR0FBRyxDQUFDO1lBQ2xDLENBQUM7WUFDRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGNBQWMsQ0FBQyxJQUFZO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxJQUFZO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVPLG9DQUFvQyxDQUFDLElBQVk7UUFDdkQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGtEQUFrRCxFQUFFLGlDQUFpQyxDQUFDLENBQUM7SUFDN0csQ0FBQztJQUVPLHFDQUFxQyxDQUFDLElBQVk7UUFDeEQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLHVDQUF1QyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ25FLENBQUM7K0dBaEVVLGVBQWU7bUhBQWYsZUFBZTs7NEZBQWYsZUFBZTtrQkFEM0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgTWFya2Rvd25JdCBmcm9tICdtYXJrZG93bi1pdCc7XG5pbXBvcnQge1xuICBFTWFya2Rvd25Db250YWluZXJUeXBlLFxuICBQYXJzZUFsZXJ0cyxcbiAgUGFyc2VDb2RlR3JvdXAsXG4gIFBhcnNlQ29kZVZpZXcsXG4gIFBhcnNlRXhhbXBsZUdyb3VwLCBQYXJzZVByZXZpZXdHcm91cFxufSBmcm9tICcuL3BhcnNlLW1hcmtkb3duJztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgRkVudmlyb25tZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RvbWFpbic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBNYXJrZG93blNlcnZpY2Uge1xuXG4gIHByaXZhdGUgbWFya2Rvd246IE1hcmtkb3duSXQgPSBuZXcgTWFya2Rvd25JdCh7IGh0bWw6IHRydWUsIGxpbmtpZnk6IHRydWUgfSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgZG9tU2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXG4gICAgcHJpdmF0ZSBmRW52aXJvbm1lbnQ6IEZFbnZpcm9ubWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgKSB7XG4gICAgdGhpcy5tYXJrZG93blxuICAgICAgLnVzZSgoeCkgPT4gbmV3IFBhcnNlQ29kZVZpZXcoKS5yZW5kZXIoeCkpXG4gICAgICAudXNlKC4uLm5ldyBQYXJzZUFsZXJ0cygpLnJlbmRlcihFTWFya2Rvd25Db250YWluZXJUeXBlLkFMRVJUX1RJUCwgdGhpcy5tYXJrZG93bikpXG4gICAgICAudXNlKC4uLm5ldyBQYXJzZUFsZXJ0cygpLnJlbmRlcihFTWFya2Rvd25Db250YWluZXJUeXBlLkFMRVJUX0lORk8sIHRoaXMubWFya2Rvd24pKVxuICAgICAgLnVzZSguLi5uZXcgUGFyc2VBbGVydHMoKS5yZW5kZXIoRU1hcmtkb3duQ29udGFpbmVyVHlwZS5BTEVSVF9XQVJOSU5HLCB0aGlzLm1hcmtkb3duKSlcbiAgICAgIC51c2UoLi4ubmV3IFBhcnNlQWxlcnRzKCkucmVuZGVyKEVNYXJrZG93bkNvbnRhaW5lclR5cGUuQUxFUlRfREFOR0VSLCB0aGlzLm1hcmtkb3duKSlcbiAgICAgIC51c2UoLi4ubmV3IFBhcnNlQWxlcnRzKCkucmVuZGVyKEVNYXJrZG93bkNvbnRhaW5lclR5cGUuQUxFUlRfREFOR0VSLCB0aGlzLm1hcmtkb3duKSlcbiAgICAgIC51c2UoLi4ubmV3IFBhcnNlQWxlcnRzKCkucmVuZGVyKEVNYXJrZG93bkNvbnRhaW5lclR5cGUuQUxFUlRfU1VDQ0VTUywgdGhpcy5tYXJrZG93bikpXG4gICAgICAudXNlKC4uLm5ldyBQYXJzZUNvZGVHcm91cCgpLnJlbmRlcigpKVxuICAgICAgLnVzZSguLi5uZXcgUGFyc2VQcmV2aWV3R3JvdXAodGhpcy5mRW52aXJvbm1lbnQuZ2V0TmF2aWdhdGlvbigpKS5yZW5kZXIoKSlcbiAgICAgIC51c2UoLi4ubmV3IFBhcnNlRXhhbXBsZUdyb3VwKCkucmVuZGVyKCkpO1xuICB9XG5cbiAgcHVibGljIHBhcnNlKHNyYzogc3RyaW5nKTogT2JzZXJ2YWJsZTxTYWZlSHRtbD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KHNyYywgeyByZXNwb25zZVR5cGU6ICd0ZXh0JyB9KS5waXBlKHRha2UoMSksIGNhdGNoRXJyb3IoKCkgPT4gb2YoJycpKSkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgodGV4dCkgPT4gb2YodGhpcy5tYXJrZG93bi5yZW5kZXIodGV4dCkpKSxcbiAgICAgIHN3aXRjaE1hcCgoeCkgPT4gb2YodGhpcy5jbGVhbnVwRW1wdHlQYXJhZ3JhcGhzKHgpKSksXG4gICAgICBzd2l0Y2hNYXAoKHgpID0+IG9mKHRoaXMuY2xlYW51cFdhc3RlUGFyYWdyYXBoRnJvbUV4YW1wbGVWaWV3KHgpKSksXG4gICAgICBzd2l0Y2hNYXAoKHgpID0+IG9mKHRoaXMuY2xlYW51cFdhc3RlUGFyYWdyYXBoRnJvbVByZXZpZXdHcm91cCh4KSkpLFxuICAgICAgc3dpdGNoTWFwKCh4KSA9PiBvZih0aGlzLm5vcm1hbGl6ZUxpbmtzKHgpKSksXG4gICAgICBzd2l0Y2hNYXAoKHgpID0+IG9mKHRoaXMuZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHgpKSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgbm9ybWFsaXplTGlua3MoaHRtbDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBjdXJyZW50UGF0aCA9IHRoaXMucm91dGVyLnVybDtcbiAgICBjb25zdCBwcmVmaXggPSBjdXJyZW50UGF0aC5zdWJzdHJpbmcoMCwgY3VycmVudFBhdGgubGFzdEluZGV4T2YoJy8nKSk7XG5cbiAgICByZXR1cm4gaHRtbC5yZXBsYWNlKC88YVxccytocmVmPVwiKFteXCJdKilcIi9nLCAobWF0Y2gsIGhyZWYpID0+IHtcbiAgICAgIGlmICghdGhpcy5pc0V4dGVybmFsTGluayhocmVmKSkge1xuICAgICAgICBsZXQgbmV3SHJlZiA9IGhyZWYuc3Vic3RyaW5nKDApO1xuICAgICAgICBpZiAoIWhyZWYuc3RhcnRzV2l0aCgnLi8nKSkge1xuICAgICAgICAgIG5ld0hyZWYgPSBocmVmLnN0YXJ0c1dpdGgoJy8nKSA/IGAkeyBwcmVmaXggfSR7IGhyZWYgfWAgOiBgJHsgcHJlZml4IH0vJHsgaHJlZiB9YDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYDxhIGhyZWY9XCIkeyBuZXdIcmVmIH1cImA7XG4gICAgICB9XG4gICAgICByZXR1cm4gbWF0Y2g7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGlzRXh0ZXJuYWxMaW5rKGhyZWY6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBocmVmLnN0YXJ0c1dpdGgoJ3d3dycpIHx8IGhyZWYuc3RhcnRzV2l0aCgnaHR0cCcpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhbnVwRW1wdHlQYXJhZ3JhcGhzKGh0bWw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGh0bWwucmVwbGFjZSgvPHA+XFxzKjxcXC9wPi9nLCAnJyk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFudXBXYXN0ZVBhcmFncmFwaEZyb21FeGFtcGxlVmlldyhodG1sOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBodG1sLnJlcGxhY2UoLzxkaXYgY2xhc3M9XCJmLWNvZGUtZ3JvdXAtYm9keVwiPlxccyo8cD5bXjxdKjxcXC9wPi9nLCAnPGRpdiBjbGFzcz1cImYtY29kZS1ncm91cC1ib2R5XCI+Jyk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFudXBXYXN0ZVBhcmFncmFwaEZyb21QcmV2aWV3R3JvdXAoaHRtbDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gaHRtbC5yZXBsYWNlKC88cD4oXFxbW15cXF1dK1xcXShcXHMqXFxbW15cXF1dK1xcXSkqKTxcXC9wPi9nLCAnJyk7XG4gIH1cbn1cblxuIl19
@@ -0,0 +1,13 @@
1
+ export var EMarkdownContainerType;
2
+ (function (EMarkdownContainerType) {
3
+ EMarkdownContainerType["CODE_GROUP"] = "code-group";
4
+ EMarkdownContainerType["EXAMPLE_GROUP"] = "ng-component";
5
+ EMarkdownContainerType["PREVIEW_GROUP"] = "preview-group";
6
+ EMarkdownContainerType["CODE_VIEW"] = "code-view";
7
+ EMarkdownContainerType["ALERT_TIP"] = "tip";
8
+ EMarkdownContainerType["ALERT_INFO"] = "info";
9
+ EMarkdownContainerType["ALERT_WARNING"] = "warning";
10
+ EMarkdownContainerType["ALERT_DANGER"] = "danger";
11
+ EMarkdownContainerType["ALERT_SUCCESS"] = "success";
12
+ })(EMarkdownContainerType || (EMarkdownContainerType = {}));
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZS1tYXJrZG93bi1jb250YWluZXItdHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL20tcmVuZGVyL3NyYy9saWIvZi1wYWdlL2YtbWFya2Rvd24vZG9tYWluL21hcmtkb3duL3BhcnNlLW1hcmtkb3duL2UtbWFya2Rvd24tY29udGFpbmVyLXR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksc0JBbUJYO0FBbkJELFdBQVksc0JBQXNCO0lBRWhDLG1EQUF5QixDQUFBO0lBRXpCLHdEQUE4QixDQUFBO0lBRTlCLHlEQUErQixDQUFBO0lBRS9CLGlEQUF1QixDQUFBO0lBRXZCLDJDQUFpQixDQUFBO0lBRWpCLDZDQUFtQixDQUFBO0lBRW5CLG1EQUF5QixDQUFBO0lBRXpCLGlEQUF1QixDQUFBO0lBRXZCLG1EQUF5QixDQUFBO0FBQzNCLENBQUMsRUFuQlcsc0JBQXNCLEtBQXRCLHNCQUFzQixRQW1CakMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBFTWFya2Rvd25Db250YWluZXJUeXBlIHtcblxuICBDT0RFX0dST1VQID0gJ2NvZGUtZ3JvdXAnLFxuXG4gIEVYQU1QTEVfR1JPVVAgPSAnbmctY29tcG9uZW50JyxcblxuICBQUkVWSUVXX0dST1VQID0gJ3ByZXZpZXctZ3JvdXAnLFxuXG4gIENPREVfVklFVyA9ICdjb2RlLXZpZXcnLFxuXG4gIEFMRVJUX1RJUCA9ICd0aXAnLFxuXG4gIEFMRVJUX0lORk8gPSAnaW5mbycsXG5cbiAgQUxFUlRfV0FSTklORyA9ICd3YXJuaW5nJyxcblxuICBBTEVSVF9EQU5HRVIgPSAnZGFuZ2VyJyxcblxuICBBTEVSVF9TVUNDRVNTID0gJ3N1Y2Nlc3MnXG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaS1tYXJrZG93bi1pdC10b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL20tcmVuZGVyL3NyYy9saWIvZi1wYWdlL2YtbWFya2Rvd24vZG9tYWluL21hcmtkb3duL3BhcnNlLW1hcmtkb3duL2ktbWFya2Rvd24taXQtdG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIlxuZXhwb3J0IGludGVyZmFjZSBJTWFya2Rvd25JdFRva2VuIHtcblxuICB0eXBlOiBzdHJpbmc7XG5cbiAgdGFnOiBzdHJpbmc7XG5cbiAgYXR0cnM6IEFycmF5PFtzdHJpbmcsIHN0cmluZ10+IHwgbnVsbDtcblxuICBtYXA6IFtudW1iZXIsIG51bWJlcl0gfCBudWxsO1xuXG4gIG5lc3Rpbmc6IC0xIHwgMCB8IDE7XG5cbiAgbGV2ZWw6IG51bWJlcjtcblxuICBjaGlsZHJlbjogSU1hcmtkb3duSXRUb2tlbltdIHwgbnVsbDtcblxuICBjb250ZW50OiBzdHJpbmc7XG5cbiAgbWFya3VwOiBzdHJpbmc7XG5cbiAgaW5mbzogc3RyaW5nO1xuXG4gIG1ldGE6IGFueTtcblxuICBibG9jazogYm9vbGVhbjtcblxuICBoaWRkZW46IGJvb2xlYW47XG59XG5cblxuIl19
@@ -0,0 +1,8 @@
1
+ export * from './e-markdown-container-type';
2
+ export * from './i-markdown-it-token';
3
+ export * from './parse-alerts';
4
+ export * from './parse-code-group';
5
+ export * from './parse-code-view';
6
+ export * from './parse-example-group';
7
+ export * from './parse-preview-group';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tLXJlbmRlci9zcmMvbGliL2YtcGFnZS9mLW1hcmtkb3duL2RvbWFpbi9tYXJrZG93bi9wYXJzZS1tYXJrZG93bi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDZCQUE2QixDQUFDO0FBRTVDLGNBQWMsdUJBQXVCLENBQUM7QUFFdEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUUvQixjQUFjLG9CQUFvQixDQUFDO0FBRW5DLGNBQWMsbUJBQW1CLENBQUM7QUFFbEMsY0FBYyx1QkFBdUIsQ0FBQztBQUV0QyxjQUFjLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9lLW1hcmtkb3duLWNvbnRhaW5lci10eXBlJztcblxuZXhwb3J0ICogZnJvbSAnLi9pLW1hcmtkb3duLWl0LXRva2VuJztcblxuZXhwb3J0ICogZnJvbSAnLi9wYXJzZS1hbGVydHMnO1xuXG5leHBvcnQgKiBmcm9tICcuL3BhcnNlLWNvZGUtZ3JvdXAnO1xuXG5leHBvcnQgKiBmcm9tICcuL3BhcnNlLWNvZGUtdmlldyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vcGFyc2UtZXhhbXBsZS1ncm91cCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vcGFyc2UtcHJldmlldy1ncm91cCc7XG4iXX0=
@@ -0,0 +1,19 @@
1
+ import container from 'markdown-it-container';
2
+ export class ParseAlerts {
3
+ render(type, markdown) {
4
+ return [container, type, {
5
+ render: (tokens, index) => {
6
+ const token = tokens[index];
7
+ const info = token.info.trim().slice(type.length).trim();
8
+ if (token.nesting === 1) {
9
+ const title = markdown.renderInline(info);
10
+ return `<div class="f-alert ${type}"><p class="f-alert-title">${title}</p>\n`;
11
+ }
12
+ else {
13
+ return `</div>\n`;
14
+ }
15
+ }
16
+ }];
17
+ }
18
+ }
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UtYWxlcnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbS1yZW5kZXIvc3JjL2xpYi9mLXBhZ2UvZi1tYXJrZG93bi9kb21haW4vbWFya2Rvd24vcGFyc2UtbWFya2Rvd24vcGFyc2UtYWxlcnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sU0FBUyxNQUFNLHVCQUF1QixDQUFDO0FBSzlDLE1BQU0sT0FBTyxXQUFXO0lBRWYsTUFBTSxDQUFDLElBQVksRUFBRSxRQUFvQjtRQUM5QyxPQUFPLENBQUUsU0FBUyxFQUFFLElBQUksRUFBRTtnQkFDeEIsTUFBTSxFQUFFLENBQUMsTUFBMEIsRUFBRSxLQUFhLEVBQUUsRUFBRTtvQkFDcEQsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFFLEtBQUssQ0FBRSxDQUFDO29CQUM5QixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQ3pELElBQUksS0FBSyxDQUFDLE9BQU8sS0FBSyxDQUFDLEVBQUUsQ0FBQzt3QkFDeEIsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDMUMsT0FBTyx1QkFBd0IsSUFBSyw4QkFBK0IsS0FBTSxRQUFRLENBQUM7b0JBQ3BGLENBQUM7eUJBQU0sQ0FBQzt3QkFDTixPQUFPLFVBQVUsQ0FBQztvQkFDcEIsQ0FBQztnQkFDSCxDQUFDO2FBQ0YsQ0FBRSxDQUFDO0lBQ04sQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE1hcmtkb3duSXQgZnJvbSAnbWFya2Rvd24taXQnO1xuaW1wb3J0IGNvbnRhaW5lciBmcm9tICdtYXJrZG93bi1pdC1jb250YWluZXInO1xuaW1wb3J0IHsgSU1hcmtkb3duSXRUb2tlbiB9IGZyb20gJy4vaS1tYXJrZG93bi1pdC10b2tlbic7XG5cbnR5cGUgQ29udGFpbmVyQXJncyA9IFsgdHlwZW9mIGNvbnRhaW5lciwgc3RyaW5nLCB7IHJlbmRlcjogYW55IH0gXVxuXG5leHBvcnQgY2xhc3MgUGFyc2VBbGVydHMge1xuXG4gIHB1YmxpYyByZW5kZXIodHlwZTogc3RyaW5nLCBtYXJrZG93bjogTWFya2Rvd25JdCk6IENvbnRhaW5lckFyZ3Mge1xuICAgIHJldHVybiBbIGNvbnRhaW5lciwgdHlwZSwge1xuICAgICAgcmVuZGVyOiAodG9rZW5zOiBJTWFya2Rvd25JdFRva2VuW10sIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0b2tlbnNbIGluZGV4IF07XG4gICAgICAgIGNvbnN0IGluZm8gPSB0b2tlbi5pbmZvLnRyaW0oKS5zbGljZSh0eXBlLmxlbmd0aCkudHJpbSgpO1xuICAgICAgICBpZiAodG9rZW4ubmVzdGluZyA9PT0gMSkge1xuICAgICAgICAgIGNvbnN0IHRpdGxlID0gbWFya2Rvd24ucmVuZGVySW5saW5lKGluZm8pO1xuICAgICAgICAgIHJldHVybiBgPGRpdiBjbGFzcz1cImYtYWxlcnQgJHsgdHlwZSB9XCI+PHAgY2xhc3M9XCJmLWFsZXJ0LXRpdGxlXCI+JHsgdGl0bGUgfTwvcD5cXG5gO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBgPC9kaXY+XFxuYDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gXTtcbiAgfVxufVxuIl19
@@ -0,0 +1,54 @@
1
+ import container from 'markdown-it-container';
2
+ import { EMarkdownContainerType } from './e-markdown-container-type';
3
+ const F_CONTAINER_CLOSE_TAG = 'container_code-group_close';
4
+ export class ParseCodeGroup {
5
+ render() {
6
+ return [container, EMarkdownContainerType.CODE_GROUP, {
7
+ render: (tokens, index) => {
8
+ if (this.isOpeningToken(tokens, index)) {
9
+ return this.openingGroupHTML(this.generateTabs(tokens, index));
10
+ }
11
+ return this.closingGroupHTML();
12
+ }
13
+ }];
14
+ }
15
+ isOpeningToken(tokens, index) {
16
+ return tokens[index].nesting === 1;
17
+ }
18
+ generateTabs(tokens, index) {
19
+ let result = '';
20
+ for (let i = index + 1; !this.isClosingToken(tokens, i); i++) {
21
+ if (this.isCodeFenceToken(tokens[i])) {
22
+ const title = this.getCodeBlockTitle(tokens[i].info);
23
+ if (title) {
24
+ result += this.generateTabButton(title);
25
+ }
26
+ }
27
+ }
28
+ return result;
29
+ }
30
+ isClosingToken(token, index) {
31
+ return token[index].nesting === -1 && token[index].type === F_CONTAINER_CLOSE_TAG;
32
+ }
33
+ isCodeFenceToken(token) {
34
+ return token.type === 'fence' && token.tag === 'code';
35
+ }
36
+ generateTabButton(title) {
37
+ return `<button class="f-tab-button">${title}</button>`;
38
+ }
39
+ openingGroupHTML(tabs) {
40
+ return `<div class="f-code-group"><div class="f-code-group-tabs">${tabs}</div><div class="f-code-group-body">\n`;
41
+ }
42
+ closingGroupHTML() {
43
+ return `</div></div>\n`;
44
+ }
45
+ getCodeBlockTitle(data) {
46
+ return data.match(/\[(.*)\]/)?.[1] || this.getCodeLanguage(data) || 'txt';
47
+ }
48
+ getCodeLanguage(data) {
49
+ return data.trim()
50
+ .replace(/=(\d*)/, '')
51
+ .replace(/^ansi$/, '');
52
+ }
53
+ }
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UtY29kZS1ncm91cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL20tcmVuZGVyL3NyYy9saWIvZi1wYWdlL2YtbWFya2Rvd24vZG9tYWluL21hcmtkb3duL3BhcnNlLW1hcmtkb3duL3BhcnNlLWNvZGUtZ3JvdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxTQUFTLE1BQU0sdUJBQXVCLENBQUM7QUFDOUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFJckUsTUFBTSxxQkFBcUIsR0FBRyw0QkFBNEIsQ0FBQztBQUUzRCxNQUFNLE9BQU8sY0FBYztJQUVsQixNQUFNO1FBQ1gsT0FBTyxDQUFFLFNBQVMsRUFBRSxzQkFBc0IsQ0FBQyxVQUFVLEVBQUU7Z0JBQ3JELE1BQU0sRUFBRSxDQUFDLE1BQTBCLEVBQUUsS0FBYSxFQUFFLEVBQUU7b0JBQ3BELElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQzt3QkFDdkMsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztvQkFDakUsQ0FBQztvQkFDRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUNqQyxDQUFDO2FBQ0YsQ0FBRSxDQUFDO0lBQ04sQ0FBQztJQUVPLGNBQWMsQ0FBQyxNQUEwQixFQUFFLEtBQWE7UUFDOUQsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRU8sWUFBWSxDQUFDLE1BQTBCLEVBQUUsS0FBYTtRQUM1RCxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFFaEIsS0FBSyxJQUFJLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUM3RCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNyQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNyRCxJQUFJLEtBQUssRUFBRSxDQUFDO29CQUNWLE1BQU0sSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzFDLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTyxjQUFjLENBQUMsS0FBeUIsRUFBRSxLQUFhO1FBQzdELE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxLQUFLLHFCQUFxQixDQUFDO0lBQ3BGLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxLQUF1QjtRQUM5QyxPQUFPLEtBQUssQ0FBQyxJQUFJLEtBQUssT0FBTyxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssTUFBTSxDQUFDO0lBQ3hELENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxLQUFhO1FBQ3JDLE9BQU8sZ0NBQWdDLEtBQUssV0FBVyxDQUFDO0lBQzFELENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxJQUFZO1FBQ25DLE9BQU8sNERBQTRELElBQUkseUNBQXlDLENBQUM7SUFDbkgsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixPQUFPLGdCQUFnQixDQUFDO0lBQzFCLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxJQUFZO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFFLENBQUMsQ0FBRSxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDO0lBQzlFLENBQUM7SUFFTyxlQUFlLENBQUMsSUFBWTtRQUNsQyxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUU7YUFDZixPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQzthQUNyQixPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzNCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjb250YWluZXIgZnJvbSAnbWFya2Rvd24taXQtY29udGFpbmVyJztcbmltcG9ydCB7IEVNYXJrZG93bkNvbnRhaW5lclR5cGUgfSBmcm9tICcuL2UtbWFya2Rvd24tY29udGFpbmVyLXR5cGUnO1xuaW1wb3J0IHsgSU1hcmtkb3duSXRUb2tlbiB9IGZyb20gJy4vaS1tYXJrZG93bi1pdC10b2tlbic7XG5cbnR5cGUgQ29udGFpbmVyQXJncyA9IFsgdHlwZW9mIGNvbnRhaW5lciwgc3RyaW5nLCB7IHJlbmRlcjogYW55IH0gXVxuY29uc3QgRl9DT05UQUlORVJfQ0xPU0VfVEFHID0gJ2NvbnRhaW5lcl9jb2RlLWdyb3VwX2Nsb3NlJztcblxuZXhwb3J0IGNsYXNzIFBhcnNlQ29kZUdyb3VwIHtcblxuICBwdWJsaWMgcmVuZGVyKCk6IENvbnRhaW5lckFyZ3Mge1xuICAgIHJldHVybiBbIGNvbnRhaW5lciwgRU1hcmtkb3duQ29udGFpbmVyVHlwZS5DT0RFX0dST1VQLCB7XG4gICAgICByZW5kZXI6ICh0b2tlbnM6IElNYXJrZG93bkl0VG9rZW5bXSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICBpZiAodGhpcy5pc09wZW5pbmdUb2tlbih0b2tlbnMsIGluZGV4KSkge1xuICAgICAgICAgIHJldHVybiB0aGlzLm9wZW5pbmdHcm91cEhUTUwodGhpcy5nZW5lcmF0ZVRhYnModG9rZW5zLCBpbmRleCkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmNsb3NpbmdHcm91cEhUTUwoKTtcbiAgICAgIH1cbiAgICB9IF07XG4gIH1cblxuICBwcml2YXRlIGlzT3BlbmluZ1Rva2VuKHRva2VuczogSU1hcmtkb3duSXRUb2tlbltdLCBpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRva2Vuc1tpbmRleF0ubmVzdGluZyA9PT0gMTtcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVUYWJzKHRva2VuczogSU1hcmtkb3duSXRUb2tlbltdLCBpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBsZXQgcmVzdWx0ID0gJyc7XG5cbiAgICBmb3IgKGxldCBpID0gaW5kZXggKyAxOyAhdGhpcy5pc0Nsb3NpbmdUb2tlbih0b2tlbnMsIGkpOyBpKyspIHtcbiAgICAgIGlmICh0aGlzLmlzQ29kZUZlbmNlVG9rZW4odG9rZW5zW2ldKSkge1xuICAgICAgICBjb25zdCB0aXRsZSA9IHRoaXMuZ2V0Q29kZUJsb2NrVGl0bGUodG9rZW5zW2ldLmluZm8pO1xuICAgICAgICBpZiAodGl0bGUpIHtcbiAgICAgICAgICByZXN1bHQgKz0gdGhpcy5nZW5lcmF0ZVRhYkJ1dHRvbih0aXRsZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBpc0Nsb3NpbmdUb2tlbih0b2tlbjogSU1hcmtkb3duSXRUb2tlbltdLCBpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRva2VuW2luZGV4XS5uZXN0aW5nID09PSAtMSAmJiB0b2tlbltpbmRleF0udHlwZSA9PT0gRl9DT05UQUlORVJfQ0xPU0VfVEFHO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0NvZGVGZW5jZVRva2VuKHRva2VuOiBJTWFya2Rvd25JdFRva2VuKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRva2VuLnR5cGUgPT09ICdmZW5jZScgJiYgdG9rZW4udGFnID09PSAnY29kZSc7XG4gIH1cblxuICBwcml2YXRlIGdlbmVyYXRlVGFiQnV0dG9uKHRpdGxlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgPGJ1dHRvbiBjbGFzcz1cImYtdGFiLWJ1dHRvblwiPiR7dGl0bGV9PC9idXR0b24+YDtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbmluZ0dyb3VwSFRNTCh0YWJzOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgPGRpdiBjbGFzcz1cImYtY29kZS1ncm91cFwiPjxkaXYgY2xhc3M9XCJmLWNvZGUtZ3JvdXAtdGFic1wiPiR7dGFic308L2Rpdj48ZGl2IGNsYXNzPVwiZi1jb2RlLWdyb3VwLWJvZHlcIj5cXG5gO1xuICB9XG5cbiAgcHJpdmF0ZSBjbG9zaW5nR3JvdXBIVE1MKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGA8L2Rpdj48L2Rpdj5cXG5gO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb2RlQmxvY2tUaXRsZShkYXRhOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBkYXRhLm1hdGNoKC9cXFsoLiopXFxdLyk/LlsgMSBdIHx8IHRoaXMuZ2V0Q29kZUxhbmd1YWdlKGRhdGEpIHx8ICd0eHQnO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb2RlTGFuZ3VhZ2UoZGF0YTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZGF0YS50cmltKClcbiAgICAgIC5yZXBsYWNlKC89KFxcZCopLywgJycpXG4gICAgICAucmVwbGFjZSgvXmFuc2kkLywgJycpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,15 @@
1
+ export class ParseCodeView {
2
+ render(markdown) {
3
+ const fence = markdown.renderer.rules.fence;
4
+ if (!fence) {
5
+ throw new Error('Markdown renderer does not have a fence rule.');
6
+ }
7
+ markdown.renderer.rules.fence = (tokens, index, ...rest) => {
8
+ return (`<div class="f-code-view">${fence(tokens, index, ...rest)}</div>`);
9
+ };
10
+ }
11
+ cleanTokenInfo(info) {
12
+ return info.replace(/\[.*\]/, '');
13
+ }
14
+ }
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UtY29kZS12aWV3LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbS1yZW5kZXIvc3JjL2xpYi9mLXBhZ2UvZi1tYXJrZG93bi9kb21haW4vbWFya2Rvd24vcGFyc2UtbWFya2Rvd24vcGFyc2UtY29kZS12aWV3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBTyxhQUFhO0lBRWpCLE1BQU0sQ0FBQyxRQUFvQjtRQUNoQyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUE0QixDQUFDO1FBQ25FLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLE1BQU0sSUFBSSxLQUFLLENBQUMsK0NBQStDLENBQUMsQ0FBQztRQUNuRSxDQUFDO1FBRUQsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsTUFBMEIsRUFBRSxLQUFhLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRTtZQUNyRixPQUFPLENBQ0wsNEJBQTZCLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFFLFFBQVEsQ0FDcEUsQ0FBQztRQUNKLENBQUMsQ0FBQTtJQUNILENBQUM7SUFFTyxjQUFjLENBQUMsSUFBWTtRQUNqQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBNYXJrZG93bkl0IGZyb20gJ21hcmtkb3duLWl0JztcbmltcG9ydCB7IElNYXJrZG93bkl0VG9rZW4gfSBmcm9tICcuL2ktbWFya2Rvd24taXQtdG9rZW4nO1xuXG5leHBvcnQgY2xhc3MgUGFyc2VDb2RlVmlldyB7XG5cbiAgcHVibGljIHJlbmRlcihtYXJrZG93bjogTWFya2Rvd25JdCk6IHZvaWQge1xuICAgIGNvbnN0IGZlbmNlID0gbWFya2Rvd24ucmVuZGVyZXIucnVsZXMuZmVuY2UgYXMgdW5rbm93biBhcyBGdW5jdGlvbjtcbiAgICBpZiAoIWZlbmNlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ01hcmtkb3duIHJlbmRlcmVyIGRvZXMgbm90IGhhdmUgYSBmZW5jZSBydWxlLicpO1xuICAgIH1cblxuICAgIG1hcmtkb3duLnJlbmRlcmVyLnJ1bGVzLmZlbmNlID0gKHRva2VuczogSU1hcmtkb3duSXRUb2tlbltdLCBpbmRleDogbnVtYmVyLCAuLi5yZXN0KSA9PiB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBgPGRpdiBjbGFzcz1cImYtY29kZS12aWV3XCI+JHsgZmVuY2UodG9rZW5zLCBpbmRleCwgLi4ucmVzdCkgfTwvZGl2PmBcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjbGVhblRva2VuSW5mbyhpbmZvOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBpbmZvLnJlcGxhY2UoL1xcWy4qXFxdLywgJycpO1xuICB9XG59XG4iXX0=