@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,1219 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/lib/components/stepped-form/stepped-form.component.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/components/stepped-form</a> stepped-form.component.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">0% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>0/65</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">0% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>0/25</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">0% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>0/9</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">0% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>0/59</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>
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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
445
+ <span class="cline-any cline-neutral">&nbsp;</span>
446
+ <span class="cline-any cline-neutral">&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-no">&nbsp;</span>
455
+ <span class="cline-any cline-no">&nbsp;</span>
456
+ <span class="cline-any cline-no">&nbsp;</span>
457
+ <span class="cline-any cline-no">&nbsp;</span>
458
+ <span class="cline-any cline-no">&nbsp;</span>
459
+ <span class="cline-any cline-no">&nbsp;</span>
460
+ <span class="cline-any cline-no">&nbsp;</span>
461
+ <span class="cline-any cline-no">&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-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-neutral">&nbsp;</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-no">&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-neutral">&nbsp;</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-neutral">&nbsp;</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-no">&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-neutral">&nbsp;</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-neutral">&nbsp;</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-no">&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-no">&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-no">&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-neutral">&nbsp;</span>
575
+ <span class="cline-any cline-neutral">&nbsp;</span>
576
+ <span class="cline-any cline-no">&nbsp;</span>
577
+ <span class="cline-any cline-neutral">&nbsp;</span>
578
+ <span class="cline-any cline-neutral">&nbsp;</span>
579
+ <span class="cline-any cline-neutral">&nbsp;</span>
580
+ <span class="cline-any cline-neutral">&nbsp;</span>
581
+ <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</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-no">&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-neutral">&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-no">&nbsp;</span>
633
+ <span class="cline-any cline-no">&nbsp;</span>
634
+ <span class="cline-any cline-no">&nbsp;</span>
635
+ <span class="cline-any cline-neutral">&nbsp;</span>
636
+ <span class="cline-any cline-neutral">&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-no">&nbsp;</span>
661
+ <span class="cline-any cline-no">&nbsp;</span>
662
+ <span class="cline-any cline-no">&nbsp;</span>
663
+ <span class="cline-any cline-no">&nbsp;</span>
664
+ <span class="cline-any cline-neutral">&nbsp;</span>
665
+ <span class="cline-any cline-no">&nbsp;</span>
666
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
673
+ <span class="cline-any cline-neutral">&nbsp;</span>
674
+ <span class="cline-any cline-no">&nbsp;</span>
675
+ <span class="cline-any cline-no">&nbsp;</span>
676
+ <span class="cline-any cline-no">&nbsp;</span>
677
+ <span class="cline-any cline-no">&nbsp;</span>
678
+ <span class="cline-any cline-neutral">&nbsp;</span>
679
+ <span class="cline-any cline-no">&nbsp;</span>
680
+ <span class="cline-any cline-no">&nbsp;</span>
681
+ <span class="cline-any cline-neutral">&nbsp;</span>
682
+ <span class="cline-any cline-no">&nbsp;</span>
683
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
687
+ <span class="cline-any cline-neutral">&nbsp;</span>
688
+ <span class="cline-any cline-no">&nbsp;</span>
689
+ <span class="cline-any cline-no">&nbsp;</span>
690
+ <span class="cline-any cline-no">&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-no">&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-no">&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-no">&nbsp;</span>
719
+ <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
723
+ <span class="cline-any cline-neutral">&nbsp;</span>
724
+ <span class="cline-any cline-neutral">&nbsp;</span>
725
+ <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
755
+ <span class="cline-any cline-neutral">&nbsp;</span>
756
+ <span class="cline-any cline-neutral">&nbsp;</span>
757
+ <span class="cline-any cline-no">&nbsp;</span>
758
+ <span class="cline-any cline-no">&nbsp;</span>
759
+ <span class="cline-any cline-no">&nbsp;</span>
760
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
764
+ <span class="cline-any cline-no">&nbsp;</span>
765
+ <span class="cline-any cline-no">&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-no">&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-neutral">&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-neutral">&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-no">&nbsp;</span>
801
+ <span class="cline-any cline-no">&nbsp;</span>
802
+ <span class="cline-any cline-no">&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></td><td class="text"><pre class="prettyprint lang-js">/**
823
+ * @module module:lib/components/stepped-form/stepped-form.component
824
+ * @description Stepped form component module.
825
+ * @summary Provides `SteppedFormComponent` which implements a multi-page form
826
+ * UI with navigation, validation and submission support. Useful for forms that
827
+ * need to be split into logical steps/pages.
828
+ *
829
+ * @link {@link SteppedFormComponent}
830
+ */
831
+ &nbsp;
832
+ <span class="cstat-no" title="statement not covered" >import { Component, Input, OnInit, OnDestroy } from '@angular/core';</span>
833
+ <span class="cstat-no" title="statement not covered" >import { FormGroup, ReactiveFormsModule } from '@angular/forms';</span>
834
+ <span class="cstat-no" title="statement not covered" >import { TranslatePipe } from '@ngx-translate/core';</span>
835
+ <span class="cstat-no" title="statement not covered" >import { IonButton, IonSkeletonText, IonText } from '@ionic/angular/standalone';</span>
836
+ <span class="cstat-no" title="statement not covered" >import { arrowForwardOutline, arrowBackOutline } from 'ionicons/icons';</span>
837
+ <span class="cstat-no" title="statement not covered" >import { addIcons } from 'ionicons';</span>
838
+ <span class="cstat-no" title="statement not covered" >import { UIElementMetadata, ComponentEventNames, UIModelMetadata } from '@decaf-ts/ui-decorators';</span>
839
+ <span class="cstat-no" title="statement not covered" >import { CrudOperations, OperationKeys } from '@decaf-ts/db-decorators';</span>
840
+ <span class="cstat-no" title="statement not covered" >import { Dynamic } from '../../engine/decorators';</span>
841
+ <span class="cstat-no" title="statement not covered" >import { NgxFormService } from '../../services/NgxFormService';</span>
842
+ <span class="cstat-no" title="statement not covered" >import { getLocaleContext } from '../../i18n/Loader';</span>
843
+ <span class="cstat-no" title="statement not covered" >import { LayoutComponent } from '../layout/layout.component';</span>
844
+ <span class="cstat-no" title="statement not covered" >import { NgxFormDirective } from '../../engine/NgxFormDirective';</span>
845
+ import { FormParent } from '../../engine/types';
846
+ &nbsp;
847
+ @Dynamic()
848
+ @Component({
849
+ selector: 'ngx-decaf-stepped-form',
850
+ templateUrl: './stepped-form.component.html',
851
+ styleUrls: ['./stepped-form.component.scss'],
852
+ imports: [
853
+ TranslatePipe,
854
+ ReactiveFormsModule,
855
+ IonSkeletonText,
856
+ IonText,
857
+ IonButton,
858
+ LayoutComponent,
859
+ ],
860
+ standalone: true,
861
+ host: { '[attr.id]': 'uid' },
862
+ })
863
+ export class <span class="cstat-no" title="statement not covered" ><span class="cstat-no" title="statement not covered" >SteppedFormComponent </span>extends NgxFormDirective implements OnInit, OnDestroy {</span>
864
+ /**
865
+ * @description Array of UI model metadata for all form fields.
866
+ * @summary Contains the complete collection of UI model metadata that defines
867
+ * the structure, validation, and presentation of form fields across all pages.
868
+ * Each metadata object contains information about field type, validation rules,
869
+ * page assignment, and display properties.
870
+ *
871
+ * @type {UIModelMetadata[]}
872
+ * @memberOf SteppedFormComponent
873
+ */
874
+ @Input()
875
+ override children!:
876
+ | UIModelMetadata[]
877
+ | { title: string; description: string; items?: UIModelMetadata[] }[];
878
+ &nbsp;
879
+ /**
880
+ * @description The locale to be used for translations.
881
+ * @summary Specifies the locale identifier to use when translating component text.
882
+ * This can be set explicitly via input property to override the automatically derived
883
+ * locale from the component name. The locale is typically a language code (e.g., 'en', 'fr')
884
+ * or a language-region code (e.g., 'en-US', 'fr-CA') that determines which translation
885
+ * set to use for the component's text content.
886
+ *
887
+ * @type {string}
888
+ * @memberOf SteppedFormComponent
889
+ */
890
+ @Input()
891
+ <span class="cstat-no" title="statement not covered" > paginated: boolean = true;</span>
892
+ &nbsp;
893
+ // /**
894
+ // * @description Optional action identifier for form submission context.
895
+ // * @summary Specifies a custom action name that will be included in the submit event.
896
+ // * If not provided, defaults to the standard submit event constant. Used to
897
+ // * distinguish between different types of form submissions within the same component.
898
+ // *
899
+ // * @type {string | undefined}
900
+ // */
901
+ // @Input()
902
+ // action?: string;
903
+ &nbsp;
904
+ /**
905
+ * @description Number of pages in the stepped form.
906
+ * @summary Represents the total number of steps/pages in the multi-step form.
907
+ * This value is automatically calculated based on the page properties of the children
908
+ * or can be explicitly set. Each page represents a logical group of form fields.
909
+ *
910
+ * @type {number}
911
+ * @default 1
912
+ * @memberOf SteppedFormComponent
913
+ */
914
+ @Input()
915
+ override <span class="cstat-no" title="statement not covered" >pages: number | { title: string; description: string }[] = 1;</span>
916
+ &nbsp;
917
+ /**
918
+ * List of titles and descriptions for each page of the stepped form.
919
+ * Each object in the array represents a page, containing a title and a description.
920
+ *
921
+ * @example
922
+ * pageTitles = [
923
+ * { title: 'Personal Information', description: 'Fill in your personal details.' },
924
+ * { title: 'Address', description: 'Provide your residential address.' }
925
+ * ];
926
+ */
927
+ @Input()
928
+ <span class="cstat-no" title="statement not covered" > pageTitles: { title: string; description: string }[] = [];</span>
929
+ &nbsp;
930
+ /**
931
+ * @description The CRUD operation type for this form.
932
+ * @summary Defines the type of operation being performed (CREATE, READ, UPDATE, DELETE).
933
+ * This affects form behavior, validation rules, and field accessibility. For example,
934
+ * READ operations might disable form fields, while CREATE operations enable all fields.
935
+ *
936
+ * @type {CrudOperations}
937
+ * @default OperationKeys.CREATE
938
+ * @memberOf SteppedFormComponent
939
+ */
940
+ @Input()
941
+ override <span class="cstat-no" title="statement not covered" >operation: CrudOperations = OperationKeys.CREATE;</span>
942
+ &nbsp;
943
+ /**
944
+ * @description The initial page to display when the form loads.
945
+ * @summary Specifies which page of the multi-step form should be shown first.
946
+ * This allows starting the form at any step, useful for scenarios like editing
947
+ * existing data where you might want to jump to a specific section.
948
+ *
949
+ * @type {number}
950
+ * @default 1
951
+ * @memberOf SteppedFormComponent
952
+ */
953
+ @Input()
954
+ <span class="cstat-no" title="statement not covered" > startPage: number = 1;</span>
955
+ &nbsp;
956
+ // /**
957
+ // * @description Angular reactive FormGroup or FormArray for form state management.
958
+ // * @summary The form instance that manages all form controls, validation, and form state.
959
+ // * When using FormArray, each array element represents a page's FormGroup. When using
960
+ // * FormGroup, it contains all form controls for the entire stepped form.
961
+ // *
962
+ // * @type {FormGroup | FormArray | undefined}
963
+ // * @memberOf SteppedFormComponent
964
+ // */
965
+ // @Input()
966
+ // formGroup!: FormGroup | FormArray | undefined;
967
+ &nbsp;
968
+ /**
969
+ * @description Array representing the structure of pages.
970
+ * @summary Contains metadata about each page, including page numbers and indices.
971
+ * This array is built during initialization to organize the form fields into
972
+ * logical pages and provide navigation structure.
973
+ *
974
+ * @type {UIModelMetadata[]}
975
+ * @memberOf SteppedFormComponent
976
+ */
977
+ <span class="cstat-no" title="statement not covered" > pagesArray: UIModelMetadata[] = [];</span>
978
+ &nbsp;
979
+ // /**
980
+ // * @description Custom event handlers for form actions.
981
+ // * @summary A record of event handler functions keyed by event names that can be
982
+ // * triggered during form operations. These handlers provide extensibility for
983
+ // * custom business logic and can be invoked for various form events and actions.
984
+ // *
985
+ // * @type {HandlerLike}
986
+ // */
987
+ // @Input()
988
+ // handlers!: HandlerLike;
989
+ &nbsp;
990
+ /**
991
+ * @description Event emitter for form submission.
992
+ * @summary Emits events when the form is submitted, typically on the last page
993
+ * when all validation passes. The emitted event contains the form data and
994
+ * event type information for parent components to handle.
995
+ *
996
+ * @type {EventEmitter&lt;IBaseCustomEvent&gt;}
997
+ * @memberOf SteppedFormComponent
998
+ */
999
+ // @Output()
1000
+ // submitEvent: EventEmitter&lt;ICrudFormEvent&gt; = new EventEmitter&lt;ICrudFormEvent&gt;();
1001
+ &nbsp;
1002
+ /**
1003
+ * @description Creates an instance of SteppedFormComponent.
1004
+ * @summary Initializes a new SteppedFormComponent instance and registers the required
1005
+ * Ionic icons for navigation buttons (forward and back arrows).
1006
+ *
1007
+ * @memberOf SteppedFormComponent
1008
+ */
1009
+ <span class="fstat-no" title="function not covered" > constructor() {</span>
1010
+ <span class="cstat-no" title="statement not covered" > super('SteppedFormComponent');</span>
1011
+ <span class="cstat-no" title="statement not covered" > addIcons({ arrowForwardOutline, arrowBackOutline });</span>
1012
+ <span class="cstat-no" title="statement not covered" > this.enableDarkMode = true;</span>
1013
+ }
1014
+ &nbsp;
1015
+ /**
1016
+ * @description Initializes the component after Angular first displays the data-bound properties.
1017
+ * @summary Sets up the stepped form by organizing children into pages, calculating the total
1018
+ * number of pages, and initializing the active page. This method processes the UI model metadata
1019
+ * to create a logical page structure and ensures proper page assignments for all form fields.
1020
+ *
1021
+ * @mermaid
1022
+ * sequenceDiagram
1023
+ * participant A as Angular Lifecycle
1024
+ * participant S as SteppedFormComponent
1025
+ * participant F as Form Service
1026
+ *
1027
+ * A-&gt;&gt;S: ngOnInit()
1028
+ * S-&gt;&gt;S: Set activeIndex = startPage
1029
+ * S-&gt;&gt;S: Calculate total pages
1030
+ * S-&gt;&gt;S: Assign page props to children
1031
+ * S-&gt;&gt;S: getCurrentFormGroup(activeIndex)
1032
+ * S-&gt;&gt;F: Extract FormGroup for active page
1033
+ * F--&gt;&gt;S: Return activeFormGroup
1034
+ *
1035
+ * @memberOf SteppedFormComponent
1036
+ */
1037
+ <span class="fstat-no" title="function not covered" > async </span>ngOnInit(): Promise&lt;void&gt; {
1038
+ <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" >this.locale = getLocaleContext('SteppedFormComponent');</span></span>
1039
+ <span class="cstat-no" title="statement not covered" > this.activeIndex = this.startPage;</span>
1040
+ <span class="cstat-no" title="statement not covered" > if (typeof this.pages === 'object') {</span>
1041
+ <span class="cstat-no" title="statement not covered" > this.pageTitles = this.pages;</span>
1042
+ } else {
1043
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!this.pageTitles.length)</span>
1044
+ <span class="cstat-no" title="statement not covered" > this.pageTitles = Array.from({ length: this.pages }, <span class="fstat-no" title="function not covered" >() =</span>&gt; (<span class="cstat-no" title="statement not covered" >{</span></span>
1045
+ title: '',
1046
+ description: '',
1047
+ }));
1048
+ }
1049
+ &nbsp;
1050
+ <span class="cstat-no" title="statement not covered" > this.pages = this.pageTitles.length;</span>
1051
+ &nbsp;
1052
+ <span class="cstat-no" title="statement not covered" > if (this.paginated) {</span>
1053
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!this.parentForm)</span>
1054
+ <span class="cstat-no" title="statement not covered" > this.parentForm = (this.formGroup?.root || this.formGroup) as FormParent;</span>
1055
+ <span class="cstat-no" title="statement not covered" > this.children = [</span>
1056
+ ...(this.children as UIModelMetadata[]).map(<span class="fstat-no" title="function not covered" >(c</span>) =&gt; {
1057
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!c.props) <span class="cstat-no" title="statement not covered" >c.props = {};</span></span>
1058
+ const page = <span class="cstat-no" title="statement not covered" >c.props['page'] || 1;</span>
1059
+ // prevent page overflow
1060
+ <span class="cstat-no" title="statement not covered" > c.props['page'] = page &gt; this.pages ? this.pages : page;</span>
1061
+ <span class="cstat-no" title="statement not covered" > return c;</span>
1062
+ }),
1063
+ ];
1064
+ <span class="cstat-no" title="statement not covered" > this.getActivePage(this.activeIndex);</span>
1065
+ } else {
1066
+ <span class="cstat-no" title="statement not covered" > this.children = this.pageTitles.map(<span class="fstat-no" title="function not covered" >(p</span>age, index) =&gt; {</span>
1067
+ const pageNumber = <span class="cstat-no" title="statement not covered" >index + 1;</span>
1068
+ const items = (<span class="cstat-no" title="statement not covered" >this.children as UIModelMetadata[]).filter(</span>
1069
+ <span class="fstat-no" title="function not covered" > ({</span> props }: UIElementMetadata) =&gt; <span class="cstat-no" title="statement not covered" >props?.['page'] === pageNumber,</span>
1070
+ );
1071
+ <span class="cstat-no" title="statement not covered" > return {</span>
1072
+ page: pageNumber,
1073
+ title: page.title,
1074
+ description: page.description,
1075
+ items,
1076
+ };
1077
+ });
1078
+ // this.formGroup = new FormGroup(
1079
+ // (this.formGroup as FormArray).controls.reduce((acc, control, index) =&gt; {
1080
+ // acc[index] = control as FormGroup;
1081
+ // return acc;
1082
+ // }, {} as Record&lt;string, FormGroup&gt;)
1083
+ // );
1084
+ }
1085
+ <span class="cstat-no" title="statement not covered" > await super.initialize();</span>
1086
+ }
1087
+ &nbsp;
1088
+ /**
1089
+ * @description Cleanup method called when the component is destroyed.
1090
+ * @summary Unsubscribes from any active timer subscriptions to prevent memory leaks.
1091
+ * This is part of Angular's component lifecycle and ensures proper resource cleanup.
1092
+ *
1093
+ * @memberOf SteppedFormComponent
1094
+ */
1095
+ override <span class="fstat-no" title="function not covered" >async </span>ngOnDestroy(): Promise&lt;void&gt; {
1096
+ <span class="cstat-no" title="statement not covered" > await super.ngOnDestroy();</span>
1097
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.timerSubscription) <span class="cstat-no" title="statement not covered" >this.timerSubscription.unsubscribe();</span></span>
1098
+ }
1099
+ &nbsp;
1100
+ /**
1101
+ * @description Handles navigation to the next page or form submission.
1102
+ * @summary Validates the current page's form fields and either navigates to the next page
1103
+ * or submits the entire form if on the last page. Form validation must pass before
1104
+ * proceeding. On successful submission, emits a submit event with form data.
1105
+ *
1106
+ * @param {boolean} lastPage - Whether this is the last page of the form
1107
+ * @return {void}
1108
+ *
1109
+ * @mermaid
1110
+ * sequenceDiagram
1111
+ * participant U as User
1112
+ * participant S as SteppedFormComponent
1113
+ * participant F as Form Service
1114
+ * participant P as Parent Component
1115
+ *
1116
+ * U-&gt;&gt;S: Click Next/Submit
1117
+ * S-&gt;&gt;F: validateFields(activeFormGroup)
1118
+ * F--&gt;&gt;S: Return validation result
1119
+ * alt Not last page and valid
1120
+ * S-&gt;&gt;S: activeIndex++
1121
+ * S-&gt;&gt;S: getCurrentFormGroup(activeIndex)
1122
+ * else Last page and valid
1123
+ * S-&gt;&gt;F: getFormData(formGroup)
1124
+ * F--&gt;&gt;S: Return form data
1125
+ * S-&gt;&gt;P: submitEvent.emit({data, name: SUBMIT})
1126
+ * end
1127
+ *
1128
+ * @memberOf SteppedFormComponent
1129
+ */
1130
+ <span class="fstat-no" title="function not covered" > handleNext(</span>lastPage: boolean = <span class="branch-0 cbranch-no" title="branch not covered" >false)</span>: void {
1131
+ const isValid = <span class="cstat-no" title="statement not covered" >NgxFormService.validateFields(this.formGroup as FormGroup);</span>
1132
+ // const isValid = this.paginated ?
1133
+ // NgxFormService.validateFields(this.formGroup as FormGroup) :
1134
+ // (this.formGroup as FormArray)?.controls.every(control =&gt; NgxFormService.validateFields(control as FormGroup));
1135
+ <span class="cstat-no" title="statement not covered" > if (!lastPage) {</span>
1136
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (isValid) {</span>
1137
+ <span class="cstat-no" title="statement not covered" > this.activeIndex = this.activeIndex + 1;</span>
1138
+ <span class="cstat-no" title="statement not covered" > this.getActivePage(this.activeIndex);</span>
1139
+ }
1140
+ } else {
1141
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (isValid) {</span>
1142
+ const rootForm = <span class="cstat-no" title="statement not covered" >this.formGroup?.root || this.formGroup;</span>
1143
+ const data = <span class="cstat-no" title="statement not covered" >Object.assign(</span>
1144
+ {},
1145
+ ...Object.values(NgxFormService.getFormData(rootForm as FormGroup)),
1146
+ );
1147
+ <span class="cstat-no" title="statement not covered" > super.submitEventEmit(</span>
1148
+ data,
1149
+ 'SteppedFormComponent',
1150
+ this.action || ComponentEventNames.Submit,
1151
+ this.handlers,
1152
+ );
1153
+ }
1154
+ }
1155
+ }
1156
+ &nbsp;
1157
+ /**
1158
+ * @description Handles navigation to the previous page.
1159
+ * @summary Moves the user back to the previous page in the stepped form.
1160
+ * This method decrements the active page number and updates the form
1161
+ * group and children to display the previous page's content.
1162
+ *
1163
+ * @return {void}
1164
+ *
1165
+ * @mermaid
1166
+ * sequenceDiagram
1167
+ * participant U as User
1168
+ * participant S as SteppedFormComponent
1169
+ *
1170
+ * U-&gt;&gt;S: Click Back
1171
+ * S-&gt;&gt;S: activeIndex--
1172
+ * S-&gt;&gt;S: getCurrentFormGroup(activeIndex)
1173
+ * Note over S: Update active form and children
1174
+ *
1175
+ * @memberOf SteppedFormComponent
1176
+ */
1177
+ <span class="fstat-no" title="function not covered" > handleBack(</span>): void {
1178
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!this.paginated) <span class="cstat-no" title="statement not covered" >return this.location.back();</span></span>
1179
+ <span class="cstat-no" title="statement not covered" > this.activeIndex = this.activeIndex - 1;</span>
1180
+ <span class="cstat-no" title="statement not covered" > this.getActivePage(this.activeIndex);</span>
1181
+ }
1182
+ &nbsp;
1183
+ // async submit(event?: SubmitEvent, eventName?: string, componentName?: string): Promise&lt;boolean | void&gt; {
1184
+ // if (event) {
1185
+ // event.preventDefault();
1186
+ // event.stopImmediatePropagation();
1187
+ // }
1188
+ &nbsp;
1189
+ // if (!NgxFormService.validateFields(this.formGroup as FormGroup))
1190
+ // return false;
1191
+ // const data = NgxFormService.getFormData(this.formGroup as FormGroup);
1192
+ // this.submitEvent.emit({
1193
+ // data,
1194
+ // component: componentName || this.componentName,
1195
+ // name: eventName || this.action || ComponentEventNames.Submit,
1196
+ // handlers: this.handlers,
1197
+ // });
1198
+ // }
1199
+ }
1200
+ &nbsp;</pre></td></tr></table></pre>
1201
+
1202
+ <div class='push'></div><!-- for sticky footer -->
1203
+ </div><!-- /wrapper -->
1204
+ <div class='footer quiet pad2 space-top1 center small'>
1205
+ Code coverage generated by
1206
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1207
+ at 2026-02-25T10:45:48.506Z
1208
+ </div>
1209
+ <script src="../../../../prettify.js"></script>
1210
+ <script>
1211
+ window.onload = function () {
1212
+ prettyPrint();
1213
+ };
1214
+ </script>
1215
+ <script src="../../../../sorter.js"></script>
1216
+ <script src="../../../../block-navigation.js"></script>
1217
+ </body>
1218
+ </html>
1219
+