@decaf-ts/for-angular 0.1.1 → 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 (375) 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/{fesm2022 → dist/lib/fesm2022}/decaf-ts-for-angular.mjs +93 -109
  16. package/dist/lib/fesm2022/decaf-ts-for-angular.mjs.map +1 -0
  17. package/{index.d.ts → dist/lib/index.d.ts} +6 -5
  18. package/eslint.config.mjs +101 -0
  19. package/ionic.config.json +14 -0
  20. package/jest.config.ts +52 -0
  21. package/jest.setup.ts +50 -0
  22. package/karma.conf.js +50 -0
  23. package/ng-package.json +16 -0
  24. package/ngsw-config.json +30 -0
  25. package/package.json +86 -17
  26. package/playwright.config.ts +80 -0
  27. package/resources/favicon.png +0 -0
  28. package/resources/favicon.svg +29 -0
  29. package/resources/icon-background.png +0 -0
  30. package/resources/icon-foreground.png +0 -0
  31. package/resources/icon-only.png +0 -0
  32. package/resources/icon-only.svg +29 -0
  33. package/resources/splash-dark.png +0 -0
  34. package/resources/splash-dark2.png +0 -0
  35. package/resources/splash.png +0 -0
  36. package/resources/splash2.png +0 -0
  37. package/resources/touch-icon.svg +29 -0
  38. package/schematics/README.md +28 -0
  39. package/schematics/collection.json +20 -0
  40. package/schematics/package-lock.json +1501 -0
  41. package/schematics/package.json +37 -0
  42. package/schematics/src/component/files/__name@dasherize@if-flat__/__name@dasherize__.__type@dasherize__.__style__.template +0 -0
  43. package/schematics/src/component/files/__name@dasherize@if-flat__/__name@dasherize__.__type@dasherize__.html.template +3 -0
  44. package/schematics/src/component/files/__name@dasherize@if-flat__/__name@dasherize__.__type@dasherize__.spec.ts.template +40 -0
  45. package/schematics/src/component/files/__name@dasherize@if-flat__/__name@dasherize__.__type@dasherize__.ts.template +37 -0
  46. package/schematics/src/component/files/__name@dasherize@if-flat__/__name@dasherize__.module.ts.template +14 -0
  47. package/schematics/src/component/index.js +146 -0
  48. package/schematics/src/component/schema.js +2 -0
  49. package/schematics/src/component/schema.json +101 -0
  50. package/schematics/src/page/files/__name@dasherize__.page.html.template +15 -0
  51. package/schematics/src/page/files/__name@dasherize__.page.scss.template +0 -0
  52. package/schematics/src/page/files/__name@dasherize__.page.ts.template +19 -0
  53. package/schematics/src/page/index.js +71 -0
  54. package/schematics/src/page/schema.json +87 -0
  55. package/schematics/src/schematics/index.js +11 -0
  56. package/schematics/src/schematics/index_spec.js +13 -0
  57. package/schematics/src/util/ast-util.js +517 -0
  58. package/schematics/src/util/change.js +96 -0
  59. package/schematics/src/util/index.js +14 -0
  60. package/settings.json +112 -0
  61. package/tsconfig.app.json +22 -0
  62. package/tsconfig.cli.json +82 -0
  63. package/tsconfig.lib.json +14 -0
  64. package/tsconfig.lib.prod.json +10 -0
  65. package/tsconfig.spec.json +22 -0
  66. package/webpack.config.js +10 -0
  67. package/workdocs/1-Header.md +5 -0
  68. package/workdocs/2-Badges.md +30 -0
  69. package/workdocs/4-Description.md +4 -0
  70. package/workdocs/5-HowToUse.md +27 -0
  71. package/workdocs/6-Related.md +7 -0
  72. package/workdocs/7-Social.md +5 -0
  73. package/workdocs/99-Footer.md +28 -0
  74. package/workdocs/Readme.md +12 -0
  75. package/workdocs/assets/apple-touch-icon.png +0 -0
  76. package/workdocs/assets/decaf-logo.svg +54 -0
  77. package/workdocs/assets/favicon.png +0 -0
  78. package/workdocs/assets/slogans.json +182 -0
  79. package/workdocs/confluence/.markdown-confluence.template.json +6 -0
  80. package/workdocs/confluence/Angular Module.md +5 -0
  81. package/workdocs/drawings/diagram.drawio +24 -0
  82. package/workdocs/prompts/bulk.md +122 -0
  83. package/workdocs/prompts/code.md +47 -0
  84. package/workdocs/prompts/documentation.md +146 -0
  85. package/workdocs/prompts/uml.md +11 -0
  86. package/workdocs/readme-md.json +6 -0
  87. package/workdocs/reports/CHANGELOG.md +12 -0
  88. package/workdocs/reports/DEPENDENCIES.md +213 -0
  89. package/workdocs/reports/RELEASE_NOTES.md +24 -0
  90. package/workdocs/reports/coverage/.gitkeep +0 -0
  91. package/workdocs/reports/coverage/clover.xml +4110 -0
  92. package/workdocs/reports/coverage/coverage-final.json +76 -0
  93. package/workdocs/reports/coverage/lcov-report/base.css +224 -0
  94. package/workdocs/reports/coverage/lcov-report/block-navigation.js +87 -0
  95. package/workdocs/reports/coverage/lcov-report/favicon.png +0 -0
  96. package/workdocs/reports/coverage/lcov-report/index.html +551 -0
  97. package/workdocs/reports/coverage/lcov-report/prettify.css +1 -0
  98. package/workdocs/reports/coverage/lcov-report/prettify.js +2 -0
  99. package/workdocs/reports/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  100. package/workdocs/reports/coverage/lcov-report/sorter.js +210 -0
  101. package/workdocs/reports/coverage/lcov-report/src/app/models/CategoryModel.ts.html +277 -0
  102. package/workdocs/reports/coverage/lcov-report/src/app/models/DemoModel.ts.html +427 -0
  103. package/workdocs/reports/coverage/lcov-report/src/app/models/UserModel.ts.html +226 -0
  104. package/workdocs/reports/coverage/lcov-report/src/app/models/index.html +146 -0
  105. package/workdocs/reports/coverage/lcov-report/src/cli-module.ts.html +502 -0
  106. package/workdocs/reports/coverage/lcov-report/src/environments/environment.ts.html +166 -0
  107. package/workdocs/reports/coverage/lcov-report/src/environments/index.html +116 -0
  108. package/workdocs/reports/coverage/lcov-report/src/index.html +191 -0
  109. package/workdocs/reports/coverage/lcov-report/src/karma-test.ts.html +121 -0
  110. package/workdocs/reports/coverage/lcov-report/src/lib/components/card/card.component.ts.html +625 -0
  111. package/workdocs/reports/coverage/lcov-report/src/lib/components/card/index.html +116 -0
  112. package/workdocs/reports/coverage/lcov-report/src/lib/components/component-renderer/component-renderer.component.ts.html +772 -0
  113. package/workdocs/reports/coverage/lcov-report/src/lib/components/component-renderer/index.html +116 -0
  114. package/workdocs/reports/coverage/lcov-report/src/lib/components/crud-field/crud-field.component.ts.html +2698 -0
  115. package/workdocs/reports/coverage/lcov-report/src/lib/components/crud-field/index.html +116 -0
  116. package/workdocs/reports/coverage/lcov-report/src/lib/components/crud-form/constants.ts.html +133 -0
  117. package/workdocs/reports/coverage/lcov-report/src/lib/components/crud-form/crud-form.component.ts.html +346 -0
  118. package/workdocs/reports/coverage/lcov-report/src/lib/components/crud-form/index.html +116 -0
  119. package/workdocs/reports/coverage/lcov-report/src/lib/components/empty-state/empty-state.component.ts.html +1264 -0
  120. package/workdocs/reports/coverage/lcov-report/src/lib/components/empty-state/index.html +116 -0
  121. package/workdocs/reports/coverage/lcov-report/src/lib/components/fieldset/fieldset.component.ts.html +2965 -0
  122. package/workdocs/reports/coverage/lcov-report/src/lib/components/fieldset/index.html +116 -0
  123. package/workdocs/reports/coverage/lcov-report/src/lib/components/file-upload/file-upload.component.ts.html +2263 -0
  124. package/workdocs/reports/coverage/lcov-report/src/lib/components/file-upload/index.html +116 -0
  125. package/workdocs/reports/coverage/lcov-report/src/lib/components/filter/filter.component.ts.html +2485 -0
  126. package/workdocs/reports/coverage/lcov-report/src/lib/components/filter/index.html +116 -0
  127. package/workdocs/reports/coverage/lcov-report/src/lib/components/for-angular-components.module.ts.html +259 -0
  128. package/workdocs/reports/coverage/lcov-report/src/lib/components/icon/icon.component.ts.html +358 -0
  129. package/workdocs/reports/coverage/lcov-report/src/lib/components/icon/index.html +116 -0
  130. package/workdocs/reports/coverage/lcov-report/src/lib/components/index.html +131 -0
  131. package/workdocs/reports/coverage/lcov-report/src/lib/components/index.ts.html +181 -0
  132. package/workdocs/reports/coverage/lcov-report/src/lib/components/layout/index.html +116 -0
  133. package/workdocs/reports/coverage/lcov-report/src/lib/components/layout/layout.component.ts.html +943 -0
  134. package/workdocs/reports/coverage/lcov-report/src/lib/components/list/index.html +116 -0
  135. package/workdocs/reports/coverage/lcov-report/src/lib/components/list/list.component.ts.html +4261 -0
  136. package/workdocs/reports/coverage/lcov-report/src/lib/components/list-item/index.html +116 -0
  137. package/workdocs/reports/coverage/lcov-report/src/lib/components/list-item/list-item.component.ts.html +1741 -0
  138. package/workdocs/reports/coverage/lcov-report/src/lib/components/modal/index.html +116 -0
  139. package/workdocs/reports/coverage/lcov-report/src/lib/components/modal/modal.component.ts.html +1984 -0
  140. package/workdocs/reports/coverage/lcov-report/src/lib/components/model-renderer/index.html +116 -0
  141. package/workdocs/reports/coverage/lcov-report/src/lib/components/model-renderer/model-renderer.component.ts.html +373 -0
  142. package/workdocs/reports/coverage/lcov-report/src/lib/components/pagination/index.html +116 -0
  143. package/workdocs/reports/coverage/lcov-report/src/lib/components/pagination/pagination.component.ts.html +1165 -0
  144. package/workdocs/reports/coverage/lcov-report/src/lib/components/searchbar/index.html +116 -0
  145. package/workdocs/reports/coverage/lcov-report/src/lib/components/searchbar/searchbar.component.ts.html +1774 -0
  146. package/workdocs/reports/coverage/lcov-report/src/lib/components/stepped-form/index.html +116 -0
  147. package/workdocs/reports/coverage/lcov-report/src/lib/components/stepped-form/stepped-form.component.ts.html +1219 -0
  148. package/workdocs/reports/coverage/lcov-report/src/lib/components/table/index.html +116 -0
  149. package/workdocs/reports/coverage/lcov-report/src/lib/components/table/table.component.ts.html +988 -0
  150. package/workdocs/reports/coverage/lcov-report/src/lib/directives/NgxSvgDirective.ts.html +163 -0
  151. package/workdocs/reports/coverage/lcov-report/src/lib/directives/collapsable.directive.ts.html +268 -0
  152. package/workdocs/reports/coverage/lcov-report/src/lib/directives/index.html +131 -0
  153. package/workdocs/reports/coverage/lcov-report/src/lib/directives/index.ts.html +91 -0
  154. package/workdocs/reports/coverage/lcov-report/src/lib/engine/DynamicModule.ts.html +133 -0
  155. package/workdocs/reports/coverage/lcov-report/src/lib/engine/MediaService.ts.html +142 -0
  156. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxBaseComponent.ts.html +2194 -0
  157. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxComponentDirective.ts.html +3430 -0
  158. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxCrudFormField.ts.html +721 -0
  159. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxDecafComponentDirective.ts.html +1864 -0
  160. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxDecafFormFieldDirective.ts.html +952 -0
  161. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxDecafFormService.ts.html +3211 -0
  162. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxEventHandler.ts.html +307 -0
  163. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxFormDirective.ts.html +1366 -0
  164. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxFormFieldDirective.ts.html +1960 -0
  165. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxFormService.ts.html +3004 -0
  166. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxModelPageDirective.ts.html +1672 -0
  167. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxPageDirective.ts.html +748 -0
  168. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxParentComponentDirective.ts.html +775 -0
  169. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxRenderableComponentDirective.ts.html +727 -0
  170. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxRenderingEngine.ts.html +2005 -0
  171. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxRepositoryDirective.ts.html +1561 -0
  172. package/workdocs/reports/coverage/lcov-report/src/lib/engine/ValidatorFactory.ts.html +817 -0
  173. package/workdocs/reports/coverage/lcov-report/src/lib/engine/constants.ts.html +1120 -0
  174. package/workdocs/reports/coverage/lcov-report/src/lib/engine/decorators.ts.html +376 -0
  175. package/workdocs/reports/coverage/lcov-report/src/lib/engine/helpers.ts.html +676 -0
  176. package/workdocs/reports/coverage/lcov-report/src/lib/engine/index.html +356 -0
  177. package/workdocs/reports/coverage/lcov-report/src/lib/engine/index.ts.html +160 -0
  178. package/workdocs/reports/coverage/lcov-report/src/lib/engine/overrides.ts.html +499 -0
  179. package/workdocs/reports/coverage/lcov-report/src/lib/for-angular-common.module.ts.html +298 -0
  180. package/workdocs/reports/coverage/lcov-report/src/lib/helpers/index.html +131 -0
  181. package/workdocs/reports/coverage/lcov-report/src/lib/helpers/index.ts.html +121 -0
  182. package/workdocs/reports/coverage/lcov-report/src/lib/helpers/utils.ts.html +1603 -0
  183. package/workdocs/reports/coverage/lcov-report/src/lib/i18n/FakeLoader.ts.html +157 -0
  184. package/workdocs/reports/coverage/lcov-report/src/lib/i18n/Loader.ts.html +826 -0
  185. package/workdocs/reports/coverage/lcov-report/src/lib/i18n/index.html +146 -0
  186. package/workdocs/reports/coverage/lcov-report/src/lib/i18n/index.ts.html +91 -0
  187. package/workdocs/reports/coverage/lcov-report/src/lib/index.html +131 -0
  188. package/workdocs/reports/coverage/lcov-report/src/lib/public-apis.ts.html +157 -0
  189. package/workdocs/reports/coverage/lcov-report/src/lib/services/NgxFormService.ts.html +3460 -0
  190. package/workdocs/reports/coverage/lcov-report/src/lib/services/NgxMediaService.ts.html +1420 -0
  191. package/workdocs/reports/coverage/lcov-report/src/lib/services/NgxRouterService.ts.html +1231 -0
  192. package/workdocs/reports/coverage/lcov-report/src/lib/services/NgxTranslateService.ts.html +214 -0
  193. package/workdocs/reports/coverage/lcov-report/src/lib/services/index.html +176 -0
  194. package/workdocs/reports/coverage/lcov-report/src/lib/services/index.ts.html +91 -0
  195. package/workdocs/reports/coverage/lcov-report/src/lib/utils/DecafFakerRepository.ts.html +571 -0
  196. package/workdocs/reports/coverage/lcov-report/src/lib/utils/helpers.ts.html +1663 -0
  197. package/workdocs/reports/coverage/lcov-report/src/lib/utils/index.html +146 -0
  198. package/workdocs/reports/coverage/lcov-report/src/lib/utils/index.ts.html +124 -0
  199. package/workdocs/reports/coverage/lcov-report/src/main.ts.html +100 -0
  200. package/workdocs/reports/coverage/lcov-report/src/polyfills.ts.html +271 -0
  201. package/workdocs/reports/coverage/lcov-report/src/stories/Configure.stories.ts.html +1156 -0
  202. package/workdocs/reports/coverage/lcov-report/src/stories/button.component.ts.html +229 -0
  203. package/workdocs/reports/coverage/lcov-report/src/stories/button.stories.ts.html +235 -0
  204. package/workdocs/reports/coverage/lcov-report/src/stories/crud-field.stories.ts.html +325 -0
  205. package/workdocs/reports/coverage/lcov-report/src/stories/header.stories.ts.html +181 -0
  206. package/workdocs/reports/coverage/lcov-report/src/stories/index.html +281 -0
  207. package/workdocs/reports/coverage/lcov-report/src/stories/list.stories.ts.html +289 -0
  208. package/workdocs/reports/coverage/lcov-report/src/stories/login.page.stories.ts.html +175 -0
  209. package/workdocs/reports/coverage/lcov-report/src/stories/model-renderer.stories.ts.html +259 -0
  210. package/workdocs/reports/coverage/lcov-report/src/stories/page.component.ts.html +331 -0
  211. package/workdocs/reports/coverage/lcov-report/src/stories/page.stories.ts.html +193 -0
  212. package/workdocs/reports/coverage/lcov-report/src/stories/setup.ts.html +127 -0
  213. package/workdocs/reports/coverage/lcov-report/src/stories/utils.ts.html +247 -0
  214. package/workdocs/reports/coverage/lcov-report/src/tests/index.html +116 -0
  215. package/workdocs/reports/coverage/lcov-report/src/tests/karmaErrorParser.ts.html +190 -0
  216. package/workdocs/reports/coverage/lcov-report/src/typings.d.ts.html +88 -0
  217. package/workdocs/reports/coverage/lcov-report/src/zone-flags.ts.html +103 -0
  218. package/workdocs/reports/coverage/lcov.info +7917 -0
  219. package/workdocs/reports/data/.gitkeep +1 -0
  220. package/workdocs/reports/html/.gitkeep +0 -0
  221. package/workdocs/reports/html/jest-html-reporters-attach/test-report/index.js +3 -0
  222. package/workdocs/reports/html/jest-html-reporters-attach/test-report/result.js +1 -0
  223. package/workdocs/reports/html/test-report.html +1 -0
  224. package/workdocs/reports/images/.gitkeep +1 -0
  225. package/workdocs/reports/jest.coverage.config.ts +43 -0
  226. package/workdocs/reports/junit/junit-report.xml +91 -0
  227. package/workdocs/resources/.gitlock +0 -0
  228. package/workdocs/resources/diagram-Actor.png +0 -0
  229. package/workdocs/resources/diagram-banner.png +0 -0
  230. package/workdocs/resources/diagram.png +0 -0
  231. package/workdocs/tutorials/Contributing.md +64 -0
  232. package/workdocs/tutorials/Documentation.md +340 -0
  233. package/workdocs/tutorials/For Developers.md +337 -0
  234. package/workdocs/uml/diagram.puml +11 -0
  235. package/www/1049.10b030f0de36543b.js +1 -0
  236. package/www/1102.67cedfb3e29f0a05.js +1 -0
  237. package/www/1107.6454396befef800d.js +1 -0
  238. package/www/1459.cabc18e941afa5d7.js +1 -0
  239. package/www/1577.5221deebe3501e43.js +1 -0
  240. package/www/2075.b6dc4fbb89dd6afc.js +1 -0
  241. package/www/2348.c4cc27dadbec70ec.js +1 -0
  242. package/www/2375.318d0b24ab346271.js +1 -0
  243. package/www/2415.618d6968ffda319c.js +1 -0
  244. package/www/2460.1d97c6f48b898ee2.js +1 -0
  245. package/www/2560.2e7000dcf80b6b2c.js +1 -0
  246. package/www/2585.dffa5649fffafb44.js +1 -0
  247. package/www/2885.d99b86afd1ff7aa8.js +1 -0
  248. package/www/3162.bbc401f4a5f82460.js +1 -0
  249. package/www/323.f64c512be5c8d797.js +1 -0
  250. package/www/3238.a3e7e8004c6b6667.js +1 -0
  251. package/www/3506.8c03f5589b33a4a6.js +1 -0
  252. package/www/3511.56b7e49bb6c2c936.js +1 -0
  253. package/www/3519.84fbb67dc803f702.js +1 -0
  254. package/www/3675.7ebfdcf145052232.js +1 -0
  255. package/www/3814.765c1794e1be63de.js +1 -0
  256. package/www/3rdpartylicenses.txt +1344 -0
  257. package/www/4171.a974bdbf9c97e4e1.js +1 -0
  258. package/www/4183.41ef1def450a2cc0.js +1 -0
  259. package/www/4406.0b2dd3839b8c1417.js +1 -0
  260. package/www/441.e1031657c7e5f0ff.js +1 -0
  261. package/www/4463.6ad7b857e5f34009.js +1 -0
  262. package/www/4591.42f34534d38b9b31.js +1 -0
  263. package/www/4699.8df8ea9806163d4c.js +1 -0
  264. package/www/5100.ed6483c55a157d67.js +1 -0
  265. package/www/5193.15ea6938534eceb1.js +1 -0
  266. package/www/5197.6733853529768a45.js +1 -0
  267. package/www/5222.8439a641c2c4b1c1.js +1 -0
  268. package/www/5373.d7878f708309f038.js +1 -0
  269. package/www/5467.53f5cce977c2e28b.js +1 -0
  270. package/www/5712.b08cf436ee8145ce.js +1 -0
  271. package/www/5887.3d038f564e925abb.js +1 -0
  272. package/www/5949.37330f20e95dee79.js +1 -0
  273. package/www/6024.c10cc3d1b341c748.js +1 -0
  274. package/www/6433.360fcff952bde822.js +1 -0
  275. package/www/6499.60169da9869db697.js +1 -0
  276. package/www/6521.fab1f34bfe6b8200.js +1 -0
  277. package/www/6631.eaa711da6e0aeed9.js +1 -0
  278. package/www/6717.b4731255038304cd.js +1 -0
  279. package/www/6840.7317cd962ab23932.js +1 -0
  280. package/www/7030.d115d82ca7468a4e.js +1 -0
  281. package/www/7076.cce20ed5c79ff305.js +1 -0
  282. package/www/7179.c0545989ce869b3d.js +1 -0
  283. package/www/7240.69aeb484d78eb24d.js +1 -0
  284. package/www/7372.94c62459e34f7303.js +1 -0
  285. package/www/7402.983a5ecff61e9a5d.js +1 -0
  286. package/www/7428.527ac48035a2f915.js +1 -0
  287. package/www/7676.d7db23d350e4b096.js +1 -0
  288. package/www/770.80af87d5eb0075d3.js +1 -0
  289. package/www/7720.0701576cb9966779.js +1 -0
  290. package/www/7927.ee869d0dc478250a.js +1 -0
  291. package/www/8066.894688fbb2e5c832.js +1 -0
  292. package/www/8193.7f09ecd40b6d42c2.js +1 -0
  293. package/www/8255.158098a6302c91c2.js +1 -0
  294. package/www/8314.596c1ccf26b9c93a.js +1 -0
  295. package/www/8357.c5406b92e6933d7a.js +1 -0
  296. package/www/8477.a3ccc11c25a642d3.js +1 -0
  297. package/www/8487.93b6f7465ae1b7ac.js +1 -0
  298. package/www/8584.b77ad478a5a7ac2a.js +1 -0
  299. package/www/8805.a87413652185ff8f.js +1 -0
  300. package/www/8814.b489a78ae8e926c4.js +1 -0
  301. package/www/8970.234b3db1f97528fe.js +1 -0
  302. package/www/9013.c2e6ba17a915bdd6.js +1 -0
  303. package/www/9073.16c4e42482d55a3c.js +1 -0
  304. package/www/9344.7d2d24b194b794e2.js +1 -0
  305. package/www/9364.9a028036dd89e3e7.js +1 -0
  306. package/www/944.7e4317348c48d4f4.js +1 -0
  307. package/www/964.9a979e1c1aad0f5b.js +1 -0
  308. package/www/9657.8c3589a0aff521c0.js +1 -0
  309. package/www/9956.2d00a2153e9a7799.js +1 -0
  310. package/www/9977.068cd5561462bc99.js +1 -0
  311. package/www/assets/i18n/en.json +210 -0
  312. package/www/assets/i18n/ew/en.json +346 -0
  313. package/www/assets/i18n/pt.json +186 -0
  314. package/www/assets/icons/icon-128.webp +0 -0
  315. package/www/assets/icons/icon-192.webp +0 -0
  316. package/www/assets/icons/icon-256.webp +0 -0
  317. package/www/assets/icons/icon-48.webp +0 -0
  318. package/www/assets/icons/icon-512.webp +0 -0
  319. package/www/assets/icons/icon-72.webp +0 -0
  320. package/www/assets/icons/icon-96.webp +0 -0
  321. package/www/assets/images/angular-logo.svg +45 -0
  322. package/www/assets/images/apple-touch-icon.png +0 -0
  323. package/www/assets/images/decaf-logo-black.svg +22 -0
  324. package/www/assets/images/decaf-logo-contrast.svg +54 -0
  325. package/www/assets/images/decaf-logo-white.svg +22 -0
  326. package/www/assets/images/decaf-logo.svg +54 -0
  327. package/www/assets/images/ew/product.txt +1 -0
  328. package/www/assets/images/favicon-contrast.svg +7 -0
  329. package/www/assets/images/favicon.png +0 -0
  330. package/www/assets/images/favicon.svg +29 -0
  331. package/www/assets/images/icons/document.svg +7 -0
  332. package/www/assets/images/icons/edit.svg +1 -0
  333. package/www/assets/images/icons/logout.svg +4 -0
  334. package/www/assets/images/icons/menu-collapse.svg +5 -0
  335. package/www/assets/images/icons/menu.svg +3 -0
  336. package/www/assets/images/icons/moon-stars.svg +5 -0
  337. package/www/assets/images/icons/trash.svg +1 -0
  338. package/www/cli-module.ts +139 -0
  339. package/www/common.e50b5f8708aca9a5.js +1 -0
  340. package/www/index.html +29 -0
  341. package/www/main.6144bf417dec1977.js +1 -0
  342. package/www/polyfills.4c1e087fffe784e8.js +1 -0
  343. package/www/runtime.d8dcb0932f88fe3c.js +1 -0
  344. package/www/styles.5a3cd83eba16afc9.css +4 -0
  345. package/www/tabler-icons.bfabe54eef86ae62.woff +0 -0
  346. package/www/tabler-icons.d9f65ab9439b4ffc.ttf +0 -0
  347. package/www/tabler-icons.f17d2c3b34a5deaa.woff2 +0 -0
  348. package/fesm2022/decaf-ts-for-angular.mjs.map +0 -1
  349. /package/{assets → dist/lib/assets}/i18n/en.json +0 -0
  350. /package/{assets → dist/lib/assets}/i18n/ew/en.json +0 -0
  351. /package/{assets → dist/lib/assets}/i18n/pt.json +0 -0
  352. /package/{assets → dist/lib/assets}/icons/icon-128.webp +0 -0
  353. /package/{assets → dist/lib/assets}/icons/icon-192.webp +0 -0
  354. /package/{assets → dist/lib/assets}/icons/icon-256.webp +0 -0
  355. /package/{assets → dist/lib/assets}/icons/icon-48.webp +0 -0
  356. /package/{assets → dist/lib/assets}/icons/icon-512.webp +0 -0
  357. /package/{assets → dist/lib/assets}/icons/icon-72.webp +0 -0
  358. /package/{assets → dist/lib/assets}/icons/icon-96.webp +0 -0
  359. /package/{assets → dist/lib/assets}/images/angular-logo.svg +0 -0
  360. /package/{assets → dist/lib/assets}/images/apple-touch-icon.png +0 -0
  361. /package/{assets → dist/lib/assets}/images/decaf-logo-black.svg +0 -0
  362. /package/{assets → dist/lib/assets}/images/decaf-logo-contrast.svg +0 -0
  363. /package/{assets → dist/lib/assets}/images/decaf-logo-white.svg +0 -0
  364. /package/{assets → dist/lib/assets}/images/decaf-logo.svg +0 -0
  365. /package/{assets → dist/lib/assets}/images/ew/product.txt +0 -0
  366. /package/{assets → dist/lib/assets}/images/favicon-contrast.svg +0 -0
  367. /package/{assets → dist/lib/assets}/images/favicon.png +0 -0
  368. /package/{assets → dist/lib/assets}/images/favicon.svg +0 -0
  369. /package/{assets → dist/lib/assets}/images/icons/document.svg +0 -0
  370. /package/{assets → dist/lib/assets}/images/icons/edit.svg +0 -0
  371. /package/{assets → dist/lib/assets}/images/icons/logout.svg +0 -0
  372. /package/{assets → dist/lib/assets}/images/icons/menu-collapse.svg +0 -0
  373. /package/{assets → dist/lib/assets}/images/icons/menu.svg +0 -0
  374. /package/{assets → dist/lib/assets}/images/icons/moon-stars.svg +0 -0
  375. /package/{assets → dist/lib/assets}/images/icons/trash.svg +0 -0
