@decaf-ts/for-angular 0.0.100 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (374) hide show
  1. package/package.json +15 -86
  2. package/.editorconfig +0 -31
  3. package/.gitlab-ci.yml +0 -197
  4. package/.hintrc +0 -19
  5. package/.prettierrc +0 -49
  6. package/.snyk +0 -13
  7. package/LICENSE.md +0 -260
  8. package/angular.json +0 -274
  9. package/bs-config.json +0 -5
  10. package/cli-module.js.map +0 -1
  11. package/dist/for-angular/cli/cli-module.d.ts +0 -22
  12. package/dist/for-angular/cli/cli-module.d.ts.map +0 -1
  13. package/dist/for-angular/cli/cli-module.js +0 -131
  14. package/dist/for-angular/cli/cli-module.js.map +0 -1
  15. package/dist/lib/README.md +0 -117
  16. package/eslint.config.mjs +0 -101
  17. package/ionic.config.json +0 -14
  18. package/jest.config.ts +0 -52
  19. package/jest.setup.ts +0 -50
  20. package/karma.conf.js +0 -50
  21. package/ng-package.json +0 -17
  22. package/ngsw-config.json +0 -30
  23. package/playwright.config.ts +0 -80
  24. package/resources/favicon.png +0 -0
  25. package/resources/favicon.svg +0 -29
  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 +0 -29
  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 +0 -29
  35. package/schematics/README.md +0 -28
  36. package/schematics/collection.json +0 -20
  37. package/schematics/package-lock.json +0 -1501
  38. package/schematics/package.json +0 -37
  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 +0 -3
  41. package/schematics/src/component/files/__name@dasherize@if-flat__/__name@dasherize__.__type@dasherize__.spec.ts.template +0 -40
  42. package/schematics/src/component/files/__name@dasherize@if-flat__/__name@dasherize__.__type@dasherize__.ts.template +0 -37
  43. package/schematics/src/component/files/__name@dasherize@if-flat__/__name@dasherize__.module.ts.template +0 -14
  44. package/schematics/src/component/index.js +0 -146
  45. package/schematics/src/component/schema.js +0 -2
  46. package/schematics/src/component/schema.json +0 -101
  47. package/schematics/src/page/files/__name@dasherize__.page.html.template +0 -15
  48. package/schematics/src/page/files/__name@dasherize__.page.scss.template +0 -0
  49. package/schematics/src/page/files/__name@dasherize__.page.ts.template +0 -19
  50. package/schematics/src/page/index.js +0 -71
  51. package/schematics/src/page/schema.json +0 -87
  52. package/schematics/src/schematics/index.js +0 -11
  53. package/schematics/src/schematics/index_spec.js +0 -13
  54. package/schematics/src/util/ast-util.js +0 -517
  55. package/schematics/src/util/change.js +0 -96
  56. package/schematics/src/util/index.js +0 -14
  57. package/settings.json +0 -112
  58. package/tsconfig.app.json +0 -22
  59. package/tsconfig.cli.json +0 -82
  60. package/tsconfig.lib.json +0 -14
  61. package/tsconfig.lib.prod.json +0 -10
  62. package/tsconfig.spec.json +0 -22
  63. package/webpack.config.js +0 -10
  64. package/workdocs/1-Header.md +0 -5
  65. package/workdocs/2-Badges.md +0 -30
  66. package/workdocs/4-Description.md +0 -4
  67. package/workdocs/5-HowToUse.md +0 -27
  68. package/workdocs/6-Related.md +0 -7
  69. package/workdocs/7-Social.md +0 -5
  70. package/workdocs/99-Footer.md +0 -28
  71. package/workdocs/Readme.md +0 -12
  72. package/workdocs/assets/apple-touch-icon.png +0 -0
  73. package/workdocs/assets/decaf-logo.svg +0 -54
  74. package/workdocs/assets/favicon.png +0 -0
  75. package/workdocs/assets/slogans.json +0 -182
  76. package/workdocs/confluence/.markdown-confluence.template.json +0 -6
  77. package/workdocs/confluence/Angular Module.md +0 -5
  78. package/workdocs/drawings/diagram.drawio +0 -24
  79. package/workdocs/prompts/bulk.md +0 -122
  80. package/workdocs/prompts/code.md +0 -47
  81. package/workdocs/prompts/documentation.md +0 -146
  82. package/workdocs/prompts/uml.md +0 -11
  83. package/workdocs/readme-md.json +0 -6
  84. package/workdocs/reports/CHANGELOG.md +0 -12
  85. package/workdocs/reports/DEPENDENCIES.md +0 -213
  86. package/workdocs/reports/RELEASE_NOTES.md +0 -24
  87. package/workdocs/reports/coverage/.gitkeep +0 -0
  88. package/workdocs/reports/coverage/clover.xml +0 -4107
  89. package/workdocs/reports/coverage/coverage-final.json +0 -76
  90. package/workdocs/reports/coverage/lcov-report/base.css +0 -224
  91. package/workdocs/reports/coverage/lcov-report/block-navigation.js +0 -87
  92. package/workdocs/reports/coverage/lcov-report/favicon.png +0 -0
  93. package/workdocs/reports/coverage/lcov-report/index.html +0 -551
  94. package/workdocs/reports/coverage/lcov-report/prettify.css +0 -1
  95. package/workdocs/reports/coverage/lcov-report/prettify.js +0 -2
  96. package/workdocs/reports/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  97. package/workdocs/reports/coverage/lcov-report/sorter.js +0 -210
  98. package/workdocs/reports/coverage/lcov-report/src/app/models/CategoryModel.ts.html +0 -277
  99. package/workdocs/reports/coverage/lcov-report/src/app/models/DemoModel.ts.html +0 -427
  100. package/workdocs/reports/coverage/lcov-report/src/app/models/UserModel.ts.html +0 -226
  101. package/workdocs/reports/coverage/lcov-report/src/app/models/index.html +0 -146
  102. package/workdocs/reports/coverage/lcov-report/src/cli-module.ts.html +0 -502
  103. package/workdocs/reports/coverage/lcov-report/src/environments/environment.ts.html +0 -166
  104. package/workdocs/reports/coverage/lcov-report/src/environments/index.html +0 -116
  105. package/workdocs/reports/coverage/lcov-report/src/index.html +0 -191
  106. package/workdocs/reports/coverage/lcov-report/src/karma-test.ts.html +0 -121
  107. package/workdocs/reports/coverage/lcov-report/src/lib/components/card/card.component.ts.html +0 -625
  108. package/workdocs/reports/coverage/lcov-report/src/lib/components/card/index.html +0 -116
  109. package/workdocs/reports/coverage/lcov-report/src/lib/components/component-renderer/component-renderer.component.ts.html +0 -772
  110. package/workdocs/reports/coverage/lcov-report/src/lib/components/component-renderer/index.html +0 -116
  111. package/workdocs/reports/coverage/lcov-report/src/lib/components/crud-field/crud-field.component.ts.html +0 -2698
  112. package/workdocs/reports/coverage/lcov-report/src/lib/components/crud-field/index.html +0 -116
  113. package/workdocs/reports/coverage/lcov-report/src/lib/components/crud-form/constants.ts.html +0 -133
  114. package/workdocs/reports/coverage/lcov-report/src/lib/components/crud-form/crud-form.component.ts.html +0 -346
  115. package/workdocs/reports/coverage/lcov-report/src/lib/components/crud-form/index.html +0 -116
  116. package/workdocs/reports/coverage/lcov-report/src/lib/components/empty-state/empty-state.component.ts.html +0 -1264
  117. package/workdocs/reports/coverage/lcov-report/src/lib/components/empty-state/index.html +0 -116
  118. package/workdocs/reports/coverage/lcov-report/src/lib/components/fieldset/fieldset.component.ts.html +0 -2965
  119. package/workdocs/reports/coverage/lcov-report/src/lib/components/fieldset/index.html +0 -116
  120. package/workdocs/reports/coverage/lcov-report/src/lib/components/file-upload/file-upload.component.ts.html +0 -2263
  121. package/workdocs/reports/coverage/lcov-report/src/lib/components/file-upload/index.html +0 -116
  122. package/workdocs/reports/coverage/lcov-report/src/lib/components/filter/filter.component.ts.html +0 -2485
  123. package/workdocs/reports/coverage/lcov-report/src/lib/components/filter/index.html +0 -116
  124. package/workdocs/reports/coverage/lcov-report/src/lib/components/for-angular-components.module.ts.html +0 -259
  125. package/workdocs/reports/coverage/lcov-report/src/lib/components/icon/icon.component.ts.html +0 -358
  126. package/workdocs/reports/coverage/lcov-report/src/lib/components/icon/index.html +0 -116
  127. package/workdocs/reports/coverage/lcov-report/src/lib/components/index.html +0 -131
  128. package/workdocs/reports/coverage/lcov-report/src/lib/components/index.ts.html +0 -181
  129. package/workdocs/reports/coverage/lcov-report/src/lib/components/layout/index.html +0 -116
  130. package/workdocs/reports/coverage/lcov-report/src/lib/components/layout/layout.component.ts.html +0 -943
  131. package/workdocs/reports/coverage/lcov-report/src/lib/components/list/index.html +0 -116
  132. package/workdocs/reports/coverage/lcov-report/src/lib/components/list/list.component.ts.html +0 -4420
  133. package/workdocs/reports/coverage/lcov-report/src/lib/components/list-item/index.html +0 -116
  134. package/workdocs/reports/coverage/lcov-report/src/lib/components/list-item/list-item.component.ts.html +0 -1741
  135. package/workdocs/reports/coverage/lcov-report/src/lib/components/modal/index.html +0 -116
  136. package/workdocs/reports/coverage/lcov-report/src/lib/components/modal/modal.component.ts.html +0 -1984
  137. package/workdocs/reports/coverage/lcov-report/src/lib/components/model-renderer/index.html +0 -116
  138. package/workdocs/reports/coverage/lcov-report/src/lib/components/model-renderer/model-renderer.component.ts.html +0 -373
  139. package/workdocs/reports/coverage/lcov-report/src/lib/components/pagination/index.html +0 -116
  140. package/workdocs/reports/coverage/lcov-report/src/lib/components/pagination/pagination.component.ts.html +0 -1165
  141. package/workdocs/reports/coverage/lcov-report/src/lib/components/searchbar/index.html +0 -116
  142. package/workdocs/reports/coverage/lcov-report/src/lib/components/searchbar/searchbar.component.ts.html +0 -1774
  143. package/workdocs/reports/coverage/lcov-report/src/lib/components/stepped-form/index.html +0 -116
  144. package/workdocs/reports/coverage/lcov-report/src/lib/components/stepped-form/stepped-form.component.ts.html +0 -1219
  145. package/workdocs/reports/coverage/lcov-report/src/lib/components/table/index.html +0 -116
  146. package/workdocs/reports/coverage/lcov-report/src/lib/components/table/table.component.ts.html +0 -1054
  147. package/workdocs/reports/coverage/lcov-report/src/lib/directives/NgxSvgDirective.ts.html +0 -163
  148. package/workdocs/reports/coverage/lcov-report/src/lib/directives/collapsable.directive.ts.html +0 -268
  149. package/workdocs/reports/coverage/lcov-report/src/lib/directives/index.html +0 -131
  150. package/workdocs/reports/coverage/lcov-report/src/lib/directives/index.ts.html +0 -91
  151. package/workdocs/reports/coverage/lcov-report/src/lib/engine/DynamicModule.ts.html +0 -133
  152. package/workdocs/reports/coverage/lcov-report/src/lib/engine/MediaService.ts.html +0 -142
  153. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxBaseComponent.ts.html +0 -2194
  154. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxComponentDirective.ts.html +0 -3430
  155. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxCrudFormField.ts.html +0 -721
  156. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxDecafComponentDirective.ts.html +0 -1864
  157. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxDecafFormFieldDirective.ts.html +0 -952
  158. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxDecafFormService.ts.html +0 -3211
  159. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxEventHandler.ts.html +0 -307
  160. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxFormDirective.ts.html +0 -1366
  161. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxFormFieldDirective.ts.html +0 -1960
  162. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxFormService.ts.html +0 -3004
  163. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxModelPageDirective.ts.html +0 -1672
  164. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxPageDirective.ts.html +0 -748
  165. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxParentComponentDirective.ts.html +0 -775
  166. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxRenderableComponentDirective.ts.html +0 -727
  167. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxRenderingEngine.ts.html +0 -2005
  168. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxRepositoryDirective.ts.html +0 -1546
  169. package/workdocs/reports/coverage/lcov-report/src/lib/engine/ValidatorFactory.ts.html +0 -817
  170. package/workdocs/reports/coverage/lcov-report/src/lib/engine/constants.ts.html +0 -1120
  171. package/workdocs/reports/coverage/lcov-report/src/lib/engine/decorators.ts.html +0 -376
  172. package/workdocs/reports/coverage/lcov-report/src/lib/engine/helpers.ts.html +0 -694
  173. package/workdocs/reports/coverage/lcov-report/src/lib/engine/index.html +0 -356
  174. package/workdocs/reports/coverage/lcov-report/src/lib/engine/index.ts.html +0 -160
  175. package/workdocs/reports/coverage/lcov-report/src/lib/engine/overrides.ts.html +0 -502
  176. package/workdocs/reports/coverage/lcov-report/src/lib/for-angular-common.module.ts.html +0 -298
  177. package/workdocs/reports/coverage/lcov-report/src/lib/helpers/index.html +0 -131
  178. package/workdocs/reports/coverage/lcov-report/src/lib/helpers/index.ts.html +0 -121
  179. package/workdocs/reports/coverage/lcov-report/src/lib/helpers/utils.ts.html +0 -1603
  180. package/workdocs/reports/coverage/lcov-report/src/lib/i18n/FakeLoader.ts.html +0 -157
  181. package/workdocs/reports/coverage/lcov-report/src/lib/i18n/Loader.ts.html +0 -826
  182. package/workdocs/reports/coverage/lcov-report/src/lib/i18n/index.html +0 -146
  183. package/workdocs/reports/coverage/lcov-report/src/lib/i18n/index.ts.html +0 -91
  184. package/workdocs/reports/coverage/lcov-report/src/lib/index.html +0 -131
  185. package/workdocs/reports/coverage/lcov-report/src/lib/public-apis.ts.html +0 -157
  186. package/workdocs/reports/coverage/lcov-report/src/lib/services/NgxFormService.ts.html +0 -3460
  187. package/workdocs/reports/coverage/lcov-report/src/lib/services/NgxMediaService.ts.html +0 -1420
  188. package/workdocs/reports/coverage/lcov-report/src/lib/services/NgxRouterService.ts.html +0 -1243
  189. package/workdocs/reports/coverage/lcov-report/src/lib/services/NgxTranslateService.ts.html +0 -214
  190. package/workdocs/reports/coverage/lcov-report/src/lib/services/index.html +0 -176
  191. package/workdocs/reports/coverage/lcov-report/src/lib/services/index.ts.html +0 -91
  192. package/workdocs/reports/coverage/lcov-report/src/lib/utils/DecafFakerRepository.ts.html +0 -571
  193. package/workdocs/reports/coverage/lcov-report/src/lib/utils/helpers.ts.html +0 -1711
  194. package/workdocs/reports/coverage/lcov-report/src/lib/utils/index.html +0 -146
  195. package/workdocs/reports/coverage/lcov-report/src/lib/utils/index.ts.html +0 -124
  196. package/workdocs/reports/coverage/lcov-report/src/main.ts.html +0 -100
  197. package/workdocs/reports/coverage/lcov-report/src/polyfills.ts.html +0 -271
  198. package/workdocs/reports/coverage/lcov-report/src/stories/Configure.stories.ts.html +0 -1156
  199. package/workdocs/reports/coverage/lcov-report/src/stories/button.component.ts.html +0 -229
  200. package/workdocs/reports/coverage/lcov-report/src/stories/button.stories.ts.html +0 -235
  201. package/workdocs/reports/coverage/lcov-report/src/stories/crud-field.stories.ts.html +0 -325
  202. package/workdocs/reports/coverage/lcov-report/src/stories/header.stories.ts.html +0 -181
  203. package/workdocs/reports/coverage/lcov-report/src/stories/index.html +0 -281
  204. package/workdocs/reports/coverage/lcov-report/src/stories/list.stories.ts.html +0 -289
  205. package/workdocs/reports/coverage/lcov-report/src/stories/login.page.stories.ts.html +0 -175
  206. package/workdocs/reports/coverage/lcov-report/src/stories/model-renderer.stories.ts.html +0 -259
  207. package/workdocs/reports/coverage/lcov-report/src/stories/page.component.ts.html +0 -331
  208. package/workdocs/reports/coverage/lcov-report/src/stories/page.stories.ts.html +0 -193
  209. package/workdocs/reports/coverage/lcov-report/src/stories/setup.ts.html +0 -127
  210. package/workdocs/reports/coverage/lcov-report/src/stories/utils.ts.html +0 -247
  211. package/workdocs/reports/coverage/lcov-report/src/tests/index.html +0 -116
  212. package/workdocs/reports/coverage/lcov-report/src/tests/karmaErrorParser.ts.html +0 -190
  213. package/workdocs/reports/coverage/lcov-report/src/typings.d.ts.html +0 -88
  214. package/workdocs/reports/coverage/lcov-report/src/zone-flags.ts.html +0 -103
  215. package/workdocs/reports/coverage/lcov.info +0 -7898
  216. package/workdocs/reports/data/.gitkeep +0 -1
  217. package/workdocs/reports/html/.gitkeep +0 -0
  218. package/workdocs/reports/html/jest-html-reporters-attach/test-report/index.js +0 -3
  219. package/workdocs/reports/html/jest-html-reporters-attach/test-report/result.js +0 -1
  220. package/workdocs/reports/html/test-report.html +0 -1
  221. package/workdocs/reports/images/.gitkeep +0 -1
  222. package/workdocs/reports/jest.coverage.config.ts +0 -43
  223. package/workdocs/reports/junit/junit-report.xml +0 -91
  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 +0 -64
  229. package/workdocs/tutorials/Documentation.md +0 -340
  230. package/workdocs/tutorials/For Developers.md +0 -337
  231. package/workdocs/uml/diagram.puml +0 -11
  232. package/www/1049.10b030f0de36543b.js +0 -1
  233. package/www/1102.67cedfb3e29f0a05.js +0 -1
  234. package/www/1107.6b592a1672821270.js +0 -1
  235. package/www/1459.cabc18e941afa5d7.js +0 -1
  236. package/www/1577.5221deebe3501e43.js +0 -1
  237. package/www/2075.b6dc4fbb89dd6afc.js +0 -1
  238. package/www/2348.c4cc27dadbec70ec.js +0 -1
  239. package/www/2375.318d0b24ab346271.js +0 -1
  240. package/www/2415.618d6968ffda319c.js +0 -1
  241. package/www/2460.1d97c6f48b898ee2.js +0 -1
  242. package/www/2560.2e7000dcf80b6b2c.js +0 -1
  243. package/www/2585.274d59d52bafc7ed.js +0 -1
  244. package/www/2885.d99b86afd1ff7aa8.js +0 -1
  245. package/www/3162.bbc401f4a5f82460.js +0 -1
  246. package/www/323.f64c512be5c8d797.js +0 -1
  247. package/www/3238.a3e7e8004c6b6667.js +0 -1
  248. package/www/3506.8c03f5589b33a4a6.js +0 -1
  249. package/www/3511.56b7e49bb6c2c936.js +0 -1
  250. package/www/3519.84fbb67dc803f702.js +0 -1
  251. package/www/3675.7ebfdcf145052232.js +0 -1
  252. package/www/3814.765c1794e1be63de.js +0 -1
  253. package/www/3rdpartylicenses.txt +0 -1344
  254. package/www/4171.a974bdbf9c97e4e1.js +0 -1
  255. package/www/4183.41ef1def450a2cc0.js +0 -1
  256. package/www/4406.0b2dd3839b8c1417.js +0 -1
  257. package/www/441.e1031657c7e5f0ff.js +0 -1
  258. package/www/4463.6ad7b857e5f34009.js +0 -1
  259. package/www/4591.42f34534d38b9b31.js +0 -1
  260. package/www/4699.8df8ea9806163d4c.js +0 -1
  261. package/www/5100.ed6483c55a157d67.js +0 -1
  262. package/www/5193.15ea6938534eceb1.js +0 -1
  263. package/www/5197.6733853529768a45.js +0 -1
  264. package/www/5222.8439a641c2c4b1c1.js +0 -1
  265. package/www/5373.d7878f708309f038.js +0 -1
  266. package/www/5467.f0e21031db47308c.js +0 -1
  267. package/www/5712.b08cf436ee8145ce.js +0 -1
  268. package/www/5887.3d038f564e925abb.js +0 -1
  269. package/www/5949.37330f20e95dee79.js +0 -1
  270. package/www/6024.c10cc3d1b341c748.js +0 -1
  271. package/www/6433.360fcff952bde822.js +0 -1
  272. package/www/6499.60169da9869db697.js +0 -1
  273. package/www/6521.fab1f34bfe6b8200.js +0 -1
  274. package/www/6631.eaa711da6e0aeed9.js +0 -1
  275. package/www/6717.9d970c383bb0cf1c.js +0 -1
  276. package/www/6840.7317cd962ab23932.js +0 -1
  277. package/www/7030.d115d82ca7468a4e.js +0 -1
  278. package/www/7076.cce20ed5c79ff305.js +0 -1
  279. package/www/7179.c0545989ce869b3d.js +0 -1
  280. package/www/7240.69aeb484d78eb24d.js +0 -1
  281. package/www/7372.94c62459e34f7303.js +0 -1
  282. package/www/7402.983a5ecff61e9a5d.js +0 -1
  283. package/www/7428.527ac48035a2f915.js +0 -1
  284. package/www/7676.d7db23d350e4b096.js +0 -1
  285. package/www/770.80af87d5eb0075d3.js +0 -1
  286. package/www/7720.0701576cb9966779.js +0 -1
  287. package/www/7927.ee869d0dc478250a.js +0 -1
  288. package/www/8066.894688fbb2e5c832.js +0 -1
  289. package/www/8193.7f09ecd40b6d42c2.js +0 -1
  290. package/www/8255.158098a6302c91c2.js +0 -1
  291. package/www/8314.596c1ccf26b9c93a.js +0 -1
  292. package/www/8357.c5406b92e6933d7a.js +0 -1
  293. package/www/8477.a3ccc11c25a642d3.js +0 -1
  294. package/www/8487.93b6f7465ae1b7ac.js +0 -1
  295. package/www/8584.b77ad478a5a7ac2a.js +0 -1
  296. package/www/8805.a87413652185ff8f.js +0 -1
  297. package/www/8814.b489a78ae8e926c4.js +0 -1
  298. package/www/8970.234b3db1f97528fe.js +0 -1
  299. package/www/9013.c2e6ba17a915bdd6.js +0 -1
  300. package/www/9073.16c4e42482d55a3c.js +0 -1
  301. package/www/9344.7d2d24b194b794e2.js +0 -1
  302. package/www/9364.9a028036dd89e3e7.js +0 -1
  303. package/www/944.7e4317348c48d4f4.js +0 -1
  304. package/www/964.9a979e1c1aad0f5b.js +0 -1
  305. package/www/9657.fbb680ad1064e91a.js +0 -1
  306. package/www/9956.2d00a2153e9a7799.js +0 -1
  307. package/www/9977.068cd5561462bc99.js +0 -1
  308. package/www/assets/i18n/en.json +0 -210
  309. package/www/assets/i18n/ew/en.json +0 -346
  310. package/www/assets/i18n/pt.json +0 -186
  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 +0 -45
  319. package/www/assets/images/apple-touch-icon.png +0 -0
  320. package/www/assets/images/decaf-logo-black.svg +0 -22
  321. package/www/assets/images/decaf-logo-contrast.svg +0 -54
  322. package/www/assets/images/decaf-logo-white.svg +0 -22
  323. package/www/assets/images/decaf-logo.svg +0 -54
  324. package/www/assets/images/ew/product.txt +0 -1
  325. package/www/assets/images/favicon-contrast.svg +0 -7
  326. package/www/assets/images/favicon.png +0 -0
  327. package/www/assets/images/favicon.svg +0 -29
  328. package/www/assets/images/icons/document.svg +0 -7
  329. package/www/assets/images/icons/edit.svg +0 -1
  330. package/www/assets/images/icons/logout.svg +0 -4
  331. package/www/assets/images/icons/menu-collapse.svg +0 -5
  332. package/www/assets/images/icons/menu.svg +0 -3
  333. package/www/assets/images/icons/moon-stars.svg +0 -5
  334. package/www/assets/images/icons/trash.svg +0 -1
  335. package/www/cli-module.ts +0 -139
  336. package/www/common.e50b5f8708aca9a5.js +0 -1
  337. package/www/index.html +0 -29
  338. package/www/main.7814262e404641fd.js +0 -1
  339. package/www/polyfills.4c1e087fffe784e8.js +0 -1
  340. package/www/runtime.e81aa7ecff7177cd.js +0 -1
  341. package/www/styles.5a3cd83eba16afc9.css +0 -4
  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/{dist/lib/assets → assets}/i18n/en.json +0 -0
  346. /package/{dist/lib/assets → assets}/i18n/ew/en.json +0 -0
  347. /package/{dist/lib/assets → assets}/i18n/pt.json +0 -0
  348. /package/{dist/lib/assets → assets}/icons/icon-128.webp +0 -0
  349. /package/{dist/lib/assets → assets}/icons/icon-192.webp +0 -0
  350. /package/{dist/lib/assets → assets}/icons/icon-256.webp +0 -0
  351. /package/{dist/lib/assets → assets}/icons/icon-48.webp +0 -0
  352. /package/{dist/lib/assets → assets}/icons/icon-512.webp +0 -0
  353. /package/{dist/lib/assets → assets}/icons/icon-72.webp +0 -0
  354. /package/{dist/lib/assets → assets}/icons/icon-96.webp +0 -0
  355. /package/{dist/lib/assets → assets}/images/angular-logo.svg +0 -0
  356. /package/{dist/lib/assets → assets}/images/apple-touch-icon.png +0 -0
  357. /package/{dist/lib/assets → assets}/images/decaf-logo-black.svg +0 -0
  358. /package/{dist/lib/assets → assets}/images/decaf-logo-contrast.svg +0 -0
  359. /package/{dist/lib/assets → assets}/images/decaf-logo-white.svg +0 -0
  360. /package/{dist/lib/assets → assets}/images/decaf-logo.svg +0 -0
  361. /package/{dist/lib/assets → assets}/images/ew/product.txt +0 -0
  362. /package/{dist/lib/assets → assets}/images/favicon-contrast.svg +0 -0
  363. /package/{dist/lib/assets → assets}/images/favicon.png +0 -0
  364. /package/{dist/lib/assets → assets}/images/favicon.svg +0 -0
  365. /package/{dist/lib/assets → assets}/images/icons/document.svg +0 -0
  366. /package/{dist/lib/assets → assets}/images/icons/edit.svg +0 -0
  367. /package/{dist/lib/assets → assets}/images/icons/logout.svg +0 -0
  368. /package/{dist/lib/assets → assets}/images/icons/menu-collapse.svg +0 -0
  369. /package/{dist/lib/assets → assets}/images/icons/menu.svg +0 -0
  370. /package/{dist/lib/assets → assets}/images/icons/moon-stars.svg +0 -0
  371. /package/{dist/lib/assets → assets}/images/icons/trash.svg +0 -0
  372. /package/{dist/lib/fesm2022 → fesm2022}/decaf-ts-for-angular.mjs +0 -0
  373. /package/{dist/lib/fesm2022 → fesm2022}/decaf-ts-for-angular.mjs.map +0 -0
  374. /package/{dist/lib/index.d.ts → index.d.ts} +0 -0
