@decaf-ts/for-angular 0.1.3 → 0.1.4

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 (374) hide show
  1. package/.editorconfig +31 -0
  2. package/.gitlab-ci.yml +197 -0
  3. package/.hintrc +19 -0
  4. package/.prettierrc +49 -0
  5. package/.snyk +13 -0
  6. package/LICENSE.md +260 -0
  7. package/angular.json +274 -0
  8. package/bs-config.json +5 -0
  9. package/cli-module.js.map +1 -0
  10. package/dist/for-angular/cli/cli-module.d.ts +22 -0
  11. package/dist/for-angular/cli/cli-module.d.ts.map +1 -0
  12. package/dist/for-angular/cli/cli-module.js +131 -0
  13. package/dist/for-angular/cli/cli-module.js.map +1 -0
  14. package/dist/lib/README.md +117 -0
  15. package/eslint.config.mjs +101 -0
  16. package/ionic.config.json +14 -0
  17. package/jest.config.ts +52 -0
  18. package/jest.setup.ts +50 -0
  19. package/karma.conf.js +50 -0
  20. package/ng-package.json +16 -0
  21. package/ngsw-config.json +30 -0
  22. package/package.json +86 -17
  23. package/playwright.config.ts +80 -0
  24. package/resources/favicon.png +0 -0
  25. package/resources/favicon.svg +29 -0
  26. package/resources/icon-background.png +0 -0
  27. package/resources/icon-foreground.png +0 -0
  28. package/resources/icon-only.png +0 -0
  29. package/resources/icon-only.svg +29 -0
  30. package/resources/splash-dark.png +0 -0
  31. package/resources/splash-dark2.png +0 -0
  32. package/resources/splash.png +0 -0
  33. package/resources/splash2.png +0 -0
  34. package/resources/touch-icon.svg +29 -0
  35. package/schematics/README.md +28 -0
  36. package/schematics/collection.json +20 -0
  37. package/schematics/package-lock.json +1501 -0
  38. package/schematics/package.json +37 -0
  39. package/schematics/src/component/files/__name@dasherize@if-flat__/__name@dasherize__.__type@dasherize__.__style__.template +0 -0
  40. package/schematics/src/component/files/__name@dasherize@if-flat__/__name@dasherize__.__type@dasherize__.html.template +3 -0
  41. package/schematics/src/component/files/__name@dasherize@if-flat__/__name@dasherize__.__type@dasherize__.spec.ts.template +40 -0
  42. package/schematics/src/component/files/__name@dasherize@if-flat__/__name@dasherize__.__type@dasherize__.ts.template +37 -0
  43. package/schematics/src/component/files/__name@dasherize@if-flat__/__name@dasherize__.module.ts.template +14 -0
  44. package/schematics/src/component/index.js +146 -0
  45. package/schematics/src/component/schema.js +2 -0
  46. package/schematics/src/component/schema.json +101 -0
  47. package/schematics/src/page/files/__name@dasherize__.page.html.template +15 -0
  48. package/schematics/src/page/files/__name@dasherize__.page.scss.template +0 -0
  49. package/schematics/src/page/files/__name@dasherize__.page.ts.template +19 -0
  50. package/schematics/src/page/index.js +71 -0
  51. package/schematics/src/page/schema.json +87 -0
  52. package/schematics/src/schematics/index.js +11 -0
  53. package/schematics/src/schematics/index_spec.js +13 -0
  54. package/schematics/src/util/ast-util.js +517 -0
  55. package/schematics/src/util/change.js +96 -0
  56. package/schematics/src/util/index.js +14 -0
  57. package/settings.json +112 -0
  58. package/tsconfig.app.json +22 -0
  59. package/tsconfig.cli.json +82 -0
  60. package/tsconfig.lib.json +14 -0
  61. package/tsconfig.lib.prod.json +10 -0
  62. package/tsconfig.spec.json +22 -0
  63. package/webpack.config.js +10 -0
  64. package/workdocs/1-Header.md +5 -0
  65. package/workdocs/2-Badges.md +30 -0
  66. package/workdocs/4-Description.md +4 -0
  67. package/workdocs/5-HowToUse.md +27 -0
  68. package/workdocs/6-Related.md +7 -0
  69. package/workdocs/7-Social.md +5 -0
  70. package/workdocs/99-Footer.md +28 -0
  71. package/workdocs/Readme.md +12 -0
  72. package/workdocs/assets/apple-touch-icon.png +0 -0
  73. package/workdocs/assets/decaf-logo.svg +54 -0
  74. package/workdocs/assets/favicon.png +0 -0
  75. package/workdocs/assets/slogans.json +182 -0
  76. package/workdocs/confluence/.markdown-confluence.template.json +6 -0
  77. package/workdocs/confluence/Angular Module.md +5 -0
  78. package/workdocs/drawings/diagram.drawio +24 -0
  79. package/workdocs/prompts/bulk.md +122 -0
  80. package/workdocs/prompts/code.md +47 -0
  81. package/workdocs/prompts/documentation.md +146 -0
  82. package/workdocs/prompts/uml.md +11 -0
  83. package/workdocs/readme-md.json +6 -0
  84. package/workdocs/reports/CHANGELOG.md +12 -0
  85. package/workdocs/reports/DEPENDENCIES.md +213 -0
  86. package/workdocs/reports/RELEASE_NOTES.md +24 -0
  87. package/workdocs/reports/coverage/.gitkeep +0 -0
  88. package/workdocs/reports/coverage/clover.xml +4110 -0
  89. package/workdocs/reports/coverage/coverage-final.json +76 -0
  90. package/workdocs/reports/coverage/lcov-report/base.css +224 -0
  91. package/workdocs/reports/coverage/lcov-report/block-navigation.js +87 -0
  92. package/workdocs/reports/coverage/lcov-report/favicon.png +0 -0
  93. package/workdocs/reports/coverage/lcov-report/index.html +551 -0
  94. package/workdocs/reports/coverage/lcov-report/prettify.css +1 -0
  95. package/workdocs/reports/coverage/lcov-report/prettify.js +2 -0
  96. package/workdocs/reports/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  97. package/workdocs/reports/coverage/lcov-report/sorter.js +210 -0
  98. package/workdocs/reports/coverage/lcov-report/src/app/models/CategoryModel.ts.html +277 -0
  99. package/workdocs/reports/coverage/lcov-report/src/app/models/DemoModel.ts.html +427 -0
  100. package/workdocs/reports/coverage/lcov-report/src/app/models/UserModel.ts.html +226 -0
  101. package/workdocs/reports/coverage/lcov-report/src/app/models/index.html +146 -0
  102. package/workdocs/reports/coverage/lcov-report/src/cli-module.ts.html +502 -0
  103. package/workdocs/reports/coverage/lcov-report/src/environments/environment.ts.html +166 -0
  104. package/workdocs/reports/coverage/lcov-report/src/environments/index.html +116 -0
  105. package/workdocs/reports/coverage/lcov-report/src/index.html +191 -0
  106. package/workdocs/reports/coverage/lcov-report/src/karma-test.ts.html +121 -0
  107. package/workdocs/reports/coverage/lcov-report/src/lib/components/card/card.component.ts.html +625 -0
  108. package/workdocs/reports/coverage/lcov-report/src/lib/components/card/index.html +116 -0
  109. package/workdocs/reports/coverage/lcov-report/src/lib/components/component-renderer/component-renderer.component.ts.html +772 -0
  110. package/workdocs/reports/coverage/lcov-report/src/lib/components/component-renderer/index.html +116 -0
  111. package/workdocs/reports/coverage/lcov-report/src/lib/components/crud-field/crud-field.component.ts.html +2698 -0
  112. package/workdocs/reports/coverage/lcov-report/src/lib/components/crud-field/index.html +116 -0
  113. package/workdocs/reports/coverage/lcov-report/src/lib/components/crud-form/constants.ts.html +133 -0
  114. package/workdocs/reports/coverage/lcov-report/src/lib/components/crud-form/crud-form.component.ts.html +346 -0
  115. package/workdocs/reports/coverage/lcov-report/src/lib/components/crud-form/index.html +116 -0
  116. package/workdocs/reports/coverage/lcov-report/src/lib/components/empty-state/empty-state.component.ts.html +1264 -0
  117. package/workdocs/reports/coverage/lcov-report/src/lib/components/empty-state/index.html +116 -0
  118. package/workdocs/reports/coverage/lcov-report/src/lib/components/fieldset/fieldset.component.ts.html +2965 -0
  119. package/workdocs/reports/coverage/lcov-report/src/lib/components/fieldset/index.html +116 -0
  120. package/workdocs/reports/coverage/lcov-report/src/lib/components/file-upload/file-upload.component.ts.html +2263 -0
  121. package/workdocs/reports/coverage/lcov-report/src/lib/components/file-upload/index.html +116 -0
  122. package/workdocs/reports/coverage/lcov-report/src/lib/components/filter/filter.component.ts.html +2485 -0
  123. package/workdocs/reports/coverage/lcov-report/src/lib/components/filter/index.html +116 -0
  124. package/workdocs/reports/coverage/lcov-report/src/lib/components/for-angular-components.module.ts.html +259 -0
  125. package/workdocs/reports/coverage/lcov-report/src/lib/components/icon/icon.component.ts.html +358 -0
  126. package/workdocs/reports/coverage/lcov-report/src/lib/components/icon/index.html +116 -0
  127. package/workdocs/reports/coverage/lcov-report/src/lib/components/index.html +131 -0
  128. package/workdocs/reports/coverage/lcov-report/src/lib/components/index.ts.html +181 -0
  129. package/workdocs/reports/coverage/lcov-report/src/lib/components/layout/index.html +116 -0
  130. package/workdocs/reports/coverage/lcov-report/src/lib/components/layout/layout.component.ts.html +943 -0
  131. package/workdocs/reports/coverage/lcov-report/src/lib/components/list/index.html +116 -0
  132. package/workdocs/reports/coverage/lcov-report/src/lib/components/list/list.component.ts.html +4261 -0
  133. package/workdocs/reports/coverage/lcov-report/src/lib/components/list-item/index.html +116 -0
  134. package/workdocs/reports/coverage/lcov-report/src/lib/components/list-item/list-item.component.ts.html +1741 -0
  135. package/workdocs/reports/coverage/lcov-report/src/lib/components/modal/index.html +116 -0
  136. package/workdocs/reports/coverage/lcov-report/src/lib/components/modal/modal.component.ts.html +1984 -0
  137. package/workdocs/reports/coverage/lcov-report/src/lib/components/model-renderer/index.html +116 -0
  138. package/workdocs/reports/coverage/lcov-report/src/lib/components/model-renderer/model-renderer.component.ts.html +373 -0
  139. package/workdocs/reports/coverage/lcov-report/src/lib/components/pagination/index.html +116 -0
  140. package/workdocs/reports/coverage/lcov-report/src/lib/components/pagination/pagination.component.ts.html +1165 -0
  141. package/workdocs/reports/coverage/lcov-report/src/lib/components/searchbar/index.html +116 -0
  142. package/workdocs/reports/coverage/lcov-report/src/lib/components/searchbar/searchbar.component.ts.html +1774 -0
  143. package/workdocs/reports/coverage/lcov-report/src/lib/components/stepped-form/index.html +116 -0
  144. package/workdocs/reports/coverage/lcov-report/src/lib/components/stepped-form/stepped-form.component.ts.html +1219 -0
  145. package/workdocs/reports/coverage/lcov-report/src/lib/components/table/index.html +116 -0
  146. package/workdocs/reports/coverage/lcov-report/src/lib/components/table/table.component.ts.html +988 -0
  147. package/workdocs/reports/coverage/lcov-report/src/lib/directives/NgxSvgDirective.ts.html +163 -0
  148. package/workdocs/reports/coverage/lcov-report/src/lib/directives/collapsable.directive.ts.html +268 -0
  149. package/workdocs/reports/coverage/lcov-report/src/lib/directives/index.html +131 -0
  150. package/workdocs/reports/coverage/lcov-report/src/lib/directives/index.ts.html +91 -0
  151. package/workdocs/reports/coverage/lcov-report/src/lib/engine/DynamicModule.ts.html +133 -0
  152. package/workdocs/reports/coverage/lcov-report/src/lib/engine/MediaService.ts.html +142 -0
  153. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxBaseComponent.ts.html +2194 -0
  154. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxComponentDirective.ts.html +3430 -0
  155. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxCrudFormField.ts.html +721 -0
  156. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxDecafComponentDirective.ts.html +1864 -0
  157. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxDecafFormFieldDirective.ts.html +952 -0
  158. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxDecafFormService.ts.html +3211 -0
  159. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxEventHandler.ts.html +307 -0
  160. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxFormDirective.ts.html +1366 -0
  161. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxFormFieldDirective.ts.html +1960 -0
  162. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxFormService.ts.html +3004 -0
  163. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxModelPageDirective.ts.html +1672 -0
  164. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxPageDirective.ts.html +748 -0
  165. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxParentComponentDirective.ts.html +775 -0
  166. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxRenderableComponentDirective.ts.html +727 -0
  167. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxRenderingEngine.ts.html +2005 -0
  168. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxRepositoryDirective.ts.html +1561 -0
  169. package/workdocs/reports/coverage/lcov-report/src/lib/engine/ValidatorFactory.ts.html +817 -0
  170. package/workdocs/reports/coverage/lcov-report/src/lib/engine/constants.ts.html +1120 -0
  171. package/workdocs/reports/coverage/lcov-report/src/lib/engine/decorators.ts.html +376 -0
  172. package/workdocs/reports/coverage/lcov-report/src/lib/engine/helpers.ts.html +676 -0
  173. package/workdocs/reports/coverage/lcov-report/src/lib/engine/index.html +356 -0
  174. package/workdocs/reports/coverage/lcov-report/src/lib/engine/index.ts.html +160 -0
  175. package/workdocs/reports/coverage/lcov-report/src/lib/engine/overrides.ts.html +499 -0
  176. package/workdocs/reports/coverage/lcov-report/src/lib/for-angular-common.module.ts.html +298 -0
  177. package/workdocs/reports/coverage/lcov-report/src/lib/helpers/index.html +131 -0
  178. package/workdocs/reports/coverage/lcov-report/src/lib/helpers/index.ts.html +121 -0
  179. package/workdocs/reports/coverage/lcov-report/src/lib/helpers/utils.ts.html +1603 -0
  180. package/workdocs/reports/coverage/lcov-report/src/lib/i18n/FakeLoader.ts.html +157 -0
  181. package/workdocs/reports/coverage/lcov-report/src/lib/i18n/Loader.ts.html +826 -0
  182. package/workdocs/reports/coverage/lcov-report/src/lib/i18n/index.html +146 -0
  183. package/workdocs/reports/coverage/lcov-report/src/lib/i18n/index.ts.html +91 -0
  184. package/workdocs/reports/coverage/lcov-report/src/lib/index.html +131 -0
  185. package/workdocs/reports/coverage/lcov-report/src/lib/public-apis.ts.html +157 -0
  186. package/workdocs/reports/coverage/lcov-report/src/lib/services/NgxFormService.ts.html +3460 -0
  187. package/workdocs/reports/coverage/lcov-report/src/lib/services/NgxMediaService.ts.html +1420 -0
  188. package/workdocs/reports/coverage/lcov-report/src/lib/services/NgxRouterService.ts.html +1231 -0
  189. package/workdocs/reports/coverage/lcov-report/src/lib/services/NgxTranslateService.ts.html +214 -0
  190. package/workdocs/reports/coverage/lcov-report/src/lib/services/index.html +176 -0
  191. package/workdocs/reports/coverage/lcov-report/src/lib/services/index.ts.html +91 -0
  192. package/workdocs/reports/coverage/lcov-report/src/lib/utils/DecafFakerRepository.ts.html +571 -0
  193. package/workdocs/reports/coverage/lcov-report/src/lib/utils/helpers.ts.html +1663 -0
  194. package/workdocs/reports/coverage/lcov-report/src/lib/utils/index.html +146 -0
  195. package/workdocs/reports/coverage/lcov-report/src/lib/utils/index.ts.html +124 -0
  196. package/workdocs/reports/coverage/lcov-report/src/main.ts.html +100 -0
  197. package/workdocs/reports/coverage/lcov-report/src/polyfills.ts.html +271 -0
  198. package/workdocs/reports/coverage/lcov-report/src/stories/Configure.stories.ts.html +1156 -0
  199. package/workdocs/reports/coverage/lcov-report/src/stories/button.component.ts.html +229 -0
  200. package/workdocs/reports/coverage/lcov-report/src/stories/button.stories.ts.html +235 -0
  201. package/workdocs/reports/coverage/lcov-report/src/stories/crud-field.stories.ts.html +325 -0
  202. package/workdocs/reports/coverage/lcov-report/src/stories/header.stories.ts.html +181 -0
  203. package/workdocs/reports/coverage/lcov-report/src/stories/index.html +281 -0
  204. package/workdocs/reports/coverage/lcov-report/src/stories/list.stories.ts.html +289 -0
  205. package/workdocs/reports/coverage/lcov-report/src/stories/login.page.stories.ts.html +175 -0
  206. package/workdocs/reports/coverage/lcov-report/src/stories/model-renderer.stories.ts.html +259 -0
  207. package/workdocs/reports/coverage/lcov-report/src/stories/page.component.ts.html +331 -0
  208. package/workdocs/reports/coverage/lcov-report/src/stories/page.stories.ts.html +193 -0
  209. package/workdocs/reports/coverage/lcov-report/src/stories/setup.ts.html +127 -0
  210. package/workdocs/reports/coverage/lcov-report/src/stories/utils.ts.html +247 -0
  211. package/workdocs/reports/coverage/lcov-report/src/tests/index.html +116 -0
  212. package/workdocs/reports/coverage/lcov-report/src/tests/karmaErrorParser.ts.html +190 -0
  213. package/workdocs/reports/coverage/lcov-report/src/typings.d.ts.html +88 -0
  214. package/workdocs/reports/coverage/lcov-report/src/zone-flags.ts.html +103 -0
  215. package/workdocs/reports/coverage/lcov.info +7917 -0
  216. package/workdocs/reports/data/.gitkeep +1 -0
  217. package/workdocs/reports/html/.gitkeep +0 -0
  218. package/workdocs/reports/html/jest-html-reporters-attach/test-report/index.js +3 -0
  219. package/workdocs/reports/html/jest-html-reporters-attach/test-report/result.js +1 -0
  220. package/workdocs/reports/html/test-report.html +1 -0
  221. package/workdocs/reports/images/.gitkeep +1 -0
  222. package/workdocs/reports/jest.coverage.config.ts +43 -0
  223. package/workdocs/reports/junit/junit-report.xml +91 -0
  224. package/workdocs/resources/.gitlock +0 -0
  225. package/workdocs/resources/diagram-Actor.png +0 -0
  226. package/workdocs/resources/diagram-banner.png +0 -0
  227. package/workdocs/resources/diagram.png +0 -0
  228. package/workdocs/tutorials/Contributing.md +64 -0
  229. package/workdocs/tutorials/Documentation.md +340 -0
  230. package/workdocs/tutorials/For Developers.md +337 -0
  231. package/workdocs/uml/diagram.puml +11 -0
  232. package/www/1049.10b030f0de36543b.js +1 -0
  233. package/www/1102.67cedfb3e29f0a05.js +1 -0
  234. package/www/1107.6454396befef800d.js +1 -0
  235. package/www/1459.cabc18e941afa5d7.js +1 -0
  236. package/www/1577.5221deebe3501e43.js +1 -0
  237. package/www/2075.b6dc4fbb89dd6afc.js +1 -0
  238. package/www/2348.c4cc27dadbec70ec.js +1 -0
  239. package/www/2375.318d0b24ab346271.js +1 -0
  240. package/www/2415.618d6968ffda319c.js +1 -0
  241. package/www/2460.1d97c6f48b898ee2.js +1 -0
  242. package/www/2560.2e7000dcf80b6b2c.js +1 -0
  243. package/www/2585.dffa5649fffafb44.js +1 -0
  244. package/www/2885.d99b86afd1ff7aa8.js +1 -0
  245. package/www/3162.bbc401f4a5f82460.js +1 -0
  246. package/www/323.f64c512be5c8d797.js +1 -0
  247. package/www/3238.a3e7e8004c6b6667.js +1 -0
  248. package/www/3506.8c03f5589b33a4a6.js +1 -0
  249. package/www/3511.56b7e49bb6c2c936.js +1 -0
  250. package/www/3519.84fbb67dc803f702.js +1 -0
  251. package/www/3675.7ebfdcf145052232.js +1 -0
  252. package/www/3814.765c1794e1be63de.js +1 -0
  253. package/www/3rdpartylicenses.txt +1344 -0
  254. package/www/4171.a974bdbf9c97e4e1.js +1 -0
  255. package/www/4183.41ef1def450a2cc0.js +1 -0
  256. package/www/4406.0b2dd3839b8c1417.js +1 -0
  257. package/www/441.e1031657c7e5f0ff.js +1 -0
  258. package/www/4463.6ad7b857e5f34009.js +1 -0
  259. package/www/4591.42f34534d38b9b31.js +1 -0
  260. package/www/4699.8df8ea9806163d4c.js +1 -0
  261. package/www/5100.ed6483c55a157d67.js +1 -0
  262. package/www/5193.15ea6938534eceb1.js +1 -0
  263. package/www/5197.6733853529768a45.js +1 -0
  264. package/www/5222.8439a641c2c4b1c1.js +1 -0
  265. package/www/5373.d7878f708309f038.js +1 -0
  266. package/www/5467.53f5cce977c2e28b.js +1 -0
  267. package/www/5712.b08cf436ee8145ce.js +1 -0
  268. package/www/5887.3d038f564e925abb.js +1 -0
  269. package/www/5949.37330f20e95dee79.js +1 -0
  270. package/www/6024.c10cc3d1b341c748.js +1 -0
  271. package/www/6433.360fcff952bde822.js +1 -0
  272. package/www/6499.60169da9869db697.js +1 -0
  273. package/www/6521.fab1f34bfe6b8200.js +1 -0
  274. package/www/6631.eaa711da6e0aeed9.js +1 -0
  275. package/www/6717.b4731255038304cd.js +1 -0
  276. package/www/6840.7317cd962ab23932.js +1 -0
  277. package/www/7030.d115d82ca7468a4e.js +1 -0
  278. package/www/7076.cce20ed5c79ff305.js +1 -0
  279. package/www/7179.c0545989ce869b3d.js +1 -0
  280. package/www/7240.69aeb484d78eb24d.js +1 -0
  281. package/www/7372.94c62459e34f7303.js +1 -0
  282. package/www/7402.983a5ecff61e9a5d.js +1 -0
  283. package/www/7428.527ac48035a2f915.js +1 -0
  284. package/www/7676.d7db23d350e4b096.js +1 -0
  285. package/www/770.80af87d5eb0075d3.js +1 -0
  286. package/www/7720.0701576cb9966779.js +1 -0
  287. package/www/7927.ee869d0dc478250a.js +1 -0
  288. package/www/8066.894688fbb2e5c832.js +1 -0
  289. package/www/8193.7f09ecd40b6d42c2.js +1 -0
  290. package/www/8255.158098a6302c91c2.js +1 -0
  291. package/www/8314.596c1ccf26b9c93a.js +1 -0
  292. package/www/8357.c5406b92e6933d7a.js +1 -0
  293. package/www/8477.a3ccc11c25a642d3.js +1 -0
  294. package/www/8487.93b6f7465ae1b7ac.js +1 -0
  295. package/www/8584.b77ad478a5a7ac2a.js +1 -0
  296. package/www/8805.a87413652185ff8f.js +1 -0
  297. package/www/8814.b489a78ae8e926c4.js +1 -0
  298. package/www/8970.234b3db1f97528fe.js +1 -0
  299. package/www/9013.c2e6ba17a915bdd6.js +1 -0
  300. package/www/9073.16c4e42482d55a3c.js +1 -0
  301. package/www/9344.7d2d24b194b794e2.js +1 -0
  302. package/www/9364.9a028036dd89e3e7.js +1 -0
  303. package/www/944.7e4317348c48d4f4.js +1 -0
  304. package/www/964.9a979e1c1aad0f5b.js +1 -0
  305. package/www/9657.8c3589a0aff521c0.js +1 -0
  306. package/www/9956.2d00a2153e9a7799.js +1 -0
  307. package/www/9977.068cd5561462bc99.js +1 -0
  308. package/www/assets/i18n/en.json +210 -0
  309. package/www/assets/i18n/ew/en.json +346 -0
  310. package/www/assets/i18n/pt.json +186 -0
  311. package/www/assets/icons/icon-128.webp +0 -0
  312. package/www/assets/icons/icon-192.webp +0 -0
  313. package/www/assets/icons/icon-256.webp +0 -0
  314. package/www/assets/icons/icon-48.webp +0 -0
  315. package/www/assets/icons/icon-512.webp +0 -0
  316. package/www/assets/icons/icon-72.webp +0 -0
  317. package/www/assets/icons/icon-96.webp +0 -0
  318. package/www/assets/images/angular-logo.svg +45 -0
  319. package/www/assets/images/apple-touch-icon.png +0 -0
  320. package/www/assets/images/decaf-logo-black.svg +22 -0
  321. package/www/assets/images/decaf-logo-contrast.svg +54 -0
  322. package/www/assets/images/decaf-logo-white.svg +22 -0
  323. package/www/assets/images/decaf-logo.svg +54 -0
  324. package/www/assets/images/ew/product.txt +1 -0
  325. package/www/assets/images/favicon-contrast.svg +7 -0
  326. package/www/assets/images/favicon.png +0 -0
  327. package/www/assets/images/favicon.svg +29 -0
  328. package/www/assets/images/icons/document.svg +7 -0
  329. package/www/assets/images/icons/edit.svg +1 -0
  330. package/www/assets/images/icons/logout.svg +4 -0
  331. package/www/assets/images/icons/menu-collapse.svg +5 -0
  332. package/www/assets/images/icons/menu.svg +3 -0
  333. package/www/assets/images/icons/moon-stars.svg +5 -0
  334. package/www/assets/images/icons/trash.svg +1 -0
  335. package/www/cli-module.ts +139 -0
  336. package/www/common.e50b5f8708aca9a5.js +1 -0
  337. package/www/index.html +29 -0
  338. package/www/main.6144bf417dec1977.js +1 -0
  339. package/www/polyfills.4c1e087fffe784e8.js +1 -0
  340. package/www/runtime.d8dcb0932f88fe3c.js +1 -0
  341. package/www/styles.5a3cd83eba16afc9.css +4 -0
  342. package/www/tabler-icons.bfabe54eef86ae62.woff +0 -0
  343. package/www/tabler-icons.d9f65ab9439b4ffc.ttf +0 -0
  344. package/www/tabler-icons.f17d2c3b34a5deaa.woff2 +0 -0
  345. /package/{assets → dist/lib/assets}/i18n/en.json +0 -0
  346. /package/{assets → dist/lib/assets}/i18n/ew/en.json +0 -0
  347. /package/{assets → dist/lib/assets}/i18n/pt.json +0 -0
  348. /package/{assets → dist/lib/assets}/icons/icon-128.webp +0 -0
  349. /package/{assets → dist/lib/assets}/icons/icon-192.webp +0 -0
  350. /package/{assets → dist/lib/assets}/icons/icon-256.webp +0 -0
  351. /package/{assets → dist/lib/assets}/icons/icon-48.webp +0 -0
  352. /package/{assets → dist/lib/assets}/icons/icon-512.webp +0 -0
  353. /package/{assets → dist/lib/assets}/icons/icon-72.webp +0 -0
  354. /package/{assets → dist/lib/assets}/icons/icon-96.webp +0 -0
  355. /package/{assets → dist/lib/assets}/images/angular-logo.svg +0 -0
  356. /package/{assets → dist/lib/assets}/images/apple-touch-icon.png +0 -0
  357. /package/{assets → dist/lib/assets}/images/decaf-logo-black.svg +0 -0
  358. /package/{assets → dist/lib/assets}/images/decaf-logo-contrast.svg +0 -0
  359. /package/{assets → dist/lib/assets}/images/decaf-logo-white.svg +0 -0
  360. /package/{assets → dist/lib/assets}/images/decaf-logo.svg +0 -0
  361. /package/{assets → dist/lib/assets}/images/ew/product.txt +0 -0
  362. /package/{assets → dist/lib/assets}/images/favicon-contrast.svg +0 -0
  363. /package/{assets → dist/lib/assets}/images/favicon.png +0 -0
  364. /package/{assets → dist/lib/assets}/images/favicon.svg +0 -0
  365. /package/{assets → dist/lib/assets}/images/icons/document.svg +0 -0
  366. /package/{assets → dist/lib/assets}/images/icons/edit.svg +0 -0
  367. /package/{assets → dist/lib/assets}/images/icons/logout.svg +0 -0
  368. /package/{assets → dist/lib/assets}/images/icons/menu-collapse.svg +0 -0
  369. /package/{assets → dist/lib/assets}/images/icons/menu.svg +0 -0
  370. /package/{assets → dist/lib/assets}/images/icons/moon-stars.svg +0 -0
  371. /package/{assets → dist/lib/assets}/images/icons/trash.svg +0 -0
  372. /package/{fesm2022 → dist/lib/fesm2022}/decaf-ts-for-angular.mjs +0 -0
  373. /package/{fesm2022 → dist/lib/fesm2022}/decaf-ts-for-angular.mjs.map +0 -0
  374. /package/{index.d.ts → dist/lib/index.d.ts} +0 -0