@@ -0,0 +1,748 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/lib/engine/NgxPageDirective.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/engine</a> NgxPageDirective.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">35% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>21/60</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">10.34% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>3/29</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">28.57% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>2/7</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">39.58% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>19/48</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 low'></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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
288
+ <span class="cline-any cline-neutral">&nbsp;</span>
289
+ <span class="cline-any cline-neutral">&nbsp;</span>
290
+ <span class="cline-any cline-neutral">&nbsp;</span>
291
+ <span class="cline-any cline-neutral">&nbsp;</span>
292
+ <span class="cline-any cline-neutral">&nbsp;</span>
293
+ <span class="cline-any cline-neutral">&nbsp;</span>
294
+ <span class="cline-any cline-yes">7x</span>
295
+ <span class="cline-any cline-yes">7x</span>
296
+ <span class="cline-any cline-yes">7x</span>
297
+ <span class="cline-any cline-yes">7x</span>
298
+ <span class="cline-any cline-neutral">&nbsp;</span>
299
+ <span class="cline-any cline-neutral">&nbsp;</span>
300
+ <span class="cline-any cline-yes">7x</span>
301
+ <span class="cline-any cline-yes">7x</span>
302
+ <span class="cline-any cline-neutral">&nbsp;</span>
303
+ <span class="cline-any cline-yes">7x</span>
304
+ <span class="cline-any cline-neutral">&nbsp;</span>
305
+ <span class="cline-any cline-yes">7x</span>
306
+ <span class="cline-any cline-neutral">&nbsp;</span>
307
+ <span class="cline-any cline-neutral">&nbsp;</span>
308
+ <span class="cline-any cline-neutral">&nbsp;</span>
309
+ <span class="cline-any cline-neutral">&nbsp;</span>
310
+ <span class="cline-any cline-neutral">&nbsp;</span>
311
+ <span class="cline-any cline-neutral">&nbsp;</span>
312
+ <span class="cline-any cline-neutral">&nbsp;</span>
313
+ <span class="cline-any cline-neutral">&nbsp;</span>
314
+ <span class="cline-any cline-neutral">&nbsp;</span>
315
+ <span class="cline-any cline-neutral">&nbsp;</span>
316
+ <span class="cline-any cline-neutral">&nbsp;</span>
317
+ <span class="cline-any cline-neutral">&nbsp;</span>
318
+ <span class="cline-any cline-yes">7x</span>
319
+ <span class="cline-any cline-neutral">&nbsp;</span>
320
+ <span class="cline-any cline-neutral">&nbsp;</span>
321
+ <span class="cline-any cline-neutral">&nbsp;</span>
322
+ <span class="cline-any cline-neutral">&nbsp;</span>
323
+ <span class="cline-any cline-neutral">&nbsp;</span>
324
+ <span class="cline-any cline-neutral">&nbsp;</span>
325
+ <span class="cline-any cline-neutral">&nbsp;</span>
326
+ <span class="cline-any cline-neutral">&nbsp;</span>
327
+ <span class="cline-any cline-neutral">&nbsp;</span>
328
+ <span class="cline-any cline-neutral">&nbsp;</span>
329
+ <span class="cline-any cline-neutral">&nbsp;</span>
330
+ <span class="cline-any cline-neutral">&nbsp;</span>
331
+ <span class="cline-any cline-neutral">&nbsp;</span>
332
+ <span class="cline-any cline-neutral">&nbsp;</span>
333
+ <span class="cline-any cline-neutral">&nbsp;</span>
334
+ <span class="cline-any cline-neutral">&nbsp;</span>
335
+ <span class="cline-any cline-neutral">&nbsp;</span>
336
+ <span class="cline-any cline-neutral">&nbsp;</span>
337
+ <span class="cline-any cline-yes">1x</span>
338
+ <span class="cline-any cline-neutral">&nbsp;</span>
339
+ <span class="cline-any cline-neutral">&nbsp;</span>
340
+ <span class="cline-any cline-neutral">&nbsp;</span>
341
+ <span class="cline-any cline-neutral">&nbsp;</span>
342
+ <span class="cline-any cline-neutral">&nbsp;</span>
343
+ <span class="cline-any cline-neutral">&nbsp;</span>
344
+ <span class="cline-any cline-neutral">&nbsp;</span>
345
+ <span class="cline-any cline-neutral">&nbsp;</span>
346
+ <span class="cline-any cline-neutral">&nbsp;</span>
347
+ <span class="cline-any cline-neutral">&nbsp;</span>
348
+ <span class="cline-any cline-neutral">&nbsp;</span>
349
+ <span class="cline-any cline-neutral">&nbsp;</span>
350
+ <span class="cline-any cline-neutral">&nbsp;</span>
351
+ <span class="cline-any cline-neutral">&nbsp;</span>
352
+ <span class="cline-any cline-neutral">&nbsp;</span>
353
+ <span class="cline-any cline-neutral">&nbsp;</span>
354
+ <span class="cline-any cline-neutral">&nbsp;</span>
355
+ <span class="cline-any cline-neutral">&nbsp;</span>
356
+ <span class="cline-any cline-neutral">&nbsp;</span>
357
+ <span class="cline-any cline-neutral">&nbsp;</span>
358
+ <span class="cline-any cline-neutral">&nbsp;</span>
359
+ <span class="cline-any cline-yes">1x</span>
360
+ <span class="cline-any cline-neutral">&nbsp;</span>
361
+ <span class="cline-any cline-neutral">&nbsp;</span>
362
+ <span class="cline-any cline-neutral">&nbsp;</span>
363
+ <span class="cline-any cline-neutral">&nbsp;</span>
364
+ <span class="cline-any cline-neutral">&nbsp;</span>
365
+ <span class="cline-any cline-neutral">&nbsp;</span>
366
+ <span class="cline-any cline-neutral">&nbsp;</span>
367
+ <span class="cline-any cline-neutral">&nbsp;</span>
368
+ <span class="cline-any cline-neutral">&nbsp;</span>
369
+ <span class="cline-any cline-neutral">&nbsp;</span>
370
+ <span class="cline-any cline-neutral">&nbsp;</span>
371
+ <span class="cline-any cline-neutral">&nbsp;</span>
372
+ <span class="cline-any cline-yes">1x</span>
373
+ <span class="cline-any cline-neutral">&nbsp;</span>
374
+ <span class="cline-any cline-neutral">&nbsp;</span>
375
+ <span class="cline-any cline-neutral">&nbsp;</span>
376
+ <span class="cline-any cline-neutral">&nbsp;</span>
377
+ <span class="cline-any cline-neutral">&nbsp;</span>
378
+ <span class="cline-any cline-neutral">&nbsp;</span>
379
+ <span class="cline-any cline-neutral">&nbsp;</span>
380
+ <span class="cline-any cline-neutral">&nbsp;</span>
381
+ <span class="cline-any cline-neutral">&nbsp;</span>
382
+ <span class="cline-any cline-neutral">&nbsp;</span>
383
+ <span class="cline-any cline-yes">1x</span>
384
+ <span class="cline-any cline-neutral">&nbsp;</span>
385
+ <span class="cline-any cline-neutral">&nbsp;</span>
386
+ <span class="cline-any cline-neutral">&nbsp;</span>
387
+ <span class="cline-any cline-neutral">&nbsp;</span>
388
+ <span class="cline-any cline-neutral">&nbsp;</span>
389
+ <span class="cline-any cline-neutral">&nbsp;</span>
390
+ <span class="cline-any cline-neutral">&nbsp;</span>
391
+ <span class="cline-any cline-neutral">&nbsp;</span>
392
+ <span class="cline-any cline-neutral">&nbsp;</span>
393
+ <span class="cline-any cline-neutral">&nbsp;</span>
394
+ <span class="cline-any cline-neutral">&nbsp;</span>
395
+ <span class="cline-any cline-neutral">&nbsp;</span>
396
+ <span class="cline-any cline-yes">1x</span>
397
+ <span class="cline-any cline-neutral">&nbsp;</span>
398
+ <span class="cline-any cline-neutral">&nbsp;</span>
399
+ <span class="cline-any cline-neutral">&nbsp;</span>
400
+ <span class="cline-any cline-neutral">&nbsp;</span>
401
+ <span class="cline-any cline-neutral">&nbsp;</span>
402
+ <span class="cline-any cline-neutral">&nbsp;</span>
403
+ <span class="cline-any cline-neutral">&nbsp;</span>
404
+ <span class="cline-any cline-neutral">&nbsp;</span>
405
+ <span class="cline-any cline-neutral">&nbsp;</span>
406
+ <span class="cline-any cline-neutral">&nbsp;</span>
407
+ <span class="cline-any cline-neutral">&nbsp;</span>
408
+ <span class="cline-any cline-neutral">&nbsp;</span>
409
+ <span class="cline-any cline-neutral">&nbsp;</span>
410
+ <span class="cline-any cline-neutral">&nbsp;</span>
411
+ <span class="cline-any cline-neutral">&nbsp;</span>
412
+ <span class="cline-any cline-neutral">&nbsp;</span>
413
+ <span class="cline-any cline-neutral">&nbsp;</span>
414
+ <span class="cline-any cline-neutral">&nbsp;</span>
415
+ <span class="cline-any cline-neutral">&nbsp;</span>
416
+ <span class="cline-any cline-neutral">&nbsp;</span>
417
+ <span class="cline-any cline-neutral">&nbsp;</span>
418
+ <span class="cline-any cline-neutral">&nbsp;</span>
419
+ <span class="cline-any cline-neutral">&nbsp;</span>
420
+ <span class="cline-any cline-neutral">&nbsp;</span>
421
+ <span class="cline-any cline-neutral">&nbsp;</span>
422
+ <span class="cline-any cline-neutral">&nbsp;</span>
423
+ <span class="cline-any cline-neutral">&nbsp;</span>
424
+ <span class="cline-any cline-neutral">&nbsp;</span>
425
+ <span class="cline-any cline-neutral">&nbsp;</span>
426
+ <span class="cline-any cline-neutral">&nbsp;</span>
427
+ <span class="cline-any cline-yes">1x</span>
428
+ <span class="cline-any cline-yes">1x</span>
429
+ <span class="cline-any cline-neutral">&nbsp;</span>
430
+ <span class="cline-any cline-neutral">&nbsp;</span>
431
+ <span class="cline-any cline-neutral">&nbsp;</span>
432
+ <span class="cline-any cline-neutral">&nbsp;</span>
433
+ <span class="cline-any cline-no">&nbsp;</span>
434
+ <span class="cline-any cline-no">&nbsp;</span>
435
+ <span class="cline-any cline-no">&nbsp;</span>
436
+ <span class="cline-any cline-no">&nbsp;</span>
437
+ <span class="cline-any cline-neutral">&nbsp;</span>
438
+ <span class="cline-any cline-neutral">&nbsp;</span>
439
+ <span class="cline-any cline-neutral">&nbsp;</span>
440
+ <span class="cline-any cline-neutral">&nbsp;</span>
441
+ <span class="cline-any cline-neutral">&nbsp;</span>
442
+ <span class="cline-any cline-no">&nbsp;</span>
443
+ <span class="cline-any cline-neutral">&nbsp;</span>
444
+ <span class="cline-any cline-no">&nbsp;</span>
445
+ <span class="cline-any cline-no">&nbsp;</span>
446
+ <span class="cline-any cline-no">&nbsp;</span>
447
+ <span class="cline-any cline-neutral">&nbsp;</span>
448
+ <span class="cline-any cline-neutral">&nbsp;</span>
449
+ <span class="cline-any cline-neutral">&nbsp;</span>
450
+ <span class="cline-any cline-neutral">&nbsp;</span>
451
+ <span class="cline-any cline-neutral">&nbsp;</span>
452
+ <span class="cline-any cline-neutral">&nbsp;</span>
453
+ <span class="cline-any cline-neutral">&nbsp;</span>
454
+ <span class="cline-any cline-neutral">&nbsp;</span>
455
+ <span class="cline-any cline-neutral">&nbsp;</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-yes">1x</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-no">&nbsp;</span>
463
+ <span class="cline-any cline-no">&nbsp;</span>
464
+ <span class="cline-any cline-no">&nbsp;</span>
465
+ <span class="cline-any cline-no">&nbsp;</span>
466
+ <span class="cline-any cline-no">&nbsp;</span>
467
+ <span class="cline-any cline-no">&nbsp;</span>
468
+ <span class="cline-any cline-no">&nbsp;</span>
469
+ <span class="cline-any cline-neutral">&nbsp;</span>
470
+ <span class="cline-any cline-no">&nbsp;</span>
471
+ <span class="cline-any cline-no">&nbsp;</span>
472
+ <span class="cline-any cline-no">&nbsp;</span>
473
+ <span class="cline-any cline-no">&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-yes">1x</span>
477
+ <span class="cline-any cline-yes">1x</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-no">&nbsp;</span>
495
+ <span class="cline-any cline-no">&nbsp;</span>
496
+ <span class="cline-any cline-no">&nbsp;</span>
497
+ <span class="cline-any cline-no">&nbsp;</span>
498
+ <span class="cline-any cline-no">&nbsp;</span>
499
+ <span class="cline-any cline-no">&nbsp;</span>
500
+ <span class="cline-any cline-no">&nbsp;</span>
501
+ <span class="cline-any cline-neutral">&nbsp;</span>
502
+ <span class="cline-any cline-no">&nbsp;</span>
503
+ <span class="cline-any cline-no">&nbsp;</span>
504
+ <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
508
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">/**
509
+ * @module lib/engine/NgxPageDirective
510
+ * @description Base page component for Decaf Angular applications.
511
+ * @summary Provides a page-level base class (NgxPageDirective) that extends NgxComponentDirective and
512
+ * offers page-focused utilities such as menu management, title handling and router event hooks.
513
+ * @link {@link NgxPageDirective}
514
+ */
515
+ import { AfterViewInit, Directive, Inject, inject } from '@angular/core';
516
+ import { Title } from '@angular/platform-browser';
517
+ import { NavigationEnd, NavigationStart } from '@angular/router';
518
+ import { MenuController } from '@ionic/angular';
519
+ import { Model } from '@decaf-ts/decorator-validation';
520
+ import { IMenuItem } from './interfaces';
521
+ import { CPTKN } from './constants';
522
+ import { removeFocusTrap } from '../utils/helpers';
523
+ import { KeyValue } from './types';
524
+ import { NgxComponentDirective } from './NgxComponentDirective';
525
+ &nbsp;
526
+ import { shareReplay, takeUntil } from 'rxjs';
527
+ &nbsp;
528
+ /**
529
+ * @description Base directive for page-level components in Decaf Angular applications.
530
+ * @summary Abstract directive that provides foundational functionality for page components.
531
+ * Extends NgxComponentDirective to add page-specific features including menu management,
532
+ * page title handling, and Ionic lifecycle hooks. This directive serves as the base class for
533
+ * all page-level components, providing consistent behavior for navigation, routing, and UI state.
534
+ * @class NgxPageDirective
535
+ * @extends {NgxComponentDirective}
536
+ * @memberOf module:lib/engine/NgxPageDirective
537
+ */
538
+ @Directive()
539
+ export abstract class NgxPageDirective extends NgxComponentDirective implements AfterViewInit {
540
+ /**
541
+ * @description Application name for display or identification purposes.
542
+ * @summary Stores the name of the application, which can be used for display in headers,
543
+ * titles, or for logging and identification throughout the app.
544
+ * @type {string}
545
+ * @memberOf module:lib/engine/NgxPageDirective
546
+ */
547
+ appName?: string;
548
+ &nbsp;
549
+ /**
550
+ * @description Page title text for the current view.
551
+ * @summary Stores the title text to be displayed for this page. This can be set dynamically
552
+ * based on the current route or menu configuration and is used to update the browser's
553
+ * title bar or page header.
554
+ * @type {string}
555
+ * @default ''
556
+ * @memberOf module:lib/engine/NgxPageDirective
557
+ */
558
+ title: string = '';
559
+ &nbsp;
560
+ /**
561
+ * @description Global key-value pairs for application-wide settings.
562
+ * @summary This property stores global configuration values that can be accessed
563
+ * throughout the application. It is typically used to manage shared state or
564
+ * settings that are relevant across multiple components or services.
565
+ * @type {KeyValue}
566
+ * @memberOf module:lib/engine/NgxPageDirective
567
+ */
568
+ globals!: KeyValue;
569
+ &nbsp;
570
+ /**
571
+ * @description Ionic menu controller service for menu management.
572
+ * @summary Injected service that provides programmatic control over Ionic menu components.
573
+ * This service allows the component to open, close, toggle, and manage menu states within
574
+ * the application. It provides access to menu functionality for implementing navigation
575
+ * and layout features that require menu interaction.
576
+ * @protected
577
+ * @type {MenuController}
578
+ * @memberOf module:lib/engine/NgxPageDirective
579
+ */
580
+ protected menuController: MenuController = inject(MenuController);
581
+ &nbsp;
582
+ /**
583
+ * @description Menu items array for page navigation.
584
+ * @summary Contains the collection of menu items available for this page. Each menu item
585
+ * defines a navigation option with properties like label, URL, icon, and visibility settings.
586
+ * This array is used to construct the application's navigation menu and can be filtered or
587
+ * customized per page.
588
+ * @protected
589
+ * @type {IMenuItem[]}
590
+ * @default []
591
+ * @memberOf module:lib/engine/NgxPageDirective
592
+ */
593
+ protected menu: IMenuItem[] = [];
594
+ &nbsp;
595
+ /**
596
+ * @description Angular Title service for browser title management.
597
+ * @summary Injected service that provides control over the browser's document title.
598
+ * Used to dynamically set the page title based on the current route or active menu item,
599
+ * improving SEO and user experience.
600
+ * @protected
601
+ * @type {Title}
602
+ * @memberOf module:lib/engine/NgxPageDirective
603
+ */
604
+ protected titleService: Title = inject(Title);
605
+ &nbsp;
606
+ /**
607
+ * @description Flag indicating whether the page should display the navigation menu.
608
+ * @summary Controls the visibility and availability of the application menu for this page.
609
+ * When set to true, the menu is enabled and accessible to users. When false, the menu
610
+ * is disabled, which is useful for pages like login screens or standalone views that
611
+ * should not show navigation options.
612
+ * @protected
613
+ * @type {boolean}
614
+ * @default true
615
+ * @memberOf module:lib/engine/NgxPageDirective
616
+ */
617
+ protected hasMenu: boolean = true;
618
+ &nbsp;
619
+ /**
620
+ * @description Currently active route path for the page (without leading slash).
621
+ * @summary This protected property stores the current route segment used by the
622
+ * page to determine the displayed title and menu state. It is updated on
623
+ * NavigationEnd events (see ngAfterViewInit) and consumed by the `pageTitle`
624
+ * getter and `setPageTitle()` method. When undefined the component will
625
+ * attempt to resolve the route from the router URL.
626
+ * @protected
627
+ * @type {string | undefined}
628
+ * @default undefined
629
+ */
630
+ protected currentRoute?: string;
631
+ &nbsp;
632
+ /**
633
+ * @description Constructor for NgxPageDirective.
634
+ * @summary Initializes the page directive with optional locale root and menu visibility settings.
635
+ * Calls the parent NgxComponentDirective constructor to set up base functionality including
636
+ * logging, localization, and component identification.
637
+ * @param {string} [localeRoot] - Optional locale root key for internationalization
638
+ * @param {boolean} [hasMenu=true] - Whether this page should display the menu
639
+ * @memberOf module:lib/engine/NgxPageDirective
640
+ */
641
+ &nbsp;
642
+ constructor(
643
+ // eslint-disable-next-line @angular-eslint/prefer-inject
644
+ @Inject(CPTKN) localeRoot: string = 'NgxPageDirective',
645
+ // eslint-disable-next-line @angular-eslint/prefer-inject
646
+ @Inject(CPTKN) hasMenu: boolean = true,
647
+ ) {
648
+ super(localeRoot);
649
+ this.hasMenu = hasMenu;
650
+ // subscribe to media service color scheme changes
651
+ }
652
+ &nbsp;
653
+ <span class="fstat-no" title="function not covered" > get p</span>ageTitle(): string {
654
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.title) <span class="cstat-no" title="statement not covered" >return this.title;</span></span>
655
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.locale) <span class="cstat-no" title="statement not covered" >return `${this.locale}.title`;</span></span>
656
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.currentRoute) <span class="cstat-no" title="statement not covered" >return `${this.currentRoute}.title`;</span></span>
657
+ <span class="cstat-no" title="statement not covered" > return `${(this.model as Model).constructor.name}.title`;</span>
658
+ }
659
+ &nbsp;
660
+ // async ngOnInit(): Promise&lt;void&gt; {}
661
+ &nbsp;
662
+ override <span class="fstat-no" title="function not covered" >async </span>initialize(): Promise&lt;void&gt; {
663
+ <span class="cstat-no" title="statement not covered" > await super.initialize();</span>
664
+ // connect component to media service for color scheme toggling
665
+ <span class="cstat-no" title="statement not covered" > this.currentRoute = this.router.url.replace('/', '');</span>
666
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!this.route) <span class="cstat-no" title="statement not covered" >this.route = this.currentRoute;</span></span>
667
+ <span class="cstat-no" title="statement not covered" > this.setPageTitle(this.currentRoute);</span>
668
+ }
669
+ &nbsp;
670
+ /**
671
+ * @description Ionic lifecycle hook called when the page is about to enter view.
672
+ * @summary This lifecycle hook is triggered just before the page becomes visible to the user.
673
+ * It enables or disables the application menu based on the hasMenu property, allowing pages
674
+ * to control whether the menu should be accessible. This is useful for pages like login screens
675
+ * where the menu should be hidden.
676
+ * @return {Promise&lt;void&gt;} A promise that resolves when menu state is updated
677
+ * @memberOf module:lib/engine/NgxPageDirective
678
+ */
679
+ async ngAfterViewInit(): Promise&lt;void&gt; {
680
+ this.router.events
681
+ .pipe(takeUntil(this.destroySubscriptions$), shareReplay(1))
682
+ .subscribe(<span class="fstat-no" title="function not covered" >async </span>(event) =&gt; {
683
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (event instanceof NavigationEnd) {</span>
684
+ const url = <span class="cstat-no" title="statement not covered" >(event?.url || '').replace('/', '');</span>
685
+ <span class="cstat-no" title="statement not covered" > this.currentRoute = url;</span>
686
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.hasMenu) <span class="cstat-no" title="statement not covered" >this.hasMenu = url !== 'login' &amp;&amp; url !== '';</span></span>
687
+ <span class="cstat-no" title="statement not covered" > this.title = this.pageTitle;</span>
688
+ <span class="cstat-no" title="statement not covered" > await this.setPageTitle(url);</span>
689
+ <span class="cstat-no" title="statement not covered" > this.changeDetectorRef.detectChanges();</span>
690
+ }
691
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (event instanceof NavigationStart) {</span>
692
+ const url = <span class="cstat-no" title="statement not covered" >(event?.url || '').replace('/', '');</span>
693
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.hasMenu) <span class="cstat-no" title="statement not covered" >this.hasMenu = url !== 'login' &amp;&amp; url !== '';</span></span>
694
+ <span class="cstat-no" title="statement not covered" > removeFocusTrap();</span>
695
+ }
696
+ });
697
+ if (!this.route) this.route = this.router.url.replace('/', '');
698
+ await this.menuController.enable(this.hasMenu);
699
+ }
700
+ &nbsp;
701
+ /**
702
+ * @description Sets the browser page title based on the current route.
703
+ * @summary Updates the browser's document title by finding the active menu item that matches
704
+ * the provided route. If a matching menu item is found, it sets the title using the format
705
+ * "Decaf For Angular - {menu title or label}". This improves SEO and provides clear context
706
+ * to users about the current page. If a custom menu array is provided, it uses that instead
707
+ * of the component's default menu.
708
+ * @protected
709
+ * @param {string} route - The current route path to match against menu items
710
+ * @param {IMenuItem[]} [menu] - Optional custom menu array to search (uses this.menu if not provided)
711
+ * @return {void}
712
+ * @memberOf module:lib/engine/NgxPageDirective
713
+ */
714
+ protected <span class="fstat-no" title="function not covered" >async </span>setPageTitle(route?: string, menu?: IMenuItem[]): Promise&lt;void&gt; {
715
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!route) <span class="cstat-no" title="statement not covered" >route = this.router.url.replace('/', '');</span></span>
716
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!menu) <span class="cstat-no" title="statement not covered" >menu = this.menu;</span></span>
717
+ const activeMenu = <span class="cstat-no" title="statement not covered" >menu.find(<span class="fstat-no" title="function not covered" >(i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >item?.url?.includes(route))</span>;</span>
718
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (activeMenu) {</span>
719
+ let label = <span class="cstat-no" title="statement not covered" >`${(activeMenu?.title || activeMenu?.label || '').toLowerCase()}`;</span>
720
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!label.startsWith('menu.')) {</span>
721
+ <span class="cstat-no" title="statement not covered" > label = `menu.${label}`;</span>
722
+ }
723
+ const title = <span class="cstat-no" title="statement not covered" >`${await this.translate(label)} ${this.appName ? `- ${this.appName}` : ''}`;</span>
724
+ <span class="cstat-no" title="statement not covered" > this.titleService.setTitle(title);</span>
725
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!this.title) <span class="cstat-no" title="statement not covered" >this.title = title;</span></span>
726
+ }
727
+ }
728
+ }
729
+ &nbsp;</pre></td></tr></table></pre>
730
+
731
+ <div class='push'></div><!-- for sticky footer -->
732
+ </div><!-- /wrapper -->
733
+ <div class='footer quiet pad2 space-top1 center small'>
734
+ Code coverage generated by
735
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
736
+ at 2026-02-25T10:45:48.506Z
737
+ </div>
738
+ <script src="../../../prettify.js"></script>
739
+ <script>
740
+ window.onload = function () {
741
+ prettyPrint();
742
+ };
743
+ </script>
744
+ <script src="../../../sorter.js"></script>
745
+ <script src="../../../block-navigation.js"></script>
746
+ </body>
747
+ </html>
748
+