@decaf-ts/for-angular 0.1.4 → 0.1.6

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 +16 -89
  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 -16
  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 -4110
  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 -4261
  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 -988
  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 -1561
  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 -676
  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 -499
  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 -1231
  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 -1663
  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 -7917
  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.6454396befef800d.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.dffa5649fffafb44.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.53f5cce977c2e28b.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.b4731255038304cd.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.8c3589a0aff521c0.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.6144bf417dec1977.js +0 -1
  339. package/www/polyfills.4c1e087fffe784e8.js +0 -1
  340. package/www/runtime.d8dcb0932f88fe3c.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,1663 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for src/lib/utils/helpers.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/utils</a> helpers.ts</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">42.06% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>53/126</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">5.68% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>5/88</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">30% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>9/30</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">44.95% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>49/109</span>
50
- </div>
51
-
52
-
53
- </div>
54
- <p class="quiet">
55
- Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
- </p>
57
- <template id="filterTemplate">
58
- <div class="quiet">
59
- Filter:
60
- <input type="search" id="fileSearch">
61
- </div>
62
- </template>
63
- </div>
64
- <div class='status-line low'></div>
65
- <pre><table class="coverage">
66
- <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
- <a name='L2'></a><a href='#L2'>2</a>
68
- <a name='L3'></a><a href='#L3'>3</a>
69
- <a name='L4'></a><a href='#L4'>4</a>
70
- <a name='L5'></a><a href='#L5'>5</a>
71
- <a name='L6'></a><a href='#L6'>6</a>
72
- <a name='L7'></a><a href='#L7'>7</a>
73
- <a name='L8'></a><a href='#L8'>8</a>
74
- <a name='L9'></a><a href='#L9'>9</a>
75
- <a name='L10'></a><a href='#L10'>10</a>
76
- <a name='L11'></a><a href='#L11'>11</a>
77
- <a name='L12'></a><a href='#L12'>12</a>
78
- <a name='L13'></a><a href='#L13'>13</a>
79
- <a name='L14'></a><a href='#L14'>14</a>
80
- <a name='L15'></a><a href='#L15'>15</a>
81
- <a name='L16'></a><a href='#L16'>16</a>
82
- <a name='L17'></a><a href='#L17'>17</a>
83
- <a name='L18'></a><a href='#L18'>18</a>
84
- <a name='L19'></a><a href='#L19'>19</a>
85
- <a name='L20'></a><a href='#L20'>20</a>
86
- <a name='L21'></a><a href='#L21'>21</a>
87
- <a name='L22'></a><a href='#L22'>22</a>
88
- <a name='L23'></a><a href='#L23'>23</a>
89
- <a name='L24'></a><a href='#L24'>24</a>
90
- <a name='L25'></a><a href='#L25'>25</a>
91
- <a name='L26'></a><a href='#L26'>26</a>
92
- <a name='L27'></a><a href='#L27'>27</a>
93
- <a name='L28'></a><a href='#L28'>28</a>
94
- <a name='L29'></a><a href='#L29'>29</a>
95
- <a name='L30'></a><a href='#L30'>30</a>
96
- <a name='L31'></a><a href='#L31'>31</a>
97
- <a name='L32'></a><a href='#L32'>32</a>
98
- <a name='L33'></a><a href='#L33'>33</a>
99
- <a name='L34'></a><a href='#L34'>34</a>
100
- <a name='L35'></a><a href='#L35'>35</a>
101
- <a name='L36'></a><a href='#L36'>36</a>
102
- <a name='L37'></a><a href='#L37'>37</a>
103
- <a name='L38'></a><a href='#L38'>38</a>
104
- <a name='L39'></a><a href='#L39'>39</a>
105
- <a name='L40'></a><a href='#L40'>40</a>
106
- <a name='L41'></a><a href='#L41'>41</a>
107
- <a name='L42'></a><a href='#L42'>42</a>
108
- <a name='L43'></a><a href='#L43'>43</a>
109
- <a name='L44'></a><a href='#L44'>44</a>
110
- <a name='L45'></a><a href='#L45'>45</a>
111
- <a name='L46'></a><a href='#L46'>46</a>
112
- <a name='L47'></a><a href='#L47'>47</a>
113
- <a name='L48'></a><a href='#L48'>48</a>
114
- <a name='L49'></a><a href='#L49'>49</a>
115
- <a name='L50'></a><a href='#L50'>50</a>
116
- <a name='L51'></a><a href='#L51'>51</a>
117
- <a name='L52'></a><a href='#L52'>52</a>
118
- <a name='L53'></a><a href='#L53'>53</a>
119
- <a name='L54'></a><a href='#L54'>54</a>
120
- <a name='L55'></a><a href='#L55'>55</a>
121
- <a name='L56'></a><a href='#L56'>56</a>
122
- <a name='L57'></a><a href='#L57'>57</a>
123
- <a name='L58'></a><a href='#L58'>58</a>
124
- <a name='L59'></a><a href='#L59'>59</a>
125
- <a name='L60'></a><a href='#L60'>60</a>
126
- <a name='L61'></a><a href='#L61'>61</a>
127
- <a name='L62'></a><a href='#L62'>62</a>
128
- <a name='L63'></a><a href='#L63'>63</a>
129
- <a name='L64'></a><a href='#L64'>64</a>
130
- <a name='L65'></a><a href='#L65'>65</a>
131
- <a name='L66'></a><a href='#L66'>66</a>
132
- <a name='L67'></a><a href='#L67'>67</a>
133
- <a name='L68'></a><a href='#L68'>68</a>
134
- <a name='L69'></a><a href='#L69'>69</a>
135
- <a name='L70'></a><a href='#L70'>70</a>
136
- <a name='L71'></a><a href='#L71'>71</a>
137
- <a name='L72'></a><a href='#L72'>72</a>
138
- <a name='L73'></a><a href='#L73'>73</a>
139
- <a name='L74'></a><a href='#L74'>74</a>
140
- <a name='L75'></a><a href='#L75'>75</a>
141
- <a name='L76'></a><a href='#L76'>76</a>
142
- <a name='L77'></a><a href='#L77'>77</a>
143
- <a name='L78'></a><a href='#L78'>78</a>
144
- <a name='L79'></a><a href='#L79'>79</a>
145
- <a name='L80'></a><a href='#L80'>80</a>
146
- <a name='L81'></a><a href='#L81'>81</a>
147
- <a name='L82'></a><a href='#L82'>82</a>
148
- <a name='L83'></a><a href='#L83'>83</a>
149
- <a name='L84'></a><a href='#L84'>84</a>
150
- <a name='L85'></a><a href='#L85'>85</a>
151
- <a name='L86'></a><a href='#L86'>86</a>
152
- <a name='L87'></a><a href='#L87'>87</a>
153
- <a name='L88'></a><a href='#L88'>88</a>
154
- <a name='L89'></a><a href='#L89'>89</a>
155
- <a name='L90'></a><a href='#L90'>90</a>
156
- <a name='L91'></a><a href='#L91'>91</a>
157
- <a name='L92'></a><a href='#L92'>92</a>
158
- <a name='L93'></a><a href='#L93'>93</a>
159
- <a name='L94'></a><a href='#L94'>94</a>
160
- <a name='L95'></a><a href='#L95'>95</a>
161
- <a name='L96'></a><a href='#L96'>96</a>
162
- <a name='L97'></a><a href='#L97'>97</a>
163
- <a name='L98'></a><a href='#L98'>98</a>
164
- <a name='L99'></a><a href='#L99'>99</a>
165
- <a name='L100'></a><a href='#L100'>100</a>
166
- <a name='L101'></a><a href='#L101'>101</a>
167
- <a name='L102'></a><a href='#L102'>102</a>
168
- <a name='L103'></a><a href='#L103'>103</a>
169
- <a name='L104'></a><a href='#L104'>104</a>
170
- <a name='L105'></a><a href='#L105'>105</a>
171
- <a name='L106'></a><a href='#L106'>106</a>
172
- <a name='L107'></a><a href='#L107'>107</a>
173
- <a name='L108'></a><a href='#L108'>108</a>
174
- <a name='L109'></a><a href='#L109'>109</a>
175
- <a name='L110'></a><a href='#L110'>110</a>
176
- <a name='L111'></a><a href='#L111'>111</a>
177
- <a name='L112'></a><a href='#L112'>112</a>
178
- <a name='L113'></a><a href='#L113'>113</a>
179
- <a name='L114'></a><a href='#L114'>114</a>
180
- <a name='L115'></a><a href='#L115'>115</a>
181
- <a name='L116'></a><a href='#L116'>116</a>
182
- <a name='L117'></a><a href='#L117'>117</a>
183
- <a name='L118'></a><a href='#L118'>118</a>
184
- <a name='L119'></a><a href='#L119'>119</a>
185
- <a name='L120'></a><a href='#L120'>120</a>
186
- <a name='L121'></a><a href='#L121'>121</a>
187
- <a name='L122'></a><a href='#L122'>122</a>
188
- <a name='L123'></a><a href='#L123'>123</a>
189
- <a name='L124'></a><a href='#L124'>124</a>
190
- <a name='L125'></a><a href='#L125'>125</a>
191
- <a name='L126'></a><a href='#L126'>126</a>
192
- <a name='L127'></a><a href='#L127'>127</a>
193
- <a name='L128'></a><a href='#L128'>128</a>
194
- <a name='L129'></a><a href='#L129'>129</a>
195
- <a name='L130'></a><a href='#L130'>130</a>
196
- <a name='L131'></a><a href='#L131'>131</a>
197
- <a name='L132'></a><a href='#L132'>132</a>
198
- <a name='L133'></a><a href='#L133'>133</a>
199
- <a name='L134'></a><a href='#L134'>134</a>
200
- <a name='L135'></a><a href='#L135'>135</a>
201
- <a name='L136'></a><a href='#L136'>136</a>
202
- <a name='L137'></a><a href='#L137'>137</a>
203
- <a name='L138'></a><a href='#L138'>138</a>
204
- <a name='L139'></a><a href='#L139'>139</a>
205
- <a name='L140'></a><a href='#L140'>140</a>
206
- <a name='L141'></a><a href='#L141'>141</a>
207
- <a name='L142'></a><a href='#L142'>142</a>
208
- <a name='L143'></a><a href='#L143'>143</a>
209
- <a name='L144'></a><a href='#L144'>144</a>
210
- <a name='L145'></a><a href='#L145'>145</a>
211
- <a name='L146'></a><a href='#L146'>146</a>
212
- <a name='L147'></a><a href='#L147'>147</a>
213
- <a name='L148'></a><a href='#L148'>148</a>
214
- <a name='L149'></a><a href='#L149'>149</a>
215
- <a name='L150'></a><a href='#L150'>150</a>
216
- <a name='L151'></a><a href='#L151'>151</a>
217
- <a name='L152'></a><a href='#L152'>152</a>
218
- <a name='L153'></a><a href='#L153'>153</a>
219
- <a name='L154'></a><a href='#L154'>154</a>
220
- <a name='L155'></a><a href='#L155'>155</a>
221
- <a name='L156'></a><a href='#L156'>156</a>
222
- <a name='L157'></a><a href='#L157'>157</a>
223
- <a name='L158'></a><a href='#L158'>158</a>
224
- <a name='L159'></a><a href='#L159'>159</a>
225
- <a name='L160'></a><a href='#L160'>160</a>
226
- <a name='L161'></a><a href='#L161'>161</a>
227
- <a name='L162'></a><a href='#L162'>162</a>
228
- <a name='L163'></a><a href='#L163'>163</a>
229
- <a name='L164'></a><a href='#L164'>164</a>
230
- <a name='L165'></a><a href='#L165'>165</a>
231
- <a name='L166'></a><a href='#L166'>166</a>
232
- <a name='L167'></a><a href='#L167'>167</a>
233
- <a name='L168'></a><a href='#L168'>168</a>
234
- <a name='L169'></a><a href='#L169'>169</a>
235
- <a name='L170'></a><a href='#L170'>170</a>
236
- <a name='L171'></a><a href='#L171'>171</a>
237
- <a name='L172'></a><a href='#L172'>172</a>
238
- <a name='L173'></a><a href='#L173'>173</a>
239
- <a name='L174'></a><a href='#L174'>174</a>
240
- <a name='L175'></a><a href='#L175'>175</a>
241
- <a name='L176'></a><a href='#L176'>176</a>
242
- <a name='L177'></a><a href='#L177'>177</a>
243
- <a name='L178'></a><a href='#L178'>178</a>
244
- <a name='L179'></a><a href='#L179'>179</a>
245
- <a name='L180'></a><a href='#L180'>180</a>
246
- <a name='L181'></a><a href='#L181'>181</a>
247
- <a name='L182'></a><a href='#L182'>182</a>
248
- <a name='L183'></a><a href='#L183'>183</a>
249
- <a name='L184'></a><a href='#L184'>184</a>
250
- <a name='L185'></a><a href='#L185'>185</a>
251
- <a name='L186'></a><a href='#L186'>186</a>
252
- <a name='L187'></a><a href='#L187'>187</a>
253
- <a name='L188'></a><a href='#L188'>188</a>
254
- <a name='L189'></a><a href='#L189'>189</a>
255
- <a name='L190'></a><a href='#L190'>190</a>
256
- <a name='L191'></a><a href='#L191'>191</a>
257
- <a name='L192'></a><a href='#L192'>192</a>
258
- <a name='L193'></a><a href='#L193'>193</a>
259
- <a name='L194'></a><a href='#L194'>194</a>
260
- <a name='L195'></a><a href='#L195'>195</a>
261
- <a name='L196'></a><a href='#L196'>196</a>
262
- <a name='L197'></a><a href='#L197'>197</a>
263
- <a name='L198'></a><a href='#L198'>198</a>
264
- <a name='L199'></a><a href='#L199'>199</a>
265
- <a name='L200'></a><a href='#L200'>200</a>
266
- <a name='L201'></a><a href='#L201'>201</a>
267
- <a name='L202'></a><a href='#L202'>202</a>
268
- <a name='L203'></a><a href='#L203'>203</a>
269
- <a name='L204'></a><a href='#L204'>204</a>
270
- <a name='L205'></a><a href='#L205'>205</a>
271
- <a name='L206'></a><a href='#L206'>206</a>
272
- <a name='L207'></a><a href='#L207'>207</a>
273
- <a name='L208'></a><a href='#L208'>208</a>
274
- <a name='L209'></a><a href='#L209'>209</a>
275
- <a name='L210'></a><a href='#L210'>210</a>
276
- <a name='L211'></a><a href='#L211'>211</a>
277
- <a name='L212'></a><a href='#L212'>212</a>
278
- <a name='L213'></a><a href='#L213'>213</a>
279
- <a name='L214'></a><a href='#L214'>214</a>
280
- <a name='L215'></a><a href='#L215'>215</a>
281
- <a name='L216'></a><a href='#L216'>216</a>
282
- <a name='L217'></a><a href='#L217'>217</a>
283
- <a name='L218'></a><a href='#L218'>218</a>
284
- <a name='L219'></a><a href='#L219'>219</a>
285
- <a name='L220'></a><a href='#L220'>220</a>
286
- <a name='L221'></a><a href='#L221'>221</a>
287
- <a name='L222'></a><a href='#L222'>222</a>
288
- <a name='L223'></a><a href='#L223'>223</a>
289
- <a name='L224'></a><a href='#L224'>224</a>
290
- <a name='L225'></a><a href='#L225'>225</a>
291
- <a name='L226'></a><a href='#L226'>226</a>
292
- <a name='L227'></a><a href='#L227'>227</a>
293
- <a name='L228'></a><a href='#L228'>228</a>
294
- <a name='L229'></a><a href='#L229'>229</a>
295
- <a name='L230'></a><a href='#L230'>230</a>
296
- <a name='L231'></a><a href='#L231'>231</a>
297
- <a name='L232'></a><a href='#L232'>232</a>
298
- <a name='L233'></a><a href='#L233'>233</a>
299
- <a name='L234'></a><a href='#L234'>234</a>
300
- <a name='L235'></a><a href='#L235'>235</a>
301
- <a name='L236'></a><a href='#L236'>236</a>
302
- <a name='L237'></a><a href='#L237'>237</a>
303
- <a name='L238'></a><a href='#L238'>238</a>
304
- <a name='L239'></a><a href='#L239'>239</a>
305
- <a name='L240'></a><a href='#L240'>240</a>
306
- <a name='L241'></a><a href='#L241'>241</a>
307
- <a name='L242'></a><a href='#L242'>242</a>
308
- <a name='L243'></a><a href='#L243'>243</a>
309
- <a name='L244'></a><a href='#L244'>244</a>
310
- <a name='L245'></a><a href='#L245'>245</a>
311
- <a name='L246'></a><a href='#L246'>246</a>
312
- <a name='L247'></a><a href='#L247'>247</a>
313
- <a name='L248'></a><a href='#L248'>248</a>
314
- <a name='L249'></a><a href='#L249'>249</a>
315
- <a name='L250'></a><a href='#L250'>250</a>
316
- <a name='L251'></a><a href='#L251'>251</a>
317
- <a name='L252'></a><a href='#L252'>252</a>
318
- <a name='L253'></a><a href='#L253'>253</a>
319
- <a name='L254'></a><a href='#L254'>254</a>
320
- <a name='L255'></a><a href='#L255'>255</a>
321
- <a name='L256'></a><a href='#L256'>256</a>
322
- <a name='L257'></a><a href='#L257'>257</a>
323
- <a name='L258'></a><a href='#L258'>258</a>
324
- <a name='L259'></a><a href='#L259'>259</a>
325
- <a name='L260'></a><a href='#L260'>260</a>
326
- <a name='L261'></a><a href='#L261'>261</a>
327
- <a name='L262'></a><a href='#L262'>262</a>
328
- <a name='L263'></a><a href='#L263'>263</a>
329
- <a name='L264'></a><a href='#L264'>264</a>
330
- <a name='L265'></a><a href='#L265'>265</a>
331
- <a name='L266'></a><a href='#L266'>266</a>
332
- <a name='L267'></a><a href='#L267'>267</a>
333
- <a name='L268'></a><a href='#L268'>268</a>
334
- <a name='L269'></a><a href='#L269'>269</a>
335
- <a name='L270'></a><a href='#L270'>270</a>
336
- <a name='L271'></a><a href='#L271'>271</a>
337
- <a name='L272'></a><a href='#L272'>272</a>
338
- <a name='L273'></a><a href='#L273'>273</a>
339
- <a name='L274'></a><a href='#L274'>274</a>
340
- <a name='L275'></a><a href='#L275'>275</a>
341
- <a name='L276'></a><a href='#L276'>276</a>
342
- <a name='L277'></a><a href='#L277'>277</a>
343
- <a name='L278'></a><a href='#L278'>278</a>
344
- <a name='L279'></a><a href='#L279'>279</a>
345
- <a name='L280'></a><a href='#L280'>280</a>
346
- <a name='L281'></a><a href='#L281'>281</a>
347
- <a name='L282'></a><a href='#L282'>282</a>
348
- <a name='L283'></a><a href='#L283'>283</a>
349
- <a name='L284'></a><a href='#L284'>284</a>
350
- <a name='L285'></a><a href='#L285'>285</a>
351
- <a name='L286'></a><a href='#L286'>286</a>
352
- <a name='L287'></a><a href='#L287'>287</a>
353
- <a name='L288'></a><a href='#L288'>288</a>
354
- <a name='L289'></a><a href='#L289'>289</a>
355
- <a name='L290'></a><a href='#L290'>290</a>
356
- <a name='L291'></a><a href='#L291'>291</a>
357
- <a name='L292'></a><a href='#L292'>292</a>
358
- <a name='L293'></a><a href='#L293'>293</a>
359
- <a name='L294'></a><a href='#L294'>294</a>
360
- <a name='L295'></a><a href='#L295'>295</a>
361
- <a name='L296'></a><a href='#L296'>296</a>
362
- <a name='L297'></a><a href='#L297'>297</a>
363
- <a name='L298'></a><a href='#L298'>298</a>
364
- <a name='L299'></a><a href='#L299'>299</a>
365
- <a name='L300'></a><a href='#L300'>300</a>
366
- <a name='L301'></a><a href='#L301'>301</a>
367
- <a name='L302'></a><a href='#L302'>302</a>
368
- <a name='L303'></a><a href='#L303'>303</a>
369
- <a name='L304'></a><a href='#L304'>304</a>
370
- <a name='L305'></a><a href='#L305'>305</a>
371
- <a name='L306'></a><a href='#L306'>306</a>
372
- <a name='L307'></a><a href='#L307'>307</a>
373
- <a name='L308'></a><a href='#L308'>308</a>
374
- <a name='L309'></a><a href='#L309'>309</a>
375
- <a name='L310'></a><a href='#L310'>310</a>
376
- <a name='L311'></a><a href='#L311'>311</a>
377
- <a name='L312'></a><a href='#L312'>312</a>
378
- <a name='L313'></a><a href='#L313'>313</a>
379
- <a name='L314'></a><a href='#L314'>314</a>
380
- <a name='L315'></a><a href='#L315'>315</a>
381
- <a name='L316'></a><a href='#L316'>316</a>
382
- <a name='L317'></a><a href='#L317'>317</a>
383
- <a name='L318'></a><a href='#L318'>318</a>
384
- <a name='L319'></a><a href='#L319'>319</a>
385
- <a name='L320'></a><a href='#L320'>320</a>
386
- <a name='L321'></a><a href='#L321'>321</a>
387
- <a name='L322'></a><a href='#L322'>322</a>
388
- <a name='L323'></a><a href='#L323'>323</a>
389
- <a name='L324'></a><a href='#L324'>324</a>
390
- <a name='L325'></a><a href='#L325'>325</a>
391
- <a name='L326'></a><a href='#L326'>326</a>
392
- <a name='L327'></a><a href='#L327'>327</a>
393
- <a name='L328'></a><a href='#L328'>328</a>
394
- <a name='L329'></a><a href='#L329'>329</a>
395
- <a name='L330'></a><a href='#L330'>330</a>
396
- <a name='L331'></a><a href='#L331'>331</a>
397
- <a name='L332'></a><a href='#L332'>332</a>
398
- <a name='L333'></a><a href='#L333'>333</a>
399
- <a name='L334'></a><a href='#L334'>334</a>
400
- <a name='L335'></a><a href='#L335'>335</a>
401
- <a name='L336'></a><a href='#L336'>336</a>
402
- <a name='L337'></a><a href='#L337'>337</a>
403
- <a name='L338'></a><a href='#L338'>338</a>
404
- <a name='L339'></a><a href='#L339'>339</a>
405
- <a name='L340'></a><a href='#L340'>340</a>
406
- <a name='L341'></a><a href='#L341'>341</a>
407
- <a name='L342'></a><a href='#L342'>342</a>
408
- <a name='L343'></a><a href='#L343'>343</a>
409
- <a name='L344'></a><a href='#L344'>344</a>
410
- <a name='L345'></a><a href='#L345'>345</a>
411
- <a name='L346'></a><a href='#L346'>346</a>
412
- <a name='L347'></a><a href='#L347'>347</a>
413
- <a name='L348'></a><a href='#L348'>348</a>
414
- <a name='L349'></a><a href='#L349'>349</a>
415
- <a name='L350'></a><a href='#L350'>350</a>
416
- <a name='L351'></a><a href='#L351'>351</a>
417
- <a name='L352'></a><a href='#L352'>352</a>
418
- <a name='L353'></a><a href='#L353'>353</a>
419
- <a name='L354'></a><a href='#L354'>354</a>
420
- <a name='L355'></a><a href='#L355'>355</a>
421
- <a name='L356'></a><a href='#L356'>356</a>
422
- <a name='L357'></a><a href='#L357'>357</a>
423
- <a name='L358'></a><a href='#L358'>358</a>
424
- <a name='L359'></a><a href='#L359'>359</a>
425
- <a name='L360'></a><a href='#L360'>360</a>
426
- <a name='L361'></a><a href='#L361'>361</a>
427
- <a name='L362'></a><a href='#L362'>362</a>
428
- <a name='L363'></a><a href='#L363'>363</a>
429
- <a name='L364'></a><a href='#L364'>364</a>
430
- <a name='L365'></a><a href='#L365'>365</a>
431
- <a name='L366'></a><a href='#L366'>366</a>
432
- <a name='L367'></a><a href='#L367'>367</a>
433
- <a name='L368'></a><a href='#L368'>368</a>
434
- <a name='L369'></a><a href='#L369'>369</a>
435
- <a name='L370'></a><a href='#L370'>370</a>
436
- <a name='L371'></a><a href='#L371'>371</a>
437
- <a name='L372'></a><a href='#L372'>372</a>
438
- <a name='L373'></a><a href='#L373'>373</a>
439
- <a name='L374'></a><a href='#L374'>374</a>
440
- <a name='L375'></a><a href='#L375'>375</a>
441
- <a name='L376'></a><a href='#L376'>376</a>
442
- <a name='L377'></a><a href='#L377'>377</a>
443
- <a name='L378'></a><a href='#L378'>378</a>
444
- <a name='L379'></a><a href='#L379'>379</a>
445
- <a name='L380'></a><a href='#L380'>380</a>
446
- <a name='L381'></a><a href='#L381'>381</a>
447
- <a name='L382'></a><a href='#L382'>382</a>
448
- <a name='L383'></a><a href='#L383'>383</a>
449
- <a name='L384'></a><a href='#L384'>384</a>
450
- <a name='L385'></a><a href='#L385'>385</a>
451
- <a name='L386'></a><a href='#L386'>386</a>
452
- <a name='L387'></a><a href='#L387'>387</a>
453
- <a name='L388'></a><a href='#L388'>388</a>
454
- <a name='L389'></a><a href='#L389'>389</a>
455
- <a name='L390'></a><a href='#L390'>390</a>
456
- <a name='L391'></a><a href='#L391'>391</a>
457
- <a name='L392'></a><a href='#L392'>392</a>
458
- <a name='L393'></a><a href='#L393'>393</a>
459
- <a name='L394'></a><a href='#L394'>394</a>
460
- <a name='L395'></a><a href='#L395'>395</a>
461
- <a name='L396'></a><a href='#L396'>396</a>
462
- <a name='L397'></a><a href='#L397'>397</a>
463
- <a name='L398'></a><a href='#L398'>398</a>
464
- <a name='L399'></a><a href='#L399'>399</a>
465
- <a name='L400'></a><a href='#L400'>400</a>
466
- <a name='L401'></a><a href='#L401'>401</a>
467
- <a name='L402'></a><a href='#L402'>402</a>
468
- <a name='L403'></a><a href='#L403'>403</a>
469
- <a name='L404'></a><a href='#L404'>404</a>
470
- <a name='L405'></a><a href='#L405'>405</a>
471
- <a name='L406'></a><a href='#L406'>406</a>
472
- <a name='L407'></a><a href='#L407'>407</a>
473
- <a name='L408'></a><a href='#L408'>408</a>
474
- <a name='L409'></a><a href='#L409'>409</a>
475
- <a name='L410'></a><a href='#L410'>410</a>
476
- <a name='L411'></a><a href='#L411'>411</a>
477
- <a name='L412'></a><a href='#L412'>412</a>
478
- <a name='L413'></a><a href='#L413'>413</a>
479
- <a name='L414'></a><a href='#L414'>414</a>
480
- <a name='L415'></a><a href='#L415'>415</a>
481
- <a name='L416'></a><a href='#L416'>416</a>
482
- <a name='L417'></a><a href='#L417'>417</a>
483
- <a name='L418'></a><a href='#L418'>418</a>
484
- <a name='L419'></a><a href='#L419'>419</a>
485
- <a name='L420'></a><a href='#L420'>420</a>
486
- <a name='L421'></a><a href='#L421'>421</a>
487
- <a name='L422'></a><a href='#L422'>422</a>
488
- <a name='L423'></a><a href='#L423'>423</a>
489
- <a name='L424'></a><a href='#L424'>424</a>
490
- <a name='L425'></a><a href='#L425'>425</a>
491
- <a name='L426'></a><a href='#L426'>426</a>
492
- <a name='L427'></a><a href='#L427'>427</a>
493
- <a name='L428'></a><a href='#L428'>428</a>
494
- <a name='L429'></a><a href='#L429'>429</a>
495
- <a name='L430'></a><a href='#L430'>430</a>
496
- <a name='L431'></a><a href='#L431'>431</a>
497
- <a name='L432'></a><a href='#L432'>432</a>
498
- <a name='L433'></a><a href='#L433'>433</a>
499
- <a name='L434'></a><a href='#L434'>434</a>
500
- <a name='L435'></a><a href='#L435'>435</a>
501
- <a name='L436'></a><a href='#L436'>436</a>
502
- <a name='L437'></a><a href='#L437'>437</a>
503
- <a name='L438'></a><a href='#L438'>438</a>
504
- <a name='L439'></a><a href='#L439'>439</a>
505
- <a name='L440'></a><a href='#L440'>440</a>
506
- <a name='L441'></a><a href='#L441'>441</a>
507
- <a name='L442'></a><a href='#L442'>442</a>
508
- <a name='L443'></a><a href='#L443'>443</a>
509
- <a name='L444'></a><a href='#L444'>444</a>
510
- <a name='L445'></a><a href='#L445'>445</a>
511
- <a name='L446'></a><a href='#L446'>446</a>
512
- <a name='L447'></a><a href='#L447'>447</a>
513
- <a name='L448'></a><a href='#L448'>448</a>
514
- <a name='L449'></a><a href='#L449'>449</a>
515
- <a name='L450'></a><a href='#L450'>450</a>
516
- <a name='L451'></a><a href='#L451'>451</a>
517
- <a name='L452'></a><a href='#L452'>452</a>
518
- <a name='L453'></a><a href='#L453'>453</a>
519
- <a name='L454'></a><a href='#L454'>454</a>
520
- <a name='L455'></a><a href='#L455'>455</a>
521
- <a name='L456'></a><a href='#L456'>456</a>
522
- <a name='L457'></a><a href='#L457'>457</a>
523
- <a name='L458'></a><a href='#L458'>458</a>
524
- <a name='L459'></a><a href='#L459'>459</a>
525
- <a name='L460'></a><a href='#L460'>460</a>
526
- <a name='L461'></a><a href='#L461'>461</a>
527
- <a name='L462'></a><a href='#L462'>462</a>
528
- <a name='L463'></a><a href='#L463'>463</a>
529
- <a name='L464'></a><a href='#L464'>464</a>
530
- <a name='L465'></a><a href='#L465'>465</a>
531
- <a name='L466'></a><a href='#L466'>466</a>
532
- <a name='L467'></a><a href='#L467'>467</a>
533
- <a name='L468'></a><a href='#L468'>468</a>
534
- <a name='L469'></a><a href='#L469'>469</a>
535
- <a name='L470'></a><a href='#L470'>470</a>
536
- <a name='L471'></a><a href='#L471'>471</a>
537
- <a name='L472'></a><a href='#L472'>472</a>
538
- <a name='L473'></a><a href='#L473'>473</a>
539
- <a name='L474'></a><a href='#L474'>474</a>
540
- <a name='L475'></a><a href='#L475'>475</a>
541
- <a name='L476'></a><a href='#L476'>476</a>
542
- <a name='L477'></a><a href='#L477'>477</a>
543
- <a name='L478'></a><a href='#L478'>478</a>
544
- <a name='L479'></a><a href='#L479'>479</a>
545
- <a name='L480'></a><a href='#L480'>480</a>
546
- <a name='L481'></a><a href='#L481'>481</a>
547
- <a name='L482'></a><a href='#L482'>482</a>
548
- <a name='L483'></a><a href='#L483'>483</a>
549
- <a name='L484'></a><a href='#L484'>484</a>
550
- <a name='L485'></a><a href='#L485'>485</a>
551
- <a name='L486'></a><a href='#L486'>486</a>
552
- <a name='L487'></a><a href='#L487'>487</a>
553
- <a name='L488'></a><a href='#L488'>488</a>
554
- <a name='L489'></a><a href='#L489'>489</a>
555
- <a name='L490'></a><a href='#L490'>490</a>
556
- <a name='L491'></a><a href='#L491'>491</a>
557
- <a name='L492'></a><a href='#L492'>492</a>
558
- <a name='L493'></a><a href='#L493'>493</a>
559
- <a name='L494'></a><a href='#L494'>494</a>
560
- <a name='L495'></a><a href='#L495'>495</a>
561
- <a name='L496'></a><a href='#L496'>496</a>
562
- <a name='L497'></a><a href='#L497'>497</a>
563
- <a name='L498'></a><a href='#L498'>498</a>
564
- <a name='L499'></a><a href='#L499'>499</a>
565
- <a name='L500'></a><a href='#L500'>500</a>
566
- <a name='L501'></a><a href='#L501'>501</a>
567
- <a name='L502'></a><a href='#L502'>502</a>
568
- <a name='L503'></a><a href='#L503'>503</a>
569
- <a name='L504'></a><a href='#L504'>504</a>
570
- <a name='L505'></a><a href='#L505'>505</a>
571
- <a name='L506'></a><a href='#L506'>506</a>
572
- <a name='L507'></a><a href='#L507'>507</a>
573
- <a name='L508'></a><a href='#L508'>508</a>
574
- <a name='L509'></a><a href='#L509'>509</a>
575
- <a name='L510'></a><a href='#L510'>510</a>
576
- <a name='L511'></a><a href='#L511'>511</a>
577
- <a name='L512'></a><a href='#L512'>512</a>
578
- <a name='L513'></a><a href='#L513'>513</a>
579
- <a name='L514'></a><a href='#L514'>514</a>
580
- <a name='L515'></a><a href='#L515'>515</a>
581
- <a name='L516'></a><a href='#L516'>516</a>
582
- <a name='L517'></a><a href='#L517'>517</a>
583
- <a name='L518'></a><a href='#L518'>518</a>
584
- <a name='L519'></a><a href='#L519'>519</a>
585
- <a name='L520'></a><a href='#L520'>520</a>
586
- <a name='L521'></a><a href='#L521'>521</a>
587
- <a name='L522'></a><a href='#L522'>522</a>
588
- <a name='L523'></a><a href='#L523'>523</a>
589
- <a name='L524'></a><a href='#L524'>524</a>
590
- <a name='L525'></a><a href='#L525'>525</a>
591
- <a name='L526'></a><a href='#L526'>526</a>
592
- <a name='L527'></a><a href='#L527'>527</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
593
- <span class="cline-any cline-neutral">&nbsp;</span>
594
- <span class="cline-any cline-neutral">&nbsp;</span>
595
- <span class="cline-any cline-neutral">&nbsp;</span>
596
- <span class="cline-any cline-neutral">&nbsp;</span>
597
- <span class="cline-any cline-neutral">&nbsp;</span>
598
- <span class="cline-any cline-neutral">&nbsp;</span>
599
- <span class="cline-any cline-neutral">&nbsp;</span>
600
- <span class="cline-any cline-neutral">&nbsp;</span>
601
- <span class="cline-any cline-neutral">&nbsp;</span>
602
- <span class="cline-any cline-neutral">&nbsp;</span>
603
- <span class="cline-any cline-neutral">&nbsp;</span>
604
- <span class="cline-any cline-yes">12x</span>
605
- <span class="cline-any cline-yes">12x</span>
606
- <span class="cline-any cline-yes">12x</span>
607
- <span class="cline-any cline-yes">12x</span>
608
- <span class="cline-any cline-neutral">&nbsp;</span>
609
- <span class="cline-any cline-neutral">&nbsp;</span>
610
- <span class="cline-any cline-neutral">&nbsp;</span>
611
- <span class="cline-any cline-neutral">&nbsp;</span>
612
- <span class="cline-any cline-neutral">&nbsp;</span>
613
- <span class="cline-any cline-neutral">&nbsp;</span>
614
- <span class="cline-any cline-neutral">&nbsp;</span>
615
- <span class="cline-any cline-neutral">&nbsp;</span>
616
- <span class="cline-any cline-neutral">&nbsp;</span>
617
- <span class="cline-any cline-neutral">&nbsp;</span>
618
- <span class="cline-any cline-neutral">&nbsp;</span>
619
- <span class="cline-any cline-neutral">&nbsp;</span>
620
- <span class="cline-any cline-neutral">&nbsp;</span>
621
- <span class="cline-any cline-neutral">&nbsp;</span>
622
- <span class="cline-any cline-neutral">&nbsp;</span>
623
- <span class="cline-any cline-neutral">&nbsp;</span>
624
- <span class="cline-any cline-neutral">&nbsp;</span>
625
- <span class="cline-any cline-yes">12x</span>
626
- <span class="cline-any cline-no">&nbsp;</span>
627
- <span class="cline-any cline-no">&nbsp;</span>
628
- <span class="cline-any cline-neutral">&nbsp;</span>
629
- <span class="cline-any cline-neutral">&nbsp;</span>
630
- <span class="cline-any cline-neutral">&nbsp;</span>
631
- <span class="cline-any cline-neutral">&nbsp;</span>
632
- <span class="cline-any cline-neutral">&nbsp;</span>
633
- <span class="cline-any cline-neutral">&nbsp;</span>
634
- <span class="cline-any cline-neutral">&nbsp;</span>
635
- <span class="cline-any cline-neutral">&nbsp;</span>
636
- <span class="cline-any cline-neutral">&nbsp;</span>
637
- <span class="cline-any cline-neutral">&nbsp;</span>
638
- <span class="cline-any cline-neutral">&nbsp;</span>
639
- <span class="cline-any cline-neutral">&nbsp;</span>
640
- <span class="cline-any cline-neutral">&nbsp;</span>
641
- <span class="cline-any cline-neutral">&nbsp;</span>
642
- <span class="cline-any cline-neutral">&nbsp;</span>
643
- <span class="cline-any cline-yes">12x</span>
644
- <span class="cline-any cline-no">&nbsp;</span>
645
- <span class="cline-any cline-no">&nbsp;</span>
646
- <span class="cline-any cline-no">&nbsp;</span>
647
- <span class="cline-any cline-no">&nbsp;</span>
648
- <span class="cline-any cline-no">&nbsp;</span>
649
- <span class="cline-any cline-no">&nbsp;</span>
650
- <span class="cline-any cline-no">&nbsp;</span>
651
- <span class="cline-any cline-neutral">&nbsp;</span>
652
- <span class="cline-any cline-no">&nbsp;</span>
653
- <span class="cline-any cline-neutral">&nbsp;</span>
654
- <span class="cline-any cline-neutral">&nbsp;</span>
655
- <span class="cline-any cline-neutral">&nbsp;</span>
656
- <span class="cline-any cline-neutral">&nbsp;</span>
657
- <span class="cline-any cline-neutral">&nbsp;</span>
658
- <span class="cline-any cline-neutral">&nbsp;</span>
659
- <span class="cline-any cline-neutral">&nbsp;</span>
660
- <span class="cline-any cline-neutral">&nbsp;</span>
661
- <span class="cline-any cline-neutral">&nbsp;</span>
662
- <span class="cline-any cline-neutral">&nbsp;</span>
663
- <span class="cline-any cline-neutral">&nbsp;</span>
664
- <span class="cline-any cline-neutral">&nbsp;</span>
665
- <span class="cline-any cline-neutral">&nbsp;</span>
666
- <span class="cline-any cline-neutral">&nbsp;</span>
667
- <span class="cline-any cline-neutral">&nbsp;</span>
668
- <span class="cline-any cline-neutral">&nbsp;</span>
669
- <span class="cline-any cline-yes">12x</span>
670
- <span class="cline-any cline-no">&nbsp;</span>
671
- <span class="cline-any cline-neutral">&nbsp;</span>
672
- <span class="cline-any cline-neutral">&nbsp;</span>
673
- <span class="cline-any cline-neutral">&nbsp;</span>
674
- <span class="cline-any cline-neutral">&nbsp;</span>
675
- <span class="cline-any cline-neutral">&nbsp;</span>
676
- <span class="cline-any cline-neutral">&nbsp;</span>
677
- <span class="cline-any cline-neutral">&nbsp;</span>
678
- <span class="cline-any cline-neutral">&nbsp;</span>
679
- <span class="cline-any cline-no">&nbsp;</span>
680
- <span class="cline-any cline-neutral">&nbsp;</span>
681
- <span class="cline-any cline-neutral">&nbsp;</span>
682
- <span class="cline-any cline-neutral">&nbsp;</span>
683
- <span class="cline-any cline-neutral">&nbsp;</span>
684
- <span class="cline-any cline-neutral">&nbsp;</span>
685
- <span class="cline-any cline-neutral">&nbsp;</span>
686
- <span class="cline-any cline-neutral">&nbsp;</span>
687
- <span class="cline-any cline-neutral">&nbsp;</span>
688
- <span class="cline-any cline-neutral">&nbsp;</span>
689
- <span class="cline-any cline-neutral">&nbsp;</span>
690
- <span class="cline-any cline-neutral">&nbsp;</span>
691
- <span class="cline-any cline-neutral">&nbsp;</span>
692
- <span class="cline-any cline-neutral">&nbsp;</span>
693
- <span class="cline-any cline-neutral">&nbsp;</span>
694
- <span class="cline-any cline-yes">12x</span>
695
- <span class="cline-any cline-no">&nbsp;</span>
696
- <span class="cline-any cline-no">&nbsp;</span>
697
- <span class="cline-any cline-neutral">&nbsp;</span>
698
- <span class="cline-any cline-neutral">&nbsp;</span>
699
- <span class="cline-any cline-neutral">&nbsp;</span>
700
- <span class="cline-any cline-neutral">&nbsp;</span>
701
- <span class="cline-any cline-neutral">&nbsp;</span>
702
- <span class="cline-any cline-neutral">&nbsp;</span>
703
- <span class="cline-any cline-neutral">&nbsp;</span>
704
- <span class="cline-any cline-neutral">&nbsp;</span>
705
- <span class="cline-any cline-neutral">&nbsp;</span>
706
- <span class="cline-any cline-neutral">&nbsp;</span>
707
- <span class="cline-any cline-neutral">&nbsp;</span>
708
- <span class="cline-any cline-neutral">&nbsp;</span>
709
- <span class="cline-any cline-neutral">&nbsp;</span>
710
- <span class="cline-any cline-yes">12x</span>
711
- <span class="cline-any cline-yes">139x</span>
712
- <span class="cline-any cline-neutral">&nbsp;</span>
713
- <span class="cline-any cline-neutral">&nbsp;</span>
714
- <span class="cline-any cline-neutral">&nbsp;</span>
715
- <span class="cline-any cline-neutral">&nbsp;</span>
716
- <span class="cline-any cline-neutral">&nbsp;</span>
717
- <span class="cline-any cline-neutral">&nbsp;</span>
718
- <span class="cline-any cline-neutral">&nbsp;</span>
719
- <span class="cline-any cline-neutral">&nbsp;</span>
720
- <span class="cline-any cline-neutral">&nbsp;</span>
721
- <span class="cline-any cline-neutral">&nbsp;</span>
722
- <span class="cline-any cline-neutral">&nbsp;</span>
723
- <span class="cline-any cline-neutral">&nbsp;</span>
724
- <span class="cline-any cline-neutral">&nbsp;</span>
725
- <span class="cline-any cline-neutral">&nbsp;</span>
726
- <span class="cline-any cline-neutral">&nbsp;</span>
727
- <span class="cline-any cline-yes">12x</span>
728
- <span class="cline-any cline-yes">141x</span>
729
- <span class="cline-any cline-neutral">&nbsp;</span>
730
- <span class="cline-any cline-neutral">&nbsp;</span>
731
- <span class="cline-any cline-neutral">&nbsp;</span>
732
- <span class="cline-any cline-neutral">&nbsp;</span>
733
- <span class="cline-any cline-neutral">&nbsp;</span>
734
- <span class="cline-any cline-neutral">&nbsp;</span>
735
- <span class="cline-any cline-neutral">&nbsp;</span>
736
- <span class="cline-any cline-neutral">&nbsp;</span>
737
- <span class="cline-any cline-neutral">&nbsp;</span>
738
- <span class="cline-any cline-neutral">&nbsp;</span>
739
- <span class="cline-any cline-neutral">&nbsp;</span>
740
- <span class="cline-any cline-neutral">&nbsp;</span>
741
- <span class="cline-any cline-neutral">&nbsp;</span>
742
- <span class="cline-any cline-neutral">&nbsp;</span>
743
- <span class="cline-any cline-neutral">&nbsp;</span>
744
- <span class="cline-any cline-neutral">&nbsp;</span>
745
- <span class="cline-any cline-yes">12x</span>
746
- <span class="cline-any cline-yes">11x</span>
747
- <span class="cline-any cline-neutral">&nbsp;</span>
748
- <span class="cline-any cline-neutral">&nbsp;</span>
749
- <span class="cline-any cline-neutral">&nbsp;</span>
750
- <span class="cline-any cline-neutral">&nbsp;</span>
751
- <span class="cline-any cline-neutral">&nbsp;</span>
752
- <span class="cline-any cline-neutral">&nbsp;</span>
753
- <span class="cline-any cline-neutral">&nbsp;</span>
754
- <span class="cline-any cline-neutral">&nbsp;</span>
755
- <span class="cline-any cline-neutral">&nbsp;</span>
756
- <span class="cline-any cline-neutral">&nbsp;</span>
757
- <span class="cline-any cline-neutral">&nbsp;</span>
758
- <span class="cline-any cline-neutral">&nbsp;</span>
759
- <span class="cline-any cline-neutral">&nbsp;</span>
760
- <span class="cline-any cline-neutral">&nbsp;</span>
761
- <span class="cline-any cline-yes">12x</span>
762
- <span class="cline-any cline-yes">229x</span>
763
- <span class="cline-any cline-neutral">&nbsp;</span>
764
- <span class="cline-any cline-neutral">&nbsp;</span>
765
- <span class="cline-any cline-neutral">&nbsp;</span>
766
- <span class="cline-any cline-neutral">&nbsp;</span>
767
- <span class="cline-any cline-neutral">&nbsp;</span>
768
- <span class="cline-any cline-neutral">&nbsp;</span>
769
- <span class="cline-any cline-neutral">&nbsp;</span>
770
- <span class="cline-any cline-neutral">&nbsp;</span>
771
- <span class="cline-any cline-neutral">&nbsp;</span>
772
- <span class="cline-any cline-neutral">&nbsp;</span>
773
- <span class="cline-any cline-neutral">&nbsp;</span>
774
- <span class="cline-any cline-neutral">&nbsp;</span>
775
- <span class="cline-any cline-neutral">&nbsp;</span>
776
- <span class="cline-any cline-yes">12x</span>
777
- <span class="cline-any cline-yes">2x</span>
778
- <span class="cline-any cline-neutral">&nbsp;</span>
779
- <span class="cline-any cline-neutral">&nbsp;</span>
780
- <span class="cline-any cline-neutral">&nbsp;</span>
781
- <span class="cline-any cline-neutral">&nbsp;</span>
782
- <span class="cline-any cline-neutral">&nbsp;</span>
783
- <span class="cline-any cline-neutral">&nbsp;</span>
784
- <span class="cline-any cline-neutral">&nbsp;</span>
785
- <span class="cline-any cline-neutral">&nbsp;</span>
786
- <span class="cline-any cline-neutral">&nbsp;</span>
787
- <span class="cline-any cline-neutral">&nbsp;</span>
788
- <span class="cline-any cline-neutral">&nbsp;</span>
789
- <span class="cline-any cline-neutral">&nbsp;</span>
790
- <span class="cline-any cline-neutral">&nbsp;</span>
791
- <span class="cline-any cline-neutral">&nbsp;</span>
792
- <span class="cline-any cline-yes">12x</span>
793
- <span class="cline-any cline-no">&nbsp;</span>
794
- <span class="cline-any cline-neutral">&nbsp;</span>
795
- <span class="cline-any cline-neutral">&nbsp;</span>
796
- <span class="cline-any cline-neutral">&nbsp;</span>
797
- <span class="cline-any cline-neutral">&nbsp;</span>
798
- <span class="cline-any cline-neutral">&nbsp;</span>
799
- <span class="cline-any cline-neutral">&nbsp;</span>
800
- <span class="cline-any cline-neutral">&nbsp;</span>
801
- <span class="cline-any cline-neutral">&nbsp;</span>
802
- <span class="cline-any cline-neutral">&nbsp;</span>
803
- <span class="cline-any cline-neutral">&nbsp;</span>
804
- <span class="cline-any cline-neutral">&nbsp;</span>
805
- <span class="cline-any cline-neutral">&nbsp;</span>
806
- <span class="cline-any cline-neutral">&nbsp;</span>
807
- <span class="cline-any cline-neutral">&nbsp;</span>
808
- <span class="cline-any cline-neutral">&nbsp;</span>
809
- <span class="cline-any cline-neutral">&nbsp;</span>
810
- <span class="cline-any cline-neutral">&nbsp;</span>
811
- <span class="cline-any cline-neutral">&nbsp;</span>
812
- <span class="cline-any cline-yes">12x</span>
813
- <span class="cline-any cline-yes">32x</span>
814
- <span class="cline-any cline-no">&nbsp;</span>
815
- <span class="cline-any cline-neutral">&nbsp;</span>
816
- <span class="cline-any cline-yes">32x</span>
817
- <span class="cline-any cline-neutral">&nbsp;</span>
818
- <span class="cline-any cline-yes">32x</span>
819
- <span class="cline-any cline-neutral">&nbsp;</span>
820
- <span class="cline-any cline-yes">32x</span>
821
- <span class="cline-any cline-neutral">&nbsp;</span>
822
- <span class="cline-any cline-neutral">&nbsp;</span>
823
- <span class="cline-any cline-yes">89x</span>
824
- <span class="cline-any cline-yes">89x</span>
825
- <span class="cline-any cline-neutral">&nbsp;</span>
826
- <span class="cline-any cline-neutral">&nbsp;</span>
827
- <span class="cline-any cline-neutral">&nbsp;</span>
828
- <span class="cline-any cline-yes">32x</span>
829
- <span class="cline-any cline-neutral">&nbsp;</span>
830
- <span class="cline-any cline-yes">25x</span>
831
- <span class="cline-any cline-yes">25x</span>
832
- <span class="cline-any cline-yes">25x</span>
833
- <span class="cline-any cline-yes">25x</span>
834
- <span class="cline-any cline-neutral">&nbsp;</span>
835
- <span class="cline-any cline-neutral">&nbsp;</span>
836
- <span class="cline-any cline-neutral">&nbsp;</span>
837
- <span class="cline-any cline-neutral">&nbsp;</span>
838
- <span class="cline-any cline-neutral">&nbsp;</span>
839
- <span class="cline-any cline-neutral">&nbsp;</span>
840
- <span class="cline-any cline-neutral">&nbsp;</span>
841
- <span class="cline-any cline-neutral">&nbsp;</span>
842
- <span class="cline-any cline-neutral">&nbsp;</span>
843
- <span class="cline-any cline-neutral">&nbsp;</span>
844
- <span class="cline-any cline-neutral">&nbsp;</span>
845
- <span class="cline-any cline-neutral">&nbsp;</span>
846
- <span class="cline-any cline-neutral">&nbsp;</span>
847
- <span class="cline-any cline-yes">12x</span>
848
- <span class="cline-any cline-no">&nbsp;</span>
849
- <span class="cline-any cline-no">&nbsp;</span>
850
- <span class="cline-any cline-neutral">&nbsp;</span>
851
- <span class="cline-any cline-neutral">&nbsp;</span>
852
- <span class="cline-any cline-neutral">&nbsp;</span>
853
- <span class="cline-any cline-neutral">&nbsp;</span>
854
- <span class="cline-any cline-neutral">&nbsp;</span>
855
- <span class="cline-any cline-neutral">&nbsp;</span>
856
- <span class="cline-any cline-neutral">&nbsp;</span>
857
- <span class="cline-any cline-neutral">&nbsp;</span>
858
- <span class="cline-any cline-neutral">&nbsp;</span>
859
- <span class="cline-any cline-neutral">&nbsp;</span>
860
- <span class="cline-any cline-neutral">&nbsp;</span>
861
- <span class="cline-any cline-neutral">&nbsp;</span>
862
- <span class="cline-any cline-neutral">&nbsp;</span>
863
- <span class="cline-any cline-neutral">&nbsp;</span>
864
- <span class="cline-any cline-neutral">&nbsp;</span>
865
- <span class="cline-any cline-neutral">&nbsp;</span>
866
- <span class="cline-any cline-neutral">&nbsp;</span>
867
- <span class="cline-any cline-yes">12x</span>
868
- <span class="cline-any cline-yes">52x</span>
869
- <span class="cline-any cline-yes">52x</span>
870
- <span class="cline-any cline-yes">496x</span>
871
- <span class="cline-any cline-neutral">&nbsp;</span>
872
- <span class="cline-any cline-yes">52x</span>
873
- <span class="cline-any cline-neutral">&nbsp;</span>
874
- <span class="cline-any cline-neutral">&nbsp;</span>
875
- <span class="cline-any cline-neutral">&nbsp;</span>
876
- <span class="cline-any cline-neutral">&nbsp;</span>
877
- <span class="cline-any cline-neutral">&nbsp;</span>
878
- <span class="cline-any cline-neutral">&nbsp;</span>
879
- <span class="cline-any cline-neutral">&nbsp;</span>
880
- <span class="cline-any cline-neutral">&nbsp;</span>
881
- <span class="cline-any cline-neutral">&nbsp;</span>
882
- <span class="cline-any cline-neutral">&nbsp;</span>
883
- <span class="cline-any cline-neutral">&nbsp;</span>
884
- <span class="cline-any cline-neutral">&nbsp;</span>
885
- <span class="cline-any cline-neutral">&nbsp;</span>
886
- <span class="cline-any cline-neutral">&nbsp;</span>
887
- <span class="cline-any cline-neutral">&nbsp;</span>
888
- <span class="cline-any cline-yes">12x</span>
889
- <span class="cline-any cline-yes">14x</span>
890
- <span class="cline-any cline-no">&nbsp;</span>
891
- <span class="cline-any cline-neutral">&nbsp;</span>
892
- <span class="cline-any cline-yes">14x</span>
893
- <span class="cline-any cline-neutral">&nbsp;</span>
894
- <span class="cline-any cline-neutral">&nbsp;</span>
895
- <span class="cline-any cline-neutral">&nbsp;</span>
896
- <span class="cline-any cline-neutral">&nbsp;</span>
897
- <span class="cline-any cline-neutral">&nbsp;</span>
898
- <span class="cline-any cline-neutral">&nbsp;</span>
899
- <span class="cline-any cline-neutral">&nbsp;</span>
900
- <span class="cline-any cline-neutral">&nbsp;</span>
901
- <span class="cline-any cline-neutral">&nbsp;</span>
902
- <span class="cline-any cline-neutral">&nbsp;</span>
903
- <span class="cline-any cline-neutral">&nbsp;</span>
904
- <span class="cline-any cline-neutral">&nbsp;</span>
905
- <span class="cline-any cline-neutral">&nbsp;</span>
906
- <span class="cline-any cline-neutral">&nbsp;</span>
907
- <span class="cline-any cline-neutral">&nbsp;</span>
908
- <span class="cline-any cline-neutral">&nbsp;</span>
909
- <span class="cline-any cline-yes">12x</span>
910
- <span class="cline-any cline-no">&nbsp;</span>
911
- <span class="cline-any cline-no">&nbsp;</span>
912
- <span class="cline-any cline-neutral">&nbsp;</span>
913
- <span class="cline-any cline-neutral">&nbsp;</span>
914
- <span class="cline-any cline-no">&nbsp;</span>
915
- <span class="cline-any cline-no">&nbsp;</span>
916
- <span class="cline-any cline-neutral">&nbsp;</span>
917
- <span class="cline-any cline-no">&nbsp;</span>
918
- <span class="cline-any cline-no">&nbsp;</span>
919
- <span class="cline-any cline-neutral">&nbsp;</span>
920
- <span class="cline-any cline-no">&nbsp;</span>
921
- <span class="cline-any cline-neutral">&nbsp;</span>
922
- <span class="cline-any cline-neutral">&nbsp;</span>
923
- <span class="cline-any cline-neutral">&nbsp;</span>
924
- <span class="cline-any cline-no">&nbsp;</span>
925
- <span class="cline-any cline-no">&nbsp;</span>
926
- <span class="cline-any cline-neutral">&nbsp;</span>
927
- <span class="cline-any cline-neutral">&nbsp;</span>
928
- <span class="cline-any cline-neutral">&nbsp;</span>
929
- <span class="cline-any cline-neutral">&nbsp;</span>
930
- <span class="cline-any cline-neutral">&nbsp;</span>
931
- <span class="cline-any cline-neutral">&nbsp;</span>
932
- <span class="cline-any cline-neutral">&nbsp;</span>
933
- <span class="cline-any cline-neutral">&nbsp;</span>
934
- <span class="cline-any cline-neutral">&nbsp;</span>
935
- <span class="cline-any cline-neutral">&nbsp;</span>
936
- <span class="cline-any cline-neutral">&nbsp;</span>
937
- <span class="cline-any cline-neutral">&nbsp;</span>
938
- <span class="cline-any cline-neutral">&nbsp;</span>
939
- <span class="cline-any cline-neutral">&nbsp;</span>
940
- <span class="cline-any cline-neutral">&nbsp;</span>
941
- <span class="cline-any cline-neutral">&nbsp;</span>
942
- <span class="cline-any cline-neutral">&nbsp;</span>
943
- <span class="cline-any cline-neutral">&nbsp;</span>
944
- <span class="cline-any cline-neutral">&nbsp;</span>
945
- <span class="cline-any cline-neutral">&nbsp;</span>
946
- <span class="cline-any cline-yes">12x</span>
947
- <span class="cline-any cline-no">&nbsp;</span>
948
- <span class="cline-any cline-neutral">&nbsp;</span>
949
- <span class="cline-any cline-no">&nbsp;</span>
950
- <span class="cline-any cline-no">&nbsp;</span>
951
- <span class="cline-any cline-neutral">&nbsp;</span>
952
- <span class="cline-any cline-neutral">&nbsp;</span>
953
- <span class="cline-any cline-no">&nbsp;</span>
954
- <span class="cline-any cline-neutral">&nbsp;</span>
955
- <span class="cline-any cline-neutral">&nbsp;</span>
956
- <span class="cline-any cline-neutral">&nbsp;</span>
957
- <span class="cline-any cline-neutral">&nbsp;</span>
958
- <span class="cline-any cline-neutral">&nbsp;</span>
959
- <span class="cline-any cline-neutral">&nbsp;</span>
960
- <span class="cline-any cline-neutral">&nbsp;</span>
961
- <span class="cline-any cline-neutral">&nbsp;</span>
962
- <span class="cline-any cline-neutral">&nbsp;</span>
963
- <span class="cline-any cline-neutral">&nbsp;</span>
964
- <span class="cline-any cline-neutral">&nbsp;</span>
965
- <span class="cline-any cline-neutral">&nbsp;</span>
966
- <span class="cline-any cline-neutral">&nbsp;</span>
967
- <span class="cline-any cline-neutral">&nbsp;</span>
968
- <span class="cline-any cline-neutral">&nbsp;</span>
969
- <span class="cline-any cline-neutral">&nbsp;</span>
970
- <span class="cline-any cline-neutral">&nbsp;</span>
971
- <span class="cline-any cline-neutral">&nbsp;</span>
972
- <span class="cline-any cline-neutral">&nbsp;</span>
973
- <span class="cline-any cline-neutral">&nbsp;</span>
974
- <span class="cline-any cline-neutral">&nbsp;</span>
975
- <span class="cline-any cline-neutral">&nbsp;</span>
976
- <span class="cline-any cline-neutral">&nbsp;</span>
977
- <span class="cline-any cline-neutral">&nbsp;</span>
978
- <span class="cline-any cline-neutral">&nbsp;</span>
979
- <span class="cline-any cline-neutral">&nbsp;</span>
980
- <span class="cline-any cline-neutral">&nbsp;</span>
981
- <span class="cline-any cline-yes">12x</span>
982
- <span class="cline-any cline-no">&nbsp;</span>
983
- <span class="cline-any cline-no">&nbsp;</span>
984
- <span class="cline-any cline-no">&nbsp;</span>
985
- <span class="cline-any cline-no">&nbsp;</span>
986
- <span class="cline-any cline-no">&nbsp;</span>
987
- <span class="cline-any cline-neutral">&nbsp;</span>
988
- <span class="cline-any cline-no">&nbsp;</span>
989
- <span class="cline-any cline-no">&nbsp;</span>
990
- <span class="cline-any cline-neutral">&nbsp;</span>
991
- <span class="cline-any cline-neutral">&nbsp;</span>
992
- <span class="cline-any cline-no">&nbsp;</span>
993
- <span class="cline-any cline-no">&nbsp;</span>
994
- <span class="cline-any cline-neutral">&nbsp;</span>
995
- <span class="cline-any cline-no">&nbsp;</span>
996
- <span class="cline-any cline-neutral">&nbsp;</span>
997
- <span class="cline-any cline-no">&nbsp;</span>
998
- <span class="cline-any cline-neutral">&nbsp;</span>
999
- <span class="cline-any cline-neutral">&nbsp;</span>
1000
- <span class="cline-any cline-no">&nbsp;</span>
1001
- <span class="cline-any cline-neutral">&nbsp;</span>
1002
- <span class="cline-any cline-neutral">&nbsp;</span>
1003
- <span class="cline-any cline-neutral">&nbsp;</span>
1004
- <span class="cline-any cline-neutral">&nbsp;</span>
1005
- <span class="cline-any cline-neutral">&nbsp;</span>
1006
- <span class="cline-any cline-neutral">&nbsp;</span>
1007
- <span class="cline-any cline-neutral">&nbsp;</span>
1008
- <span class="cline-any cline-neutral">&nbsp;</span>
1009
- <span class="cline-any cline-neutral">&nbsp;</span>
1010
- <span class="cline-any cline-neutral">&nbsp;</span>
1011
- <span class="cline-any cline-neutral">&nbsp;</span>
1012
- <span class="cline-any cline-neutral">&nbsp;</span>
1013
- <span class="cline-any cline-neutral">&nbsp;</span>
1014
- <span class="cline-any cline-neutral">&nbsp;</span>
1015
- <span class="cline-any cline-neutral">&nbsp;</span>
1016
- <span class="cline-any cline-neutral">&nbsp;</span>
1017
- <span class="cline-any cline-neutral">&nbsp;</span>
1018
- <span class="cline-any cline-neutral">&nbsp;</span>
1019
- <span class="cline-any cline-neutral">&nbsp;</span>
1020
- <span class="cline-any cline-neutral">&nbsp;</span>
1021
- <span class="cline-any cline-neutral">&nbsp;</span>
1022
- <span class="cline-any cline-neutral">&nbsp;</span>
1023
- <span class="cline-any cline-yes">12x</span>
1024
- <span class="cline-any cline-no">&nbsp;</span>
1025
- <span class="cline-any cline-no">&nbsp;</span>
1026
- <span class="cline-any cline-no">&nbsp;</span>
1027
- <span class="cline-any cline-no">&nbsp;</span>
1028
- <span class="cline-any cline-no">&nbsp;</span>
1029
- <span class="cline-any cline-no">&nbsp;</span>
1030
- <span class="cline-any cline-neutral">&nbsp;</span>
1031
- <span class="cline-any cline-neutral">&nbsp;</span>
1032
- <span class="cline-any cline-neutral">&nbsp;</span>
1033
- <span class="cline-any cline-neutral">&nbsp;</span>
1034
- <span class="cline-any cline-neutral">&nbsp;</span>
1035
- <span class="cline-any cline-neutral">&nbsp;</span>
1036
- <span class="cline-any cline-neutral">&nbsp;</span>
1037
- <span class="cline-any cline-neutral">&nbsp;</span>
1038
- <span class="cline-any cline-neutral">&nbsp;</span>
1039
- <span class="cline-any cline-neutral">&nbsp;</span>
1040
- <span class="cline-any cline-neutral">&nbsp;</span>
1041
- <span class="cline-any cline-neutral">&nbsp;</span>
1042
- <span class="cline-any cline-neutral">&nbsp;</span>
1043
- <span class="cline-any cline-neutral">&nbsp;</span>
1044
- <span class="cline-any cline-neutral">&nbsp;</span>
1045
- <span class="cline-any cline-neutral">&nbsp;</span>
1046
- <span class="cline-any cline-yes">12x</span>
1047
- <span class="cline-any cline-no">&nbsp;</span>
1048
- <span class="cline-any cline-no">&nbsp;</span>
1049
- <span class="cline-any cline-neutral">&nbsp;</span>
1050
- <span class="cline-any cline-neutral">&nbsp;</span>
1051
- <span class="cline-any cline-neutral">&nbsp;</span>
1052
- <span class="cline-any cline-neutral">&nbsp;</span>
1053
- <span class="cline-any cline-neutral">&nbsp;</span>
1054
- <span class="cline-any cline-neutral">&nbsp;</span>
1055
- <span class="cline-any cline-neutral">&nbsp;</span>
1056
- <span class="cline-any cline-neutral">&nbsp;</span>
1057
- <span class="cline-any cline-neutral">&nbsp;</span>
1058
- <span class="cline-any cline-neutral">&nbsp;</span>
1059
- <span class="cline-any cline-neutral">&nbsp;</span>
1060
- <span class="cline-any cline-neutral">&nbsp;</span>
1061
- <span class="cline-any cline-neutral">&nbsp;</span>
1062
- <span class="cline-any cline-neutral">&nbsp;</span>
1063
- <span class="cline-any cline-neutral">&nbsp;</span>
1064
- <span class="cline-any cline-neutral">&nbsp;</span>
1065
- <span class="cline-any cline-yes">12x</span>
1066
- <span class="cline-any cline-no">&nbsp;</span>
1067
- <span class="cline-any cline-no">&nbsp;</span>
1068
- <span class="cline-any cline-neutral">&nbsp;</span>
1069
- <span class="cline-any cline-neutral">&nbsp;</span>
1070
- <span class="cline-any cline-neutral">&nbsp;</span>
1071
- <span class="cline-any cline-neutral">&nbsp;</span>
1072
- <span class="cline-any cline-neutral">&nbsp;</span>
1073
- <span class="cline-any cline-neutral">&nbsp;</span>
1074
- <span class="cline-any cline-neutral">&nbsp;</span>
1075
- <span class="cline-any cline-neutral">&nbsp;</span>
1076
- <span class="cline-any cline-neutral">&nbsp;</span>
1077
- <span class="cline-any cline-neutral">&nbsp;</span>
1078
- <span class="cline-any cline-neutral">&nbsp;</span>
1079
- <span class="cline-any cline-neutral">&nbsp;</span>
1080
- <span class="cline-any cline-neutral">&nbsp;</span>
1081
- <span class="cline-any cline-neutral">&nbsp;</span>
1082
- <span class="cline-any cline-yes">12x</span>
1083
- <span class="cline-any cline-no">&nbsp;</span>
1084
- <span class="cline-any cline-no">&nbsp;</span>
1085
- <span class="cline-any cline-neutral">&nbsp;</span>
1086
- <span class="cline-any cline-neutral">&nbsp;</span>
1087
- <span class="cline-any cline-neutral">&nbsp;</span>
1088
- <span class="cline-any cline-neutral">&nbsp;</span>
1089
- <span class="cline-any cline-neutral">&nbsp;</span>
1090
- <span class="cline-any cline-neutral">&nbsp;</span>
1091
- <span class="cline-any cline-neutral">&nbsp;</span>
1092
- <span class="cline-any cline-neutral">&nbsp;</span>
1093
- <span class="cline-any cline-neutral">&nbsp;</span>
1094
- <span class="cline-any cline-neutral">&nbsp;</span>
1095
- <span class="cline-any cline-neutral">&nbsp;</span>
1096
- <span class="cline-any cline-neutral">&nbsp;</span>
1097
- <span class="cline-any cline-neutral">&nbsp;</span>
1098
- <span class="cline-any cline-neutral">&nbsp;</span>
1099
- <span class="cline-any cline-neutral">&nbsp;</span>
1100
- <span class="cline-any cline-yes">12x</span>
1101
- <span class="cline-any cline-no">&nbsp;</span>
1102
- <span class="cline-any cline-no">&nbsp;</span>
1103
- <span class="cline-any cline-neutral">&nbsp;</span>
1104
- <span class="cline-any cline-neutral">&nbsp;</span>
1105
- <span class="cline-any cline-neutral">&nbsp;</span>
1106
- <span class="cline-any cline-neutral">&nbsp;</span>
1107
- <span class="cline-any cline-neutral">&nbsp;</span>
1108
- <span class="cline-any cline-neutral">&nbsp;</span>
1109
- <span class="cline-any cline-neutral">&nbsp;</span>
1110
- <span class="cline-any cline-neutral">&nbsp;</span>
1111
- <span class="cline-any cline-neutral">&nbsp;</span>
1112
- <span class="cline-any cline-neutral">&nbsp;</span>
1113
- <span class="cline-any cline-neutral">&nbsp;</span>
1114
- <span class="cline-any cline-yes">12x</span>
1115
- <span class="cline-any cline-no">&nbsp;</span>
1116
- <span class="cline-any cline-no">&nbsp;</span>
1117
- <span class="cline-any cline-neutral">&nbsp;</span>
1118
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">/**
1119
- * @module module:lib/helpers/utils
1120
- * @description General helper utilities used across the library.
1121
- * @summary Exposes small, reusable utility functions for window/document access, date handling,
1122
- * string manipulation, simple mapping helpers and environment helpers used by UI components
1123
- * and services. This module's functions include `getWindow`, `getWindowDocument`, `formatDate`,
1124
- * `isValidDate`, `itemMapper`, `dataMapper`, and event helpers like `windowEventEmitter`.
1125
- *
1126
- * Do not document individual exports here — functions are documented inline.
1127
- * @link {@link getWindow}
1128
- */
1129
- &nbsp;
1130
- import { isDevMode } from '@angular/core';
1131
- import { Primitives } from '@decaf-ts/decorator-validation';
1132
- import { InjectableRegistryImp, InjectablesRegistry } from '@decaf-ts/injectable-decorators';
1133
- import { getLogger } from '../engine/helpers';
1134
- import { IMenuItem } from '../engine/interfaces';
1135
- import { FunctionLike, KeyValue, StringOrBoolean } from '../engine/types';
1136
- &nbsp;
1137
- let injectableRegistry: InjectablesRegistry;
1138
- &nbsp;
1139
- /**
1140
- * @description Retrieves the singleton instance of the injectables registry
1141
- * @summary This function implements the singleton pattern for the InjectablesRegistry.
1142
- * It returns the existing registry instance if one exists, or creates a new instance
1143
- * if none exists. The registry is used to store and retrieve injectable dependencies
1144
- * throughout the application.
1145
- *
1146
- * @return {InjectablesRegistry} The singleton injectables registry instance
1147
- *
1148
- * @function getInjectablesRegistry
1149
- * @memberOf module:for-angular
1150
- */
1151
- export function <span class="fstat-no" title="function not covered" >getInjectablesRegistry(</span>): InjectablesRegistry {
1152
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!injectableRegistry) <span class="cstat-no" title="statement not covered" >injectableRegistry = new InjectableRegistryImp();</span></span>
1153
- <span class="cstat-no" title="statement not covered" > return injectableRegistry;</span>
1154
- }
1155
- &nbsp;
1156
- /**
1157
- * @description Determines if the application is running in development mode
1158
- * @summary This function checks whether the application is currently running in a development
1159
- * environment. It uses Angular's isDevMode() function and also checks the window context
1160
- * and hostname against the provided context parameter. This is useful for enabling
1161
- * development-specific features or logging.
1162
- *
1163
- * @param {string} [context='localhost'] - The context string to check against the current environment
1164
- * @return {boolean} True if the application is running in development mode, false otherwise
1165
- *
1166
- * @function isDevelopmentMode
1167
- * @memberOf module:for-angular
1168
- */
1169
- export function <span class="fstat-no" title="function not covered" >isDevelopmentMode(</span>context: string = <span class="branch-0 cbranch-no" title="branch not covered" >'localhost')</span>: boolean {
1170
- const devMode = <span class="cstat-no" title="statement not covered" >isDevMode();</span>
1171
- const win = <span class="cstat-no" title="statement not covered" >getWindow();</span>
1172
- const env = <span class="cstat-no" title="statement not covered" >win?.['env'] || win?.['ENV'];</span>
1173
- const { protocol } = <span class="cstat-no" title="statement not covered" >win.location || ({} as Location);</span>
1174
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!env || !context) {</span>
1175
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (protocol.includes('https')) <span class="cstat-no" title="statement not covered" >return false;</span></span>
1176
- <span class="cstat-no" title="statement not covered" > return devMode;</span>
1177
- }
1178
- <span class="cstat-no" title="statement not covered" > return env?.['CONTEXT'].toLowerCase() !== context.toLowerCase() || win?.['location']?.hostname?.includes(context);</span>
1179
- }
1180
- &nbsp;
1181
- /**
1182
- * @description Dispatches a custom event to the document window
1183
- * @summary This function creates and dispatches a custom event to the browser window.
1184
- * It's useful for cross-component communication or for triggering application-wide events.
1185
- * The function allows specifying the event name, detail data, and additional event properties.
1186
- *
1187
- * @param {string} name - The name of the custom event to dispatch
1188
- * @param {unknown} detail - The data to include in the event's detail property
1189
- * @param {object} [props] - Optional additional properties for the custom event
1190
- * @return {void}
1191
- *
1192
- * @function windowEventEmitter
1193
- * @memberOf module:for-angular
1194
- */
1195
- export function <span class="fstat-no" title="function not covered" >windowEventEmitter(</span>name: string, detail: unknown, props?: object): void {
1196
- const data = <span class="cstat-no" title="statement not covered" >Object.assign(</span>
1197
- {
1198
- bubbles: true,
1199
- composed: true,
1200
- cancelable: false,
1201
- detail: detail,
1202
- },
1203
- props || {}
1204
- );
1205
- (<span class="cstat-no" title="statement not covered" >getWindow() as Window).dispatchEvent(new CustomEvent(name, data));</span>
1206
- }
1207
- /**
1208
- * @description Retrieves a property from the window's document object
1209
- * @summary This function provides a safe way to access properties on the window's document object.
1210
- * It uses the getWindowDocument function to get a reference to the document, then accesses
1211
- * the specified property. This is useful for browser environment interactions that need
1212
- * to access document properties.
1213
- *
1214
- * @param {string} key - The name of the property to retrieve from the document object
1215
- * @return {any} The value of the specified property, or undefined if the document or property doesn't exist
1216
- *
1217
- * @function getOnWindowDocument
1218
- * @memberOf module:for-angular
1219
- */
1220
- export function <span class="fstat-no" title="function not covered" >getOnWindowDocument(</span>key: string): Document | undefined {
1221
- const doc = <span class="cstat-no" title="statement not covered" >getWindowDocument() as Document;</span>
1222
- <span class="cstat-no" title="statement not covered" > return doc instanceof Document ? (doc as KeyValue)?.[key] || undefined : undefined;</span>
1223
- }
1224
- &nbsp;
1225
- /**
1226
- * @description Retrieves the document object from the window
1227
- * @summary This function provides a safe way to access the document object from the window.
1228
- * It uses the getOnWindow function to retrieve the 'document' property from the window object.
1229
- * This is useful for browser environment interactions that need access to the document.
1230
- *
1231
- * @return {Document | undefined} The window's document object, or undefined if it doesn't exist
1232
- *
1233
- * @function getWindowDocument
1234
- * @memberOf module:for-angular
1235
- */
1236
- export function getWindowDocument(): Document | undefined {
1237
- return getOnWindow('document') as Document;
1238
- }
1239
- &nbsp;
1240
- /**
1241
- * @description Retrieves a property from the window object
1242
- * @summary This function provides a safe way to access properties on the window object.
1243
- * It uses the getWindow function to get a reference to the window, then accesses
1244
- * the specified property. This is useful for browser environment interactions that need
1245
- * to access window properties or APIs.
1246
- *
1247
- * @param {string} key - The name of the property to retrieve from the window object
1248
- * @return {unknown | undefined} The value of the specified property, or undefined if the window or property doesn't exist
1249
- *
1250
- * @function getOnWindow
1251
- * @memberOf module:for-angular
1252
- */
1253
- export function getOnWindow(key: string): unknown | undefined {
1254
- return getWindow()?.[key];
1255
- }
1256
- &nbsp;
1257
- /**
1258
- * @description Sets a property on the window object
1259
- * @summary This function provides a way to set properties on the window object.
1260
- * It uses the getWindow function to get a reference to the window, then sets
1261
- * the specified property to the provided value. This is useful for storing
1262
- * global data or functions that need to be accessible across the application.
1263
- *
1264
- * @param {string} key - The name of the property to set on the window object
1265
- * @param {any} value - The value to assign to the property
1266
- * @return {void}
1267
- *
1268
- * @function setOnWindow
1269
- * @memberOf module:for-angular
1270
- */
1271
- export function setOnWindow(key: string, value: unknown): void {
1272
- getWindow()[key] = value;
1273
- }
1274
- &nbsp;
1275
- /**
1276
- * @description Retrieves the global window object
1277
- * @summary This function provides a safe way to access the global window object.
1278
- * It uses globalThis to ensure compatibility across different JavaScript environments.
1279
- * This is the core function used by other window-related utility functions to
1280
- * access the window object.
1281
- *
1282
- * @return {Window} The global window object
1283
- *
1284
- * @function getWindow
1285
- * @memberOf module:for-angular
1286
- */
1287
- export function getWindow(): Window &amp; KeyValue {
1288
- return (globalThis as KeyValue)?.['window'] as Window &amp; KeyValue;
1289
- }
1290
- &nbsp;
1291
- /**
1292
- * @description Retrieves the width of the browser window
1293
- * @summary This function provides a convenient way to get the current width of the browser window.
1294
- * It uses the getOnWindow function to access the 'innerWidth' property of the window object.
1295
- * This is useful for responsive design implementations and viewport-based calculations.
1296
- *
1297
- * @return {number | undefined} The current width of the browser window in pixels
1298
- *
1299
- * @function getWindowWidth
1300
- * @memberOf module:for-angular
1301
- */
1302
- export function getWindowWidth(): number {
1303
- return (getOnWindow('innerWidth') as number) || <span class="branch-1 cbranch-no" title="branch not covered" >0;</span>
1304
- }
1305
- &nbsp;
1306
- /**
1307
- * @description Checks if a value is not undefined
1308
- * @summary This utility function determines whether a given value is not undefined.
1309
- * It's a simple wrapper that makes code more readable when checking for defined values.
1310
- * The function is particularly useful for checking StringOrBoolean properties that might be undefined.
1311
- *
1312
- * @param {StringOrBoolean | undefined} prop - The property to check
1313
- * @return {boolean} True if the property is not undefined, false otherwise
1314
- *
1315
- * @function isNotUndefined
1316
- * @memberOf module:for-angular
1317
- */
1318
- export function <span class="fstat-no" title="function not covered" >isNotUndefined(</span>prop: StringOrBoolean | undefined): boolean {
1319
- <span class="cstat-no" title="statement not covered" > return (prop !== undefined) as boolean;</span>
1320
- }
1321
- &nbsp;
1322
- /**
1323
- * @description Generates a locale string from a class name or instance
1324
- * @summary This utility function converts a class name or instance into a locale string
1325
- * that can be used for internationalization purposes. It handles different input types
1326
- * (string, function, or object) and applies formatting rules to generate a consistent
1327
- * locale identifier. For short names (less than 3 parts), it reverses the dot-separated
1328
- * string. For longer names, it uses the last part as a prefix and joins the rest with
1329
- * underscores.
1330
- *
1331
- * @param {string|FunctionLike|object} instance - The input to generate the locale from (class name, constructor, or instance)
1332
- * @param {string} [suffix] - Optional string to append to the instance name before processing
1333
- * @return {string} A formatted locale string derived from the input
1334
- *
1335
- * @function getLocaleFromClassName
1336
- * @memberOf module:for-angular
1337
- */
1338
- export function getLocaleFromClassName(instance: string | FunctionLike | KeyValue, suffix?: string): string {
1339
- <span class="missing-if-branch" title="if path not taken" >I</span>if (typeof instance !== Primitives.STRING)
1340
- <span class="cstat-no" title="statement not covered" > instance = (instance as FunctionLike).name || (instance as object)?.constructor?.name;</span>
1341
- &nbsp;
1342
- let name: string | string[] = instance as string;
1343
- &nbsp;
1344
- <span class="missing-if-branch" title="if path not taken" >I</span>if (suffix) <span class="cstat-no" title="statement not covered" >name = `${instance}${suffix.charAt(0).toUpperCase() + suffix.slice(1)}`;</span>
1345
- &nbsp;
1346
- name = name
1347
- .replace(/_|-/g, '')
1348
- .replace(/(?:^\w|[A-Z]|\b\w)/g, (word: string, index: number) =&gt; {
1349
- if (index &gt; 1) word = '.' + word;
1350
- return word.toLowerCase();
1351
- })
1352
- .split('.');
1353
- &nbsp;
1354
- if (name.length &lt; 3) return name.reverse().join('.');
1355
- &nbsp;
1356
- const preffix = name[name.length - 1];
1357
- name.pop();
1358
- name = name.join('_');
1359
- return `${preffix}.${name}`;
1360
- }
1361
- &nbsp;
1362
- /**
1363
- * @description Retrieves the current locale language
1364
- * @summary This utility function gets the current locale language based on the user's browser settings.
1365
- * It provides a consistent way to access the user's language preference throughout the application.
1366
- * The function returns the browser's navigator.language value, defaulting to 'en' if not available.
1367
- *
1368
- * @return {string} The current locale language (e.g., 'en', 'fr')
1369
- *
1370
- * @function getLocaleLanguage
1371
- * @memberOf module:for-angular
1372
- */
1373
- export function <span class="fstat-no" title="function not covered" >getLocaleLanguage(</span>): string {
1374
- const win = <span class="cstat-no" title="statement not covered" >getWindow();</span>
1375
- <span class="cstat-no" title="statement not covered" > return (win as Window).navigator.language || 'en';</span>
1376
- // return win?.[WINDOW_KEYS.LANGUAGE_SELECTED] || (win.navigator.language || '').split('-')[0] || "en";
1377
- }
1378
- &nbsp;
1379
- /**
1380
- * @description Generates a random string or number of specified length
1381
- * @summary This utility function creates a random string of a specified length.
1382
- * It can generate either alphanumeric strings (including uppercase and lowercase letters)
1383
- * or numeric-only strings. This is useful for creating random IDs, temporary passwords,
1384
- * or other random identifiers throughout the application.
1385
- *
1386
- * @param {number} [length=8] - The length of the random value to generate
1387
- * @param {boolean} [onlyNumbers=false] - Whether to generate only numeric characters
1388
- * @return {string} A randomly generated string of the specified length and character set
1389
- *
1390
- * @function generateRandomValue
1391
- * @memberOf module:for-angular
1392
- */
1393
- export function generateRandomValue(length: number = <span class="branch-0 cbranch-no" title="branch not covered" >8,</span> onlyNumbers: boolean = false): string {
1394
- const chars = onlyNumbers ? <span class="branch-0 cbranch-no" title="branch not covered" >'0123456789' </span>: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
1395
- let result = '';
1396
- for (let i = 0; i &lt; length; i++) result += chars.charAt(Math.floor(Math.random() * chars.length));
1397
- &nbsp;
1398
- return result;
1399
- }
1400
- &nbsp;
1401
- /**
1402
- * @description Converts a string representation of a boolean or a boolean value to a boolean type.
1403
- * @summary This utility function handles conversion of string-based boolean values ('true', 'false')
1404
- * to actual boolean types. It performs case-insensitive string comparison and returns the
1405
- * corresponding boolean value. This is particularly useful when parsing configuration values,
1406
- * URL parameters, or form inputs that may come as strings but need to be used as booleans.
1407
- *
1408
- * @param {'true' | 'false' | boolean} prop - The value to convert. Can be the string 'true', 'false', or a boolean
1409
- * @returns {boolean} The boolean representation of the input value. Returns true if the input is the string 'true' or boolean true, false otherwise
1410
- *
1411
- * @function stringToBoolean
1412
- * @memberOf module:lib/helpers/utils
1413
- */
1414
- export function stringToBoolean(prop: 'true' | 'false' | boolean): boolean {
1415
- <span class="missing-if-branch" title="if path not taken" >I</span>if (typeof prop === Primitives.STRING) {
1416
- <span class="cstat-no" title="statement not covered" > prop = String(prop).toLowerCase() === 'true' ? true : false;</span>
1417
- }
1418
- return prop as boolean;
1419
- }
1420
- &nbsp;
1421
- /**
1422
- * @description Checks if a value is a valid Date object.
1423
- * @summary This validation function determines whether a given value represents a valid date.
1424
- * It handles multiple input types including Date objects, timestamp numbers, and date strings.
1425
- * For string inputs, it supports ISO 8601 format (YYYY-MM-DD) with or without time components.
1426
- * The function performs comprehensive validation including regex pattern matching and Date
1427
- * object creation to ensure the date is not only parseable but also represents a real date.
1428
- *
1429
- * @param {string | Date | number} date - The value to check. Can be a Date object, a timestamp number, or a date string
1430
- * @returns {boolean} Returns true if the value is a valid Date object (not NaN), otherwise false
1431
- *
1432
- * @function isValidDate
1433
- * @memberOf module:lib/helpers/utils
1434
- */
1435
- export function <span class="fstat-no" title="function not covered" >isValidDate(</span>date: string | Date | number): boolean {
1436
- <span class="cstat-no" title="statement not covered" > try {</span>
1437
- <span class="cstat-no" title="statement not covered" > return (</span>
1438
- (date instanceof Date &amp;&amp; !isNaN(date as unknown as number)) ||
1439
- (<span class="fstat-no" title="function not covered" >() =</span>&gt; {
1440
- const testRegex = <span class="cstat-no" title="statement not covered" >new RegExp(/^\d{4}-\d{2}-\d{2}$/).test(date as string);</span>
1441
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (typeof date !== Primitives.STRING || (!(date as string)?.includes('T') &amp;&amp; !testRegex)) <span class="cstat-no" title="statement not covered" >return false;</span></span>
1442
- &nbsp;
1443
- <span class="cstat-no" title="statement not covered" > date = (date as string).split('T')[0];</span>
1444
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!new RegExp(/^\d{4}-\d{2}-\d{2}$/).test(date)) <span class="cstat-no" title="statement not covered" >return false;</span></span>
1445
- &nbsp;
1446
- <span class="cstat-no" title="statement not covered" > return !!new Date(date);</span>
1447
- })()
1448
- );
1449
- } catch (error: unknown) {
1450
- <span class="cstat-no" title="statement not covered" > getLogger(isValidDate).error(error as Error | string);</span>
1451
- <span class="cstat-no" title="statement not covered" > return false;</span>
1452
- }
1453
- }
1454
- &nbsp;
1455
- /**
1456
- * @description Formats a date into a localized string representation.
1457
- * @summary This function converts a date value into a formatted string according to a specified
1458
- * or system locale. It accepts multiple input formats (Date objects, timestamps, or date strings)
1459
- * and returns a consistently formatted date string in DD/MM/YYYY format. If the input date is
1460
- * invalid, the function returns the original input as a string. The function automatically
1461
- * uses the system locale if none is provided and handles string format conversions by replacing
1462
- * forward slashes with hyphens for proper Date parsing.
1463
- *
1464
- * @param {string | Date | number} date - The date to format. Can be a Date object, a timestamp number, or a date string
1465
- * @param {string} [locale] - The locale to use for formatting. If not provided, the system's locale will be used
1466
- * @returns {Date | string} A formatted date string in the format DD/MM/YYYY according to the specified locale,
1467
- * or the original input as a string if the date is invalid
1468
- *
1469
- * @function formatDate
1470
- * @memberOf module:lib/helpers/utils
1471
- */
1472
- export function <span class="fstat-no" title="function not covered" >formatDate(</span>date: string | Date | number, locale?: string | undefined): Date | string {
1473
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!locale) <span class="cstat-no" title="statement not covered" >locale = getLocaleLanguage();</span></span>
1474
- &nbsp;
1475
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (typeof date === Primitives.STRING || typeof date === 'number') {</span>
1476
- <span class="cstat-no" title="statement not covered" > date = new Date(typeof date === Primitives.STRING ? `${date}`.replace(/\//g, '-') : date);</span>
1477
- }
1478
- &nbsp;
1479
- <span class="cstat-no" title="statement not covered" > return !isValidDate(date)</span>
1480
- ? `${date}`
1481
- : date.toLocaleString(locale, {
1482
- year: 'numeric',
1483
- day: '2-digit',
1484
- month: '2-digit',
1485
- });
1486
- }
1487
- &nbsp;
1488
- /**
1489
- /**
1490
- * @description Maps an item object using a provided mapper object and optional additional properties.
1491
- * @summary This function transforms a source object into a new object based on mapping rules defined
1492
- * in the mapper parameter. It supports dot notation for nested property access (e.g., 'user.name.first')
1493
- * and handles various data types including strings and complex objects. For date values, it automatically
1494
- * formats them using the formatDate function. The function also allows merging additional properties
1495
- * into the result. When a mapped value is null or undefined, it uses the original mapper value as
1496
- * a fallback.
1497
- *
1498
- * @param {KeyValue} item - The source object to be mapped
1499
- * @param {KeyValue} mapper - An object that defines the mapping rules. Keys represent the new property names,
1500
- * and values represent the path to the corresponding values in the source object
1501
- * @param {KeyValue} [props] - Optional additional properties to be included in the mapped object
1502
- * @returns {KeyValue} A new object with properties mapped according to the mapper object and including any additional properties
1503
- *
1504
- * @function itemMapper
1505
- * @memberOf module:lib/helpers/utils
1506
- */
1507
- export function <span class="fstat-no" title="function not covered" >itemMapper(</span>item: KeyValue, mapper: KeyValue, props?: KeyValue): KeyValue {
1508
- <span class="cstat-no" title="statement not covered" > return Object.entries(mapper).reduce(<span class="fstat-no" title="function not covered" >(a</span>ccum: KeyValue, [key, prop]) =&gt; {</span>
1509
- const arrayValue = <span class="cstat-no" title="statement not covered" >(prop || '').split('.');</span>
1510
- let value = <span class="cstat-no" title="statement not covered" >item?.[prop] || '';</span>
1511
- <span class="cstat-no" title="statement not covered" > if (!prop) {</span>
1512
- <span class="cstat-no" title="statement not covered" > accum[key] = prop;</span>
1513
- } else {
1514
- <span class="cstat-no" title="statement not covered" > if (arrayValue.length === 1) {</span>
1515
- <span class="cstat-no" title="statement not covered" > accum[key] = value;</span>
1516
- // accum[key] = item?.[value as string] || (value !== key ? value : "");
1517
- } else {
1518
- <span class="cstat-no" title="statement not covered" > for (const propValue of arrayValue)</span>
1519
- <span class="cstat-no" title="statement not covered" > value = !value ? item[propValue] : (typeof value === 'string' ? JSON.parse(value) : value)[propValue];</span>
1520
- &nbsp;
1521
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (isValidDate(new Date(value))) <span class="cstat-no" title="statement not covered" >value = `${formatDate(value)}`;</span></span>
1522
- &nbsp;
1523
- <span class="cstat-no" title="statement not covered" > accum[key] = value === null || value === undefined ? prop : value;</span>
1524
- }
1525
- }
1526
- <span class="cstat-no" title="statement not covered" > return Object.assign({}, props || {}, accum);</span>
1527
- }, {});
1528
- }
1529
- &nbsp;
1530
- /**
1531
- * @description Maps an array of data objects using a provided mapper object.
1532
- * @summary This function transforms an array of objects by applying mapping rules to each item
1533
- * using the itemMapper function. It processes each element in the data array and creates
1534
- * new mapped objects based on the mapper configuration. The function includes validation
1535
- * to ensure meaningful data: if a mapped item contains only null/undefined values, it
1536
- * preserves the original item instead. This prevents data loss during transformation.
1537
- * Returns an empty array if the input data is null, undefined, or empty.
1538
- *
1539
- * @template T - The type of the resulting mapped items
1540
- * @param {T[]} data - The array of data objects to be mapped
1541
- * @param {KeyValue} mapper - An object that defines the mapping rules
1542
- * @param {KeyValue} [props] - Additional properties to be included in the mapped items
1543
- * @returns {T[]} The array of mapped items. If an item in the original array does not have any non-null values after mapping,
1544
- * the original item is returned instead
1545
- *
1546
- * @function dataMapper
1547
- * @memberOf module:lib/helpers/utils
1548
- */
1549
- export function <span class="fstat-no" title="function not covered" >dataMapper&lt;</span>T&gt;(data: T[], mapper: KeyValue, props?: KeyValue): T[] {
1550
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!data || !data.length) <span class="cstat-no" title="statement not covered" >return [];</span></span>
1551
- <span class="cstat-no" title="statement not covered" > return data.reduce(<span class="fstat-no" title="function not covered" >(a</span>ccum: T[], curr) =&gt; {</span>
1552
- const item = <span class="cstat-no" title="statement not covered" >itemMapper(curr as KeyValue, mapper, props) as T;</span>
1553
- const hasValues = <span class="cstat-no" title="statement not covered" >[...new Set(Object.values(item as T[]))].filter(<span class="fstat-no" title="function not covered" >(v</span>alue) =&gt; <span class="cstat-no" title="statement not covered" >value)</span>.length &gt; 0;</span>
1554
- <span class="cstat-no" title="statement not covered" > accum.push(hasValues ? item : curr);</span>
1555
- <span class="cstat-no" title="statement not covered" > return accum;</span>
1556
- }, []);
1557
- }
1558
- &nbsp;
1559
- /**
1560
- * @description Removes focus from the currently active DOM element
1561
- * @summary This utility function blurs the currently focused element in the document,
1562
- * effectively removing focus traps that might prevent proper navigation or keyboard
1563
- * interaction. It safely accesses the document's activeElement and calls blur() if
1564
- * an element is currently focused. This is useful for accessibility and user experience
1565
- * improvements, particularly when closing modals or dialogs.
1566
- *
1567
- * @return {void}
1568
- *
1569
- * @function removeFocusTrap
1570
- * @memberOf module:for-angular
1571
- */
1572
- export function <span class="fstat-no" title="function not covered" >removeFocusTrap(</span>): void {
1573
- const doc = <span class="cstat-no" title="statement not covered" >getWindowDocument();</span>
1574
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (doc?.activeElement) (<span class="cstat-no" title="statement not covered" >doc.activeElement as HTMLElement)?.blur();</span></span>
1575
- }
1576
- &nbsp;
1577
- /**
1578
- * @description Cleans and normalizes whitespace in a string value
1579
- * @summary This utility function trims leading and trailing whitespace from a string
1580
- * and replaces multiple consecutive whitespace characters with a single space.
1581
- * Optionally converts the result to lowercase for consistent text processing.
1582
- * This is useful for normalizing user input, search terms, or data sanitization.
1583
- *
1584
- * @param {string} value - The string value to clean and normalize
1585
- * @param {boolean} [lowercase=false] - Whether to convert the result to lowercase
1586
- * @return {string} The cleaned and normalized string
1587
- *
1588
- * @function cleanSpaces
1589
- * @memberOf module:for-angular
1590
- */
1591
- export function <span class="fstat-no" title="function not covered" >cleanSpaces(</span>value: string = <span class="branch-0 cbranch-no" title="branch not covered" >'',</span> lowercase: boolean = <span class="branch-0 cbranch-no" title="branch not covered" >false)</span>: string {
1592
- <span class="cstat-no" title="statement not covered" > value = `${value}`.trim().replace(/\s+/g, ' ');</span>
1593
- <span class="cstat-no" title="statement not covered" > return lowercase ? value.toLowerCase() : value;</span>
1594
- }
1595
- &nbsp;
1596
- /**
1597
- * @description Determines if the user's system is currently in dark mode
1598
- * @summary This function checks the user's color scheme preference using the CSS media query
1599
- * '(prefers-color-scheme: dark)'. It returns a boolean indicating whether the system is
1600
- * currently set to dark mode. This is useful for implementing theme-aware functionality
1601
- * and adjusting UI elements based on the user's preferred color scheme.
1602
- *
1603
- * @return {Promise&lt;boolean&gt;} True if the system is in dark mode, false otherwise
1604
- *
1605
- * @function isDarkMode
1606
- * @memberOf module:for-angular
1607
- */
1608
- export async function <span class="fstat-no" title="function not covered" >isDarkMode(</span>): Promise&lt;boolean&gt; {
1609
- const { matches } = <span class="cstat-no" title="statement not covered" >getWindow().matchMedia('(prefers-color-scheme: dark)');</span>
1610
- <span class="cstat-no" title="statement not covered" > return matches;</span>
1611
- }
1612
- &nbsp;
1613
- /**
1614
- * @description Filters out strings containing or not containing a specific substring from an array or space-separated string.
1615
- * @summary This function removes or retains strings based on whether they include the specified substring.
1616
- * If the input is a single string, it is split into an array using spaces as delimiters before filtering.
1617
- *
1618
- * @param {string | string[]} original - The input string or array of strings to filter.
1619
- * @param {string} value - The substring to filter by.
1620
- * @param {boolean} [contain=true] - Determines the filtering behavior. If true, retains strings containing the substring; otherwise, removes them.
1621
- * @returns {string} A string that contains or excludes the specified substring based on the `contain` parameter.
1622
- *
1623
- * @function filterString
1624
- * @memberOf module:lib/helpers/utils
1625
- */
1626
- export function <span class="fstat-no" title="function not covered" >filterString(</span>original: string | string[], value: string, contain: boolean = <span class="branch-0 cbranch-no" title="branch not covered" >true)</span>: string {
1627
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (typeof original === Primitives.STRING) <span class="cstat-no" title="statement not covered" >original = (original as string).split(' ');</span></span>
1628
- <span class="cstat-no" title="statement not covered" > return ((original as string[]).filter(<span class="fstat-no" title="function not covered" >(s</span>tr) =&gt; (<span class="cstat-no" title="statement not covered" >contain ? str.includes(value) : !str.includes(value))</span>) || []).join(</span>
1629
- ' '
1630
- );
1631
- }
1632
- &nbsp;
1633
- /**
1634
- * @summary Retrieves the icon associated with a menu item based on its label.
1635
- *
1636
- * @param {string} label - The label of the menu item to search for. The search is case-insensitive.
1637
- * @param {IMenuItem[]} menu - An array of menu items to search within.
1638
- * @returns {string} The icon associated with the menu item if found, otherwise an empty string.
1639
- */
1640
- export function <span class="fstat-no" title="function not covered" >getMenuIcon(</span>label: string, menu: IMenuItem[]): string {
1641
- const item = <span class="cstat-no" title="statement not covered" >menu.find(<span class="fstat-no" title="function not covered" >(m</span>) =&gt; <span class="cstat-no" title="statement not covered" >m.label?.toLowerCase() === label.toLowerCase())</span>;</span>
1642
- <span class="cstat-no" title="statement not covered" > return item?.icon || '';</span>
1643
- }
1644
- &nbsp;</pre></td></tr></table></pre>
1645
-
1646
- <div class='push'></div><!-- for sticky footer -->
1647
- </div><!-- /wrapper -->
1648
- <div class='footer quiet pad2 space-top1 center small'>
1649
- Code coverage generated by
1650
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1651
- at 2026-02-25T10:45:48.506Z
1652
- </div>
1653
- <script src="../../../prettify.js"></script>
1654
- <script>
1655
- window.onload = function () {
1656
- prettyPrint();
1657
- };
1658
- </script>
1659
- <script src="../../../sorter.js"></script>
1660
- <script src="../../../block-navigation.js"></script>
1661
- </body>
1662
- </html>
1663
-