@@ -0,0 +1,1231 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/lib/services/NgxRouterService.ts</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../../../prettify.css" />
9
+ <link rel="stylesheet" href="../../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../../../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../../../index.html">All files</a> / <a href="index.html">src/lib/services</a> NgxRouterService.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">52.5% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>21/40</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">22.72% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>5/22</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">36.36% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>4/11</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">52.77% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>19/36</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line high'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a>
79
+ <a name='L14'></a><a href='#L14'>14</a>
80
+ <a name='L15'></a><a href='#L15'>15</a>
81
+ <a name='L16'></a><a href='#L16'>16</a>
82
+ <a name='L17'></a><a href='#L17'>17</a>
83
+ <a name='L18'></a><a href='#L18'>18</a>
84
+ <a name='L19'></a><a href='#L19'>19</a>
85
+ <a name='L20'></a><a href='#L20'>20</a>
86
+ <a name='L21'></a><a href='#L21'>21</a>
87
+ <a name='L22'></a><a href='#L22'>22</a>
88
+ <a name='L23'></a><a href='#L23'>23</a>
89
+ <a name='L24'></a><a href='#L24'>24</a>
90
+ <a name='L25'></a><a href='#L25'>25</a>
91
+ <a name='L26'></a><a href='#L26'>26</a>
92
+ <a name='L27'></a><a href='#L27'>27</a>
93
+ <a name='L28'></a><a href='#L28'>28</a>
94
+ <a name='L29'></a><a href='#L29'>29</a>
95
+ <a name='L30'></a><a href='#L30'>30</a>
96
+ <a name='L31'></a><a href='#L31'>31</a>
97
+ <a name='L32'></a><a href='#L32'>32</a>
98
+ <a name='L33'></a><a href='#L33'>33</a>
99
+ <a name='L34'></a><a href='#L34'>34</a>
100
+ <a name='L35'></a><a href='#L35'>35</a>
101
+ <a name='L36'></a><a href='#L36'>36</a>
102
+ <a name='L37'></a><a href='#L37'>37</a>
103
+ <a name='L38'></a><a href='#L38'>38</a>
104
+ <a name='L39'></a><a href='#L39'>39</a>
105
+ <a name='L40'></a><a href='#L40'>40</a>
106
+ <a name='L41'></a><a href='#L41'>41</a>
107
+ <a name='L42'></a><a href='#L42'>42</a>
108
+ <a name='L43'></a><a href='#L43'>43</a>
109
+ <a name='L44'></a><a href='#L44'>44</a>
110
+ <a name='L45'></a><a href='#L45'>45</a>
111
+ <a name='L46'></a><a href='#L46'>46</a>
112
+ <a name='L47'></a><a href='#L47'>47</a>
113
+ <a name='L48'></a><a href='#L48'>48</a>
114
+ <a name='L49'></a><a href='#L49'>49</a>
115
+ <a name='L50'></a><a href='#L50'>50</a>
116
+ <a name='L51'></a><a href='#L51'>51</a>
117
+ <a name='L52'></a><a href='#L52'>52</a>
118
+ <a name='L53'></a><a href='#L53'>53</a>
119
+ <a name='L54'></a><a href='#L54'>54</a>
120
+ <a name='L55'></a><a href='#L55'>55</a>
121
+ <a name='L56'></a><a href='#L56'>56</a>
122
+ <a name='L57'></a><a href='#L57'>57</a>
123
+ <a name='L58'></a><a href='#L58'>58</a>
124
+ <a name='L59'></a><a href='#L59'>59</a>
125
+ <a name='L60'></a><a href='#L60'>60</a>
126
+ <a name='L61'></a><a href='#L61'>61</a>
127
+ <a name='L62'></a><a href='#L62'>62</a>
128
+ <a name='L63'></a><a href='#L63'>63</a>
129
+ <a name='L64'></a><a href='#L64'>64</a>
130
+ <a name='L65'></a><a href='#L65'>65</a>
131
+ <a name='L66'></a><a href='#L66'>66</a>
132
+ <a name='L67'></a><a href='#L67'>67</a>
133
+ <a name='L68'></a><a href='#L68'>68</a>
134
+ <a name='L69'></a><a href='#L69'>69</a>
135
+ <a name='L70'></a><a href='#L70'>70</a>
136
+ <a name='L71'></a><a href='#L71'>71</a>
137
+ <a name='L72'></a><a href='#L72'>72</a>
138
+ <a name='L73'></a><a href='#L73'>73</a>
139
+ <a name='L74'></a><a href='#L74'>74</a>
140
+ <a name='L75'></a><a href='#L75'>75</a>
141
+ <a name='L76'></a><a href='#L76'>76</a>
142
+ <a name='L77'></a><a href='#L77'>77</a>
143
+ <a name='L78'></a><a href='#L78'>78</a>
144
+ <a name='L79'></a><a href='#L79'>79</a>
145
+ <a name='L80'></a><a href='#L80'>80</a>
146
+ <a name='L81'></a><a href='#L81'>81</a>
147
+ <a name='L82'></a><a href='#L82'>82</a>
148
+ <a name='L83'></a><a href='#L83'>83</a>
149
+ <a name='L84'></a><a href='#L84'>84</a>
150
+ <a name='L85'></a><a href='#L85'>85</a>
151
+ <a name='L86'></a><a href='#L86'>86</a>
152
+ <a name='L87'></a><a href='#L87'>87</a>
153
+ <a name='L88'></a><a href='#L88'>88</a>
154
+ <a name='L89'></a><a href='#L89'>89</a>
155
+ <a name='L90'></a><a href='#L90'>90</a>
156
+ <a name='L91'></a><a href='#L91'>91</a>
157
+ <a name='L92'></a><a href='#L92'>92</a>
158
+ <a name='L93'></a><a href='#L93'>93</a>
159
+ <a name='L94'></a><a href='#L94'>94</a>
160
+ <a name='L95'></a><a href='#L95'>95</a>
161
+ <a name='L96'></a><a href='#L96'>96</a>
162
+ <a name='L97'></a><a href='#L97'>97</a>
163
+ <a name='L98'></a><a href='#L98'>98</a>
164
+ <a name='L99'></a><a href='#L99'>99</a>
165
+ <a name='L100'></a><a href='#L100'>100</a>
166
+ <a name='L101'></a><a href='#L101'>101</a>
167
+ <a name='L102'></a><a href='#L102'>102</a>
168
+ <a name='L103'></a><a href='#L103'>103</a>
169
+ <a name='L104'></a><a href='#L104'>104</a>
170
+ <a name='L105'></a><a href='#L105'>105</a>
171
+ <a name='L106'></a><a href='#L106'>106</a>
172
+ <a name='L107'></a><a href='#L107'>107</a>
173
+ <a name='L108'></a><a href='#L108'>108</a>
174
+ <a name='L109'></a><a href='#L109'>109</a>
175
+ <a name='L110'></a><a href='#L110'>110</a>
176
+ <a name='L111'></a><a href='#L111'>111</a>
177
+ <a name='L112'></a><a href='#L112'>112</a>
178
+ <a name='L113'></a><a href='#L113'>113</a>
179
+ <a name='L114'></a><a href='#L114'>114</a>
180
+ <a name='L115'></a><a href='#L115'>115</a>
181
+ <a name='L116'></a><a href='#L116'>116</a>
182
+ <a name='L117'></a><a href='#L117'>117</a>
183
+ <a name='L118'></a><a href='#L118'>118</a>
184
+ <a name='L119'></a><a href='#L119'>119</a>
185
+ <a name='L120'></a><a href='#L120'>120</a>
186
+ <a name='L121'></a><a href='#L121'>121</a>
187
+ <a name='L122'></a><a href='#L122'>122</a>
188
+ <a name='L123'></a><a href='#L123'>123</a>
189
+ <a name='L124'></a><a href='#L124'>124</a>
190
+ <a name='L125'></a><a href='#L125'>125</a>
191
+ <a name='L126'></a><a href='#L126'>126</a>
192
+ <a name='L127'></a><a href='#L127'>127</a>
193
+ <a name='L128'></a><a href='#L128'>128</a>
194
+ <a name='L129'></a><a href='#L129'>129</a>
195
+ <a name='L130'></a><a href='#L130'>130</a>
196
+ <a name='L131'></a><a href='#L131'>131</a>
197
+ <a name='L132'></a><a href='#L132'>132</a>
198
+ <a name='L133'></a><a href='#L133'>133</a>
199
+ <a name='L134'></a><a href='#L134'>134</a>
200
+ <a name='L135'></a><a href='#L135'>135</a>
201
+ <a name='L136'></a><a href='#L136'>136</a>
202
+ <a name='L137'></a><a href='#L137'>137</a>
203
+ <a name='L138'></a><a href='#L138'>138</a>
204
+ <a name='L139'></a><a href='#L139'>139</a>
205
+ <a name='L140'></a><a href='#L140'>140</a>
206
+ <a name='L141'></a><a href='#L141'>141</a>
207
+ <a name='L142'></a><a href='#L142'>142</a>
208
+ <a name='L143'></a><a href='#L143'>143</a>
209
+ <a name='L144'></a><a href='#L144'>144</a>
210
+ <a name='L145'></a><a href='#L145'>145</a>
211
+ <a name='L146'></a><a href='#L146'>146</a>
212
+ <a name='L147'></a><a href='#L147'>147</a>
213
+ <a name='L148'></a><a href='#L148'>148</a>
214
+ <a name='L149'></a><a href='#L149'>149</a>
215
+ <a name='L150'></a><a href='#L150'>150</a>
216
+ <a name='L151'></a><a href='#L151'>151</a>
217
+ <a name='L152'></a><a href='#L152'>152</a>
218
+ <a name='L153'></a><a href='#L153'>153</a>
219
+ <a name='L154'></a><a href='#L154'>154</a>
220
+ <a name='L155'></a><a href='#L155'>155</a>
221
+ <a name='L156'></a><a href='#L156'>156</a>
222
+ <a name='L157'></a><a href='#L157'>157</a>
223
+ <a name='L158'></a><a href='#L158'>158</a>
224
+ <a name='L159'></a><a href='#L159'>159</a>
225
+ <a name='L160'></a><a href='#L160'>160</a>
226
+ <a name='L161'></a><a href='#L161'>161</a>
227
+ <a name='L162'></a><a href='#L162'>162</a>
228
+ <a name='L163'></a><a href='#L163'>163</a>
229
+ <a name='L164'></a><a href='#L164'>164</a>
230
+ <a name='L165'></a><a href='#L165'>165</a>
231
+ <a name='L166'></a><a href='#L166'>166</a>
232
+ <a name='L167'></a><a href='#L167'>167</a>
233
+ <a name='L168'></a><a href='#L168'>168</a>
234
+ <a name='L169'></a><a href='#L169'>169</a>
235
+ <a name='L170'></a><a href='#L170'>170</a>
236
+ <a name='L171'></a><a href='#L171'>171</a>
237
+ <a name='L172'></a><a href='#L172'>172</a>
238
+ <a name='L173'></a><a href='#L173'>173</a>
239
+ <a name='L174'></a><a href='#L174'>174</a>
240
+ <a name='L175'></a><a href='#L175'>175</a>
241
+ <a name='L176'></a><a href='#L176'>176</a>
242
+ <a name='L177'></a><a href='#L177'>177</a>
243
+ <a name='L178'></a><a href='#L178'>178</a>
244
+ <a name='L179'></a><a href='#L179'>179</a>
245
+ <a name='L180'></a><a href='#L180'>180</a>
246
+ <a name='L181'></a><a href='#L181'>181</a>
247
+ <a name='L182'></a><a href='#L182'>182</a>
248
+ <a name='L183'></a><a href='#L183'>183</a>
249
+ <a name='L184'></a><a href='#L184'>184</a>
250
+ <a name='L185'></a><a href='#L185'>185</a>
251
+ <a name='L186'></a><a href='#L186'>186</a>
252
+ <a name='L187'></a><a href='#L187'>187</a>
253
+ <a name='L188'></a><a href='#L188'>188</a>
254
+ <a name='L189'></a><a href='#L189'>189</a>
255
+ <a name='L190'></a><a href='#L190'>190</a>
256
+ <a name='L191'></a><a href='#L191'>191</a>
257
+ <a name='L192'></a><a href='#L192'>192</a>
258
+ <a name='L193'></a><a href='#L193'>193</a>
259
+ <a name='L194'></a><a href='#L194'>194</a>
260
+ <a name='L195'></a><a href='#L195'>195</a>
261
+ <a name='L196'></a><a href='#L196'>196</a>
262
+ <a name='L197'></a><a href='#L197'>197</a>
263
+ <a name='L198'></a><a href='#L198'>198</a>
264
+ <a name='L199'></a><a href='#L199'>199</a>
265
+ <a name='L200'></a><a href='#L200'>200</a>
266
+ <a name='L201'></a><a href='#L201'>201</a>
267
+ <a name='L202'></a><a href='#L202'>202</a>
268
+ <a name='L203'></a><a href='#L203'>203</a>
269
+ <a name='L204'></a><a href='#L204'>204</a>
270
+ <a name='L205'></a><a href='#L205'>205</a>
271
+ <a name='L206'></a><a href='#L206'>206</a>
272
+ <a name='L207'></a><a href='#L207'>207</a>
273
+ <a name='L208'></a><a href='#L208'>208</a>
274
+ <a name='L209'></a><a href='#L209'>209</a>
275
+ <a name='L210'></a><a href='#L210'>210</a>
276
+ <a name='L211'></a><a href='#L211'>211</a>
277
+ <a name='L212'></a><a href='#L212'>212</a>
278
+ <a name='L213'></a><a href='#L213'>213</a>
279
+ <a name='L214'></a><a href='#L214'>214</a>
280
+ <a name='L215'></a><a href='#L215'>215</a>
281
+ <a name='L216'></a><a href='#L216'>216</a>
282
+ <a name='L217'></a><a href='#L217'>217</a>
283
+ <a name='L218'></a><a href='#L218'>218</a>
284
+ <a name='L219'></a><a href='#L219'>219</a>
285
+ <a name='L220'></a><a href='#L220'>220</a>
286
+ <a name='L221'></a><a href='#L221'>221</a>
287
+ <a name='L222'></a><a href='#L222'>222</a>
288
+ <a name='L223'></a><a href='#L223'>223</a>
289
+ <a name='L224'></a><a href='#L224'>224</a>
290
+ <a name='L225'></a><a href='#L225'>225</a>
291
+ <a name='L226'></a><a href='#L226'>226</a>
292
+ <a name='L227'></a><a href='#L227'>227</a>
293
+ <a name='L228'></a><a href='#L228'>228</a>
294
+ <a name='L229'></a><a href='#L229'>229</a>
295
+ <a name='L230'></a><a href='#L230'>230</a>
296
+ <a name='L231'></a><a href='#L231'>231</a>
297
+ <a name='L232'></a><a href='#L232'>232</a>
298
+ <a name='L233'></a><a href='#L233'>233</a>
299
+ <a name='L234'></a><a href='#L234'>234</a>
300
+ <a name='L235'></a><a href='#L235'>235</a>
301
+ <a name='L236'></a><a href='#L236'>236</a>
302
+ <a name='L237'></a><a href='#L237'>237</a>
303
+ <a name='L238'></a><a href='#L238'>238</a>
304
+ <a name='L239'></a><a href='#L239'>239</a>
305
+ <a name='L240'></a><a href='#L240'>240</a>
306
+ <a name='L241'></a><a href='#L241'>241</a>
307
+ <a name='L242'></a><a href='#L242'>242</a>
308
+ <a name='L243'></a><a href='#L243'>243</a>
309
+ <a name='L244'></a><a href='#L244'>244</a>
310
+ <a name='L245'></a><a href='#L245'>245</a>
311
+ <a name='L246'></a><a href='#L246'>246</a>
312
+ <a name='L247'></a><a href='#L247'>247</a>
313
+ <a name='L248'></a><a href='#L248'>248</a>
314
+ <a name='L249'></a><a href='#L249'>249</a>
315
+ <a name='L250'></a><a href='#L250'>250</a>
316
+ <a name='L251'></a><a href='#L251'>251</a>
317
+ <a name='L252'></a><a href='#L252'>252</a>
318
+ <a name='L253'></a><a href='#L253'>253</a>
319
+ <a name='L254'></a><a href='#L254'>254</a>
320
+ <a name='L255'></a><a href='#L255'>255</a>
321
+ <a name='L256'></a><a href='#L256'>256</a>
322
+ <a name='L257'></a><a href='#L257'>257</a>
323
+ <a name='L258'></a><a href='#L258'>258</a>
324
+ <a name='L259'></a><a href='#L259'>259</a>
325
+ <a name='L260'></a><a href='#L260'>260</a>
326
+ <a name='L261'></a><a href='#L261'>261</a>
327
+ <a name='L262'></a><a href='#L262'>262</a>
328
+ <a name='L263'></a><a href='#L263'>263</a>
329
+ <a name='L264'></a><a href='#L264'>264</a>
330
+ <a name='L265'></a><a href='#L265'>265</a>
331
+ <a name='L266'></a><a href='#L266'>266</a>
332
+ <a name='L267'></a><a href='#L267'>267</a>
333
+ <a name='L268'></a><a href='#L268'>268</a>
334
+ <a name='L269'></a><a href='#L269'>269</a>
335
+ <a name='L270'></a><a href='#L270'>270</a>
336
+ <a name='L271'></a><a href='#L271'>271</a>
337
+ <a name='L272'></a><a href='#L272'>272</a>
338
+ <a name='L273'></a><a href='#L273'>273</a>
339
+ <a name='L274'></a><a href='#L274'>274</a>
340
+ <a name='L275'></a><a href='#L275'>275</a>
341
+ <a name='L276'></a><a href='#L276'>276</a>
342
+ <a name='L277'></a><a href='#L277'>277</a>
343
+ <a name='L278'></a><a href='#L278'>278</a>
344
+ <a name='L279'></a><a href='#L279'>279</a>
345
+ <a name='L280'></a><a href='#L280'>280</a>
346
+ <a name='L281'></a><a href='#L281'>281</a>
347
+ <a name='L282'></a><a href='#L282'>282</a>
348
+ <a name='L283'></a><a href='#L283'>283</a>
349
+ <a name='L284'></a><a href='#L284'>284</a>
350
+ <a name='L285'></a><a href='#L285'>285</a>
351
+ <a name='L286'></a><a href='#L286'>286</a>
352
+ <a name='L287'></a><a href='#L287'>287</a>
353
+ <a name='L288'></a><a href='#L288'>288</a>
354
+ <a name='L289'></a><a href='#L289'>289</a>
355
+ <a name='L290'></a><a href='#L290'>290</a>
356
+ <a name='L291'></a><a href='#L291'>291</a>
357
+ <a name='L292'></a><a href='#L292'>292</a>
358
+ <a name='L293'></a><a href='#L293'>293</a>
359
+ <a name='L294'></a><a href='#L294'>294</a>
360
+ <a name='L295'></a><a href='#L295'>295</a>
361
+ <a name='L296'></a><a href='#L296'>296</a>
362
+ <a name='L297'></a><a href='#L297'>297</a>
363
+ <a name='L298'></a><a href='#L298'>298</a>
364
+ <a name='L299'></a><a href='#L299'>299</a>
365
+ <a name='L300'></a><a href='#L300'>300</a>
366
+ <a name='L301'></a><a href='#L301'>301</a>
367
+ <a name='L302'></a><a href='#L302'>302</a>
368
+ <a name='L303'></a><a href='#L303'>303</a>
369
+ <a name='L304'></a><a href='#L304'>304</a>
370
+ <a name='L305'></a><a href='#L305'>305</a>
371
+ <a name='L306'></a><a href='#L306'>306</a>
372
+ <a name='L307'></a><a href='#L307'>307</a>
373
+ <a name='L308'></a><a href='#L308'>308</a>
374
+ <a name='L309'></a><a href='#L309'>309</a>
375
+ <a name='L310'></a><a href='#L310'>310</a>
376
+ <a name='L311'></a><a href='#L311'>311</a>
377
+ <a name='L312'></a><a href='#L312'>312</a>
378
+ <a name='L313'></a><a href='#L313'>313</a>
379
+ <a name='L314'></a><a href='#L314'>314</a>
380
+ <a name='L315'></a><a href='#L315'>315</a>
381
+ <a name='L316'></a><a href='#L316'>316</a>
382
+ <a name='L317'></a><a href='#L317'>317</a>
383
+ <a name='L318'></a><a href='#L318'>318</a>
384
+ <a name='L319'></a><a href='#L319'>319</a>
385
+ <a name='L320'></a><a href='#L320'>320</a>
386
+ <a name='L321'></a><a href='#L321'>321</a>
387
+ <a name='L322'></a><a href='#L322'>322</a>
388
+ <a name='L323'></a><a href='#L323'>323</a>
389
+ <a name='L324'></a><a href='#L324'>324</a>
390
+ <a name='L325'></a><a href='#L325'>325</a>
391
+ <a name='L326'></a><a href='#L326'>326</a>
392
+ <a name='L327'></a><a href='#L327'>327</a>
393
+ <a name='L328'></a><a href='#L328'>328</a>
394
+ <a name='L329'></a><a href='#L329'>329</a>
395
+ <a name='L330'></a><a href='#L330'>330</a>
396
+ <a name='L331'></a><a href='#L331'>331</a>
397
+ <a name='L332'></a><a href='#L332'>332</a>
398
+ <a name='L333'></a><a href='#L333'>333</a>
399
+ <a name='L334'></a><a href='#L334'>334</a>
400
+ <a name='L335'></a><a href='#L335'>335</a>
401
+ <a name='L336'></a><a href='#L336'>336</a>
402
+ <a name='L337'></a><a href='#L337'>337</a>
403
+ <a name='L338'></a><a href='#L338'>338</a>
404
+ <a name='L339'></a><a href='#L339'>339</a>
405
+ <a name='L340'></a><a href='#L340'>340</a>
406
+ <a name='L341'></a><a href='#L341'>341</a>
407
+ <a name='L342'></a><a href='#L342'>342</a>
408
+ <a name='L343'></a><a href='#L343'>343</a>
409
+ <a name='L344'></a><a href='#L344'>344</a>
410
+ <a name='L345'></a><a href='#L345'>345</a>
411
+ <a name='L346'></a><a href='#L346'>346</a>
412
+ <a name='L347'></a><a href='#L347'>347</a>
413
+ <a name='L348'></a><a href='#L348'>348</a>
414
+ <a name='L349'></a><a href='#L349'>349</a>
415
+ <a name='L350'></a><a href='#L350'>350</a>
416
+ <a name='L351'></a><a href='#L351'>351</a>
417
+ <a name='L352'></a><a href='#L352'>352</a>
418
+ <a name='L353'></a><a href='#L353'>353</a>
419
+ <a name='L354'></a><a href='#L354'>354</a>
420
+ <a name='L355'></a><a href='#L355'>355</a>
421
+ <a name='L356'></a><a href='#L356'>356</a>
422
+ <a name='L357'></a><a href='#L357'>357</a>
423
+ <a name='L358'></a><a href='#L358'>358</a>
424
+ <a name='L359'></a><a href='#L359'>359</a>
425
+ <a name='L360'></a><a href='#L360'>360</a>
426
+ <a name='L361'></a><a href='#L361'>361</a>
427
+ <a name='L362'></a><a href='#L362'>362</a>
428
+ <a name='L363'></a><a href='#L363'>363</a>
429
+ <a name='L364'></a><a href='#L364'>364</a>
430
+ <a name='L365'></a><a href='#L365'>365</a>
431
+ <a name='L366'></a><a href='#L366'>366</a>
432
+ <a name='L367'></a><a href='#L367'>367</a>
433
+ <a name='L368'></a><a href='#L368'>368</a>
434
+ <a name='L369'></a><a href='#L369'>369</a>
435
+ <a name='L370'></a><a href='#L370'>370</a>
436
+ <a name='L371'></a><a href='#L371'>371</a>
437
+ <a name='L372'></a><a href='#L372'>372</a>
438
+ <a name='L373'></a><a href='#L373'>373</a>
439
+ <a name='L374'></a><a href='#L374'>374</a>
440
+ <a name='L375'></a><a href='#L375'>375</a>
441
+ <a name='L376'></a><a href='#L376'>376</a>
442
+ <a name='L377'></a><a href='#L377'>377</a>
443
+ <a name='L378'></a><a href='#L378'>378</a>
444
+ <a name='L379'></a><a href='#L379'>379</a>
445
+ <a name='L380'></a><a href='#L380'>380</a>
446
+ <a name='L381'></a><a href='#L381'>381</a>
447
+ <a name='L382'></a><a href='#L382'>382</a>
448
+ <a name='L383'></a><a href='#L383'>383</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
449
+ <span class="cline-any cline-yes">1x</span>
450
+ <span class="cline-any cline-yes">1x</span>
451
+ <span class="cline-any cline-yes">1x</span>
452
+ <span class="cline-any cline-yes">1x</span>
453
+ <span class="cline-any cline-neutral">&nbsp;</span>
454
+ <span class="cline-any cline-yes">1x</span>
455
+ <span class="cline-any cline-yes">1x</span>
456
+ <span class="cline-any cline-neutral">&nbsp;</span>
457
+ <span class="cline-any cline-neutral">&nbsp;</span>
458
+ <span class="cline-any cline-neutral">&nbsp;</span>
459
+ <span class="cline-any cline-neutral">&nbsp;</span>
460
+ <span class="cline-any cline-neutral">&nbsp;</span>
461
+ <span class="cline-any cline-neutral">&nbsp;</span>
462
+ <span class="cline-any cline-neutral">&nbsp;</span>
463
+ <span class="cline-any cline-neutral">&nbsp;</span>
464
+ <span class="cline-any cline-neutral">&nbsp;</span>
465
+ <span class="cline-any cline-neutral">&nbsp;</span>
466
+ <span class="cline-any cline-neutral">&nbsp;</span>
467
+ <span class="cline-any cline-neutral">&nbsp;</span>
468
+ <span class="cline-any cline-neutral">&nbsp;</span>
469
+ <span class="cline-any cline-neutral">&nbsp;</span>
470
+ <span class="cline-any cline-neutral">&nbsp;</span>
471
+ <span class="cline-any cline-neutral">&nbsp;</span>
472
+ <span class="cline-any cline-yes">1x</span>
473
+ <span class="cline-any cline-neutral">&nbsp;</span>
474
+ <span class="cline-any cline-neutral">&nbsp;</span>
475
+ <span class="cline-any cline-neutral">&nbsp;</span>
476
+ <span class="cline-any cline-neutral">&nbsp;</span>
477
+ <span class="cline-any cline-neutral">&nbsp;</span>
478
+ <span class="cline-any cline-neutral">&nbsp;</span>
479
+ <span class="cline-any cline-neutral">&nbsp;</span>
480
+ <span class="cline-any cline-neutral">&nbsp;</span>
481
+ <span class="cline-any cline-neutral">&nbsp;</span>
482
+ <span class="cline-any cline-neutral">&nbsp;</span>
483
+ <span class="cline-any cline-neutral">&nbsp;</span>
484
+ <span class="cline-any cline-neutral">&nbsp;</span>
485
+ <span class="cline-any cline-neutral">&nbsp;</span>
486
+ <span class="cline-any cline-neutral">&nbsp;</span>
487
+ <span class="cline-any cline-neutral">&nbsp;</span>
488
+ <span class="cline-any cline-neutral">&nbsp;</span>
489
+ <span class="cline-any cline-neutral">&nbsp;</span>
490
+ <span class="cline-any cline-neutral">&nbsp;</span>
491
+ <span class="cline-any cline-neutral">&nbsp;</span>
492
+ <span class="cline-any cline-neutral">&nbsp;</span>
493
+ <span class="cline-any cline-neutral">&nbsp;</span>
494
+ <span class="cline-any cline-neutral">&nbsp;</span>
495
+ <span class="cline-any cline-yes">1x</span>
496
+ <span class="cline-any cline-neutral">&nbsp;</span>
497
+ <span class="cline-any cline-neutral">&nbsp;</span>
498
+ <span class="cline-any cline-neutral">&nbsp;</span>
499
+ <span class="cline-any cline-neutral">&nbsp;</span>
500
+ <span class="cline-any cline-neutral">&nbsp;</span>
501
+ <span class="cline-any cline-neutral">&nbsp;</span>
502
+ <span class="cline-any cline-neutral">&nbsp;</span>
503
+ <span class="cline-any cline-neutral">&nbsp;</span>
504
+ <span class="cline-any cline-neutral">&nbsp;</span>
505
+ <span class="cline-any cline-neutral">&nbsp;</span>
506
+ <span class="cline-any cline-neutral">&nbsp;</span>
507
+ <span class="cline-any cline-yes">1x</span>
508
+ <span class="cline-any cline-neutral">&nbsp;</span>
509
+ <span class="cline-any cline-neutral">&nbsp;</span>
510
+ <span class="cline-any cline-neutral">&nbsp;</span>
511
+ <span class="cline-any cline-neutral">&nbsp;</span>
512
+ <span class="cline-any cline-neutral">&nbsp;</span>
513
+ <span class="cline-any cline-neutral">&nbsp;</span>
514
+ <span class="cline-any cline-neutral">&nbsp;</span>
515
+ <span class="cline-any cline-neutral">&nbsp;</span>
516
+ <span class="cline-any cline-neutral">&nbsp;</span>
517
+ <span class="cline-any cline-neutral">&nbsp;</span>
518
+ <span class="cline-any cline-neutral">&nbsp;</span>
519
+ <span class="cline-any cline-yes">1x</span>
520
+ <span class="cline-any cline-neutral">&nbsp;</span>
521
+ <span class="cline-any cline-neutral">&nbsp;</span>
522
+ <span class="cline-any cline-neutral">&nbsp;</span>
523
+ <span class="cline-any cline-neutral">&nbsp;</span>
524
+ <span class="cline-any cline-neutral">&nbsp;</span>
525
+ <span class="cline-any cline-neutral">&nbsp;</span>
526
+ <span class="cline-any cline-neutral">&nbsp;</span>
527
+ <span class="cline-any cline-neutral">&nbsp;</span>
528
+ <span class="cline-any cline-neutral">&nbsp;</span>
529
+ <span class="cline-any cline-neutral">&nbsp;</span>
530
+ <span class="cline-any cline-neutral">&nbsp;</span>
531
+ <span class="cline-any cline-yes">1x</span>
532
+ <span class="cline-any cline-neutral">&nbsp;</span>
533
+ <span class="cline-any cline-neutral">&nbsp;</span>
534
+ <span class="cline-any cline-neutral">&nbsp;</span>
535
+ <span class="cline-any cline-neutral">&nbsp;</span>
536
+ <span class="cline-any cline-neutral">&nbsp;</span>
537
+ <span class="cline-any cline-neutral">&nbsp;</span>
538
+ <span class="cline-any cline-neutral">&nbsp;</span>
539
+ <span class="cline-any cline-neutral">&nbsp;</span>
540
+ <span class="cline-any cline-neutral">&nbsp;</span>
541
+ <span class="cline-any cline-neutral">&nbsp;</span>
542
+ <span class="cline-any cline-neutral">&nbsp;</span>
543
+ <span class="cline-any cline-neutral">&nbsp;</span>
544
+ <span class="cline-any cline-neutral">&nbsp;</span>
545
+ <span class="cline-any cline-neutral">&nbsp;</span>
546
+ <span class="cline-any cline-neutral">&nbsp;</span>
547
+ <span class="cline-any cline-neutral">&nbsp;</span>
548
+ <span class="cline-any cline-neutral">&nbsp;</span>
549
+ <span class="cline-any cline-neutral">&nbsp;</span>
550
+ <span class="cline-any cline-neutral">&nbsp;</span>
551
+ <span class="cline-any cline-neutral">&nbsp;</span>
552
+ <span class="cline-any cline-neutral">&nbsp;</span>
553
+ <span class="cline-any cline-neutral">&nbsp;</span>
554
+ <span class="cline-any cline-neutral">&nbsp;</span>
555
+ <span class="cline-any cline-neutral">&nbsp;</span>
556
+ <span class="cline-any cline-neutral">&nbsp;</span>
557
+ <span class="cline-any cline-neutral">&nbsp;</span>
558
+ <span class="cline-any cline-neutral">&nbsp;</span>
559
+ <span class="cline-any cline-neutral">&nbsp;</span>
560
+ <span class="cline-any cline-neutral">&nbsp;</span>
561
+ <span class="cline-any cline-neutral">&nbsp;</span>
562
+ <span class="cline-any cline-neutral">&nbsp;</span>
563
+ <span class="cline-any cline-neutral">&nbsp;</span>
564
+ <span class="cline-any cline-neutral">&nbsp;</span>
565
+ <span class="cline-any cline-neutral">&nbsp;</span>
566
+ <span class="cline-any cline-neutral">&nbsp;</span>
567
+ <span class="cline-any cline-neutral">&nbsp;</span>
568
+ <span class="cline-any cline-neutral">&nbsp;</span>
569
+ <span class="cline-any cline-neutral">&nbsp;</span>
570
+ <span class="cline-any cline-neutral">&nbsp;</span>
571
+ <span class="cline-any cline-neutral">&nbsp;</span>
572
+ <span class="cline-any cline-neutral">&nbsp;</span>
573
+ <span class="cline-any cline-neutral">&nbsp;</span>
574
+ <span class="cline-any cline-yes">1x</span>
575
+ <span class="cline-any cline-no">&nbsp;</span>
576
+ <span class="cline-any cline-neutral">&nbsp;</span>
577
+ <span class="cline-any cline-yes">1x</span>
578
+ <span class="cline-any cline-yes">1x</span>
579
+ <span class="cline-any cline-neutral">&nbsp;</span>
580
+ <span class="cline-any cline-yes">1x</span>
581
+ <span class="cline-any cline-yes">1x</span>
582
+ <span class="cline-any cline-neutral">&nbsp;</span>
583
+ <span class="cline-any cline-neutral">&nbsp;</span>
584
+ <span class="cline-any cline-yes">1x</span>
585
+ <span class="cline-any cline-neutral">&nbsp;</span>
586
+ <span class="cline-any cline-neutral">&nbsp;</span>
587
+ <span class="cline-any cline-neutral">&nbsp;</span>
588
+ <span class="cline-any cline-neutral">&nbsp;</span>
589
+ <span class="cline-any cline-neutral">&nbsp;</span>
590
+ <span class="cline-any cline-neutral">&nbsp;</span>
591
+ <span class="cline-any cline-neutral">&nbsp;</span>
592
+ <span class="cline-any cline-neutral">&nbsp;</span>
593
+ <span class="cline-any cline-neutral">&nbsp;</span>
594
+ <span class="cline-any cline-neutral">&nbsp;</span>
595
+ <span class="cline-any cline-neutral">&nbsp;</span>
596
+ <span class="cline-any cline-neutral">&nbsp;</span>
597
+ <span class="cline-any cline-neutral">&nbsp;</span>
598
+ <span class="cline-any cline-neutral">&nbsp;</span>
599
+ <span class="cline-any cline-neutral">&nbsp;</span>
600
+ <span class="cline-any cline-neutral">&nbsp;</span>
601
+ <span class="cline-any cline-neutral">&nbsp;</span>
602
+ <span class="cline-any cline-neutral">&nbsp;</span>
603
+ <span class="cline-any cline-neutral">&nbsp;</span>
604
+ <span class="cline-any cline-neutral">&nbsp;</span>
605
+ <span class="cline-any cline-neutral">&nbsp;</span>
606
+ <span class="cline-any cline-neutral">&nbsp;</span>
607
+ <span class="cline-any cline-neutral">&nbsp;</span>
608
+ <span class="cline-any cline-neutral">&nbsp;</span>
609
+ <span class="cline-any cline-neutral">&nbsp;</span>
610
+ <span class="cline-any cline-neutral">&nbsp;</span>
611
+ <span class="cline-any cline-no">&nbsp;</span>
612
+ <span class="cline-any cline-neutral">&nbsp;</span>
613
+ <span class="cline-any cline-neutral">&nbsp;</span>
614
+ <span class="cline-any cline-neutral">&nbsp;</span>
615
+ <span class="cline-any cline-neutral">&nbsp;</span>
616
+ <span class="cline-any cline-neutral">&nbsp;</span>
617
+ <span class="cline-any cline-neutral">&nbsp;</span>
618
+ <span class="cline-any cline-neutral">&nbsp;</span>
619
+ <span class="cline-any cline-neutral">&nbsp;</span>
620
+ <span class="cline-any cline-neutral">&nbsp;</span>
621
+ <span class="cline-any cline-neutral">&nbsp;</span>
622
+ <span class="cline-any cline-neutral">&nbsp;</span>
623
+ <span class="cline-any cline-neutral">&nbsp;</span>
624
+ <span class="cline-any cline-neutral">&nbsp;</span>
625
+ <span class="cline-any cline-neutral">&nbsp;</span>
626
+ <span class="cline-any cline-neutral">&nbsp;</span>
627
+ <span class="cline-any cline-neutral">&nbsp;</span>
628
+ <span class="cline-any cline-neutral">&nbsp;</span>
629
+ <span class="cline-any cline-neutral">&nbsp;</span>
630
+ <span class="cline-any cline-neutral">&nbsp;</span>
631
+ <span class="cline-any cline-neutral">&nbsp;</span>
632
+ <span class="cline-any cline-neutral">&nbsp;</span>
633
+ <span class="cline-any cline-neutral">&nbsp;</span>
634
+ <span class="cline-any cline-neutral">&nbsp;</span>
635
+ <span class="cline-any cline-neutral">&nbsp;</span>
636
+ <span class="cline-any cline-no">&nbsp;</span>
637
+ <span class="cline-any cline-neutral">&nbsp;</span>
638
+ <span class="cline-any cline-neutral">&nbsp;</span>
639
+ <span class="cline-any cline-neutral">&nbsp;</span>
640
+ <span class="cline-any cline-neutral">&nbsp;</span>
641
+ <span class="cline-any cline-neutral">&nbsp;</span>
642
+ <span class="cline-any cline-neutral">&nbsp;</span>
643
+ <span class="cline-any cline-neutral">&nbsp;</span>
644
+ <span class="cline-any cline-neutral">&nbsp;</span>
645
+ <span class="cline-any cline-neutral">&nbsp;</span>
646
+ <span class="cline-any cline-neutral">&nbsp;</span>
647
+ <span class="cline-any cline-neutral">&nbsp;</span>
648
+ <span class="cline-any cline-neutral">&nbsp;</span>
649
+ <span class="cline-any cline-neutral">&nbsp;</span>
650
+ <span class="cline-any cline-neutral">&nbsp;</span>
651
+ <span class="cline-any cline-neutral">&nbsp;</span>
652
+ <span class="cline-any cline-neutral">&nbsp;</span>
653
+ <span class="cline-any cline-neutral">&nbsp;</span>
654
+ <span class="cline-any cline-neutral">&nbsp;</span>
655
+ <span class="cline-any cline-neutral">&nbsp;</span>
656
+ <span class="cline-any cline-neutral">&nbsp;</span>
657
+ <span class="cline-any cline-neutral">&nbsp;</span>
658
+ <span class="cline-any cline-neutral">&nbsp;</span>
659
+ <span class="cline-any cline-neutral">&nbsp;</span>
660
+ <span class="cline-any cline-neutral">&nbsp;</span>
661
+ <span class="cline-any cline-yes">1x</span>
662
+ <span class="cline-any cline-neutral">&nbsp;</span>
663
+ <span class="cline-any cline-neutral">&nbsp;</span>
664
+ <span class="cline-any cline-neutral">&nbsp;</span>
665
+ <span class="cline-any cline-neutral">&nbsp;</span>
666
+ <span class="cline-any cline-neutral">&nbsp;</span>
667
+ <span class="cline-any cline-neutral">&nbsp;</span>
668
+ <span class="cline-any cline-neutral">&nbsp;</span>
669
+ <span class="cline-any cline-neutral">&nbsp;</span>
670
+ <span class="cline-any cline-neutral">&nbsp;</span>
671
+ <span class="cline-any cline-neutral">&nbsp;</span>
672
+ <span class="cline-any cline-neutral">&nbsp;</span>
673
+ <span class="cline-any cline-neutral">&nbsp;</span>
674
+ <span class="cline-any cline-neutral">&nbsp;</span>
675
+ <span class="cline-any cline-neutral">&nbsp;</span>
676
+ <span class="cline-any cline-neutral">&nbsp;</span>
677
+ <span class="cline-any cline-neutral">&nbsp;</span>
678
+ <span class="cline-any cline-neutral">&nbsp;</span>
679
+ <span class="cline-any cline-neutral">&nbsp;</span>
680
+ <span class="cline-any cline-neutral">&nbsp;</span>
681
+ <span class="cline-any cline-neutral">&nbsp;</span>
682
+ <span class="cline-any cline-neutral">&nbsp;</span>
683
+ <span class="cline-any cline-neutral">&nbsp;</span>
684
+ <span class="cline-any cline-neutral">&nbsp;</span>
685
+ <span class="cline-any cline-neutral">&nbsp;</span>
686
+ <span class="cline-any cline-neutral">&nbsp;</span>
687
+ <span class="cline-any cline-neutral">&nbsp;</span>
688
+ <span class="cline-any cline-neutral">&nbsp;</span>
689
+ <span class="cline-any cline-neutral">&nbsp;</span>
690
+ <span class="cline-any cline-neutral">&nbsp;</span>
691
+ <span class="cline-any cline-no">&nbsp;</span>
692
+ <span class="cline-any cline-neutral">&nbsp;</span>
693
+ <span class="cline-any cline-neutral">&nbsp;</span>
694
+ <span class="cline-any cline-neutral">&nbsp;</span>
695
+ <span class="cline-any cline-neutral">&nbsp;</span>
696
+ <span class="cline-any cline-neutral">&nbsp;</span>
697
+ <span class="cline-any cline-neutral">&nbsp;</span>
698
+ <span class="cline-any cline-neutral">&nbsp;</span>
699
+ <span class="cline-any cline-neutral">&nbsp;</span>
700
+ <span class="cline-any cline-neutral">&nbsp;</span>
701
+ <span class="cline-any cline-neutral">&nbsp;</span>
702
+ <span class="cline-any cline-neutral">&nbsp;</span>
703
+ <span class="cline-any cline-neutral">&nbsp;</span>
704
+ <span class="cline-any cline-neutral">&nbsp;</span>
705
+ <span class="cline-any cline-neutral">&nbsp;</span>
706
+ <span class="cline-any cline-neutral">&nbsp;</span>
707
+ <span class="cline-any cline-neutral">&nbsp;</span>
708
+ <span class="cline-any cline-neutral">&nbsp;</span>
709
+ <span class="cline-any cline-neutral">&nbsp;</span>
710
+ <span class="cline-any cline-neutral">&nbsp;</span>
711
+ <span class="cline-any cline-neutral">&nbsp;</span>
712
+ <span class="cline-any cline-neutral">&nbsp;</span>
713
+ <span class="cline-any cline-neutral">&nbsp;</span>
714
+ <span class="cline-any cline-neutral">&nbsp;</span>
715
+ <span class="cline-any cline-neutral">&nbsp;</span>
716
+ <span class="cline-any cline-neutral">&nbsp;</span>
717
+ <span class="cline-any cline-neutral">&nbsp;</span>
718
+ <span class="cline-any cline-neutral">&nbsp;</span>
719
+ <span class="cline-any cline-neutral">&nbsp;</span>
720
+ <span class="cline-any cline-neutral">&nbsp;</span>
721
+ <span class="cline-any cline-neutral">&nbsp;</span>
722
+ <span class="cline-any cline-no">&nbsp;</span>
723
+ <span class="cline-any cline-no">&nbsp;</span>
724
+ <span class="cline-any cline-no">&nbsp;</span>
725
+ <span class="cline-any cline-no">&nbsp;</span>
726
+ <span class="cline-any cline-neutral">&nbsp;</span>
727
+ <span class="cline-any cline-neutral">&nbsp;</span>
728
+ <span class="cline-any cline-neutral">&nbsp;</span>
729
+ <span class="cline-any cline-neutral">&nbsp;</span>
730
+ <span class="cline-any cline-neutral">&nbsp;</span>
731
+ <span class="cline-any cline-neutral">&nbsp;</span>
732
+ <span class="cline-any cline-neutral">&nbsp;</span>
733
+ <span class="cline-any cline-neutral">&nbsp;</span>
734
+ <span class="cline-any cline-neutral">&nbsp;</span>
735
+ <span class="cline-any cline-neutral">&nbsp;</span>
736
+ <span class="cline-any cline-neutral">&nbsp;</span>
737
+ <span class="cline-any cline-neutral">&nbsp;</span>
738
+ <span class="cline-any cline-neutral">&nbsp;</span>
739
+ <span class="cline-any cline-neutral">&nbsp;</span>
740
+ <span class="cline-any cline-neutral">&nbsp;</span>
741
+ <span class="cline-any cline-neutral">&nbsp;</span>
742
+ <span class="cline-any cline-neutral">&nbsp;</span>
743
+ <span class="cline-any cline-neutral">&nbsp;</span>
744
+ <span class="cline-any cline-neutral">&nbsp;</span>
745
+ <span class="cline-any cline-neutral">&nbsp;</span>
746
+ <span class="cline-any cline-neutral">&nbsp;</span>
747
+ <span class="cline-any cline-neutral">&nbsp;</span>
748
+ <span class="cline-any cline-neutral">&nbsp;</span>
749
+ <span class="cline-any cline-neutral">&nbsp;</span>
750
+ <span class="cline-any cline-neutral">&nbsp;</span>
751
+ <span class="cline-any cline-neutral">&nbsp;</span>
752
+ <span class="cline-any cline-neutral">&nbsp;</span>
753
+ <span class="cline-any cline-no">&nbsp;</span>
754
+ <span class="cline-any cline-no">&nbsp;</span>
755
+ <span class="cline-any cline-no">&nbsp;</span>
756
+ <span class="cline-any cline-no">&nbsp;</span>
757
+ <span class="cline-any cline-neutral">&nbsp;</span>
758
+ <span class="cline-any cline-neutral">&nbsp;</span>
759
+ <span class="cline-any cline-neutral">&nbsp;</span>
760
+ <span class="cline-any cline-neutral">&nbsp;</span>
761
+ <span class="cline-any cline-neutral">&nbsp;</span>
762
+ <span class="cline-any cline-neutral">&nbsp;</span>
763
+ <span class="cline-any cline-neutral">&nbsp;</span>
764
+ <span class="cline-any cline-neutral">&nbsp;</span>
765
+ <span class="cline-any cline-neutral">&nbsp;</span>
766
+ <span class="cline-any cline-neutral">&nbsp;</span>
767
+ <span class="cline-any cline-neutral">&nbsp;</span>
768
+ <span class="cline-any cline-neutral">&nbsp;</span>
769
+ <span class="cline-any cline-neutral">&nbsp;</span>
770
+ <span class="cline-any cline-neutral">&nbsp;</span>
771
+ <span class="cline-any cline-neutral">&nbsp;</span>
772
+ <span class="cline-any cline-neutral">&nbsp;</span>
773
+ <span class="cline-any cline-neutral">&nbsp;</span>
774
+ <span class="cline-any cline-neutral">&nbsp;</span>
775
+ <span class="cline-any cline-neutral">&nbsp;</span>
776
+ <span class="cline-any cline-neutral">&nbsp;</span>
777
+ <span class="cline-any cline-neutral">&nbsp;</span>
778
+ <span class="cline-any cline-neutral">&nbsp;</span>
779
+ <span class="cline-any cline-neutral">&nbsp;</span>
780
+ <span class="cline-any cline-no">&nbsp;</span>
781
+ <span class="cline-any cline-neutral">&nbsp;</span>
782
+ <span class="cline-any cline-neutral">&nbsp;</span>
783
+ <span class="cline-any cline-neutral">&nbsp;</span>
784
+ <span class="cline-any cline-neutral">&nbsp;</span>
785
+ <span class="cline-any cline-neutral">&nbsp;</span>
786
+ <span class="cline-any cline-neutral">&nbsp;</span>
787
+ <span class="cline-any cline-neutral">&nbsp;</span>
788
+ <span class="cline-any cline-no">&nbsp;</span>
789
+ <span class="cline-any cline-neutral">&nbsp;</span>
790
+ <span class="cline-any cline-neutral">&nbsp;</span>
791
+ <span class="cline-any cline-neutral">&nbsp;</span>
792
+ <span class="cline-any cline-neutral">&nbsp;</span>
793
+ <span class="cline-any cline-neutral">&nbsp;</span>
794
+ <span class="cline-any cline-neutral">&nbsp;</span>
795
+ <span class="cline-any cline-neutral">&nbsp;</span>
796
+ <span class="cline-any cline-neutral">&nbsp;</span>
797
+ <span class="cline-any cline-neutral">&nbsp;</span>
798
+ <span class="cline-any cline-neutral">&nbsp;</span>
799
+ <span class="cline-any cline-neutral">&nbsp;</span>
800
+ <span class="cline-any cline-neutral">&nbsp;</span>
801
+ <span class="cline-any cline-neutral">&nbsp;</span>
802
+ <span class="cline-any cline-neutral">&nbsp;</span>
803
+ <span class="cline-any cline-neutral">&nbsp;</span>
804
+ <span class="cline-any cline-neutral">&nbsp;</span>
805
+ <span class="cline-any cline-neutral">&nbsp;</span>
806
+ <span class="cline-any cline-neutral">&nbsp;</span>
807
+ <span class="cline-any cline-neutral">&nbsp;</span>
808
+ <span class="cline-any cline-neutral">&nbsp;</span>
809
+ <span class="cline-any cline-neutral">&nbsp;</span>
810
+ <span class="cline-any cline-neutral">&nbsp;</span>
811
+ <span class="cline-any cline-neutral">&nbsp;</span>
812
+ <span class="cline-any cline-neutral">&nbsp;</span>
813
+ <span class="cline-any cline-neutral">&nbsp;</span>
814
+ <span class="cline-any cline-neutral">&nbsp;</span>
815
+ <span class="cline-any cline-neutral">&nbsp;</span>
816
+ <span class="cline-any cline-neutral">&nbsp;</span>
817
+ <span class="cline-any cline-neutral">&nbsp;</span>
818
+ <span class="cline-any cline-neutral">&nbsp;</span>
819
+ <span class="cline-any cline-neutral">&nbsp;</span>
820
+ <span class="cline-any cline-neutral">&nbsp;</span>
821
+ <span class="cline-any cline-neutral">&nbsp;</span>
822
+ <span class="cline-any cline-neutral">&nbsp;</span>
823
+ <span class="cline-any cline-neutral">&nbsp;</span>
824
+ <span class="cline-any cline-neutral">&nbsp;</span>
825
+ <span class="cline-any cline-no">&nbsp;</span>
826
+ <span class="cline-any cline-no">&nbsp;</span>
827
+ <span class="cline-any cline-no">&nbsp;</span>
828
+ <span class="cline-any cline-neutral">&nbsp;</span>
829
+ <span class="cline-any cline-neutral">&nbsp;</span>
830
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { Location } from '@angular/common';
831
+ import { inject, Injectable } from '@angular/core';
832
+ import { ActivatedRoute, Router } from '@angular/router';
833
+ import { Primitives } from '@decaf-ts/decorator-validation';
834
+ import { ComponentEventNames } from '@decaf-ts/ui-decorators';
835
+ import { NavigationOptions } from '@ionic/angular/common/providers/nav-controller';
836
+ import { NavController } from '@ionic/angular/standalone';
837
+ import { RouteDirections } from '../engine/constants';
838
+ import { KeyValue } from '../engine/types';
839
+ &nbsp;
840
+ /**
841
+ * @description Service for handling routing operations in the application.
842
+ * @summary The RouterService provides a unified interface for navigation and route management,
843
+ * abstracting the underlying Angular Router and Ionic NavController functionality. It offers
844
+ * methods for navigating between routes, retrieving URL information, and managing query parameters.
845
+ * This service is designed to simplify navigation patterns and provide consistent behavior
846
+ * across the application.
847
+ *
848
+ * @class RouterService
849
+ * @injectable
850
+ */
851
+ @Injectable({
852
+ providedIn: 'root',
853
+ })
854
+ export class NgxRouterService {
855
+ /**
856
+ * @description Stores the previous URL for back navigation.
857
+ * @summary Caches the previous URL from the router navigation events.
858
+ * This is used as a reference point for back navigation and for determining
859
+ * the navigation history of the application.
860
+ *
861
+ * @private
862
+ * @type {string}
863
+ * @memberOf RouterService
864
+ */
865
+ private previousUrl!: string;
866
+ &nbsp;
867
+ /**
868
+ * @description Angular Router service.
869
+ * @summary Injected Angular Router service that provides core navigation capabilities,
870
+ * URL manipulation, and navigation event handling. This service is used for most
871
+ * routing operations and for accessing information about the current route.
872
+ *
873
+ * @private
874
+ * @type {Router}
875
+ * @memberOf RouterService
876
+ */
877
+ private router: Router = inject(Router);
878
+ &nbsp;
879
+ /**
880
+ * @description Angular ActivatedRoute service.
881
+ * @summary Injected service that provides access to information about a route
882
+ * associated with a component loaded in an outlet. This service is used to
883
+ * access route parameters, query parameters, and other route-specific data.
884
+ *
885
+ * @private
886
+ * @type {ActivatedRoute}
887
+ * @memberOf RouterService
888
+ */
889
+ private route: ActivatedRoute = inject(ActivatedRoute);
890
+ &nbsp;
891
+ /**
892
+ * @description Ionic NavController service.
893
+ * @summary Injected Ionic service that provides methods for navigating between pages
894
+ * with animated transitions. This service extends Angular's routing capabilities
895
+ * with mobile-friendly navigation patterns and animations.
896
+ *
897
+ * @private
898
+ * @type {NavController}
899
+ * @memberOf RouterService
900
+ */
901
+ private navController: NavController = inject(NavController);
902
+ &nbsp;
903
+ /**
904
+ * @description Angular Location service.
905
+ * @summary Injected service that provides access to the browser's URL and history.
906
+ * This service is used for interacting with the browser's history API, allowing
907
+ * for back navigation and URL manipulation outside of Angular's router.
908
+ *
909
+ * @private
910
+ * @type {Location}
911
+ * @memberOf RouterService
912
+ */
913
+ private location: Location = inject(Location);
914
+ &nbsp;
915
+ /**
916
+ * @description Creates an instance of RouterService.
917
+ * @summary Initializes a new RouterService. The commented line suggests that in a previous
918
+ * version, this service was registered with an injectable registry system, which may have
919
+ * been used for dependency tracking or service discovery.
920
+ *
921
+ * @memberOf RouterService
922
+ */
923
+ // constructor() {}
924
+ &nbsp;
925
+ /**
926
+ * @description Parses query parameters from the current route.
927
+ * @summary Extracts specified query parameters from the current route and returns them
928
+ * as an array of key-value pairs. This method supports both single parameter and
929
+ * multiple parameter extraction, making it flexible for various use cases.
930
+ *
931
+ * @param {string | string[]} params - The parameter name(s) to extract from the route
932
+ * @return {KeyValue[]} An array of key-value objects representing the extracted parameters
933
+ *
934
+ * @mermaid
935
+ * sequenceDiagram
936
+ * participant C as Component
937
+ * participant R as RouterService
938
+ * participant A as ActivatedRoute
939
+ *
940
+ * C-&gt;&gt;R: parseAllQueryParams(params)
941
+ * alt params is string
942
+ * R-&gt;&gt;R: Convert params to array
943
+ * end
944
+ * R-&gt;&gt;R: Initialize empty result array
945
+ * loop For each param in params
946
+ * R-&gt;&gt;A: Get param value from queryParamMap
947
+ * A--&gt;&gt;R: Return param value or null
948
+ * R-&gt;&gt;R: Create key-value object
949
+ * R-&gt;&gt;R: Add to result array
950
+ * end
951
+ * R--&gt;&gt;C: Return array of key-value pairs
952
+ *
953
+ * @memberOf RouterService
954
+ */
955
+ parseAllQueryParams(params?: string | string[]): KeyValue[] {
956
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!params) {
957
+ <span class="cstat-no" title="statement not covered" > params = Object.keys(this.route.snapshot.queryParams);</span>
958
+ }
959
+ if (typeof params === Primitives.STRING) {
960
+ params = [params as string];
961
+ }
962
+ return (params as string[]).reduce((acc: KeyValue[], param: string) =&gt; {
963
+ const item = {
964
+ [param]: (this.route.snapshot.queryParamMap.get(param) as string) || null,
965
+ };
966
+ return [...acc, item];
967
+ }, []);
968
+ }
969
+ &nbsp;
970
+ /**
971
+ * @description Checks if a query parameter exists in the current route.
972
+ * @summary Determines whether a specific query parameter is present in the current route's
973
+ * query parameters. This is useful for conditional logic based on the presence of
974
+ * certain parameters in the URL.
975
+ *
976
+ * @param {string} param - The name of the query parameter to check
977
+ * @return {boolean} True if the parameter exists, false otherwise
978
+ *
979
+ * @mermaid
980
+ * sequenceDiagram
981
+ * participant C as Component
982
+ * participant R as RouterService
983
+ * participant A as ActivatedRoute
984
+ *
985
+ * C-&gt;&gt;R: hasQueryParam(param)
986
+ * R-&gt;&gt;A: Access snapshot.queryParams
987
+ * R-&gt;&gt;R: Check if param exists in queryParams
988
+ * R--&gt;&gt;C: Return boolean result
989
+ *
990
+ * @memberOf RouterService
991
+ */
992
+ <span class="fstat-no" title="function not covered" > hasQueryParam(</span>param: string): boolean {
993
+ <span class="cstat-no" title="statement not covered" > return !!this.route.snapshot.queryParams?.[param];</span>
994
+ }
995
+ &nbsp;
996
+ /**
997
+ * @description Retrieves a specific query parameter from the current route.
998
+ * @summary Extracts a single query parameter from the current route and returns it
999
+ * as a key-value pair. This method leverages parseAllQueryParams internally and
1000
+ * returns the first result or undefined if the parameter doesn't exist.
1001
+ *
1002
+ * @param {string} param - The name of the query parameter to retrieve
1003
+ * @return {KeyValue | undefined} A key-value object representing the parameter, or undefined if not found
1004
+ *
1005
+ * @mermaid
1006
+ * sequenceDiagram
1007
+ * participant C as Component
1008
+ * participant R as RouterService
1009
+ *
1010
+ * C-&gt;&gt;R: getQueryParam(param)
1011
+ * R-&gt;&gt;R: parseAllQueryParams(param)
1012
+ * R-&gt;&gt;R: Extract first result or undefined
1013
+ * R--&gt;&gt;C: Return key-value object or undefined
1014
+ *
1015
+ * @memberOf RouterService
1016
+ */
1017
+ <span class="fstat-no" title="function not covered" > getQueryParam(</span>param: string): KeyValue | undefined {
1018
+ <span class="cstat-no" title="statement not covered" > return this.parseAllQueryParams(param)?.[0] || undefined;</span>
1019
+ }
1020
+ &nbsp;
1021
+ /**
1022
+ * @description Retrieves the value of a specific query parameter.
1023
+ * @summary Extracts the value of a single query parameter from the current route.
1024
+ * This is a convenience method that handles the extraction and returns just the
1025
+ * value rather than a key-value pair.
1026
+ *
1027
+ * @param {string} param - The name of the query parameter to retrieve
1028
+ * @return {string | undefined} The value of the parameter, or undefined if not found
1029
+ *
1030
+ * @mermaid
1031
+ * sequenceDiagram
1032
+ * participant C as Component
1033
+ * participant R as RouterService
1034
+ *
1035
+ * C-&gt;&gt;R: getQueryParamValue(param)
1036
+ * R-&gt;&gt;R: parseAllQueryParams(param)
1037
+ * R-&gt;&gt;R: Extract value from first result or undefined
1038
+ * R--&gt;&gt;C: Return string value or undefined
1039
+ *
1040
+ * @memberOf RouterService
1041
+ */
1042
+ getQueryParamValue(param: string): string | undefined {
1043
+ return (this.parseAllQueryParams(param)?.[0]?.[param] as string) || undefined;
1044
+ }
1045
+ &nbsp;
1046
+ /**
1047
+ * @description Retrieves the last segment of the current URL.
1048
+ * @summary Extracts the final path segment from the current URL, which often
1049
+ * represents the current page or resource identifier. This method first attempts
1050
+ * to use the Angular Router's URL, and falls back to the window location if needed.
1051
+ *
1052
+ * @return {string} The last segment of the current URL path
1053
+ *
1054
+ * @mermaid
1055
+ * sequenceDiagram
1056
+ * participant C as Component
1057
+ * participant R as RouterService
1058
+ * participant W as Window
1059
+ *
1060
+ * C-&gt;&gt;R: getLastUrlSegment()
1061
+ * alt Router URL available
1062
+ * R-&gt;&gt;R: Split router.url by &amp;#39;/&amp;#39;
1063
+ * else Router URL not available
1064
+ * R-&gt;&gt;W: Get window.location.href
1065
+ * R-&gt;&gt;R: Split href by &amp;#39;/&amp;#39;
1066
+ * end
1067
+ * R-&gt;&gt;R: Extract last segment
1068
+ * R--&gt;&gt;C: Return last segment
1069
+ *
1070
+ * @memberOf RouterService
1071
+ */
1072
+ <span class="fstat-no" title="function not covered" > getLastUrlSegment(</span>): string {
1073
+ <span class="cstat-no" title="statement not covered" > return (this.router.url || globalThis.window.location.href).split('/').pop() as string;</span>
1074
+ }
1075
+ &nbsp;
1076
+ /**
1077
+ * @description Retrieves the current URL of the application.
1078
+ * @summary Extracts the current URL path from either the Angular Router or the browser's
1079
+ * window location, depending on availability. It also cleans the URL by removing the
1080
+ * leading forward slash for consistency.
1081
+ *
1082
+ * @return {string} The current URL of the application without the leading slash
1083
+ *
1084
+ * @mermaid
1085
+ * sequenceDiagram
1086
+ * participant C as Component
1087
+ * participant R as RouterService
1088
+ * participant W as Window
1089
+ *
1090
+ * C-&gt;&gt;R: getCurrentUrl()
1091
+ * R-&gt;&gt;R: Get router.url
1092
+ * R-&gt;&gt;W: Get window.location.pathname
1093
+ * alt router.url is &amp;#39;/&amp;#39; and different from pathname
1094
+ * R-&gt;&gt;R: Use pathname
1095
+ * else
1096
+ * R-&gt;&gt;R: Use router.url
1097
+ * end
1098
+ * R-&gt;&gt;R: Remove leading &amp;#39;/&amp;#39;
1099
+ * R--&gt;&gt;C: Return clean URL
1100
+ *
1101
+ * @memberOf RouterService
1102
+ */
1103
+ <span class="fstat-no" title="function not covered" > getCurrentUrl(</span>): string {
1104
+ const routerUrl = <span class="cstat-no" title="statement not covered" >this.router.url;</span>
1105
+ const pathName = <span class="cstat-no" title="statement not covered" >globalThis.window?.location?.pathname;</span>
1106
+ const result = <span class="cstat-no" title="statement not covered" >routerUrl === '/' &amp;&amp; routerUrl !== pathName ? pathName : routerUrl;</span>
1107
+ <span class="cstat-no" title="statement not covered" > return result.replace('/', '');</span>
1108
+ }
1109
+ &nbsp;
1110
+ /**
1111
+ * @description Retrieves the URL of the previous page.
1112
+ * @summary Extracts the URL of the previous page from the router's navigation history.
1113
+ * This information is useful for back navigation and for understanding the user's
1114
+ * navigation path through the application.
1115
+ *
1116
+ * @return {string} The URL of the previous page
1117
+ *
1118
+ * @mermaid
1119
+ * sequenceDiagram
1120
+ * participant C as Component
1121
+ * participant R as RouterService
1122
+ * participant N as Router Navigation
1123
+ *
1124
+ * C-&gt;&gt;R: getPreviousUrl()
1125
+ * R-&gt;&gt;N: Get currentNavigation
1126
+ * alt previousNavigation exists
1127
+ * R-&gt;&gt;N: Extract previousNavigation.finalUrl
1128
+ * R-&gt;&gt;R: Store in previousUrl
1129
+ * end
1130
+ * R--&gt;&gt;C: Return previousUrl
1131
+ *
1132
+ * @memberOf RouterService
1133
+ */
1134
+ <span class="fstat-no" title="function not covered" > getPreviousUrl(</span>): string {
1135
+ const currentNavigation = <span class="cstat-no" title="statement not covered" >this.router.currentNavigation() || this.router.getCurrentNavigation();</span>
1136
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!!currentNavigation &amp;&amp; currentNavigation.previousNavigation?.finalUrl?.toString() !== undefined)</span>
1137
+ <span class="cstat-no" title="statement not covered" > this.previousUrl = currentNavigation.previousNavigation?.finalUrl?.toString();</span>
1138
+ <span class="cstat-no" title="statement not covered" > return this.previousUrl as string;</span>
1139
+ }
1140
+ &nbsp;
1141
+ /**
1142
+ * @description Navigates back to the previous page.
1143
+ * @summary Triggers navigation back to the previous page in the browser's history.
1144
+ * This method also dispatches a custom event to notify other components about
1145
+ * the back navigation.
1146
+ *
1147
+ * @return {void}
1148
+ *
1149
+ * @mermaid
1150
+ * sequenceDiagram
1151
+ * participant C as Component
1152
+ * participant R as RouterService
1153
+ * participant L as Location
1154
+ *
1155
+ * C-&gt;&gt;R: backToLastPage()
1156
+ * R-&gt;&gt;L: Dispatch BackButtonClickEvent event
1157
+ * R-&gt;&gt;L: Navigate back
1158
+ *
1159
+ * @memberOf RouterService
1160
+ */
1161
+ <span class="fstat-no" title="function not covered" > backToLastPage(</span>): void {
1162
+ <span class="cstat-no" title="statement not covered" > globalThis.window.dispatchEvent(</span>
1163
+ new CustomEvent(ComponentEventNames.BackButtonClickEvent, {
1164
+ bubbles: true,
1165
+ composed: true,
1166
+ cancelable: false,
1167
+ detail: { refres: true },
1168
+ })
1169
+ );
1170
+ <span class="cstat-no" title="statement not covered" > this.location.back();</span>
1171
+ }
1172
+ &nbsp;
1173
+ /**
1174
+ * @description Navigates to a specified page.
1175
+ * @summary Triggers navigation to a specified page using the Ionic NavController.
1176
+ * Supports different navigation directions and additional options.
1177
+ *
1178
+ * @param {string} page - The page to navigate to
1179
+ * @param {RouteDirections} [direction=RouteDirections.FORWARD] - The direction of navigation
1180
+ * @param {NavigationOptions} [options] - Additional navigation options
1181
+ * @return {Promise&lt;boolean&gt;} A promise that resolves to true if navigation is successful, otherwise false
1182
+ *
1183
+ * @mermaid
1184
+ * sequenceDiagram
1185
+ * participant C as Component
1186
+ * participant R as RouterService
1187
+ * participant N as NavController
1188
+ *
1189
+ * C-&gt;&gt;R: navigateTo(page, direction, options)
1190
+ * alt direction is ROOT
1191
+ * R-&gt;&gt;N: navigateRoot(page, options)
1192
+ * else direction is FORWARD
1193
+ * R-&gt;&gt;N: navigateForward(page, options)
1194
+ * else direction is BACK
1195
+ * R-&gt;&gt;N: navigateBack(page, options)
1196
+ * end
1197
+ * N--&gt;&gt;R: Return navigation result
1198
+ * R--&gt;&gt;C: Return boolean result
1199
+ *
1200
+ * @memberOf RouterService
1201
+ */
1202
+ <span class="fstat-no" title="function not covered" > async </span>navigateTo(
1203
+ page: string,
1204
+ direction: RouteDirections = <span class="branch-0 cbranch-no" title="branch not covered" >RouteDirections.FORWARD,</span>
1205
+ options?: NavigationOptions
1206
+ ): Promise&lt;boolean&gt; {
1207
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (direction === RouteDirections.ROOT) <span class="cstat-no" title="statement not covered" >return this.navController.navigateRoot(page, options);</span></span>
1208
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (direction === RouteDirections.FORWARD) <span class="cstat-no" title="statement not covered" >return await this.navController.navigateForward(page, options);</span></span>
1209
+ <span class="cstat-no" title="statement not covered" > return await this.navController.navigateBack(page, options);</span>
1210
+ }
1211
+ }
1212
+ &nbsp;</pre></td></tr></table></pre>
1213
+
1214
+ <div class='push'></div><!-- for sticky footer -->
1215
+ </div><!-- /wrapper -->
1216
+ <div class='footer quiet pad2 space-top1 center small'>
1217
+ Code coverage generated by
1218
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1219
+ at 2026-02-25T10:45:48.506Z
1220
+ </div>
1221
+ <script src="../../../prettify.js"></script>
1222
+ <script>
1223
+ window.onload = function () {
1224
+ prettyPrint();
1225
+ };
1226
+ </script>
1227
+ <script src="../../../sorter.js"></script>
1228
+ <script src="../../../block-navigation.js"></script>
1229
+ </body>
1230
+ </html>
1231
+