@@ -1,826 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for src/lib/i18n/Loader.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/i18n</a> Loader.ts</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">32.75% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>19/58</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/31</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">7.69% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>1/13</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">34.54% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>19/55</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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
314
- <span class="cline-any cline-neutral">&nbsp;</span>
315
- <span class="cline-any cline-neutral">&nbsp;</span>
316
- <span class="cline-any cline-neutral">&nbsp;</span>
317
- <span class="cline-any cline-neutral">&nbsp;</span>
318
- <span class="cline-any cline-neutral">&nbsp;</span>
319
- <span class="cline-any cline-neutral">&nbsp;</span>
320
- <span class="cline-any cline-neutral">&nbsp;</span>
321
- <span class="cline-any cline-neutral">&nbsp;</span>
322
- <span class="cline-any cline-yes">11x</span>
323
- <span class="cline-any cline-yes">11x</span>
324
- <span class="cline-any cline-yes">11x</span>
325
- <span class="cline-any cline-neutral">&nbsp;</span>
326
- <span class="cline-any cline-neutral">&nbsp;</span>
327
- <span class="cline-any cline-neutral">&nbsp;</span>
328
- <span class="cline-any cline-neutral">&nbsp;</span>
329
- <span class="cline-any cline-neutral">&nbsp;</span>
330
- <span class="cline-any cline-neutral">&nbsp;</span>
331
- <span class="cline-any cline-neutral">&nbsp;</span>
332
- <span class="cline-any cline-yes">11x</span>
333
- <span class="cline-any cline-yes">11x</span>
334
- <span class="cline-any cline-yes">11x</span>
335
- <span class="cline-any cline-yes">11x</span>
336
- <span class="cline-any cline-neutral">&nbsp;</span>
337
- <span class="cline-any cline-neutral">&nbsp;</span>
338
- <span class="cline-any cline-yes">11x</span>
339
- <span class="cline-any cline-yes">11x</span>
340
- <span class="cline-any cline-yes">11x</span>
341
- <span class="cline-any cline-neutral">&nbsp;</span>
342
- <span class="cline-any cline-yes">11x</span>
343
- <span class="cline-any cline-neutral">&nbsp;</span>
344
- <span class="cline-any cline-neutral">&nbsp;</span>
345
- <span class="cline-any cline-neutral">&nbsp;</span>
346
- <span class="cline-any cline-neutral">&nbsp;</span>
347
- <span class="cline-any cline-neutral">&nbsp;</span>
348
- <span class="cline-any cline-neutral">&nbsp;</span>
349
- <span class="cline-any cline-neutral">&nbsp;</span>
350
- <span class="cline-any cline-neutral">&nbsp;</span>
351
- <span class="cline-any cline-neutral">&nbsp;</span>
352
- <span class="cline-any cline-yes">11x</span>
353
- <span class="cline-any cline-yes">32x</span>
354
- <span class="cline-any cline-neutral">&nbsp;</span>
355
- <span class="cline-any cline-neutral">&nbsp;</span>
356
- <span class="cline-any cline-neutral">&nbsp;</span>
357
- <span class="cline-any cline-neutral">&nbsp;</span>
358
- <span class="cline-any cline-neutral">&nbsp;</span>
359
- <span class="cline-any cline-neutral">&nbsp;</span>
360
- <span class="cline-any cline-neutral">&nbsp;</span>
361
- <span class="cline-any cline-neutral">&nbsp;</span>
362
- <span class="cline-any cline-neutral">&nbsp;</span>
363
- <span class="cline-any cline-neutral">&nbsp;</span>
364
- <span class="cline-any cline-neutral">&nbsp;</span>
365
- <span class="cline-any cline-neutral">&nbsp;</span>
366
- <span class="cline-any cline-neutral">&nbsp;</span>
367
- <span class="cline-any cline-neutral">&nbsp;</span>
368
- <span class="cline-any cline-neutral">&nbsp;</span>
369
- <span class="cline-any cline-neutral">&nbsp;</span>
370
- <span class="cline-any cline-yes">11x</span>
371
- <span class="cline-any cline-no">&nbsp;</span>
372
- <span class="cline-any cline-no">&nbsp;</span>
373
- <span class="cline-any cline-no">&nbsp;</span>
374
- <span class="cline-any cline-no">&nbsp;</span>
375
- <span class="cline-any cline-neutral">&nbsp;</span>
376
- <span class="cline-any cline-neutral">&nbsp;</span>
377
- <span class="cline-any cline-neutral">&nbsp;</span>
378
- <span class="cline-any cline-neutral">&nbsp;</span>
379
- <span class="cline-any cline-neutral">&nbsp;</span>
380
- <span class="cline-any cline-neutral">&nbsp;</span>
381
- <span class="cline-any cline-neutral">&nbsp;</span>
382
- <span class="cline-any cline-neutral">&nbsp;</span>
383
- <span class="cline-any cline-neutral">&nbsp;</span>
384
- <span class="cline-any cline-yes">11x</span>
385
- <span class="cline-any cline-neutral">&nbsp;</span>
386
- <span class="cline-any cline-no">&nbsp;</span>
387
- <span class="cline-any cline-no">&nbsp;</span>
388
- <span class="cline-any cline-neutral">&nbsp;</span>
389
- <span class="cline-any cline-neutral">&nbsp;</span>
390
- <span class="cline-any cline-neutral">&nbsp;</span>
391
- <span class="cline-any cline-neutral">&nbsp;</span>
392
- <span class="cline-any cline-neutral">&nbsp;</span>
393
- <span class="cline-any cline-neutral">&nbsp;</span>
394
- <span class="cline-any cline-neutral">&nbsp;</span>
395
- <span class="cline-any cline-neutral">&nbsp;</span>
396
- <span class="cline-any cline-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-yes">11x</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-no">&nbsp;</span>
410
- <span class="cline-any cline-no">&nbsp;</span>
411
- <span class="cline-any cline-neutral">&nbsp;</span>
412
- <span class="cline-any cline-no">&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-yes">11x</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-no">&nbsp;</span>
430
- <span class="cline-any cline-no">&nbsp;</span>
431
- <span class="cline-any cline-no">&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-no">&nbsp;</span>
443
- <span class="cline-any cline-no">&nbsp;</span>
444
- <span class="cline-any cline-neutral">&nbsp;</span>
445
- <span class="cline-any cline-no">&nbsp;</span>
446
- <span class="cline-any cline-no">&nbsp;</span>
447
- <span class="cline-any cline-neutral">&nbsp;</span>
448
- <span class="cline-any cline-neutral">&nbsp;</span>
449
- <span class="cline-any cline-neutral">&nbsp;</span>
450
- <span class="cline-any cline-neutral">&nbsp;</span>
451
- <span class="cline-any cline-neutral">&nbsp;</span>
452
- <span class="cline-any cline-neutral">&nbsp;</span>
453
- <span class="cline-any cline-neutral">&nbsp;</span>
454
- <span class="cline-any cline-neutral">&nbsp;</span>
455
- <span class="cline-any cline-neutral">&nbsp;</span>
456
- <span class="cline-any cline-neutral">&nbsp;</span>
457
- <span class="cline-any cline-no">&nbsp;</span>
458
- <span class="cline-any cline-no">&nbsp;</span>
459
- <span class="cline-any cline-neutral">&nbsp;</span>
460
- <span class="cline-any cline-no">&nbsp;</span>
461
- <span class="cline-any cline-neutral">&nbsp;</span>
462
- <span class="cline-any cline-neutral">&nbsp;</span>
463
- <span class="cline-any cline-neutral">&nbsp;</span>
464
- <span class="cline-any cline-neutral">&nbsp;</span>
465
- <span class="cline-any cline-neutral">&nbsp;</span>
466
- <span class="cline-any cline-neutral">&nbsp;</span>
467
- <span class="cline-any cline-neutral">&nbsp;</span>
468
- <span class="cline-any cline-neutral">&nbsp;</span>
469
- <span class="cline-any cline-neutral">&nbsp;</span>
470
- <span class="cline-any cline-neutral">&nbsp;</span>
471
- <span class="cline-any cline-neutral">&nbsp;</span>
472
- <span class="cline-any cline-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-no">&nbsp;</span>
476
- <span class="cline-any cline-no">&nbsp;</span>
477
- <span class="cline-any cline-no">&nbsp;</span>
478
- <span class="cline-any cline-no">&nbsp;</span>
479
- <span class="cline-any cline-neutral">&nbsp;</span>
480
- <span class="cline-any cline-no">&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-neutral">&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-neutral">&nbsp;</span>
488
- <span class="cline-any cline-no">&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-no">&nbsp;</span>
492
- <span class="cline-any cline-no">&nbsp;</span>
493
- <span class="cline-any cline-no">&nbsp;</span>
494
- <span class="cline-any cline-no">&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-no">&nbsp;</span>
500
- <span class="cline-any cline-neutral">&nbsp;</span>
501
- <span class="cline-any cline-no">&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-no">&nbsp;</span>
505
- <span class="cline-any cline-neutral">&nbsp;</span>
506
- <span class="cline-any cline-neutral">&nbsp;</span>
507
- <span class="cline-any cline-neutral">&nbsp;</span>
508
- <span class="cline-any cline-neutral">&nbsp;</span>
509
- <span class="cline-any cline-neutral">&nbsp;</span>
510
- <span class="cline-any cline-neutral">&nbsp;</span>
511
- <span class="cline-any cline-neutral">&nbsp;</span>
512
- <span class="cline-any cline-neutral">&nbsp;</span>
513
- <span class="cline-any cline-neutral">&nbsp;</span>
514
- <span class="cline-any cline-yes">11x</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-no">&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-neutral">&nbsp;</span>
538
- <span class="cline-any cline-neutral">&nbsp;</span>
539
- <span class="cline-any cline-neutral">&nbsp;</span>
540
- <span class="cline-any cline-yes">11x</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-no">&nbsp;</span>
546
- <span class="cline-any cline-neutral">&nbsp;</span>
547
- <span class="cline-any cline-neutral">&nbsp;</span>
548
- <span class="cline-any cline-neutral">&nbsp;</span>
549
- <span class="cline-any cline-neutral">&nbsp;</span>
550
- <span class="cline-any cline-neutral">&nbsp;</span>
551
- <span class="cline-any cline-neutral">&nbsp;</span>
552
- <span class="cline-any cline-neutral">&nbsp;</span>
553
- <span class="cline-any cline-neutral">&nbsp;</span>
554
- <span class="cline-any cline-neutral">&nbsp;</span>
555
- <span class="cline-any cline-neutral">&nbsp;</span>
556
- <span class="cline-any cline-neutral">&nbsp;</span>
557
- <span class="cline-any cline-neutral">&nbsp;</span>
558
- <span class="cline-any cline-neutral">&nbsp;</span>
559
- <span class="cline-any cline-neutral">&nbsp;</span>
560
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">/**
561
- * @module module:lib/i18n/Loader
562
- * @description Internationalization loader and helpers for the for-angular package.
563
- * @summary Provides an implementation of TranslateLoader (I18nLoader) and helper factories
564
- * to load translation resources. Also exposes locale utilities used by components to resolve
565
- * localized keys.
566
- *
567
- * @link {@link I18nLoader}
568
- */
569
- import { inject } from '@angular/core';
570
- import { HttpClient, provideHttpClient } from '@angular/common/http';
571
- import {
572
- provideTranslateParser,
573
- provideTranslateService,
574
- RootTranslateServiceConfig,
575
- TranslateLoader,
576
- TranslateParser,
577
- TranslationObject,
578
- } from '@ngx-translate/core';
579
- import { sf } from '@decaf-ts/logging';
580
- import { Primitives } from '@decaf-ts/decorator-validation';
581
- import { forkJoin, Observable } from 'rxjs';
582
- import { map } from 'rxjs/operators';
583
- import { I18nResourceConfig } from '../engine/interfaces';
584
- import { FunctionLike, I18nResourceConfigType, KeyValue, AngularProvider } from '../engine/types';
585
- import { cleanSpaces, getLocaleFromClassName } from '../utils';
586
- import en from './data/en.json';
587
- import { I18N_CONFIG_TOKEN } from '../engine/constants';
588
- &nbsp;
589
- const libLanguage: Record&lt;string, TranslationObject&gt; = { en };
590
- &nbsp;
591
- /**
592
- * @description Retrieves the locale context for a given class, object, or string.
593
- * @summary Resolves the locale context by extracting the class name or using the provided suffix.
594
- *
595
- * @param {FunctionLike | object | string} clazz - The class, object, or string to derive the locale context from.
596
- * @param {string} [suffix] - An optional suffix to append to the locale context.
597
- * @returns {string} - The resolved locale context string.
598
- */
599
- export function getLocaleContext(clazz: FunctionLike | object | string, suffix?: string): string {
600
- return getLocaleFromClassName(clazz, suffix);
601
- }
602
- &nbsp;
603
- /**
604
- * @description Generates a localized string by combining locale and phrase
605
- * @summary This utility function creates a properly formatted locale string by combining
606
- * a locale identifier with a phrase. It handles edge cases such as empty phrases,
607
- * missing locales, and phrases that already include the locale prefix. This function
608
- * is useful for ensuring consistent formatting of localized strings throughout the application.
609
- *
610
- * @param {string} locale - The locale identifier (e.g., 'en', 'fr')
611
- * @param {string | undefined} phrase - The phrase to localize
612
- * @return {string} The formatted locale string, or empty string if phrase is undefined
613
- *
614
- * @function generateLocaleFromString
615
- * @memberOf module:for-angular
616
- */
617
- export function <span class="fstat-no" title="function not covered" >getLocaleContextByKey(</span>locale: string, phrase: string | undefined): string {
618
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!phrase) <span class="cstat-no" title="statement not covered" >return locale;</span></span>
619
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!locale || phrase.includes(`${locale}.`)) <span class="cstat-no" title="statement not covered" >return phrase;</span></span>
620
- const parts = <span class="cstat-no" title="statement not covered" >phrase.split(' ');</span>
621
- <span class="cstat-no" title="statement not covered" > return `${locale}.${cleanSpaces(parts.join('.'), true)}`;</span>
622
- }
623
- &nbsp;
624
- /**
625
- * @description Factory function for creating an instance of I18nLoader.
626
- * @summary Configures and returns an I18nLoader instance with the specified HTTP client and translation resources.
627
- *
628
- * @param {HttpClient} http - The HTTP client used to fetch translation resources.
629
- * @returns {TranslateLoader} - An instance of I18nLoader configured with the provided HTTP client and resources.
630
- */
631
- export function <span class="fstat-no" title="function not covered" >I18nLoaderFactory(</span>http: HttpClient): TranslateLoader {
632
- const { resources, versionedSuffix } =
633
- <span class="cstat-no" title="statement not covered" > inject(I18N_CONFIG_TOKEN, { optional: true }) ?? provideDecafI18nLoader().useValue;</span>
634
- <span class="cstat-no" title="statement not covered" > return new I18nLoader(</span>
635
- http,
636
- resources?.length ? resources : [{ prefix: './app/assets/i18n/', suffix: '.json' }],
637
- versionedSuffix,
638
- );
639
- }
640
- &nbsp;
641
- /**
642
- * @description Provides the I18nLoader configuration.
643
- * @summary Configures the translation resources and versioned suffix for the I18nLoader.
644
- *
645
- * @param {I18nResourceConfigType} [resources=[]] - The translation resources to be used by the loader.
646
- * @param {boolean} [versionedSuffix=false] - Whether to append a versioned suffix to resource URLs.
647
- * @returns {object} - The configuration object for the I18nLoader.
648
- */
649
- export function <span class="fstat-no" title="function not covered" >provideDecafI18nLoader(</span>
650
- resources: I18nResourceConfigType = <span class="branch-0 cbranch-no" title="branch not covered" >[],</span>
651
- versionedSuffix: boolean = <span class="branch-0 cbranch-no" title="branch not covered" >false,</span>
652
- ): {
653
- provide: typeof I18N_CONFIG_TOKEN;
654
- useValue: { resources: I18nResourceConfig[]; versionedSuffix: boolean };
655
- } {
656
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!Array.isArray(resources)) {</span>
657
- <span class="cstat-no" title="statement not covered" > resources = [resources];</span>
658
- }
659
- <span class="cstat-no" title="statement not covered" > return {</span>
660
- provide: I18N_CONFIG_TOKEN,
661
- useValue: { resources: [...resources], versionedSuffix },
662
- };
663
- }
664
- &nbsp;
665
- /**
666
- * @description Custom implementation of TranslateLoader for loading translations.
667
- * @summary Fetches and merges translation resources, supporting versioned suffixes and recursive merging.
668
- */
669
- export class I18nLoader implements TranslateLoader {
670
- /**
671
- * @param {HttpClient} http - The HTTP client used to fetch translation resources.
672
- * @param {I18nResourceConfig[]} [resources=[]] - The translation resources to be loaded.
673
- * @param {boolean} [versionedSuffix=false] - Whether to append a versioned suffix to resource URLs.
674
- */
675
- <span class="fstat-no" title="function not covered" > constructor(</span>
676
- private <span class="cstat-no" title="statement not covered" >http: HttpClient,</span>
677
- private <span class="cstat-no" title="statement not covered" >resources: I18nResourceConfig[] = <span class="branch-0 cbranch-no" title="branch not covered" >[</span>],</span>
678
- private <span class="cstat-no" title="statement not covered" >versionedSuffix: boolean = <span class="branch-0 cbranch-no" title="branch not covered" >f</span>alse,</span>
679
- ) {}
680
- &nbsp;
681
- /**
682
- * @description Appends a versioned suffix to the resource URL if enabled.
683
- * @summary Generates a versioned suffix based on the current date.
684
- *
685
- * @param {string} suffix - The original suffix of the resource URL.
686
- * @returns {string} - The modified suffix with a version string appended.
687
- */
688
- private <span class="fstat-no" title="function not covered" >getSuffix(</span>suffix: string): string {
689
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!this.versionedSuffix) {</span>
690
- <span class="cstat-no" title="statement not covered" > return suffix;</span>
691
- }
692
- const today = <span class="cstat-no" title="statement not covered" >new Date();</span>
693
- <span class="cstat-no" title="statement not covered" > return `${suffix}?version=${today.getFullYear()}${today.getMonth()}${today.getDay()}`;</span>
694
- }
695
- &nbsp;
696
- /**
697
- * @description Fetches and merges translations for the specified language.
698
- * @summary Loads translation resources, merges them recursively, and includes library keys.
699
- *
700
- * @param {string} lang - The language code for the translations to load.
701
- * @returns {Observable&lt;TranslationObject&gt;} - An observable that emits the merged translation object.
702
- */
703
- <span class="fstat-no" title="function not covered" > getTranslation(</span>lang: string): Observable&lt;TranslationObject&gt; {
704
- const libKeys: KeyValue = <span class="cstat-no" title="statement not covered" >libLanguage[lang] || libLanguage['en'] || {};</span>
705
- const httpRequests$ = <span class="cstat-no" title="statement not covered" >forkJoin(</span>
706
- this.resources.map(<span class="fstat-no" title="function not covered" >(c</span>onfig) =&gt;
707
- <span class="cstat-no" title="statement not covered" > this.http.get&lt;TranslationObject&gt;(</span>
708
- `${config.prefix}${lang}${this.getSuffix(config.suffix || '.json')}`,
709
- ),
710
- ),
711
- );
712
- &nbsp;
713
- /**
714
- * @description Recursively merges two translation objects.
715
- * @summary Combines the properties of the source object into the target object.
716
- *
717
- * @param {KeyValue} target - The target object to merge into.
718
- * @param {KeyValue} source - The source object to merge from.
719
- * @returns {KeyValue} - The merged object.
720
- */
721
- function <span class="fstat-no" title="function not covered" >recursiveMerge(</span>target: KeyValue, source: KeyValue): KeyValue {
722
- <span class="cstat-no" title="statement not covered" > for (const key of Object.keys(source)) {</span>
723
- <span class="cstat-no" title="statement not covered" > if (source[key] instanceof Object) {</span>
724
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!target[key]) <span class="cstat-no" title="statement not covered" >Object.assign(target, { [key]: {} });</span></span>
725
- <span class="cstat-no" title="statement not covered" > recursiveMerge(target[key], source[key]);</span>
726
- } else {
727
- <span class="cstat-no" title="statement not covered" > Object.assign(target, { [key]: source[key] });</span>
728
- }
729
- }
730
- <span class="cstat-no" title="statement not covered" > return target;</span>
731
- }
732
- &nbsp;
733
- <span class="cstat-no" title="statement not covered" > return httpRequests$.pipe(</span>
734
- map(<span class="fstat-no" title="function not covered" >(r</span>es) =&gt; {
735
- const merged = <span class="cstat-no" title="statement not covered" >{</span>
736
- ...libKeys,
737
- ...res.reduce(<span class="fstat-no" title="function not covered" >(a</span>cc: KeyValue, current: KeyValue) =&gt; {
738
- <span class="cstat-no" title="statement not covered" > for (const key in current) {</span>
739
- let value = <span class="cstat-no" title="statement not covered" >current[key] || {};</span>
740
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (libKeys[key]) {</span>
741
- <span class="cstat-no" title="statement not covered" > value = {</span>
742
- ...libKeys[key],
743
- ...recursiveMerge(libKeys[key] as KeyValue, current[key] as KeyValue),
744
- };
745
- }
746
- <span class="cstat-no" title="statement not covered" > acc[key] = value;</span>
747
- }
748
- <span class="cstat-no" title="statement not covered" > return acc;</span>
749
- }, {}),
750
- };
751
- <span class="cstat-no" title="statement not covered" > return merged;</span>
752
- }),
753
- );
754
- }
755
- }
756
- &nbsp;
757
- /**
758
- * @description Custom implementation of TranslateParser for interpolation.
759
- * @summary Extends TranslateParser to support string formatting with parameters.
760
- */
761
- export class I18nParser extends TranslateParser {
762
- /**
763
- * @description Interpolates a translation string with parameters.
764
- * @summary Replaces placeholders in the translation string with parameter values.
765
- *
766
- * @param {string} value - The translation string to interpolate.
767
- * @param {object | string} [params={}] - The parameters to replace placeholders with.
768
- * @returns {string} - The interpolated translation string.
769
- */
770
- <span class="fstat-no" title="function not covered" > interpolate(</span>value: string, params: object | string = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span>: string {
771
- <span class="cstat-no" title="statement not covered" > return sf(value, params === Primitives.STRING ? { '0': params } : params).replace(</span>
772
- /undefined/g,
773
- '',
774
- );
775
- }
776
- }
777
- &nbsp;
778
- /**
779
- * @description Provides the internationalization (i18n) configuration for the application.
780
- * @summary Configures the translation service with a fallback language, default language, custom parser, and loader.
781
- *
782
- * @param {RootTranslateServiceConfig} [config={fallbackLang: 'en', lang: 'en'}] - The configuration for the translation service, including fallback and default languages.
783
- * @param {I18nResourceConfigType} [resources=[]] - The translation resources to be used by the loader.
784
- * @param {boolean} [versionedSuffix=false] - Whether to append a versioned suffix to resource URLs.
785
- * @returns {AngularProvider[]} - An array of providers for the translation service and loader.
786
- */
787
- export function <span class="fstat-no" title="function not covered" >provideDecafI18nConfig(</span>
788
- config: RootTranslateServiceConfig = <span class="branch-0 cbranch-no" title="branch not covered" >{ fallbackLang: 'en', lang: 'en' },</span>
789
- resources: I18nResourceConfigType = <span class="branch-0 cbranch-no" title="branch not covered" >[],</span>
790
- versionedSuffix: boolean = <span class="branch-0 cbranch-no" title="branch not covered" >false,</span>
791
- ): AngularProvider[] {
792
- <span class="cstat-no" title="statement not covered" > return [</span>
793
- provideHttpClient(),
794
- provideTranslateService({
795
- fallbackLang: config.fallbackLang,
796
- lang: config.lang,
797
- parser: provideTranslateParser(I18nParser),
798
- loader: {
799
- provide: TranslateLoader,
800
- useFactory: I18nLoaderFactory,
801
- deps: [HttpClient],
802
- },
803
- }),
804
- provideDecafI18nLoader(resources, versionedSuffix),
805
- ];
806
- }
807
- &nbsp;</pre></td></tr></table></pre>
808
-
809
- <div class='push'></div><!-- for sticky footer -->
810
- </div><!-- /wrapper -->
811
- <div class='footer quiet pad2 space-top1 center small'>
812
- Code coverage generated by
813
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
814
- at 2026-02-23T18:11:57.210Z
815
- </div>
816
- <script src="../../../prettify.js"></script>
817
- <script>
818
- window.onload = function () {
819
- prettyPrint();
820
- };
821
- </script>
822
- <script src="../../../sorter.js"></script>
823
- <script src="../../../block-navigation.js"></script>
824
- </body>
825
- </html>
826
-