@decaf-ts/for-angular 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (374) hide show
  1. package/package.json +15 -86
  2. package/.editorconfig +0 -31
  3. package/.gitlab-ci.yml +0 -197
  4. package/.hintrc +0 -19
  5. package/.prettierrc +0 -49
  6. package/.snyk +0 -13
  7. package/LICENSE.md +0 -260
  8. package/angular.json +0 -274
  9. package/bs-config.json +0 -5
  10. package/cli-module.js.map +0 -1
  11. package/dist/for-angular/cli/cli-module.d.ts +0 -22
  12. package/dist/for-angular/cli/cli-module.d.ts.map +0 -1
  13. package/dist/for-angular/cli/cli-module.js +0 -131
  14. package/dist/for-angular/cli/cli-module.js.map +0 -1
  15. package/dist/lib/README.md +0 -117
  16. package/eslint.config.mjs +0 -101
  17. package/ionic.config.json +0 -14
  18. package/jest.config.ts +0 -52
  19. package/jest.setup.ts +0 -50
  20. package/karma.conf.js +0 -50
  21. package/ng-package.json +0 -17
  22. package/ngsw-config.json +0 -30
  23. package/playwright.config.ts +0 -80
  24. package/resources/favicon.png +0 -0
  25. package/resources/favicon.svg +0 -29
  26. package/resources/icon-background.png +0 -0
  27. package/resources/icon-foreground.png +0 -0
  28. package/resources/icon-only.png +0 -0
  29. package/resources/icon-only.svg +0 -29
  30. package/resources/splash-dark.png +0 -0
  31. package/resources/splash-dark2.png +0 -0
  32. package/resources/splash.png +0 -0
  33. package/resources/splash2.png +0 -0
  34. package/resources/touch-icon.svg +0 -29
  35. package/schematics/README.md +0 -28
  36. package/schematics/collection.json +0 -20
  37. package/schematics/package-lock.json +0 -1501
  38. package/schematics/package.json +0 -37
  39. package/schematics/src/component/files/__name@dasherize@if-flat__/__name@dasherize__.__type@dasherize__.__style__.template +0 -0
  40. package/schematics/src/component/files/__name@dasherize@if-flat__/__name@dasherize__.__type@dasherize__.html.template +0 -3
  41. package/schematics/src/component/files/__name@dasherize@if-flat__/__name@dasherize__.__type@dasherize__.spec.ts.template +0 -40
  42. package/schematics/src/component/files/__name@dasherize@if-flat__/__name@dasherize__.__type@dasherize__.ts.template +0 -37
  43. package/schematics/src/component/files/__name@dasherize@if-flat__/__name@dasherize__.module.ts.template +0 -14
  44. package/schematics/src/component/index.js +0 -146
  45. package/schematics/src/component/schema.js +0 -2
  46. package/schematics/src/component/schema.json +0 -101
  47. package/schematics/src/page/files/__name@dasherize__.page.html.template +0 -15
  48. package/schematics/src/page/files/__name@dasherize__.page.scss.template +0 -0
  49. package/schematics/src/page/files/__name@dasherize__.page.ts.template +0 -19
  50. package/schematics/src/page/index.js +0 -71
  51. package/schematics/src/page/schema.json +0 -87
  52. package/schematics/src/schematics/index.js +0 -11
  53. package/schematics/src/schematics/index_spec.js +0 -13
  54. package/schematics/src/util/ast-util.js +0 -517
  55. package/schematics/src/util/change.js +0 -96
  56. package/schematics/src/util/index.js +0 -14
  57. package/settings.json +0 -112
  58. package/tsconfig.app.json +0 -22
  59. package/tsconfig.cli.json +0 -82
  60. package/tsconfig.lib.json +0 -14
  61. package/tsconfig.lib.prod.json +0 -10
  62. package/tsconfig.spec.json +0 -22
  63. package/webpack.config.js +0 -10
  64. package/workdocs/1-Header.md +0 -5
  65. package/workdocs/2-Badges.md +0 -30
  66. package/workdocs/4-Description.md +0 -4
  67. package/workdocs/5-HowToUse.md +0 -27
  68. package/workdocs/6-Related.md +0 -7
  69. package/workdocs/7-Social.md +0 -5
  70. package/workdocs/99-Footer.md +0 -28
  71. package/workdocs/Readme.md +0 -12
  72. package/workdocs/assets/apple-touch-icon.png +0 -0
  73. package/workdocs/assets/decaf-logo.svg +0 -54
  74. package/workdocs/assets/favicon.png +0 -0
  75. package/workdocs/assets/slogans.json +0 -182
  76. package/workdocs/confluence/.markdown-confluence.template.json +0 -6
  77. package/workdocs/confluence/Angular Module.md +0 -5
  78. package/workdocs/drawings/diagram.drawio +0 -24
  79. package/workdocs/prompts/bulk.md +0 -122
  80. package/workdocs/prompts/code.md +0 -47
  81. package/workdocs/prompts/documentation.md +0 -146
  82. package/workdocs/prompts/uml.md +0 -11
  83. package/workdocs/readme-md.json +0 -6
  84. package/workdocs/reports/CHANGELOG.md +0 -12
  85. package/workdocs/reports/DEPENDENCIES.md +0 -213
  86. package/workdocs/reports/RELEASE_NOTES.md +0 -24
  87. package/workdocs/reports/coverage/.gitkeep +0 -0
  88. package/workdocs/reports/coverage/clover.xml +0 -4107
  89. package/workdocs/reports/coverage/coverage-final.json +0 -76
  90. package/workdocs/reports/coverage/lcov-report/base.css +0 -224
  91. package/workdocs/reports/coverage/lcov-report/block-navigation.js +0 -87
  92. package/workdocs/reports/coverage/lcov-report/favicon.png +0 -0
  93. package/workdocs/reports/coverage/lcov-report/index.html +0 -551
  94. package/workdocs/reports/coverage/lcov-report/prettify.css +0 -1
  95. package/workdocs/reports/coverage/lcov-report/prettify.js +0 -2
  96. package/workdocs/reports/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  97. package/workdocs/reports/coverage/lcov-report/sorter.js +0 -210
  98. package/workdocs/reports/coverage/lcov-report/src/app/models/CategoryModel.ts.html +0 -277
  99. package/workdocs/reports/coverage/lcov-report/src/app/models/DemoModel.ts.html +0 -427
  100. package/workdocs/reports/coverage/lcov-report/src/app/models/UserModel.ts.html +0 -226
  101. package/workdocs/reports/coverage/lcov-report/src/app/models/index.html +0 -146
  102. package/workdocs/reports/coverage/lcov-report/src/cli-module.ts.html +0 -502
  103. package/workdocs/reports/coverage/lcov-report/src/environments/environment.ts.html +0 -166
  104. package/workdocs/reports/coverage/lcov-report/src/environments/index.html +0 -116
  105. package/workdocs/reports/coverage/lcov-report/src/index.html +0 -191
  106. package/workdocs/reports/coverage/lcov-report/src/karma-test.ts.html +0 -121
  107. package/workdocs/reports/coverage/lcov-report/src/lib/components/card/card.component.ts.html +0 -625
  108. package/workdocs/reports/coverage/lcov-report/src/lib/components/card/index.html +0 -116
  109. package/workdocs/reports/coverage/lcov-report/src/lib/components/component-renderer/component-renderer.component.ts.html +0 -772
  110. package/workdocs/reports/coverage/lcov-report/src/lib/components/component-renderer/index.html +0 -116
  111. package/workdocs/reports/coverage/lcov-report/src/lib/components/crud-field/crud-field.component.ts.html +0 -2698
  112. package/workdocs/reports/coverage/lcov-report/src/lib/components/crud-field/index.html +0 -116
  113. package/workdocs/reports/coverage/lcov-report/src/lib/components/crud-form/constants.ts.html +0 -133
  114. package/workdocs/reports/coverage/lcov-report/src/lib/components/crud-form/crud-form.component.ts.html +0 -346
  115. package/workdocs/reports/coverage/lcov-report/src/lib/components/crud-form/index.html +0 -116
  116. package/workdocs/reports/coverage/lcov-report/src/lib/components/empty-state/empty-state.component.ts.html +0 -1264
  117. package/workdocs/reports/coverage/lcov-report/src/lib/components/empty-state/index.html +0 -116
  118. package/workdocs/reports/coverage/lcov-report/src/lib/components/fieldset/fieldset.component.ts.html +0 -2965
  119. package/workdocs/reports/coverage/lcov-report/src/lib/components/fieldset/index.html +0 -116
  120. package/workdocs/reports/coverage/lcov-report/src/lib/components/file-upload/file-upload.component.ts.html +0 -2263
  121. package/workdocs/reports/coverage/lcov-report/src/lib/components/file-upload/index.html +0 -116
  122. package/workdocs/reports/coverage/lcov-report/src/lib/components/filter/filter.component.ts.html +0 -2485
  123. package/workdocs/reports/coverage/lcov-report/src/lib/components/filter/index.html +0 -116
  124. package/workdocs/reports/coverage/lcov-report/src/lib/components/for-angular-components.module.ts.html +0 -259
  125. package/workdocs/reports/coverage/lcov-report/src/lib/components/icon/icon.component.ts.html +0 -358
  126. package/workdocs/reports/coverage/lcov-report/src/lib/components/icon/index.html +0 -116
  127. package/workdocs/reports/coverage/lcov-report/src/lib/components/index.html +0 -131
  128. package/workdocs/reports/coverage/lcov-report/src/lib/components/index.ts.html +0 -181
  129. package/workdocs/reports/coverage/lcov-report/src/lib/components/layout/index.html +0 -116
  130. package/workdocs/reports/coverage/lcov-report/src/lib/components/layout/layout.component.ts.html +0 -943
  131. package/workdocs/reports/coverage/lcov-report/src/lib/components/list/index.html +0 -116
  132. package/workdocs/reports/coverage/lcov-report/src/lib/components/list/list.component.ts.html +0 -4420
  133. package/workdocs/reports/coverage/lcov-report/src/lib/components/list-item/index.html +0 -116
  134. package/workdocs/reports/coverage/lcov-report/src/lib/components/list-item/list-item.component.ts.html +0 -1741
  135. package/workdocs/reports/coverage/lcov-report/src/lib/components/modal/index.html +0 -116
  136. package/workdocs/reports/coverage/lcov-report/src/lib/components/modal/modal.component.ts.html +0 -1984
  137. package/workdocs/reports/coverage/lcov-report/src/lib/components/model-renderer/index.html +0 -116
  138. package/workdocs/reports/coverage/lcov-report/src/lib/components/model-renderer/model-renderer.component.ts.html +0 -373
  139. package/workdocs/reports/coverage/lcov-report/src/lib/components/pagination/index.html +0 -116
  140. package/workdocs/reports/coverage/lcov-report/src/lib/components/pagination/pagination.component.ts.html +0 -1165
  141. package/workdocs/reports/coverage/lcov-report/src/lib/components/searchbar/index.html +0 -116
  142. package/workdocs/reports/coverage/lcov-report/src/lib/components/searchbar/searchbar.component.ts.html +0 -1774
  143. package/workdocs/reports/coverage/lcov-report/src/lib/components/stepped-form/index.html +0 -116
  144. package/workdocs/reports/coverage/lcov-report/src/lib/components/stepped-form/stepped-form.component.ts.html +0 -1219
  145. package/workdocs/reports/coverage/lcov-report/src/lib/components/table/index.html +0 -116
  146. package/workdocs/reports/coverage/lcov-report/src/lib/components/table/table.component.ts.html +0 -1054
  147. package/workdocs/reports/coverage/lcov-report/src/lib/directives/NgxSvgDirective.ts.html +0 -163
  148. package/workdocs/reports/coverage/lcov-report/src/lib/directives/collapsable.directive.ts.html +0 -268
  149. package/workdocs/reports/coverage/lcov-report/src/lib/directives/index.html +0 -131
  150. package/workdocs/reports/coverage/lcov-report/src/lib/directives/index.ts.html +0 -91
  151. package/workdocs/reports/coverage/lcov-report/src/lib/engine/DynamicModule.ts.html +0 -133
  152. package/workdocs/reports/coverage/lcov-report/src/lib/engine/MediaService.ts.html +0 -142
  153. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxBaseComponent.ts.html +0 -2194
  154. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxComponentDirective.ts.html +0 -3430
  155. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxCrudFormField.ts.html +0 -721
  156. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxDecafComponentDirective.ts.html +0 -1864
  157. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxDecafFormFieldDirective.ts.html +0 -952
  158. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxDecafFormService.ts.html +0 -3211
  159. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxEventHandler.ts.html +0 -307
  160. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxFormDirective.ts.html +0 -1366
  161. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxFormFieldDirective.ts.html +0 -1960
  162. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxFormService.ts.html +0 -3004
  163. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxModelPageDirective.ts.html +0 -1672
  164. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxPageDirective.ts.html +0 -748
  165. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxParentComponentDirective.ts.html +0 -775
  166. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxRenderableComponentDirective.ts.html +0 -727
  167. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxRenderingEngine.ts.html +0 -2005
  168. package/workdocs/reports/coverage/lcov-report/src/lib/engine/NgxRepositoryDirective.ts.html +0 -1546
  169. package/workdocs/reports/coverage/lcov-report/src/lib/engine/ValidatorFactory.ts.html +0 -817
  170. package/workdocs/reports/coverage/lcov-report/src/lib/engine/constants.ts.html +0 -1120
  171. package/workdocs/reports/coverage/lcov-report/src/lib/engine/decorators.ts.html +0 -376
  172. package/workdocs/reports/coverage/lcov-report/src/lib/engine/helpers.ts.html +0 -694
  173. package/workdocs/reports/coverage/lcov-report/src/lib/engine/index.html +0 -356
  174. package/workdocs/reports/coverage/lcov-report/src/lib/engine/index.ts.html +0 -160
  175. package/workdocs/reports/coverage/lcov-report/src/lib/engine/overrides.ts.html +0 -502
  176. package/workdocs/reports/coverage/lcov-report/src/lib/for-angular-common.module.ts.html +0 -298
  177. package/workdocs/reports/coverage/lcov-report/src/lib/helpers/index.html +0 -131
  178. package/workdocs/reports/coverage/lcov-report/src/lib/helpers/index.ts.html +0 -121
  179. package/workdocs/reports/coverage/lcov-report/src/lib/helpers/utils.ts.html +0 -1603
  180. package/workdocs/reports/coverage/lcov-report/src/lib/i18n/FakeLoader.ts.html +0 -157
  181. package/workdocs/reports/coverage/lcov-report/src/lib/i18n/Loader.ts.html +0 -826
  182. package/workdocs/reports/coverage/lcov-report/src/lib/i18n/index.html +0 -146
  183. package/workdocs/reports/coverage/lcov-report/src/lib/i18n/index.ts.html +0 -91
  184. package/workdocs/reports/coverage/lcov-report/src/lib/index.html +0 -131
  185. package/workdocs/reports/coverage/lcov-report/src/lib/public-apis.ts.html +0 -157
  186. package/workdocs/reports/coverage/lcov-report/src/lib/services/NgxFormService.ts.html +0 -3460
  187. package/workdocs/reports/coverage/lcov-report/src/lib/services/NgxMediaService.ts.html +0 -1420
  188. package/workdocs/reports/coverage/lcov-report/src/lib/services/NgxRouterService.ts.html +0 -1243
  189. package/workdocs/reports/coverage/lcov-report/src/lib/services/NgxTranslateService.ts.html +0 -214
  190. package/workdocs/reports/coverage/lcov-report/src/lib/services/index.html +0 -176
  191. package/workdocs/reports/coverage/lcov-report/src/lib/services/index.ts.html +0 -91
  192. package/workdocs/reports/coverage/lcov-report/src/lib/utils/DecafFakerRepository.ts.html +0 -571
  193. package/workdocs/reports/coverage/lcov-report/src/lib/utils/helpers.ts.html +0 -1711
  194. package/workdocs/reports/coverage/lcov-report/src/lib/utils/index.html +0 -146
  195. package/workdocs/reports/coverage/lcov-report/src/lib/utils/index.ts.html +0 -124
  196. package/workdocs/reports/coverage/lcov-report/src/main.ts.html +0 -100
  197. package/workdocs/reports/coverage/lcov-report/src/polyfills.ts.html +0 -271
  198. package/workdocs/reports/coverage/lcov-report/src/stories/Configure.stories.ts.html +0 -1156
  199. package/workdocs/reports/coverage/lcov-report/src/stories/button.component.ts.html +0 -229
  200. package/workdocs/reports/coverage/lcov-report/src/stories/button.stories.ts.html +0 -235
  201. package/workdocs/reports/coverage/lcov-report/src/stories/crud-field.stories.ts.html +0 -325
  202. package/workdocs/reports/coverage/lcov-report/src/stories/header.stories.ts.html +0 -181
  203. package/workdocs/reports/coverage/lcov-report/src/stories/index.html +0 -281
  204. package/workdocs/reports/coverage/lcov-report/src/stories/list.stories.ts.html +0 -289
  205. package/workdocs/reports/coverage/lcov-report/src/stories/login.page.stories.ts.html +0 -175
  206. package/workdocs/reports/coverage/lcov-report/src/stories/model-renderer.stories.ts.html +0 -259
  207. package/workdocs/reports/coverage/lcov-report/src/stories/page.component.ts.html +0 -331
  208. package/workdocs/reports/coverage/lcov-report/src/stories/page.stories.ts.html +0 -193
  209. package/workdocs/reports/coverage/lcov-report/src/stories/setup.ts.html +0 -127
  210. package/workdocs/reports/coverage/lcov-report/src/stories/utils.ts.html +0 -247
  211. package/workdocs/reports/coverage/lcov-report/src/tests/index.html +0 -116
  212. package/workdocs/reports/coverage/lcov-report/src/tests/karmaErrorParser.ts.html +0 -190
  213. package/workdocs/reports/coverage/lcov-report/src/typings.d.ts.html +0 -88
  214. package/workdocs/reports/coverage/lcov-report/src/zone-flags.ts.html +0 -103
  215. package/workdocs/reports/coverage/lcov.info +0 -7898
  216. package/workdocs/reports/data/.gitkeep +0 -1
  217. package/workdocs/reports/html/.gitkeep +0 -0
  218. package/workdocs/reports/html/jest-html-reporters-attach/test-report/index.js +0 -3
  219. package/workdocs/reports/html/jest-html-reporters-attach/test-report/result.js +0 -1
  220. package/workdocs/reports/html/test-report.html +0 -1
  221. package/workdocs/reports/images/.gitkeep +0 -1
  222. package/workdocs/reports/jest.coverage.config.ts +0 -43
  223. package/workdocs/reports/junit/junit-report.xml +0 -91
  224. package/workdocs/resources/.gitlock +0 -0
  225. package/workdocs/resources/diagram-Actor.png +0 -0
  226. package/workdocs/resources/diagram-banner.png +0 -0
  227. package/workdocs/resources/diagram.png +0 -0
  228. package/workdocs/tutorials/Contributing.md +0 -64
  229. package/workdocs/tutorials/Documentation.md +0 -340
  230. package/workdocs/tutorials/For Developers.md +0 -337
  231. package/workdocs/uml/diagram.puml +0 -11
  232. package/www/1049.10b030f0de36543b.js +0 -1
  233. package/www/1102.67cedfb3e29f0a05.js +0 -1
  234. package/www/1107.6b592a1672821270.js +0 -1
  235. package/www/1459.cabc18e941afa5d7.js +0 -1
  236. package/www/1577.5221deebe3501e43.js +0 -1
  237. package/www/2075.b6dc4fbb89dd6afc.js +0 -1
  238. package/www/2348.c4cc27dadbec70ec.js +0 -1
  239. package/www/2375.318d0b24ab346271.js +0 -1
  240. package/www/2415.618d6968ffda319c.js +0 -1
  241. package/www/2460.1d97c6f48b898ee2.js +0 -1
  242. package/www/2560.2e7000dcf80b6b2c.js +0 -1
  243. package/www/2585.274d59d52bafc7ed.js +0 -1
  244. package/www/2885.d99b86afd1ff7aa8.js +0 -1
  245. package/www/3162.bbc401f4a5f82460.js +0 -1
  246. package/www/323.f64c512be5c8d797.js +0 -1
  247. package/www/3238.a3e7e8004c6b6667.js +0 -1
  248. package/www/3506.8c03f5589b33a4a6.js +0 -1
  249. package/www/3511.56b7e49bb6c2c936.js +0 -1
  250. package/www/3519.84fbb67dc803f702.js +0 -1
  251. package/www/3675.7ebfdcf145052232.js +0 -1
  252. package/www/3814.765c1794e1be63de.js +0 -1
  253. package/www/3rdpartylicenses.txt +0 -1344
  254. package/www/4171.a974bdbf9c97e4e1.js +0 -1
  255. package/www/4183.41ef1def450a2cc0.js +0 -1
  256. package/www/4406.0b2dd3839b8c1417.js +0 -1
  257. package/www/441.e1031657c7e5f0ff.js +0 -1
  258. package/www/4463.6ad7b857e5f34009.js +0 -1
  259. package/www/4591.42f34534d38b9b31.js +0 -1
  260. package/www/4699.8df8ea9806163d4c.js +0 -1
  261. package/www/5100.ed6483c55a157d67.js +0 -1
  262. package/www/5193.15ea6938534eceb1.js +0 -1
  263. package/www/5197.6733853529768a45.js +0 -1
  264. package/www/5222.8439a641c2c4b1c1.js +0 -1
  265. package/www/5373.d7878f708309f038.js +0 -1
  266. package/www/5467.f0e21031db47308c.js +0 -1
  267. package/www/5712.b08cf436ee8145ce.js +0 -1
  268. package/www/5887.3d038f564e925abb.js +0 -1
  269. package/www/5949.37330f20e95dee79.js +0 -1
  270. package/www/6024.c10cc3d1b341c748.js +0 -1
  271. package/www/6433.360fcff952bde822.js +0 -1
  272. package/www/6499.60169da9869db697.js +0 -1
  273. package/www/6521.fab1f34bfe6b8200.js +0 -1
  274. package/www/6631.eaa711da6e0aeed9.js +0 -1
  275. package/www/6717.9d970c383bb0cf1c.js +0 -1
  276. package/www/6840.7317cd962ab23932.js +0 -1
  277. package/www/7030.d115d82ca7468a4e.js +0 -1
  278. package/www/7076.cce20ed5c79ff305.js +0 -1
  279. package/www/7179.c0545989ce869b3d.js +0 -1
  280. package/www/7240.69aeb484d78eb24d.js +0 -1
  281. package/www/7372.94c62459e34f7303.js +0 -1
  282. package/www/7402.983a5ecff61e9a5d.js +0 -1
  283. package/www/7428.527ac48035a2f915.js +0 -1
  284. package/www/7676.d7db23d350e4b096.js +0 -1
  285. package/www/770.80af87d5eb0075d3.js +0 -1
  286. package/www/7720.0701576cb9966779.js +0 -1
  287. package/www/7927.ee869d0dc478250a.js +0 -1
  288. package/www/8066.894688fbb2e5c832.js +0 -1
  289. package/www/8193.7f09ecd40b6d42c2.js +0 -1
  290. package/www/8255.158098a6302c91c2.js +0 -1
  291. package/www/8314.596c1ccf26b9c93a.js +0 -1
  292. package/www/8357.c5406b92e6933d7a.js +0 -1
  293. package/www/8477.a3ccc11c25a642d3.js +0 -1
  294. package/www/8487.93b6f7465ae1b7ac.js +0 -1
  295. package/www/8584.b77ad478a5a7ac2a.js +0 -1
  296. package/www/8805.a87413652185ff8f.js +0 -1
  297. package/www/8814.b489a78ae8e926c4.js +0 -1
  298. package/www/8970.234b3db1f97528fe.js +0 -1
  299. package/www/9013.c2e6ba17a915bdd6.js +0 -1
  300. package/www/9073.16c4e42482d55a3c.js +0 -1
  301. package/www/9344.7d2d24b194b794e2.js +0 -1
  302. package/www/9364.9a028036dd89e3e7.js +0 -1
  303. package/www/944.7e4317348c48d4f4.js +0 -1
  304. package/www/964.9a979e1c1aad0f5b.js +0 -1
  305. package/www/9657.fbb680ad1064e91a.js +0 -1
  306. package/www/9956.2d00a2153e9a7799.js +0 -1
  307. package/www/9977.068cd5561462bc99.js +0 -1
  308. package/www/assets/i18n/en.json +0 -210
  309. package/www/assets/i18n/ew/en.json +0 -346
  310. package/www/assets/i18n/pt.json +0 -186
  311. package/www/assets/icons/icon-128.webp +0 -0
  312. package/www/assets/icons/icon-192.webp +0 -0
  313. package/www/assets/icons/icon-256.webp +0 -0
  314. package/www/assets/icons/icon-48.webp +0 -0
  315. package/www/assets/icons/icon-512.webp +0 -0
  316. package/www/assets/icons/icon-72.webp +0 -0
  317. package/www/assets/icons/icon-96.webp +0 -0
  318. package/www/assets/images/angular-logo.svg +0 -45
  319. package/www/assets/images/apple-touch-icon.png +0 -0
  320. package/www/assets/images/decaf-logo-black.svg +0 -22
  321. package/www/assets/images/decaf-logo-contrast.svg +0 -54
  322. package/www/assets/images/decaf-logo-white.svg +0 -22
  323. package/www/assets/images/decaf-logo.svg +0 -54
  324. package/www/assets/images/ew/product.txt +0 -1
  325. package/www/assets/images/favicon-contrast.svg +0 -7
  326. package/www/assets/images/favicon.png +0 -0
  327. package/www/assets/images/favicon.svg +0 -29
  328. package/www/assets/images/icons/document.svg +0 -7
  329. package/www/assets/images/icons/edit.svg +0 -1
  330. package/www/assets/images/icons/logout.svg +0 -4
  331. package/www/assets/images/icons/menu-collapse.svg +0 -5
  332. package/www/assets/images/icons/menu.svg +0 -3
  333. package/www/assets/images/icons/moon-stars.svg +0 -5
  334. package/www/assets/images/icons/trash.svg +0 -1
  335. package/www/cli-module.ts +0 -139
  336. package/www/common.e50b5f8708aca9a5.js +0 -1
  337. package/www/index.html +0 -29
  338. package/www/main.7814262e404641fd.js +0 -1
  339. package/www/polyfills.4c1e087fffe784e8.js +0 -1
  340. package/www/runtime.e81aa7ecff7177cd.js +0 -1
  341. package/www/styles.5a3cd83eba16afc9.css +0 -4
  342. package/www/tabler-icons.bfabe54eef86ae62.woff +0 -0
  343. package/www/tabler-icons.d9f65ab9439b4ffc.ttf +0 -0
  344. package/www/tabler-icons.f17d2c3b34a5deaa.woff2 +0 -0
  345. /package/{dist/lib/assets → assets}/i18n/en.json +0 -0
  346. /package/{dist/lib/assets → assets}/i18n/ew/en.json +0 -0
  347. /package/{dist/lib/assets → assets}/i18n/pt.json +0 -0
  348. /package/{dist/lib/assets → assets}/icons/icon-128.webp +0 -0
  349. /package/{dist/lib/assets → assets}/icons/icon-192.webp +0 -0
  350. /package/{dist/lib/assets → assets}/icons/icon-256.webp +0 -0
  351. /package/{dist/lib/assets → assets}/icons/icon-48.webp +0 -0
  352. /package/{dist/lib/assets → assets}/icons/icon-512.webp +0 -0
  353. /package/{dist/lib/assets → assets}/icons/icon-72.webp +0 -0
  354. /package/{dist/lib/assets → assets}/icons/icon-96.webp +0 -0
  355. /package/{dist/lib/assets → assets}/images/angular-logo.svg +0 -0
  356. /package/{dist/lib/assets → assets}/images/apple-touch-icon.png +0 -0
  357. /package/{dist/lib/assets → assets}/images/decaf-logo-black.svg +0 -0
  358. /package/{dist/lib/assets → assets}/images/decaf-logo-contrast.svg +0 -0
  359. /package/{dist/lib/assets → assets}/images/decaf-logo-white.svg +0 -0
  360. /package/{dist/lib/assets → assets}/images/decaf-logo.svg +0 -0
  361. /package/{dist/lib/assets → assets}/images/ew/product.txt +0 -0
  362. /package/{dist/lib/assets → assets}/images/favicon-contrast.svg +0 -0
  363. /package/{dist/lib/assets → assets}/images/favicon.png +0 -0
  364. /package/{dist/lib/assets → assets}/images/favicon.svg +0 -0
  365. /package/{dist/lib/assets → assets}/images/icons/document.svg +0 -0
  366. /package/{dist/lib/assets → assets}/images/icons/edit.svg +0 -0
  367. /package/{dist/lib/assets → assets}/images/icons/logout.svg +0 -0
  368. /package/{dist/lib/assets → assets}/images/icons/menu-collapse.svg +0 -0
  369. /package/{dist/lib/assets → assets}/images/icons/menu.svg +0 -0
  370. /package/{dist/lib/assets → assets}/images/icons/moon-stars.svg +0 -0
  371. /package/{dist/lib/assets → assets}/images/icons/trash.svg +0 -0
  372. /package/{dist/lib/fesm2022 → fesm2022}/decaf-ts-for-angular.mjs +0 -0
  373. /package/{dist/lib/fesm2022 → fesm2022}/decaf-ts-for-angular.mjs.map +0 -0
  374. /package/{dist/lib/index.d.ts → index.d.ts} +0 -0
