@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,952 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/lib/engine/NgxDecafFormFieldDirective.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> NgxDecafFormFieldDirective.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">48.33% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>29/60</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">25.71% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>9/35</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'>4/14</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">46.55% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>27/58</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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">10x</span>
356
+ <span class="cline-any cline-neutral">&nbsp;</span>
357
+ <span class="cline-any cline-yes">10x</span>
358
+ <span class="cline-any cline-yes">10x</span>
359
+ <span class="cline-any cline-yes">10x</span>
360
+ <span class="cline-any cline-yes">10x</span>
361
+ <span class="cline-any cline-yes">10x</span>
362
+ <span class="cline-any cline-yes">10x</span>
363
+ <span class="cline-any cline-neutral">&nbsp;</span>
364
+ <span class="cline-any cline-yes">10x</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-neutral">&nbsp;</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-yes">10x</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-neutral">&nbsp;</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-yes">19x</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-neutral">&nbsp;</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-yes">19x</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-neutral">&nbsp;</span>
428
+ <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
434
+ <span class="cline-any cline-neutral">&nbsp;</span>
435
+ <span class="cline-any cline-neutral">&nbsp;</span>
436
+ <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
443
+ <span class="cline-any cline-neutral">&nbsp;</span>
444
+ <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-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-neutral">&nbsp;</span>
460
+ <span class="cline-any cline-yes">19x</span>
461
+ <span class="cline-any cline-neutral">&nbsp;</span>
462
+ <span class="cline-any cline-neutral">&nbsp;</span>
463
+ <span class="cline-any cline-neutral">&nbsp;</span>
464
+ <span class="cline-any cline-neutral">&nbsp;</span>
465
+ <span class="cline-any cline-neutral">&nbsp;</span>
466
+ <span class="cline-any cline-neutral">&nbsp;</span>
467
+ <span class="cline-any cline-neutral">&nbsp;</span>
468
+ <span class="cline-any cline-neutral">&nbsp;</span>
469
+ <span class="cline-any cline-yes">19x</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-no">&nbsp;</span>
484
+ <span class="cline-any cline-no">&nbsp;</span>
485
+ <span class="cline-any cline-neutral">&nbsp;</span>
486
+ <span class="cline-any cline-no">&nbsp;</span>
487
+ <span class="cline-any cline-no">&nbsp;</span>
488
+ <span class="cline-any cline-no">&nbsp;</span>
489
+ <span class="cline-any cline-no">&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-no">&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-yes">19x</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-yes">19x</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-yes">19x</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-no">&nbsp;</span>
547
+ <span class="cline-any cline-neutral">&nbsp;</span>
548
+ <span class="cline-any cline-neutral">&nbsp;</span>
549
+ <span class="cline-any cline-neutral">&nbsp;</span>
550
+ <span class="cline-any cline-neutral">&nbsp;</span>
551
+ <span class="cline-any cline-neutral">&nbsp;</span>
552
+ <span class="cline-any cline-neutral">&nbsp;</span>
553
+ <span class="cline-any cline-neutral">&nbsp;</span>
554
+ <span class="cline-any cline-neutral">&nbsp;</span>
555
+ <span class="cline-any cline-no">&nbsp;</span>
556
+ <span class="cline-any cline-neutral">&nbsp;</span>
557
+ <span class="cline-any cline-neutral">&nbsp;</span>
558
+ <span class="cline-any cline-neutral">&nbsp;</span>
559
+ <span class="cline-any cline-neutral">&nbsp;</span>
560
+ <span class="cline-any cline-neutral">&nbsp;</span>
561
+ <span class="cline-any cline-neutral">&nbsp;</span>
562
+ <span class="cline-any cline-neutral">&nbsp;</span>
563
+ <span class="cline-any cline-neutral">&nbsp;</span>
564
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
575
+ <span class="cline-any cline-neutral">&nbsp;</span>
576
+ <span class="cline-any cline-neutral">&nbsp;</span>
577
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
581
+ <span class="cline-any cline-no">&nbsp;</span>
582
+ <span class="cline-any cline-neutral">&nbsp;</span>
583
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
587
+ <span class="cline-any cline-neutral">&nbsp;</span>
588
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
594
+ <span class="cline-any cline-no">&nbsp;</span>
595
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
599
+ <span class="cline-any cline-no">&nbsp;</span>
600
+ <span class="cline-any cline-no">&nbsp;</span>
601
+ <span class="cline-any cline-neutral">&nbsp;</span>
602
+ <span class="cline-any cline-no">&nbsp;</span>
603
+ <span class="cline-any cline-neutral">&nbsp;</span>
604
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
609
+ <span class="cline-any cline-no">&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-yes">1x</span>
614
+ <span class="cline-any cline-yes">1x</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-yes">68x</span>
620
+ <span class="cline-any cline-yes">68x</span>
621
+ <span class="cline-any cline-yes">68x</span>
622
+ <span class="cline-any cline-yes">68x</span>
623
+ <span class="cline-any cline-yes">24x</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-yes">24x</span>
628
+ <span class="cline-any cline-yes">24x</span>
629
+ <span class="cline-any cline-no">&nbsp;</span>
630
+ <span class="cline-any cline-neutral">&nbsp;</span>
631
+ <span class="cline-any cline-neutral">&nbsp;</span>
632
+ <span class="cline-any cline-neutral">&nbsp;</span>
633
+ <span class="cline-any cline-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-yes">24x</span>
638
+ <span class="cline-any cline-yes">24x</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></td><td class="text"><pre class="prettyprint lang-js">import { CrudOperationKeys, FieldProperties, RenderingError } from '@decaf-ts/ui-decorators';
645
+ import { FormParent, KeyValue, PossibleInputTypes } from './types';
646
+ import { CrudOperations, InternalError, OperationKeys } from '@decaf-ts/db-decorators';
647
+ import { ControlValueAccessor, Form, FormArray, FormControl, FormGroup } from '@angular/forms';
648
+ import { Directive, Input, SimpleChanges } from '@angular/core';
649
+ import { NgxDecafFormService } from './NgxDecafFormService';
650
+ import { sf } from '@decaf-ts/decorator-validation';
651
+ import { EventConstants } from './constants';
652
+ import { FunctionLike } from './types';
653
+ import { NgxDecafComponentDirective } from './NgxDecafComponentDirective';
654
+ &nbsp;
655
+ /**
656
+ * @class NgxDecafFormFieldDirective
657
+ * @implements {FieldProperties}
658
+ * @implements {ControlValueAccessor}
659
+ * @summary Abstract class representing a CRUD form field for Angular applications
660
+ * @description This class provides the base implementation for CRUD form fields in Angular,
661
+ * implementing both CrudFormField and ControlValueAccessor interfaces.
662
+ */
663
+ @Directive()
664
+ export abstract class NgxDecafFormFieldDirective extends NgxDecafComponentDirective implements ControlValueAccessor, FieldProperties {
665
+ &nbsp;
666
+ /**
667
+ * @description Index of the currently active form group in a form array.
668
+ * @summary When working with multiple form groups (form arrays), this indicates
669
+ * which form group is currently active or being edited. This is used to manage
670
+ * focus and data binding in multi-entry scenarios.
671
+ *
672
+ * @type {number}
673
+ * @default 0
674
+ * @memberOf NgxDecafFormFieldDirective
675
+ */
676
+ @Input()
677
+ activeFormGroupIndex: number = 0;
678
+ &nbsp;
679
+ /**
680
+ * @description FormArray containing multiple form groups for this field.
681
+ * @summary When this field is part of a multi-entry structure, this FormArray
682
+ * contains all the form groups. This enables management of multiple instances
683
+ * of the same field structure within a single form.
684
+ *
685
+ * @type {FormArray}
686
+ * @memberOf CrudFieldComponent
687
+ */
688
+ @Input()
689
+ parentComponent!: FormParent;
690
+ &nbsp;
691
+ /**
692
+ * @description Field mapping configuration.
693
+ * @summary Defines how fields from the data model should be mapped to properties used by the component.
694
+ * This allows for flexible data binding between the model and the component's display logic.
695
+ *
696
+ * @type {KeyValue | FunctionLike}
697
+ * @memberOf CrudFieldComponent
698
+ */
699
+ @Input()
700
+ optionsMapper: KeyValue | FunctionLike = {};
701
+ &nbsp;
702
+ &nbsp;
703
+ /**
704
+ * @summary Current CRUD operation
705
+ * @description Represents the current CRUD operation being performed
706
+ */
707
+ operation!: CrudOperations;
708
+ &nbsp;
709
+ /**
710
+ * @summary Form group for the field
711
+ * @description Angular FormGroup instance for the field
712
+ */
713
+ formGroup!: FormGroup | undefined;
714
+ &nbsp;
715
+ formControl!: FormControl;
716
+ &nbsp;
717
+ path!: string;
718
+ &nbsp;
719
+ type!: PossibleInputTypes;
720
+ &nbsp;
721
+ disabled?: boolean;
722
+ &nbsp;
723
+ page!: number;
724
+ &nbsp;
725
+ // Validation
726
+ &nbsp;
727
+ format?: string;
728
+ hidden?: boolean | CrudOperationKeys[];
729
+ max?: number | Date;
730
+ maxlength?: number;
731
+ min?: number | Date;
732
+ minlength?: number;
733
+ pattern?: string | undefined;
734
+ readonly?: boolean;
735
+ required?: boolean;
736
+ step?: number;
737
+ equals?: string;
738
+ different?: string;
739
+ lessThan?: string;
740
+ lessThanOrEqual?: string;
741
+ greaterThan?: string;
742
+ greaterThanOrEqual?: string;
743
+ &nbsp;
744
+ value!: string | number | Date | string[];
745
+ &nbsp;
746
+ multiple!: boolean;
747
+ &nbsp;
748
+ &nbsp;
749
+ private validationErrorEventDispatched: boolean = false;
750
+ &nbsp;
751
+ /**
752
+ * @summary Parent HTML element
753
+ * @description Reference to the parent HTML element of the field
754
+ */
755
+ protected parent?: HTMLElement;
756
+ &nbsp;
757
+ constructor() {
758
+ super("CrudFormField");
759
+ }
760
+ &nbsp;
761
+ &nbsp;
762
+ /**
763
+ * @description Gets the currently active form group based on context.
764
+ * @summary Returns the appropriate FormGroup based on whether this field supports
765
+ * multiple values. For single-value fields, returns the main form group.
766
+ * For multi-value fields, returns the form group at the active index from the parent FormArray.
767
+ *
768
+ * @returns {FormGroup} The currently active FormGroup for this field
769
+ * @memberOf CrudFieldComponent
770
+ */
771
+ <span class="fstat-no" title="function not covered" > get a</span>ctiveFormGroup(): FormGroup {
772
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if(!this.formGroup)</span>
773
+ <span class="cstat-no" title="statement not covered" > return this.formControl.parent as FormGroup;</span>
774
+ &nbsp;
775
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if(this.multiple) {</span>
776
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if(this.formGroup instanceof FormArray)</span>
777
+ <span class="cstat-no" title="statement not covered" > return this.formGroup.at(this.activeFormGroupIndex) as FormGroup;</span>
778
+ <span class="cstat-no" title="statement not covered" > return this.formGroup;</span>
779
+ }
780
+ &nbsp;
781
+ <span class="cstat-no" title="statement not covered" > return this.formGroup as FormGroup;</span>
782
+ // const formGroup = this.formGroup as FormGroup;
783
+ // try {
784
+ // const root = formGroup.root as FormGroup;
785
+ // return this.multiple
786
+ // ? ((root?.controls?.[this.name] as FormArray)?.at(this.activeFormGroupIndex) as FormGroup)
787
+ // : formGroup;
788
+ // } catch (error: unknown) {
789
+ // this.log.error("Error getting active form group:", error as Error);
790
+ // return formGroup;
791
+ // }
792
+ }
793
+ &nbsp;
794
+ &nbsp;
795
+ // protected constructor() {}
796
+ &nbsp;
797
+ /**
798
+ * @summary String formatting function
799
+ * @description Provides access to the sf function for error message formatting
800
+ * @prop {function(string, ...string): string} sf - String formatting function
801
+ */
802
+ sf = sf;
803
+ &nbsp;
804
+ /**
805
+ * @summary Change callback function
806
+ * @description Function called when the field value changes
807
+ * @property {function(): unknown} onChange - onChange event handler
808
+ */
809
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
810
+ onChange: () =&gt; unknown = <span class="fstat-no" title="function not covered" >() =</span>&gt; {};
811
+ &nbsp;
812
+ /**
813
+ * @summary Touch callback function
814
+ * @description Function called when the field is touched
815
+ * @property {function(): unknown} onTouch - onTouch event handler
816
+ */
817
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
818
+ onTouch: () =&gt; unknown = <span class="fstat-no" title="function not covered" >() =</span>&gt; {};
819
+ &nbsp;
820
+ /**
821
+ * @summary Write value to the field
822
+ * @description Sets the value of the field
823
+ * @param {string} obj - The value to be set
824
+ */
825
+ <span class="fstat-no" title="function not covered" > writeValue(</span>obj: string): void {
826
+ <span class="cstat-no" title="statement not covered" > this.value = obj;</span>
827
+ }
828
+ &nbsp;
829
+ /**
830
+ * @summary Register change callback
831
+ * @description Registers a function to be called when the field value changes
832
+ * @param {function(): unknown} fn - The function to be called on change
833
+ */
834
+ <span class="fstat-no" title="function not covered" > registerOnChange(</span>fn: () =&gt; unknown): void {
835
+ <span class="cstat-no" title="statement not covered" > this.onChange = fn;</span>
836
+ }
837
+ &nbsp;
838
+ /**
839
+ * @summary Register touch callback
840
+ * @description Registers a function to be called when the field is touched
841
+ * @param {function(): unknown} fn - The function to be called on touch
842
+ */
843
+ <span class="fstat-no" title="function not covered" > registerOnTouched(</span>fn: () =&gt; unknown): void {
844
+ <span class="cstat-no" title="statement not covered" > this.onTouch = fn;</span>
845
+ }
846
+ &nbsp;
847
+ /**
848
+ * @summary Set disabled state
849
+ * @description Sets the disabled state of the field
850
+ * @param {boolean} isDisabled - Whether the field should be disabled
851
+ */
852
+ <span class="fstat-no" title="function not covered" > setDisabledState?</span>(isDisabled: boolean): void {
853
+ <span class="cstat-no" title="statement not covered" > this.disabled = isDisabled;</span>
854
+ }
855
+ &nbsp;
856
+ /**
857
+ * @summary After view initialization logic
858
+ * @description Performs necessary setup after the view has been initialized
859
+ * @returns {HTMLElement} The parent element of the field
860
+ */
861
+ <span class="fstat-no" title="function not covered" > afterViewInit(</span>): HTMLElement {
862
+ let parent: HTMLElement;
863
+ <span class="cstat-no" title="statement not covered" > switch (this.operation) {</span>
864
+ case OperationKeys.READ:
865
+ case OperationKeys.DELETE:
866
+ <span class="cstat-no" title="statement not covered" > return this.component.nativeElement.parentElement;</span>
867
+ case OperationKeys.CREATE:
868
+ case OperationKeys.UPDATE:
869
+ <span class="cstat-no" title="statement not covered" > try {</span>
870
+ <span class="cstat-no" title="statement not covered" > parent = NgxDecafFormService.getParentEl(this.component.nativeElement, 'div');</span>
871
+ } catch (e: unknown) {
872
+ <span class="cstat-no" title="statement not covered" > throw new RenderingError(`Unable to retrieve parent form element for the ${this.operation}: ${e instanceof Error ? e.message : e}`);</span>
873
+ }
874
+ // NgxDecafFormService.register(parent.id, this.formGroup, this as AngularFieldDefinition);
875
+ <span class="cstat-no" title="statement not covered" > return parent;</span>
876
+ default:
877
+ <span class="cstat-no" title="statement not covered" > throw new InternalError(`Invalid operation: ${this.operation}`);</span>
878
+ }
879
+ }
880
+ &nbsp;
881
+ override <span class="fstat-no" title="function not covered" >ngOnChanges(</span>changes: SimpleChanges): void {
882
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if(!this.initialized)</span>
883
+ <span class="cstat-no" title="statement not covered" > super.ngOnChanges(changes);</span>
884
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if(changes['activeFormGroupIndex'] &amp;&amp; this.multiple &amp;&amp;</span>
885
+ !changes['activeFormGroupIndex'].isFirstChange() &amp;&amp; changes['activeFormGroupIndex'].currentValue !== this.activeFormGroupIndex) {
886
+ &nbsp;
887
+ <span class="cstat-no" title="statement not covered" > this.activeFormGroupIndex = changes['activeFormGroupIndex'].currentValue;</span>
888
+ <span class="cstat-no" title="statement not covered" > this.formGroup = this.activeFormGroup;</span>
889
+ <span class="cstat-no" title="statement not covered" > this.formControl = this.formGroup.get(this.name) as FormControl;</span>
890
+ }
891
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if(changes['value'] &amp;&amp; !changes['value'].isFirstChange()</span>
892
+ &amp;&amp; (changes['value'].currentValue !== undefined &amp;&amp; changes['value'].currentValue !== this.value))
893
+ <span class="cstat-no" title="statement not covered" > this.setValue(changes['value'].currentValue);</span>
894
+ }
895
+ &nbsp;
896
+ <span class="fstat-no" title="function not covered" > onDestroy(</span>): void {
897
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if(this.formGroup)</span>
898
+ <span class="cstat-no" title="statement not covered" > NgxDecafFormService.unregister(this.formGroup);</span>
899
+ }
900
+ &nbsp;
901
+ setValue(value: unknown): void {
902
+ this.formControl.setValue(value);
903
+ this.formControl.updateValueAndValidity();
904
+ }
905
+ &nbsp;
906
+ &nbsp;
907
+ getErrors(parent: HTMLElement): string | void {
908
+ const formControl = this.formControl;
909
+ if(formControl) {
910
+ const accordionComponent = parent.closest('ngx-decaf-fieldset')?.querySelector('ion-accordion-group');
911
+ if((!formControl.pristine || formControl.touched) &amp;&amp; !formControl.valid) {
912
+ const errors: Record&lt;string, string&gt;[] = Object.keys(formControl.errors ?? <span class="branch-1 cbranch-no" title="branch not covered" >{})</span>.map(key =&gt; ({
913
+ key: key,
914
+ message: key,
915
+ }));
916
+ if(errors.length) {
917
+ <span class="missing-if-branch" title="if path not taken" >I</span>if(accordionComponent &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >!this.validationErrorEventDispatched)</span> {
918
+ const validationErrorEvent = <span class="cstat-no" title="statement not covered" >new CustomEvent(EventConstants.VALIDATION_ERROR, {</span>
919
+ detail: {fieldName: this.name, hasErrors: true},
920
+ bubbles: true
921
+ });
922
+ <span class="cstat-no" title="statement not covered" > accordionComponent.dispatchEvent(validationErrorEvent);</span>
923
+ <span class="cstat-no" title="statement not covered" > this.validationErrorEventDispatched = true;</span>
924
+ }
925
+ }
926
+ for(const error of errors)
927
+ return `* ${this.sf(this.translateService.instant(`errors.${error?.['message']}`), (this as KeyValue)[error?.['key']] ?? <span class="branch-1 cbranch-no" title="branch not covered" >"")</span>}`;
928
+ }
929
+ }
930
+ &nbsp;
931
+ }
932
+ }
933
+ &nbsp;</pre></td></tr></table></pre>
934
+
935
+ <div class='push'></div><!-- for sticky footer -->
936
+ </div><!-- /wrapper -->
937
+ <div class='footer quiet pad2 space-top1 center small'>
938
+ Code coverage generated by
939
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
940
+ at 2025-10-27T14:26:19.930Z
941
+ </div>
942
+ <script src="../../../prettify.js"></script>
943
+ <script>
944
+ window.onload = function () {
945
+ prettyPrint();
946
+ };
947
+ </script>
948
+ <script src="../../../sorter.js"></script>
949
+ <script src="../../../block-navigation.js"></script>
950
+ </body>
951
+ </html>
952
+