@@ -1,1603 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for src/lib/helpers/utils.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/helpers</a> utils.ts</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">30.7% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>39/127</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">5.4% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>4/74</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">22.22% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>6/27</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">31.14% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>38/122</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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
573
- <span class="cline-any cline-neutral">&nbsp;</span>
574
- <span class="cline-any cline-neutral">&nbsp;</span>
575
- <span class="cline-any cline-neutral">&nbsp;</span>
576
- <span class="cline-any cline-neutral">&nbsp;</span>
577
- <span class="cline-any cline-neutral">&nbsp;</span>
578
- <span class="cline-any cline-neutral">&nbsp;</span>
579
- <span class="cline-any cline-neutral">&nbsp;</span>
580
- <span class="cline-any cline-neutral">&nbsp;</span>
581
- <span class="cline-any cline-neutral">&nbsp;</span>
582
- <span class="cline-any cline-neutral">&nbsp;</span>
583
- <span class="cline-any cline-neutral">&nbsp;</span>
584
- <span class="cline-any cline-yes">11x</span>
585
- <span class="cline-any cline-yes">11x</span>
586
- <span class="cline-any cline-yes">11x</span>
587
- <span class="cline-any cline-neutral">&nbsp;</span>
588
- <span class="cline-any cline-neutral">&nbsp;</span>
589
- <span class="cline-any cline-yes">11x</span>
590
- <span class="cline-any cline-neutral">&nbsp;</span>
591
- <span class="cline-any cline-neutral">&nbsp;</span>
592
- <span class="cline-any cline-neutral">&nbsp;</span>
593
- <span class="cline-any cline-neutral">&nbsp;</span>
594
- <span class="cline-any cline-neutral">&nbsp;</span>
595
- <span class="cline-any cline-neutral">&nbsp;</span>
596
- <span class="cline-any cline-neutral">&nbsp;</span>
597
- <span class="cline-any cline-neutral">&nbsp;</span>
598
- <span class="cline-any cline-neutral">&nbsp;</span>
599
- <span class="cline-any cline-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-neutral">&nbsp;</span>
605
- <span class="cline-any cline-yes">11x</span>
606
- <span class="cline-any cline-no">&nbsp;</span>
607
- <span class="cline-any cline-no">&nbsp;</span>
608
- <span class="cline-any cline-no">&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-yes">11x</span>
625
- <span class="cline-any cline-no">&nbsp;</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-no">&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-neutral">&nbsp;</span>
644
- <span class="cline-any cline-neutral">&nbsp;</span>
645
- <span class="cline-any cline-neutral">&nbsp;</span>
646
- <span class="cline-any cline-neutral">&nbsp;</span>
647
- <span class="cline-any cline-neutral">&nbsp;</span>
648
- <span class="cline-any cline-neutral">&nbsp;</span>
649
- <span class="cline-any cline-yes">11x</span>
650
- <span class="cline-any cline-neutral">&nbsp;</span>
651
- <span class="cline-any cline-neutral">&nbsp;</span>
652
- <span class="cline-any cline-neutral">&nbsp;</span>
653
- <span class="cline-any cline-neutral">&nbsp;</span>
654
- <span class="cline-any cline-no">&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-no">&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-neutral">&nbsp;</span>
670
- <span class="cline-any cline-neutral">&nbsp;</span>
671
- <span class="cline-any cline-neutral">&nbsp;</span>
672
- <span class="cline-any cline-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-yes">11x</span>
679
- <span class="cline-any cline-no">&nbsp;</span>
680
- <span class="cline-any cline-no">&nbsp;</span>
681
- <span class="cline-any cline-neutral">&nbsp;</span>
682
- <span class="cline-any cline-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-neutral">&nbsp;</span>
695
- <span class="cline-any cline-yes">11x</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-neutral">&nbsp;</span>
711
- <span class="cline-any cline-neutral">&nbsp;</span>
712
- <span class="cline-any cline-yes">11x</span>
713
- <span class="cline-any cline-yes">2x</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-neutral">&nbsp;</span>
728
- <span class="cline-any cline-neutral">&nbsp;</span>
729
- <span class="cline-any cline-neutral">&nbsp;</span>
730
- <span class="cline-any cline-yes">11x</span>
731
- <span class="cline-any cline-no">&nbsp;</span>
732
- <span class="cline-any cline-neutral">&nbsp;</span>
733
- <span class="cline-any cline-neutral">&nbsp;</span>
734
- <span class="cline-any cline-neutral">&nbsp;</span>
735
- <span class="cline-any cline-neutral">&nbsp;</span>
736
- <span class="cline-any cline-neutral">&nbsp;</span>
737
- <span class="cline-any cline-neutral">&nbsp;</span>
738
- <span class="cline-any cline-neutral">&nbsp;</span>
739
- <span class="cline-any cline-neutral">&nbsp;</span>
740
- <span class="cline-any cline-neutral">&nbsp;</span>
741
- <span class="cline-any cline-neutral">&nbsp;</span>
742
- <span class="cline-any cline-neutral">&nbsp;</span>
743
- <span class="cline-any cline-neutral">&nbsp;</span>
744
- <span class="cline-any cline-neutral">&nbsp;</span>
745
- <span class="cline-any cline-neutral">&nbsp;</span>
746
- <span class="cline-any cline-yes">11x</span>
747
- <span class="cline-any cline-yes">2x</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">11x</span>
762
- <span class="cline-any cline-yes">2x</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-neutral">&nbsp;</span>
777
- <span class="cline-any cline-yes">11x</span>
778
- <span class="cline-any cline-no">&nbsp;</span>
779
- <span class="cline-any cline-neutral">&nbsp;</span>
780
- <span class="cline-any cline-neutral">&nbsp;</span>
781
- <span class="cline-any cline-neutral">&nbsp;</span>
782
- <span class="cline-any cline-neutral">&nbsp;</span>
783
- <span class="cline-any cline-neutral">&nbsp;</span>
784
- <span class="cline-any cline-neutral">&nbsp;</span>
785
- <span class="cline-any cline-neutral">&nbsp;</span>
786
- <span class="cline-any cline-neutral">&nbsp;</span>
787
- <span class="cline-any cline-neutral">&nbsp;</span>
788
- <span class="cline-any cline-neutral">&nbsp;</span>
789
- <span class="cline-any cline-neutral">&nbsp;</span>
790
- <span class="cline-any cline-neutral">&nbsp;</span>
791
- <span class="cline-any cline-neutral">&nbsp;</span>
792
- <span class="cline-any cline-neutral">&nbsp;</span>
793
- <span class="cline-any cline-neutral">&nbsp;</span>
794
- <span class="cline-any cline-neutral">&nbsp;</span>
795
- <span class="cline-any cline-neutral">&nbsp;</span>
796
- <span class="cline-any cline-neutral">&nbsp;</span>
797
- <span class="cline-any cline-yes">11x</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-no">&nbsp;</span>
802
- <span class="cline-any cline-no">&nbsp;</span>
803
- <span class="cline-any cline-neutral">&nbsp;</span>
804
- <span class="cline-any cline-no">&nbsp;</span>
805
- <span class="cline-any cline-neutral">&nbsp;</span>
806
- <span class="cline-any cline-no">&nbsp;</span>
807
- <span class="cline-any cline-no">&nbsp;</span>
808
- <span class="cline-any cline-neutral">&nbsp;</span>
809
- <span class="cline-any cline-no">&nbsp;</span>
810
- <span class="cline-any cline-no">&nbsp;</span>
811
- <span class="cline-any cline-no">&nbsp;</span>
812
- <span class="cline-any cline-neutral">&nbsp;</span>
813
- <span class="cline-any cline-neutral">&nbsp;</span>
814
- <span class="cline-any cline-no">&nbsp;</span>
815
- <span class="cline-any cline-no">&nbsp;</span>
816
- <span class="cline-any cline-neutral">&nbsp;</span>
817
- <span class="cline-any cline-no">&nbsp;</span>
818
- <span class="cline-any cline-no">&nbsp;</span>
819
- <span class="cline-any cline-no">&nbsp;</span>
820
- <span class="cline-any cline-no">&nbsp;</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-neutral">&nbsp;</span>
824
- <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
829
- <span class="cline-any cline-neutral">&nbsp;</span>
830
- <span class="cline-any cline-neutral">&nbsp;</span>
831
- <span class="cline-any cline-neutral">&nbsp;</span>
832
- <span class="cline-any cline-neutral">&nbsp;</span>
833
- <span class="cline-any cline-neutral">&nbsp;</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-yes">11x</span>
837
- <span class="cline-any cline-no">&nbsp;</span>
838
- <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
848
- <span class="cline-any cline-neutral">&nbsp;</span>
849
- <span class="cline-any cline-neutral">&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-yes">11x</span>
859
- <span class="cline-any cline-yes">45x</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-yes">45x</span>
863
- <span class="cline-any cline-yes">45x</span>
864
- <span class="cline-any cline-yes">644x</span>
865
- <span class="cline-any cline-neutral">&nbsp;</span>
866
- <span class="cline-any cline-yes">45x</span>
867
- <span class="cline-any cline-neutral">&nbsp;</span>
868
- <span class="cline-any cline-neutral">&nbsp;</span>
869
- <span class="cline-any cline-neutral">&nbsp;</span>
870
- <span class="cline-any cline-neutral">&nbsp;</span>
871
- <span class="cline-any cline-neutral">&nbsp;</span>
872
- <span class="cline-any cline-neutral">&nbsp;</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-yes">11x</span>
878
- <span class="cline-any cline-yes">13x</span>
879
- <span class="cline-any cline-no">&nbsp;</span>
880
- <span class="cline-any cline-yes">13x</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-neutral">&nbsp;</span>
889
- <span class="cline-any cline-neutral">&nbsp;</span>
890
- <span class="cline-any cline-yes">11x</span>
891
- <span class="cline-any cline-no">&nbsp;</span>
892
- <span class="cline-any cline-no">&nbsp;</span>
893
- <span class="cline-any cline-no">&nbsp;</span>
894
- <span class="cline-any cline-no">&nbsp;</span>
895
- <span class="cline-any cline-no">&nbsp;</span>
896
- <span class="cline-any cline-neutral">&nbsp;</span>
897
- <span class="cline-any cline-no">&nbsp;</span>
898
- <span class="cline-any cline-no">&nbsp;</span>
899
- <span class="cline-any cline-no">&nbsp;</span>
900
- <span class="cline-any cline-neutral">&nbsp;</span>
901
- <span class="cline-any cline-no">&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-no">&nbsp;</span>
905
- <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
910
- <span class="cline-any cline-neutral">&nbsp;</span>
911
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
915
- <span class="cline-any cline-neutral">&nbsp;</span>
916
- <span class="cline-any cline-neutral">&nbsp;</span>
917
- <span class="cline-any cline-yes">11x</span>
918
- <span class="cline-any cline-neutral">&nbsp;</span>
919
- <span class="cline-any cline-no">&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-no">&nbsp;</span>
923
- <span class="cline-any cline-no">&nbsp;</span>
924
- <span class="cline-any cline-neutral">&nbsp;</span>
925
- <span class="cline-any cline-no">&nbsp;</span>
926
- <span class="cline-any cline-no">&nbsp;</span>
927
- <span class="cline-any cline-no">&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-no">&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-yes">11x</span>
946
- <span class="cline-any cline-no">&nbsp;</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-no">&nbsp;</span>
953
- <span class="cline-any cline-no">&nbsp;</span>
954
- <span class="cline-any cline-no">&nbsp;</span>
955
- <span class="cline-any cline-no">&nbsp;</span>
956
- <span class="cline-any cline-neutral">&nbsp;</span>
957
- <span class="cline-any cline-no">&nbsp;</span>
958
- <span class="cline-any cline-no">&nbsp;</span>
959
- <span class="cline-any cline-no">&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-no">&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-yes">11x</span>
976
- <span class="cline-any cline-no">&nbsp;</span>
977
- <span class="cline-any cline-no">&nbsp;</span>
978
- <span class="cline-any cline-no">&nbsp;</span>
979
- <span class="cline-any cline-no">&nbsp;</span>
980
- <span class="cline-any cline-neutral">&nbsp;</span>
981
- <span class="cline-any cline-no">&nbsp;</span>
982
- <span class="cline-any cline-no">&nbsp;</span>
983
- <span class="cline-any cline-neutral">&nbsp;</span>
984
- <span class="cline-any cline-neutral">&nbsp;</span>
985
- <span class="cline-any cline-neutral">&nbsp;</span>
986
- <span class="cline-any cline-no">&nbsp;</span>
987
- <span class="cline-any cline-no">&nbsp;</span>
988
- <span class="cline-any cline-neutral">&nbsp;</span>
989
- <span class="cline-any cline-neutral">&nbsp;</span>
990
- <span class="cline-any cline-neutral">&nbsp;</span>
991
- <span class="cline-any cline-no">&nbsp;</span>
992
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
996
- <span class="cline-any cline-no">&nbsp;</span>
997
- <span class="cline-any cline-neutral">&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-neutral">&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-yes">11x</span>
1012
- <span class="cline-any cline-no">&nbsp;</span>
1013
- <span class="cline-any cline-no">&nbsp;</span>
1014
- <span class="cline-any cline-no">&nbsp;</span>
1015
- <span class="cline-any cline-neutral">&nbsp;</span>
1016
- <span class="cline-any cline-no">&nbsp;</span>
1017
- <span class="cline-any cline-neutral">&nbsp;</span>
1018
- <span class="cline-any cline-no">&nbsp;</span>
1019
- <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
1024
- <span class="cline-any cline-neutral">&nbsp;</span>
1025
- <span class="cline-any cline-neutral">&nbsp;</span>
1026
- <span class="cline-any cline-neutral">&nbsp;</span>
1027
- <span class="cline-any cline-neutral">&nbsp;</span>
1028
- <span class="cline-any cline-neutral">&nbsp;</span>
1029
- <span class="cline-any cline-neutral">&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-yes">11x</span>
1037
- <span class="cline-any cline-no">&nbsp;</span>
1038
- <span class="cline-any cline-no">&nbsp;</span>
1039
- <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
1047
- <span class="cline-any cline-neutral">&nbsp;</span>
1048
- <span class="cline-any cline-neutral">&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-yes">11x</span>
1057
- <span class="cline-any cline-yes">4x</span>
1058
- <span class="cline-any cline-yes">4x</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-neutral">&nbsp;</span>
1066
- <span class="cline-any cline-neutral">&nbsp;</span>
1067
- <span class="cline-any cline-neutral">&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-yes">11x</span>
1075
- <span class="cline-any cline-no">&nbsp;</span>
1076
- <span class="cline-any cline-no">&nbsp;</span>
1077
- <span class="cline-any cline-neutral">&nbsp;</span>
1078
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">/**
1079
- * @module module:lib/helpers/utils
1080
- * @description General helper utilities used across the library.
1081
- * @summary Exposes small, reusable utility functions for window/document access, date handling,
1082
- * string manipulation, simple mapping helpers and environment helpers used by UI components
1083
- * and services. This module's functions include `getWindow`, `getWindowDocument`, `formatDate`,
1084
- * `isValidDate`, `itemMapper`, `dataMapper`, and event helpers like `windowEventEmitter`.
1085
- *
1086
- * Do not document individual exports here — functions are documented inline.
1087
- * @link {@link getWindow}
1088
- */
1089
- &nbsp;
1090
- import { isDevMode } from '@angular/core';
1091
- import { InjectableRegistryImp, InjectablesRegistry } from '@decaf-ts/injectable-decorators';
1092
- import { Primitives } from '@decaf-ts/decorator-validation';
1093
- import { KeyValue, StringOrBoolean, } from '../engine/types';
1094
- import { FunctionLike } from '../engine/types';
1095
- import { getLogger } from '../for-angular-common.module';
1096
- &nbsp;
1097
- let injectableRegistry: InjectablesRegistry;
1098
- &nbsp;
1099
- /**
1100
- * @description Retrieves the singleton instance of the injectables registry
1101
- * @summary This function implements the singleton pattern for the InjectablesRegistry.
1102
- * It returns the existing registry instance if one exists, or creates a new instance
1103
- * if none exists. The registry is used to store and retrieve injectable dependencies
1104
- * throughout the application.
1105
- *
1106
- * @return {InjectablesRegistry} The singleton injectables registry instance
1107
- *
1108
- * @function getInjectablesRegistry
1109
- * @memberOf module:for-angular
1110
- */
1111
- export function <span class="fstat-no" title="function not covered" >getInjectablesRegistry(</span>): InjectablesRegistry {
1112
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!injectableRegistry)</span>
1113
- <span class="cstat-no" title="statement not covered" > injectableRegistry = new InjectableRegistryImp();</span>
1114
- <span class="cstat-no" title="statement not covered" > return injectableRegistry;</span>
1115
- }
1116
- &nbsp;
1117
- /**
1118
- * @description Determines if the application is running in development mode
1119
- * @summary This function checks whether the application is currently running in a development
1120
- * environment. It uses Angular's isDevMode() function and also checks the window context
1121
- * and hostname against the provided context parameter. This is useful for enabling
1122
- * development-specific features or logging.
1123
- *
1124
- * @param {string} [context='localhost'] - The context string to check against the current environment
1125
- * @return {boolean} True if the application is running in development mode, false otherwise
1126
- *
1127
- * @function isDevelopmentMode
1128
- * @memberOf module:for-angular
1129
- */
1130
- 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 {
1131
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!context)</span>
1132
- <span class="cstat-no" title="statement not covered" > return isDevMode();</span>
1133
- const win = <span class="cstat-no" title="statement not covered" >getWindow();</span>
1134
- <span class="cstat-no" title="statement not covered" > return (</span>
1135
- isDevMode() ||
1136
- win?.['env']?.['CONTEXT'].toLowerCase() !== context.toLowerCase() ||
1137
- win?.['location']?.hostname?.includes(context)
1138
- );
1139
- }
1140
- &nbsp;
1141
- /**
1142
- * @description Dispatches a custom event to the document window
1143
- * @summary This function creates and dispatches a custom event to the browser window.
1144
- * It's useful for cross-component communication or for triggering application-wide events.
1145
- * The function allows specifying the event name, detail data, and additional event properties.
1146
- *
1147
- * @param {string} name - The name of the custom event to dispatch
1148
- * @param {unknown} detail - The data to include in the event's detail property
1149
- * @param {object} [props] - Optional additional properties for the custom event
1150
- * @return {void}
1151
- *
1152
- * @function windowEventEmitter
1153
- * @memberOf module:for-angular
1154
- */
1155
- export function <span class="fstat-no" title="function not covered" >windowEventEmitter(</span>
1156
- name: string,
1157
- detail: unknown,
1158
- props?: object
1159
- ): void {
1160
- const data = <span class="cstat-no" title="statement not covered" >Object.assign(</span>
1161
- {
1162
- bubbles: true,
1163
- composed: true,
1164
- cancelable: false,
1165
- detail: detail,
1166
- },
1167
- props || {}
1168
- );
1169
- (<span class="cstat-no" title="statement not covered" >getWindow() as Window).dispatchEvent(new CustomEvent(name, data));</span>
1170
- }
1171
- /**
1172
- * @description Retrieves a property from the window's document object
1173
- * @summary This function provides a safe way to access properties on the window's document object.
1174
- * It uses the getWindowDocument function to get a reference to the document, then accesses
1175
- * the specified property. This is useful for browser environment interactions that need
1176
- * to access document properties.
1177
- *
1178
- * @param {string} key - The name of the property to retrieve from the document object
1179
- * @return {any} The value of the specified property, or undefined if the document or property doesn't exist
1180
- *
1181
- * @function getOnWindowDocument
1182
- * @memberOf module:for-angular
1183
- */
1184
- export function <span class="fstat-no" title="function not covered" >getOnWindowDocument(</span>key: string): Document | undefined {
1185
- const doc = <span class="cstat-no" title="statement not covered" >getWindowDocument()?.[key as keyof Document];</span>
1186
- <span class="cstat-no" title="statement not covered" > return doc instanceof Document ?</span>
1187
- doc : undefined;
1188
- }
1189
- &nbsp;
1190
- /**
1191
- * @description Retrieves the document object from the window
1192
- * @summary This function provides a safe way to access the document object from the window.
1193
- * It uses the getOnWindow function to retrieve the 'document' property from the window object.
1194
- * This is useful for browser environment interactions that need access to the document.
1195
- *
1196
- * @return {Document | undefined} The window's document object, or undefined if it doesn't exist
1197
- *
1198
- * @function getWindowDocument
1199
- * @memberOf module:for-angular
1200
- */
1201
- export function <span class="fstat-no" title="function not covered" >getWindowDocument(</span>): Document | undefined {
1202
- <span class="cstat-no" title="statement not covered" > return getOnWindow('document') as Document;</span>
1203
- }
1204
- &nbsp;
1205
- /**
1206
- * @description Retrieves a property from the window object
1207
- * @summary This function provides a safe way to access properties on the window object.
1208
- * It uses the getWindow function to get a reference to the window, then accesses
1209
- * the specified property. This is useful for browser environment interactions that need
1210
- * to access window properties or APIs.
1211
- *
1212
- * @param {string} key - The name of the property to retrieve from the window object
1213
- * @return {unknown | undefined} The value of the specified property, or undefined if the window or property doesn't exist
1214
- *
1215
- * @function getOnWindow
1216
- * @memberOf module:for-angular
1217
- */
1218
- export function getOnWindow(key: string): unknown | undefined {
1219
- return getWindow()?.[key];
1220
- }
1221
- &nbsp;
1222
- /**
1223
- * @description Sets a property on the window object
1224
- * @summary This function provides a way to set properties on the window object.
1225
- * It uses the getWindow function to get a reference to the window, then sets
1226
- * the specified property to the provided value. This is useful for storing
1227
- * global data or functions that need to be accessible across the application.
1228
- *
1229
- * @param {string} key - The name of the property to set on the window object
1230
- * @param {any} value - The value to assign to the property
1231
- * @return {void}
1232
- *
1233
- * @function setOnWindow
1234
- * @memberOf module:for-angular
1235
- */
1236
- export function <span class="fstat-no" title="function not covered" >setOnWindow(</span>key: string, value: unknown): void {
1237
- <span class="cstat-no" title="statement not covered" > getWindow()[key] = value;</span>
1238
- }
1239
- &nbsp;
1240
- /**
1241
- * @description Retrieves the global window object
1242
- * @summary This function provides a safe way to access the global window object.
1243
- * It uses globalThis to ensure compatibility across different JavaScript environments.
1244
- * This is the core function used by other window-related utility functions to
1245
- * access the window object.
1246
- *
1247
- * @return {Window} The global window object
1248
- *
1249
- * @function getWindow
1250
- * @memberOf module:for-angular
1251
- */
1252
- export function getWindow(): Window &amp; KeyValue {
1253
- return (globalThis as KeyValue)?.['window'] as Window &amp; KeyValue;
1254
- }
1255
- &nbsp;
1256
- /**
1257
- * @description Retrieves the width of the browser window
1258
- * @summary This function provides a convenient way to get the current width of the browser window.
1259
- * It uses the getOnWindow function to access the 'innerWidth' property of the window object.
1260
- * This is useful for responsive design implementations and viewport-based calculations.
1261
- *
1262
- * @return {number | undefined} The current width of the browser window in pixels
1263
- *
1264
- * @function getWindowWidth
1265
- * @memberOf module:for-angular
1266
- */
1267
- export function getWindowWidth(): number {
1268
- return getOnWindow('innerWidth') as number || <span class="branch-1 cbranch-no" title="branch not covered" >0;</span>
1269
- }
1270
- &nbsp;
1271
- /**
1272
- * @description Checks if a value is not undefined
1273
- * @summary This utility function determines whether a given value is not undefined.
1274
- * It's a simple wrapper that makes code more readable when checking for defined values.
1275
- * The function is particularly useful for checking StringOrBoolean properties that might be undefined.
1276
- *
1277
- * @param {StringOrBoolean | undefined} prop - The property to check
1278
- * @return {boolean} True if the property is not undefined, false otherwise
1279
- *
1280
- * @function isNotUndefined
1281
- * @memberOf module:for-angular
1282
- */
1283
- export function <span class="fstat-no" title="function not covered" >isNotUndefined(</span>prop: StringOrBoolean | undefined): boolean {
1284
- <span class="cstat-no" title="statement not covered" > return (prop !== undefined) as boolean;</span>
1285
- }
1286
- &nbsp;
1287
- /**
1288
- * @description Generates a locale string from a class name or instance
1289
- * @summary This utility function converts a class name or instance into a locale string
1290
- * that can be used for internationalization purposes. It handles different input types
1291
- * (string, function, or object) and applies formatting rules to generate a consistent
1292
- * locale identifier. For short names (less than 3 parts), it reverses the dot-separated
1293
- * string. For longer names, it uses the last part as a prefix and joins the rest with
1294
- * underscores.
1295
- *
1296
- * @param {string|FunctionLike|object} instance - The input to generate the locale from (class name, constructor, or instance)
1297
- * @param {string} [suffix] - Optional string to append to the instance name before processing
1298
- * @return {string} A formatted locale string derived from the input
1299
- *
1300
- * @function getLocaleFromClassName
1301
- * @memberOf module:for-angular
1302
- */
1303
- export function <span class="fstat-no" title="function not covered" >getLocaleFromClassName(</span>
1304
- instance: string | FunctionLike | KeyValue,
1305
- suffix?: string
1306
- ): string {
1307
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (typeof instance !== Primitives.STRING)</span>
1308
- <span class="cstat-no" title="statement not covered" > instance = (instance as FunctionLike).name || (instance as object)?.constructor?.name;</span>
1309
- &nbsp;
1310
- let name: string | string[] = <span class="cstat-no" title="statement not covered" >instance as string;</span>
1311
- &nbsp;
1312
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (suffix)</span>
1313
- <span class="cstat-no" title="statement not covered" > name = `${instance}${suffix.charAt(0).toUpperCase() + suffix.slice(1)}`;</span>
1314
- &nbsp;
1315
- <span class="cstat-no" title="statement not covered" > name = name.replace(/_|-/g, '').replace(/(?:^\w|[A-Z]|\b\w)/g, <span class="fstat-no" title="function not covered" >(w</span>ord: string, index: number) =&gt; {</span>
1316
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (index &gt; 1) <span class="cstat-no" title="statement not covered" >word = '.' + word;</span></span>
1317
- <span class="cstat-no" title="statement not covered" > return word.toLowerCase();</span>
1318
- }).split('.');
1319
- &nbsp;
1320
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (name.length &lt; 3)</span>
1321
- <span class="cstat-no" title="statement not covered" > return name.reverse().join('.');</span>
1322
- &nbsp;
1323
- const preffix = <span class="cstat-no" title="statement not covered" >name[name.length - 1];</span>
1324
- <span class="cstat-no" title="statement not covered" > name.pop();</span>
1325
- <span class="cstat-no" title="statement not covered" > name = name.join('_');</span>
1326
- <span class="cstat-no" title="statement not covered" > return `${preffix}.${name}`;</span>
1327
- }
1328
- &nbsp;
1329
- &nbsp;
1330
- &nbsp;
1331
- /**
1332
- * @description Retrieves the current locale language
1333
- * @summary This utility function gets the current locale language based on the user's browser settings.
1334
- * It provides a consistent way to access the user's language preference throughout the application.
1335
- * The function returns the browser's navigator.language value, defaulting to 'en' if not available.
1336
- *
1337
- * @return {string} The current locale language (e.g., 'en', 'fr')
1338
- *
1339
- * @function getLocaleLanguage
1340
- * @memberOf module:for-angular
1341
- */
1342
- export function <span class="fstat-no" title="function not covered" >getLocaleLanguage(</span>): string {
1343
- const win = <span class="cstat-no" title="statement not covered" >getWindow();</span>
1344
- <span class="cstat-no" title="statement not covered" > return (win as Window).navigator.language || "en";</span>
1345
- // return win?.[WINDOW_KEYS.LANGUAGE_SELECTED] || (win.navigator.language || '').split('-')[0] || "en";
1346
- }
1347
- &nbsp;
1348
- &nbsp;
1349
- &nbsp;
1350
- /**
1351
- * @description Generates a random string or number of specified length
1352
- * @summary This utility function creates a random string of a specified length.
1353
- * It can generate either alphanumeric strings (including uppercase and lowercase letters)
1354
- * or numeric-only strings. This is useful for creating random IDs, temporary passwords,
1355
- * or other random identifiers throughout the application.
1356
- *
1357
- * @param {number} [length=8] - The length of the random value to generate
1358
- * @param {boolean} [onlyNumbers=false] - Whether to generate only numeric characters
1359
- * @return {string} A randomly generated string of the specified length and character set
1360
- *
1361
- * @function generateRandomValue
1362
- * @memberOf module:for-angular
1363
- */
1364
- export function generateRandomValue(length: number = <span class="branch-0 cbranch-no" title="branch not covered" >8,</span> onlyNumbers: boolean = false): string {
1365
- const chars = onlyNumbers
1366
- ? <span class="branch-0 cbranch-no" title="branch not covered" >'0123456789'</span>
1367
- : 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
1368
- let result = '';
1369
- for (let i = 0; i &lt; length; i++)
1370
- result += chars.charAt(Math.floor(Math.random() * chars.length));
1371
- &nbsp;
1372
- return result;
1373
- }
1374
- &nbsp;
1375
- &nbsp;
1376
- /**
1377
- * Converts a string representation of a boolean or a boolean value to a boolean type.
1378
- *
1379
- * @export
1380
- * @param {('true' | 'false' | boolean)} prop - The value to convert. Can be the string 'true', 'false', or a boolean.
1381
- * @returns {boolean} The boolean representation of the input value. Returns true if the input is the string 'true' or boolean true, false otherwise.
1382
- */
1383
- export function stringToBoolean(prop: 'true' | 'false' | boolean): boolean {
1384
- <span class="missing-if-branch" title="if path not taken" >I</span>if(typeof prop === 'string')
1385
- <span class="cstat-no" title="statement not covered" > prop = prop.toLowerCase() === 'true' ? true : false;</span>
1386
- return prop;
1387
- }
1388
- &nbsp;
1389
- &nbsp;
1390
- /**
1391
- * Checks if a value is a valid Date object
1392
- *
1393
- * @param {(string | Date | number)} date - The value to check. Can be a Date object, a timestamp number, or a date string
1394
- * @return {boolean} Returns true if the value is a valid Date object (not NaN), otherwise false
1395
- */
1396
- export function <span class="fstat-no" title="function not covered" >isValidDate(</span>date: string | Date | number): boolean {
1397
- <span class="cstat-no" title="statement not covered" > try {</span>
1398
- <span class="cstat-no" title="statement not covered" > return (date instanceof Date &amp;&amp; !isNaN(date as unknown as number)) || (<span class="fstat-no" title="function not covered" >() =</span>&gt; {</span>
1399
- const testRegex = <span class="cstat-no" title="statement not covered" >new RegExp(/^\d{4}-\d{2}-\d{2}$/).test(date as string)</span>
1400
- <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>
1401
- <span class="cstat-no" title="statement not covered" > return false;</span>
1402
- &nbsp;
1403
- <span class="cstat-no" title="statement not covered" > date = (date as string).split('T')[0];</span>
1404
- <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>
1405
- <span class="cstat-no" title="statement not covered" > return false;</span>
1406
- &nbsp;
1407
- <span class="cstat-no" title="statement not covered" > return !!(new Date(date));</span>
1408
- })();
1409
- } catch(error: unknown) {
1410
- <span class="cstat-no" title="statement not covered" > getLogger(isValidDate).error(error as Error | string);</span>
1411
- <span class="cstat-no" title="statement not covered" > return false;</span>
1412
- }
1413
- }
1414
- &nbsp;
1415
- /**
1416
- * Formats a date into a localized string representation
1417
- *
1418
- * @param {(string | Date | number)} date - The date to format. Can be a Date object, a timestamp number, or a date string
1419
- * @param {string} [locale] - The locale to use for formatting. If not provided, the system's locale will be used
1420
- * @return {(Date | string)} A formatted date string in the format DD/MM/YYYY according to the specified locale,
1421
- * or the original input as a string if the date is invalid
1422
- */
1423
- export function <span class="fstat-no" title="function not covered" >formatDate(</span>date: string | Date | number, locale?: string | undefined): Date | string {
1424
- &nbsp;
1425
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if(!locale)</span>
1426
- <span class="cstat-no" title="statement not covered" > locale = getLocaleLanguage();</span>
1427
- &nbsp;
1428
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if(typeof date === 'string' || typeof date === 'number')</span>
1429
- <span class="cstat-no" title="statement not covered" > date = new Date(typeof date === 'string' ? date.replace(/\//g, '-') : date);</span>
1430
- &nbsp;
1431
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if(!isValidDate(date))</span>
1432
- <span class="cstat-no" title="statement not covered" > return `${date}` as string;</span>
1433
- const r = <span class="cstat-no" title="statement not covered" >date.toLocaleString(locale, {</span>
1434
- year: "numeric",
1435
- day: "2-digit",
1436
- month: '2-digit'
1437
- });
1438
- &nbsp;
1439
- &nbsp;
1440
- <span class="cstat-no" title="statement not covered" > return r;</span>
1441
- }
1442
- &nbsp;
1443
- /**
1444
- * Attempts to parse a date string, Date object, or number into a valid Date object
1445
- *
1446
- * @param {(string | Date | number)} date - The date to parse. Can be a Date object, a timestamp number,
1447
- * or a date string in the format "DD/MM/YYYY HH:MM:SS:MS"
1448
- * @return {(Date | null)} A valid Date object if parsing is successful, or null if the date is invalid
1449
- * or doesn't match the expected format
1450
- */
1451
- export function <span class="fstat-no" title="function not covered" >parseToValidDate(</span>date: string | Date | number): Date | null {
1452
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if(isValidDate(date))</span>
1453
- <span class="cstat-no" title="statement not covered" > return date as Date;</span>
1454
- &nbsp;
1455
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if(!`${date}`.includes('/'))</span>
1456
- <span class="cstat-no" title="statement not covered" > return null;</span>
1457
- &nbsp;
1458
- const [dateString, timeString] = (<span class="cstat-no" title="statement not covered" >date as string).split(' ');</span>
1459
- const [day, month, year] = <span class="cstat-no" title="statement not covered" >dateString.split('/').map(Number);</span>
1460
- const [hours, minutes, seconds, milliseconds] = <span class="cstat-no" title="statement not covered" >timeString.split(':').map(Number);</span>
1461
- <span class="cstat-no" title="statement not covered" > date = new Date(year, month - 1, day, hours, minutes, seconds, milliseconds);</span>
1462
- &nbsp;
1463
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if(!isValidDate(date)) {</span>
1464
- <span class="cstat-no" title="statement not covered" > console.warn('parseToValidDate - Invalid date format', date);</span>
1465
- <span class="cstat-no" title="statement not covered" > return null;</span>
1466
- }
1467
- &nbsp;
1468
- <span class="cstat-no" title="statement not covered" > return date;</span>
1469
- }
1470
- &nbsp;
1471
- &nbsp;
1472
- /**
1473
- * Maps an item object using a provided mapper object and optional additional properties.
1474
- *
1475
- * @param {KeyValue} item - The source object to be mapped.
1476
- * @param {KeyValue} mapper - An object that defines the mapping rules. Keys represent the new property names,
1477
- * and values represent the path to the corresponding values in the source object.
1478
- * @param {KeyValue} [props] - Optional additional properties to be included in the mapped object.
1479
- * @returns {KeyValue} A new object with properties mapped according to the mapper object and including any additional properties.
1480
- */
1481
- export function <span class="fstat-no" title="function not covered" >itemMapper(</span>item: KeyValue, mapper: KeyValue, props?: KeyValue): KeyValue {
1482
- <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, value]) =&gt; {</span>
1483
- const arrayValue = (<span class="cstat-no" title="statement not covered" >value as string).split('.');</span>
1484
- <span class="cstat-no" title="statement not covered" > if (!value) {</span>
1485
- <span class="cstat-no" title="statement not covered" > accum[key] = value;</span>
1486
- } else {
1487
- <span class="cstat-no" title="statement not covered" > if (arrayValue.length === 1) {</span>
1488
- <span class="cstat-no" title="statement not covered" > accum[key] = item?.[value as string] || (value !== key ? value : "");</span>
1489
- } else {
1490
- let val;
1491
- &nbsp;
1492
- <span class="cstat-no" title="statement not covered" > for (const _value of arrayValue)</span>
1493
- <span class="cstat-no" title="statement not covered" > val = !val</span>
1494
- ? item[_value]
1495
- : (typeof val === 'string' ? JSON.parse(val) : val)[_value];
1496
- &nbsp;
1497
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (isValidDate(new Date(val))) <span class="cstat-no" title="statement not covered" >val = `${formatDate(val)}`;</span></span>
1498
- &nbsp;
1499
- <span class="cstat-no" title="statement not covered" > accum[key] = val === null || val === undefined ? value : val;</span>
1500
- }
1501
- }
1502
- <span class="cstat-no" title="statement not covered" > return Object.assign({}, props || {}, accum);</span>
1503
- }, {});
1504
- }
1505
- &nbsp;
1506
- /**
1507
- * Maps an array of data objects using a provided mapper object.
1508
- *
1509
- * @template T - The type of the resulting mapped items.
1510
- * @param {any[]} data - The array of data objects to be mapped.
1511
- * @param {KeyValue} mapper - An object that defines the mapping rules.
1512
- * @param {KeyValue} [props] - Additional properties to be included in the mapped items.
1513
- *
1514
- * @returns {T[]} - The array of mapped items. If an item in the original array does not have any non-null values after mapping,
1515
- * the original item is returned instead.
1516
- */
1517
- export function <span class="fstat-no" title="function not covered" >dataMapper&lt;</span>T&gt;(data: T[], mapper: KeyValue, props?: KeyValue): T[] {
1518
- <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>
1519
- <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>
1520
- const item = <span class="cstat-no" title="statement not covered" >itemMapper(curr as KeyValue, mapper, props) as T;</span>
1521
- const hasValues =
1522
- <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;</span>
1523
- 0;
1524
- <span class="cstat-no" title="statement not covered" > accum.push(hasValues ? item : curr);</span>
1525
- <span class="cstat-no" title="statement not covered" > return accum;</span>
1526
- }, []);
1527
- }
1528
- &nbsp;
1529
- /**
1530
- * @description Removes focus from the currently active DOM element
1531
- * @summary This utility function blurs the currently focused element in the document,
1532
- * effectively removing focus traps that might prevent proper navigation or keyboard
1533
- * interaction. It safely accesses the document's activeElement and calls blur() if
1534
- * an element is currently focused. This is useful for accessibility and user experience
1535
- * improvements, particularly when closing modals or dialogs.
1536
- *
1537
- * @return {void}
1538
- *
1539
- * @function removeFocusTrap
1540
- * @memberOf module:for-angular
1541
- */
1542
- export function <span class="fstat-no" title="function not covered" >removeFocusTrap(</span>): void {
1543
- const doc = <span class="cstat-no" title="statement not covered" >getWindowDocument();</span>
1544
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if(doc?.activeElement)</span>
1545
- (<span class="cstat-no" title="statement not covered" >doc.activeElement as HTMLElement)?.blur();</span>
1546
- }
1547
- &nbsp;
1548
- /**
1549
- * @description Cleans and normalizes whitespace in a string value
1550
- * @summary This utility function trims leading and trailing whitespace from a string
1551
- * and replaces multiple consecutive whitespace characters with a single space.
1552
- * Optionally converts the result to lowercase for consistent text processing.
1553
- * This is useful for normalizing user input, search terms, or data sanitization.
1554
- *
1555
- * @param {string} value - The string value to clean and normalize
1556
- * @param {boolean} [lowercase=false] - Whether to convert the result to lowercase
1557
- * @return {string} The cleaned and normalized string
1558
- *
1559
- * @function cleanSpaces
1560
- * @memberOf module:for-angular
1561
- */
1562
- export function cleanSpaces(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 {
1563
- value = `${value}`.trim().replace(/\s+/g, ' ');
1564
- return lowercase ? value.toLowerCase() : <span class="branch-1 cbranch-no" title="branch not covered" >value;</span>
1565
- }
1566
- &nbsp;
1567
- &nbsp;
1568
- /**
1569
- * @description Determines if the user's system is currently in dark mode
1570
- * @summary This function checks the user's color scheme preference using the CSS media query
1571
- * '(prefers-color-scheme: dark)'. It returns a boolean indicating whether the system is
1572
- * currently set to dark mode. This is useful for implementing theme-aware functionality
1573
- * and adjusting UI elements based on the user's preferred color scheme.
1574
- *
1575
- * @return {Promise&lt;boolean&gt;} True if the system is in dark mode, false otherwise
1576
- *
1577
- * @function isDarkMode
1578
- * @memberOf module:for-angular
1579
- */
1580
- export async function <span class="fstat-no" title="function not covered" >isDarkMode(</span>): Promise&lt;boolean&gt; {
1581
- const {matches} = <span class="cstat-no" title="statement not covered" >getWindow().matchMedia('(prefers-color-scheme: dark)');</span>
1582
- <span class="cstat-no" title="statement not covered" > return matches;</span>
1583
- }
1584
- &nbsp;</pre></td></tr></table></pre>
1585
-
1586
- <div class='push'></div><!-- for sticky footer -->
1587
- </div><!-- /wrapper -->
1588
- <div class='footer quiet pad2 space-top1 center small'>
1589
- Code coverage generated by
1590
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1591
- at 2025-10-27T14:26:19.930Z
1592
- </div>
1593
- <script src="../../../prettify.js"></script>
1594
- <script>
1595
- window.onload = function () {
1596
- prettyPrint();
1597
- };
1598
- </script>
1599
- <script src="../../../sorter.js"></script>
1600
- <script src="../../../block-navigation.js"></script>
1601
- </body>
1602
- </html>
1603
-